|
6 | 6 | package com.microsoft.azure.toolkit.intellij.legacy.webapp.runner.webapponlinux; |
7 | 7 |
|
8 | 8 | import com.intellij.openapi.project.Project; |
| 9 | +import com.intellij.openapi.vfs.VfsUtil; |
9 | 10 | import com.microsoft.azure.toolkit.ide.appservice.webapp.model.WebAppConfig; |
10 | 11 | import com.microsoft.azure.toolkit.intellij.common.RunProcessHandler; |
| 12 | +import com.microsoft.azure.toolkit.intellij.connector.dotazure.AzureModule; |
| 13 | +import com.microsoft.azure.toolkit.intellij.connector.dotazure.Profile; |
11 | 14 | import com.microsoft.azure.toolkit.intellij.container.model.DockerImage; |
12 | 15 | import com.microsoft.azure.toolkit.intellij.containerregistry.ContainerService; |
13 | 16 | import com.microsoft.azure.toolkit.intellij.legacy.common.AzureRunProfileState; |
|
16 | 19 | import com.microsoft.azure.toolkit.lib.appservice.config.AppServiceConfig; |
17 | 20 | import com.microsoft.azure.toolkit.lib.appservice.config.RuntimeConfig; |
18 | 21 | import com.microsoft.azure.toolkit.lib.appservice.task.CreateOrUpdateWebAppTask; |
| 22 | +import com.microsoft.azure.toolkit.lib.appservice.webapp.AzureWebApp; |
| 23 | +import com.microsoft.azure.toolkit.lib.appservice.webapp.WebApp; |
19 | 24 | import com.microsoft.azure.toolkit.lib.common.operation.AzureOperation; |
20 | 25 | import com.microsoft.azure.toolkit.lib.common.operation.OperationContext; |
| 26 | +import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager; |
21 | 27 | import com.microsoft.azure.toolkit.lib.containerregistry.AzureContainerRegistry; |
22 | 28 | import com.microsoft.azure.toolkit.lib.containerregistry.ContainerRegistry; |
23 | 29 | import com.microsoft.azure.toolkit.lib.legacy.webapp.WebAppService; |
@@ -59,6 +65,19 @@ public WebAppOnLinuxDeployState(Project project, WebAppOnLinuxDeployConfiguratio |
59 | 65 | appSettings.put(WEBSITES_PORT, String.valueOf(configuration.getPort())); |
60 | 66 | webAppConfig.setAppSettings(appSettings); |
61 | 67 | final AppServiceConfig appServiceConfig = WebAppService.convertToTaskConfig(webAppConfig); |
| 68 | + final WebApp webapp = Azure.az(AzureWebApp.class).webApps(appServiceConfig.subscriptionId()).getOrDraft(appServiceConfig.appName(), appServiceConfig.resourceGroup()); |
| 69 | + |
| 70 | + final AzureTaskManager tm = AzureTaskManager.getInstance(); |
| 71 | + tm.runOnPooledThread(() -> Optional.ofNullable(image) |
| 72 | + .map(DockerImage::getDockerFile) |
| 73 | + .map(f -> VfsUtil.findFileByIoFile(f, true)) |
| 74 | + .map(f -> AzureModule.from(f, this.project)) |
| 75 | + .ifPresent(module -> tm.runLater(() -> tm.write(() -> { |
| 76 | + final Profile p = module.initializeWithDefaultProfileIfNot(); |
| 77 | + Optional.of(registry).ifPresent(p::addApp); |
| 78 | + Optional.of(webapp).ifPresent(p::addApp); |
| 79 | + p.save(); |
| 80 | + })))); |
62 | 81 | // update image configuration |
63 | 82 | final RuntimeConfig runtime = appServiceConfig.runtime(); |
64 | 83 | final DockerImage dockerImageConfiguration = configuration.getDockerImageConfiguration(); |
|
0 commit comments