Skip to content

Commit 74b89b6

Browse files
authored
Fix regression: when there is no current spark type and no default spark type, local/livy console will point to job submission (#2715)
To address #2714
1 parent e180ce0 commit 74b89b6

File tree

7 files changed

+53
-12
lines changed

7 files changed

+53
-12
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/resources/META-INF/plugin.xml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -595,14 +595,23 @@
595595

596596
<action id="Actions.SparkSubmitJobActionGroups" class="com.microsoft.azure.hdinsight.spark.run.action.SparkSubmitJobActionGroups" text="Submit Spark Application"/>
597597

598-
<action id="Actions.SparkRunConsoleActionGroups" class="com.microsoft.azure.hdinsight.spark.console.SparkRunConsoleActionGroups" text="Run Spark Console"/>
598+
<action id="Actions.SparkRunLivyConsoleActionGroups" class="com.microsoft.azure.hdinsight.spark.console.SparkRunLivyConsoleActionGroups" text="Run Spark Console"/>
599+
600+
<action id="Actions.SparkRunLocalConsoleActionGroups" class="com.microsoft.azure.hdinsight.spark.console.SparkRunLocalConsoleActionGroups" text="Run Spark Local Console"/>
599601

600602
<action id="Actions.RunLivySparkConsoleAction"
601-
class="com.microsoft.azure.hdinsight.spark.console.LivySparkSelectTypeAndRunConsoleAction" text="Spark on HDInsight"
602-
description="Start interactive console for Spark on HDInsight Application" icon="/icons/Spark.png"/>
603+
class="com.microsoft.azure.hdinsight.spark.console.SelectLivySparkTypeThenRunLivyConsoleAction" text="Spark on HDInsight"
604+
description="Start an interactive console for Spark on HDInsight Application" icon="/icons/Spark.png"/>
603605
<action id="Actions.RunCosmosSparkConsoleAction"
604-
class="com.microsoft.azure.hdinsight.spark.console.CosmosSparkSelectTypeAndRunConsoleAction" text="Spark on Cosmos"
605-
description="Start interactive console for Spark on Cosmos Application" icon="/icons/Spark.png"/>
606+
class="com.microsoft.azure.hdinsight.spark.console.SelectCosmosSparkTypeThenRunLivyConsoleAction" text="Spark on Cosmos"
607+
description="Start an interactive console for Spark on Cosmos Application" icon="/icons/Spark.png"/>
608+
609+
<action id="Actions.RunLivySparkLocalConsoleAction"
610+
class="com.microsoft.azure.hdinsight.spark.console.SelectLivySparkTypeThenRunLocalConsoleAction" text="Spark on HDInsight"
611+
description="Start a Spark local console for Spark on HDInsight Application" icon="/icons/Spark.png"/>
612+
<action id="Actions.RunCosmosSparkLocalConsoleAction"
613+
class="com.microsoft.azure.hdinsight.spark.console.SelectCosmosSparkTypeThenRunLocalConsoleAction" text="Spark on Cosmos"
614+
description="Start a Spark local console for Spark on Cosmos Application" icon="/icons/Spark.png"/>
606615
</actions>
607616
<helpset file="azure-toolkit-for-intellij-help.jar" path="/helpset.hs"/>
608617
</idea-plugin>

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/hdinsight/spark/console/CosmosSparkScalaLivyConsoleRunConfiguration.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,12 @@ class CosmosSparkScalaLivyConsoleRunConfiguration(project: Project,
6464
}
6565

6666
override fun checkRunnerSettings(runner: ProgramRunner<*>, runnerSettings: RunnerSettings?, configurationPerRunnerSettings: ConfigurationPerRunnerSettings?) {
67-
val adlAccount = (submitModel as? CosmosSparkSubmitModel)?.accountName
67+
val cosmosSparkSubmitModel = (submitModel as? CosmosSparkSubmitModel)
6868
?: throw RuntimeConfigurationError("Can't cast submitModel to CosmosSparkSubmitModel")
6969

70+
val adlAccount = cosmosSparkSubmitModel?.accountName
71+
?: throw RuntimeConfigurationError("The target cluster name is not selected")
72+
7073
cluster = AzureSparkCosmosClusterManager
7174
.getInstance()
7275
.getAccountByName(adlAccount)

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/hdinsight/spark/console/RunSparkScalaConsoleAction.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ import com.intellij.execution.RunManagerEx
2727
import com.intellij.execution.RunnerAndConfigurationSettings
2828
import com.intellij.execution.configurations.ConfigurationType
2929
import com.intellij.execution.configurations.RunConfiguration
30-
import com.intellij.execution.configurations.RuntimeConfigurationError
3130
import com.intellij.execution.executors.DefaultRunExecutor
3231
import com.intellij.execution.runners.ExecutionEnvironmentBuilder
3332
import com.intellij.openapi.actionSystem.AnAction
3433
import com.intellij.openapi.actionSystem.AnActionEvent
3534
import com.intellij.openapi.actionSystem.CommonDataKeys
3635
import com.intellij.openapi.actionSystem.ex.ActionManagerEx
3736
import com.intellij.openapi.project.Project
38-
import com.intellij.openapi.ui.Messages
3937
import com.intellij.psi.PsiFile
4038
import com.microsoft.azure.hdinsight.common.logger.ILogger
4139
import com.microsoft.azure.hdinsight.spark.run.action.RunConfigurationActionUtils
@@ -53,6 +51,8 @@ abstract class RunSparkScalaConsoleAction
5351
: AnAction(), RunConsoleAction.RunActionBase<LivySparkBatchJobRunConfigurationType>, ILogger {
5452
abstract val consoleRunConfigurationFactory: ScalaConsoleRunConfigurationFactory
5553

54+
abstract val selectedMenuActionId: String
55+
5656
override fun actionPerformed(event: AnActionEvent) {
5757
val dataContext = event.dataContext
5858
val project = CommonDataKeys.PROJECT.getData(dataContext) ?: return
@@ -68,7 +68,7 @@ abstract class RunSparkScalaConsoleAction
6868

6969
val batchConfigurationType = SelectSparkApplicationTypeAction.getRunConfigurationType()
7070
if (batchConfigurationType == null) {
71-
val action = ActionManagerEx.getInstance().getAction("Actions.SparkRunConsoleActionGroups")
71+
val action = ActionManagerEx.getInstance().getAction(selectedMenuActionId)
7272
action?.actionPerformed(event)
7373
return
7474
}
@@ -94,9 +94,14 @@ abstract class RunSparkScalaConsoleAction
9494
runInReadAction {
9595
val factory = configurationType.configurationFactories[0]
9696
val setting = RunManager.getInstance(project).createConfiguration(name, factory)
97+
98+
// Newly created config should let the user to edit
9799
setting.isEditBeforeRun = true
98100
handler.apply(setting.configuration)
99101
runFromSetting(setting, runManagerEx)
102+
103+
// Skip edit the next time
104+
setting.isEditBeforeRun = false
100105
}
101106
}
102107

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/hdinsight/spark/console/RunSparkScalaLivyConsoleAction.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ import com.microsoft.azure.hdinsight.spark.run.configuration.*
3131
import org.jetbrains.plugins.scala.console.ScalaConsoleRunConfigurationFactory
3232

3333
class RunSparkScalaLivyConsoleAction : RunSparkScalaConsoleAction() {
34+
override val selectedMenuActionId: String
35+
get() = "Actions.SparkRunLivyConsoleActionGroups"
36+
3437
override val focusedTabIndex: Int
3538
get() = 1
3639

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/hdinsight/spark/console/RunSparkScalaLocalConsoleAction.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ package com.microsoft.azure.hdinsight.spark.console
2525
import org.jetbrains.plugins.scala.console.ScalaConsoleRunConfigurationFactory
2626

2727
class RunSparkScalaLocalConsoleAction : RunSparkScalaConsoleAction() {
28+
override val selectedMenuActionId: String
29+
get() = "Actions.SparkRunLocalConsoleActionGroups"
30+
2831
override val isLocalRunConfigEnabled: Boolean
2932
get() = true
3033

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ import com.intellij.openapi.project.Project
3030
import com.microsoft.azure.hdinsight.spark.run.action.SeqActions
3131

3232

33-
class SparkRunConsoleActionGroups : QuickSwitchSchemeAction() {
33+
class SparkRunLivyConsoleActionGroups : QuickSwitchSchemeAction() {
3434
override fun fillActions(project: Project?, group: DefaultActionGroup, dataContext: DataContext) {
3535
group.add(ActionManager.getInstance().getAction("Actions.RunLivySparkConsoleAction"))
3636
group.add(ActionManager.getInstance().getAction("Actions.RunCosmosSparkConsoleAction"))
3737
}
3838
}
3939

40-
class LivySparkSelectTypeAndRunConsoleAction : SeqActions("Actions.SelectHDInsightSparkType", "Actions.SubmitSparkApplicationAction")
41-
class CosmosSparkSelectTypeAndRunConsoleAction : SeqActions("Actions.SelectCosmosSparkType", "Actions.SubmitSparkApplicationAction")
40+
class SelectLivySparkTypeThenRunLivyConsoleAction : SeqActions("Actions.SelectHDInsightSparkType", "Spark.RunScalaLivyConsole")
41+
class SelectCosmosSparkTypeThenRunLivyConsoleAction : SeqActions("Actions.SelectCosmosSparkType", "Spark.RunScalaLivyConsole")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.microsoft.azure.hdinsight.spark.console
2+
3+
import com.intellij.ide.actions.QuickSwitchSchemeAction
4+
import com.intellij.openapi.actionSystem.ActionManager
5+
import com.intellij.openapi.actionSystem.DataContext
6+
import com.intellij.openapi.actionSystem.DefaultActionGroup
7+
import com.intellij.openapi.project.Project
8+
import com.microsoft.azure.hdinsight.spark.run.action.SeqActions
9+
10+
class SparkRunLocalConsoleActionGroups : QuickSwitchSchemeAction() {
11+
override fun fillActions(project: Project?, group: DefaultActionGroup, dataContext: DataContext) {
12+
group.add(ActionManager.getInstance().getAction("Actions.RunLivySparkLocalConsoleAction"))
13+
group.add(ActionManager.getInstance().getAction("Actions.RunCosmosSparkLocalConsoleAction"))
14+
}
15+
}
16+
17+
class SelectLivySparkTypeThenRunLocalConsoleAction : SeqActions("Actions.SelectHDInsightSparkType", "Spark.RunScalaLocalConsole")
18+
class SelectCosmosSparkTypeThenRunLocalConsoleAction : SeqActions("Actions.SelectCosmosSparkType", "Spark.RunScalaLocalConsole")

0 commit comments

Comments
 (0)