metalbear-co / mirrord-intellij

Connect your local process and your cloud environment, and run local code in cloud conditions.
https://mirrord.dev
MIT License
10 stars 9 forks source link

IntelliJ does not prompt for target pod and reports "mirrord was cancelled" #219

Open gjacobitrs opened 9 months ago

gjacobitrs commented 9 months ago

Bug Description

When I run mirrord without specifying a target pod, I expect to be prompted via the pod selection widget. No widget shows up and instead I am seeing an IntelliJ error message saying "mirrord was cancelled"

Steps to Reproduce

mirrord 3.56.3 Intellij Ultimate 2023.2.5 MacOS Sonoma Java application using VM 17.0.3-zulu

Backtrace

No response

Relevant Logs

No response

Your operating system and version

OSX Sonoma 14.2

Local process

Mach-O 64-bit executable x86_64

Local process version

No response

Additional Info

No response

aviramha commented 9 months ago

dup with #97 - just to clarify, issue is that we don't display relevant warning that user needs to set target.

aviramha commented 9 months ago

Hey, I can't reproduce it with same configuration. Would you up to do a screen share session so we can investigate better? If so, please schedule time here - https://calendly.com/aviram-5/30min or ping me on Discord.

Dill-Dall commented 9 months ago

I have the same issue. IntelliJ IDEA 2023.1.5 MacBook Pro - Ventura 13.4

Was able to manually configure with a mirrord.json though

infiniteregrets commented 9 months ago

I have the same issue. IntelliJ IDEA 2023.1.5 MacBook Pro - Ventura 13.4

Was able to manually configure with a mirrord.json though

hi @Dill-Dall did you specify the target in the mirrord.json and it worked?

Dill-Dall commented 9 months ago

@infiniteregrets yup, following worked like a charm

{
    "target": {
        "path": {
            "pod": "di-spring-boot-starter-5c478ff597-c99pg"
        },
        "namespace": "di-spring-boot-starter"
    },
    "feature": {
        "network": {
            "incoming": {
                "mode": "steal",
                "http_filter": {
                    "header_filter": "X-Playground: thomas"
                }
            },
            "outgoing": true
        },
        "fs" : "read",
        "env" : true
    }

}
infiniteregrets commented 9 months ago

@Dill-Dall did you get a notification that mirrord cannot display the target selection dialog box along with "mirrord was cancelled"?

Dill-Dall commented 9 months ago

@infiniteregrets correct 'mirrord was cancelled' and the error 'mirrord plugin was unable to display the target selection dialog. You can set it manually in the configuration file /Users//git/com.github//di-spring-boot-starter/.mirrord/mirrord.json.

infiniteregrets commented 9 months ago

@infiniteregrets correct 'mirrord was cancelled' and the error 'mirrord plugin was unable to display the target selection dialog. You can set it manually in the configuration file /Users//git/com.github//di-spring-boot-starter/.mirrord/mirrord.json.

Thanks for the info! I believe that's expected behavior because we want the user to know the alternative solution, however, as the issue points they did not see any helpful message (:

Razz4780 commented 8 months ago

Opened a related issue on JetBrains board here

aviramha commented 8 months ago

Opened a related issue on JetBrains board here

Thanks! @Dill-Dall , @gjacobitrs please upvote it on YouTrack so JB will help us! :)

eyalb181 commented 2 months ago

@Razz4780 Given the comments in the JetBrains issue, is this still blocked?

Razz4780 commented 1 month ago

@Razz4780 Given the comments in the JetBrains issue, is this still blocked?

Based on feedback we got from JetBrains, solving this issue would require a massive change in our plugin. We currently extend RunConfigurationExtension endpoint, which is not meant to show any UI. We should be extending BeforeRunTaskProvider, which has a very different interface and imposes a different flow.

Also, since this issue was opened, we've added a warning that asks the user to fill target in the mirrord config.