55
66package com .microsoft .azure .toolkit .intellij .applicationinsights ;
77
8+ import com .azure .resourcemanager .applicationinsights .models .ApplicationInsightsComponent ;
89import com .intellij .openapi .actionSystem .AnActionEvent ;
910import com .microsoft .azure .toolkit .ide .applicationinsights .ApplicationInsightsActionsContributor ;
1011import com .microsoft .azure .toolkit .ide .common .IActionsContributor ;
1718import com .microsoft .azure .toolkit .lib .applicationinsights .ApplicationInsight ;
1819import com .microsoft .azure .toolkit .lib .applicationinsights .ApplicationInsightDraft ;
1920import com .microsoft .azure .toolkit .lib .applicationinsights .AzureApplicationInsights ;
21+ import com .microsoft .azure .toolkit .lib .auth .AzureAccount ;
2022import com .microsoft .azure .toolkit .lib .common .action .AzureActionManager ;
2123import com .microsoft .azure .toolkit .lib .common .model .AzResource ;
24+ import com .microsoft .azure .toolkit .lib .common .model .Region ;
25+ import com .microsoft .azure .toolkit .lib .common .model .Subscription ;
2226import com .microsoft .azure .toolkit .lib .common .operation .OperationBundle ;
2327import com .microsoft .azure .toolkit .lib .common .task .AzureTaskManager ;
28+ import com .microsoft .azure .toolkit .lib .common .utils .Utils ;
29+ import com .microsoft .azure .toolkit .lib .resource .AzureResources ;
2430import com .microsoft .azure .toolkit .lib .resource .ResourceGroup ;
31+ import com .microsoft .azure .toolkit .lib .resource .ResourceGroupDraft ;
2532
33+ import javax .annotation .Nullable ;
34+ import java .util .List ;
35+ import java .util .Optional ;
2636import java .util .function .BiConsumer ;
2737import java .util .function .BiPredicate ;
2838
2939public class IntelliJApplicationInsightsActionsContributor implements IActionsContributor {
3040 @ Override
3141 public void registerHandlers (AzureActionManager am ) {
3242 final BiPredicate <Object , AnActionEvent > condition = (r , e ) -> r instanceof AzureApplicationInsights ;
33- final BiConsumer <Object , AnActionEvent > handler = (c , e ) -> CreateApplicationInsightsAction .create (e .getProject (), null );
43+ final BiConsumer <Object , AnActionEvent > handler = (c , e ) ->
44+ CreateApplicationInsightsAction .create (e .getProject (), getDraftApplicationInsight (null ));
3445 am .registerHandler (ResourceCommonActionsContributor .CREATE , condition , handler );
3546
36- final BiConsumer <ResourceGroup , AnActionEvent > groupCreateAccountHandler = (r , e ) -> {
37- final ApplicationInsightDraft draft = Azure .az (AzureApplicationInsights .class )
38- .applicationInsights (r .getSubscriptionId ()).create (AzResource .NONE .getName (), r .getName ());
39- draft .setRegion (r .getRegion ());
40- CreateApplicationInsightsAction .create (e .getProject (), draft );
41- };
47+ final BiConsumer <ResourceGroup , AnActionEvent > groupCreateAccountHandler = (r , e ) ->
48+ CreateApplicationInsightsAction .create (e .getProject (), getDraftApplicationInsight (r ));
4249 am .registerHandler (ApplicationInsightsActionsContributor .GROUP_CREATE_APPLICATIONINSIGHT , (r , e ) -> true , groupCreateAccountHandler );
4350
4451 final BiPredicate <AzResource <?, ?, ?>, AnActionEvent > connectCondition = (r , e ) -> r instanceof ApplicationInsight ;
@@ -51,6 +58,21 @@ public void registerHandlers(AzureActionManager am) {
5158 am .registerHandler (ResourceCommonActionsContributor .CONNECT , connectCondition , connectHandler );
5259 }
5360
61+ private static ApplicationInsightDraft getDraftApplicationInsight (@ Nullable final ResourceGroup resourceGroup ) {
62+ final List <Subscription > selectedSubscriptions = Azure .az (AzureAccount .class ).account ().getSelectedSubscriptions ();
63+ if (selectedSubscriptions .size () == 0 ) {
64+ return null ;
65+ }
66+ final String timestamp = Utils .getTimestamp ();
67+ final Subscription subscription = selectedSubscriptions .get (0 );
68+ final Region region = Optional .ofNullable (resourceGroup ).map (ResourceGroup ::getRegion ).orElse (null );
69+ final String resourceGroupName = resourceGroup == null ? String .format ("rg-%s" , timestamp ) : resourceGroup .getResourceGroupName ();
70+ final ApplicationInsightDraft applicationInsightDraft = Azure .az (AzureApplicationInsights .class ).applicationInsights (subscription .getId ())
71+ .create (String .format ("ai-%s" , timestamp ), resourceGroupName );
72+ applicationInsightDraft .setRegion (region );
73+ return applicationInsightDraft ;
74+ }
75+
5476 @ Override
5577 public int getOrder () {
5678 return ApplicationInsightsActionsContributor .INITIALIZE_ORDER + 1 ;
0 commit comments