11
11
12
12
from backend .components import DBConfigApi
13
13
from backend .components .dbconfig .constants import FormatType , LevelName
14
+ from backend .core .encrypt .constants import AsymmetricCipherConfigType
15
+ from backend .core .encrypt .handlers import AsymmetricHandler
14
16
from backend .db_package .models import Package
17
+ from backend .db_proxy .constants import ExtensionType
18
+ from backend .db_proxy .models import DBExtension
15
19
from backend .flow .consts import ConfigTypeEnum , DBActuatorActionEnum , DBActuatorTypeEnum , MediumEnum , NameSpaceEnum
16
20
17
21
logger = logging .getLogger ("flow" )
@@ -22,6 +26,11 @@ class ProxyActPayload(object):
22
26
定义proxy不同执行类型,拼接不同的payload参数,对应不同的dict结构体.
23
27
"""
24
28
29
+ def __proxy_get_dbha_account_name (self , bk_cloud_id : int ):
30
+ bk_cloud_name = AsymmetricCipherConfigType .get_cipher_cloud_name (bk_cloud_id )
31
+ dbha = DBExtension .get_latest_extension (bk_cloud_id = bk_cloud_id , extension_type = ExtensionType .DBHA )
32
+ return AsymmetricHandler .decrypt (name = bk_cloud_name , content = dbha .details ["user" ])
33
+
25
34
@staticmethod
26
35
def __get_proxy_account ():
27
36
"""
@@ -59,6 +68,7 @@ def get_install_proxy_payload(self, **kwargs) -> dict:
59
68
"""
60
69
拼接安装proxy的payload参数
61
70
"""
71
+
62
72
proxy_pkg = Package .get_latest_package (version = "latest" , pkg_type = MediumEnum .MySQLProxy )
63
73
return {
64
74
"db_type" : DBActuatorTypeEnum .Proxy .value ,
@@ -71,6 +81,7 @@ def get_install_proxy_payload(self, **kwargs) -> dict:
71
81
"pkg_md5" : proxy_pkg .md5 ,
72
82
"ports" : self .ticket_data .get ("proxy_ports" , []),
73
83
"proxy_configs" : {"mysql-proxy" : self .__get_proxy_config ()},
84
+ "dbha_account" : self .__proxy_get_dbha_account_name (bk_cloud_id = kwargs ["bk_cloud_id" ]),
74
85
},
75
86
},
76
87
}
0 commit comments