in Utils/azure-toolkit-ide-libs/azure-toolkit-ide-springcloud-lib/src/main/java/com/microsoft/azure/toolkit/ide/springcloud/SpringCloudActionsContributor.java [44:128]
public void registerActions(AzureActionManager am) {
new Action<>(OPEN_PUBLIC_URL)
.visibleWhen(s -> s instanceof SpringCloudApp)
.enableWhen(s -> s.getFormalStatus().isRunning())
.withLabel("Access Public Endpoint")
.withIcon(AzureIcons.Action.BROWSER.getIconPath())
.withIdParam(AbstractAzResource::getName)
.withShortcut("control alt P")
.withHandler((s, e) -> {
final String msg = String.format("App \"%s\" is not publicly accessible. Do you want to assign it a public endpoint?", s.getName());
if (!s.isPublicEndpointEnabled() && AzureMessager.getMessager().confirm(msg)) {
final SpringCloudAppDraft update = (SpringCloudAppDraft) s.update();
update.setPublicEndpointEnabled(true);
update.commit();
}
if (s.isPublicEndpointEnabled()) {
am.getAction(ResourceCommonActionsContributor.OPEN_URL).handle(s.getApplicationUrl(), e);
}
})
.register(am);
new Action<>(OPEN_TEST_URL)
.visibleWhen(s -> s instanceof SpringCloudApp && !((SpringCloudApp) s).getParent().isConsumptionTier())
.enableWhen(s -> s.getFormalStatus().isRunning())
.withLabel("Access Test Endpoint")
.withIcon(AzureIcons.Action.BROWSER.getIconPath())
.withIdParam(AbstractAzResource::getName)
.withHandler((s, e) -> am.getAction(ResourceCommonActionsContributor.OPEN_URL).handle(s.getTestUrl(), e))
.register(am);
new Action<>(STREAM_LOG_APP)
.visibleWhen(s -> s instanceof SpringCloudApp)
.withLabel("Start Streaming Logs")
.withIcon(AzureIcons.Action.LOG.getIconPath())
.withIdParam(AbstractAzResource::getName)
.register(am);
new Action<>(STREAM_LOG)
.visibleWhen(s -> s instanceof SpringCloudAppInstance)
.withLabel("Start Streaming Logs")
.withIcon(AzureIcons.Action.LOG.getIconPath())
.withIdParam(AbstractAzResource::getName)
.register(am);
new Action<>(GROUP_CREATE_CLUSTER)
.visibleWhen(s -> s instanceof ResourceGroup)
.enableWhen(s -> s.getFormalStatus().isConnected())
.withLabel("Spring Apps")
.withIdParam(AbstractAzResource::getName)
.register(am);
new Action<>(ENABLE_REMOTE_DEBUGGING)
.visibleWhen(s -> s instanceof SpringCloudApp &&
!((SpringCloudApp) s).getParent().isConsumptionTier() &&
((SpringCloudApp) s).getFormalStatus().isRunning() &&
Optional.ofNullable(((SpringCloudApp) s).getActiveDeployment()).map(deployment -> !deployment.isRemoteDebuggingEnabled()).orElse(false))
.withLabel("Enable Remote Debugging")
.withIdParam(AbstractAzResource::getName)
.register(am);
new Action<>(DISABLE_REMOTE_DEBUGGING)
.visibleWhen(s -> s instanceof SpringCloudApp &&
!((SpringCloudApp) s).getParent().isConsumptionTier() &&
((SpringCloudApp) s).getFormalStatus().isRunning() &&
Optional.ofNullable(((SpringCloudApp) s).getActiveDeployment()).map(SpringCloudDeployment::isRemoteDebuggingEnabled).orElse(false))
.withLabel("Disable Remote Debugging")
.withIdParam(AbstractAzResource::getName)
.register(am);
new Action<>(ATTACH_DEBUGGER_APP)
.visibleWhen(s -> s instanceof SpringCloudApp && !((SpringCloudApp) s).getParent().isConsumptionTier())
.enableWhen(s -> s.getFormalStatus().isRunning())
.withLabel("Attach Debugger")
.withIcon(AzureIcons.Action.ATTACH_DEBUGGER.getIconPath())
.withIdParam(AbstractAzResource::getName)
.register(am);
new Action<>(ATTACH_DEBUGGER)
.visibleWhen(s -> s instanceof SpringCloudAppInstance && !((SpringCloudAppInstance) s).getParent().getParent().getParent().isConsumptionTier())
.enableWhen(s -> s.getParent().getParent().getFormalStatus().isRunning())
.withLabel("Attach Debugger")
.withIcon(AzureIcons.Action.ATTACH_DEBUGGER.getIconPath())
.withIdParam(AbstractAzResource::getName)
.register(am);
}