forked from Azure/azure-cli-extensions
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain_converter.py
More file actions
71 lines (65 loc) · 3.44 KB
/
main_converter.py
File metadata and controls
71 lines (65 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
from .base_converter import BaseConverter
# Concrete Converter Subclass for main
class MainConverter(BaseConverter):
def __init__(self, source):
def transform_data():
asa_certs = self.wrapper_data.get_keyvault_certificates()
certs = []
for cert in asa_certs:
certName = self._get_resource_name(cert)
templateName = f"{certName}_cert.bicep"
certData = {
"certName": certName,
"moduleName": self._get_cert_module_name(cert),
"templateName": templateName,
}
certs.append(certData)
apps_data = []
apps = self.wrapper_data.get_apps()
for app in apps:
appName = self._get_resource_name(app)
templateName = f"{appName}_app.bicep"
appData = {
"appName": appName,
"moduleName": self._get_app_module_name(app),
"templateName": templateName,
"paramContainerAppImageName": self._get_param_name_of_container_image(app),
"paramTargetPort": self._get_param_name_of_target_port(app),
"dependsOns": self._get_depends_on_list(app),
"isByoc": self.wrapper_data.is_support_custom_container_image_for_app(app),
"isPrivateImage": self.wrapper_data.is_private_custom_container_image(app),
"paramContainerAppImagePassword": self._get_param_name_of_container_image_password(app),
}
apps_data.append(appData)
return {
"isVnet": self.wrapper_data.is_vnet(),
"certs": certs,
"apps": apps_data,
"storages": self._get_app_storage_configs(),
"gateway": self.wrapper_data.is_support_gateway(),
"config": self.wrapper_data.is_support_configserver(),
"eureka": self.wrapper_data.is_support_eureka(),
"sba": self.wrapper_data.is_support_sba(),
}
super().__init__(source, transform_data)
def get_template_name(self):
return "main.bicep"
def _get_depends_on_list(self, app):
service_bind = []
if self.wrapper_data.is_support_configserver_for_app(app):
service_bind.append("managedConfig")
if self.wrapper_data.is_enterprise_tier() is not True and self.wrapper_data.is_support_ossconfigserver():
# standard tier enabled config server and bind all apps automatically
service_bind.append("managedConfig")
if self.wrapper_data.is_support_serviceregistry_for_app(app):
service_bind.append("managedEureka")
if self.wrapper_data.is_enterprise_tier() is not True and self.wrapper_data.is_support_eureka():
# standard tier enabled eureka server and bind all apps automatically
service_bind.append("managedEureka")
if self.wrapper_data.is_support_sba():
service_bind.append("managedSpringBootAdmin")
return service_bind