浏览代码

增加use_ssl

liweiquan 2 年之前
父节点
当前提交
cd70627e55
共有 4 个文件被更改,包括 18 次插入4 次删除
  1. 6 4
      app/core/datasource/mysql.py
  2. 1 0
      app/crud/job_jdbc_datasource.py
  3. 4 0
      app/schemas/job_jdbc_datasouce.py
  4. 7 0
      data/data.sql

+ 6 - 4
app/core/datasource/mysql.py

@@ -12,13 +12,13 @@ from utils import flat_map
 @dataclass
 class MysqlDS(DataSourceBase):
     type = 'mysql'
-    use_ssl = False
+    use_ssl = 0
 
 
     @property
     def jdbc_url(self):
         jdbc =  f'jdbc:mysql://{self.host}:{self.port}/{self.database_name}'
-        if not self.use_ssl:
+        if self.use_ssl == 0:
             jdbc = f'{jdbc}?useSSL=false'
         return jdbc
 
@@ -34,12 +34,13 @@ class MysqlDS(DataSourceBase):
         # 判断mysql是否连接成功
         conn = None
         try:
+            use_ssl = False if self.use_ssl == 0 else True
             conn  = connector.connect(host=self.host,
                                     port=self.port,
                                     database=self.database_name,
                                     user=self.username,
                                     password=self.password,
-                                    ssl_disabled=not self.use_ssl)
+                                    ssl_disabled=not use_ssl)
             if conn.is_connected():
                 logger.info('Connected to MySQL database')
 
@@ -57,12 +58,13 @@ class MysqlDS(DataSourceBase):
         conn = None
         res = []
         try:
+            use_ssl = False if self.use_ssl == 0 else True
             conn  = connector.connect(host=self.host,
                                     port=self.port,
                                     database=self.database_name,
                                     user=self.username,
                                     password=self.password,
-                                      ssl_disabled=not self.use_ssl)
+                                      ssl_disabled=not use_ssl)
             cursor = conn.cursor()
             for sql in sqls:
                 cursor.execute(sql)

+ 1 - 0
app/crud/job_jdbc_datasource.py

@@ -36,6 +36,7 @@ def _format_datasource(db: Session, item: schemas.JobJdbcDatasourceBase, ds_id:
         ds = DataSrouceFactory.create(item.datasource, {'port': port, 'host': host, 'username': item.jdbc_username,
                                                     'password': item.jdbc_password,
                                                     'database_name': item.database_name,
+                                                    'use_ssl': item.use_ssl
                                                     })
     item.jdbc_url = ds.jdbc_url
     item.jdbc_username = ds.jdbc_username if item.kerberos == 0 else None

+ 4 - 0
app/schemas/job_jdbc_datasouce.py

@@ -30,6 +30,8 @@ class JobJdbcDatasourceBase(BaseModel):
     kerberos_service_name: Optional[str]
     # principal
     principal: Optional[str]
+    # use_ssl
+    use_ssl: Optional[int]
     class Config:
         schema_extra = {
             # "example": {
@@ -56,6 +58,7 @@ class JobJdbcDatasourceBase(BaseModel):
                 "krb5config": "test/kerberos/user.conf",
                 "kerberos_service_name": "hadoop",
                 "principal": "ailab@EMR-5XJSY31F",
+                "use_ssl": 0,
             }
         }
 
@@ -93,6 +96,7 @@ class JobJdbcDatasourceUpdate(JobJdbcDatasourceBase):
                 "krb5config": "test/kerberos/user.conf",
                 "kerberos_service_name": "hadoop",
                 "principal": "ailab@EMR-5XJSY31F",
+                "use_ssl": 0,
                 "status": 1,
             }
         }

+ 7 - 0
data/data.sql

@@ -322,4 +322,11 @@ ADD COLUMN `table_name` varchar(255) NULL COMMENT '表名' AFTER `name`;
 ALTER TABLE `constant`
 MODIFY COLUMN `value` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '常量值' AFTER `type`;
 
+
+-- ----------------------------
+-- Alter for job_jdbc_datasource
+-- ----------------------------
+ALTER TABLE `job_jdbc_datasource`
+ADD COLUMN `use_ssl` tinyint(1) NULL COMMENT '是否使用ssl(0:不使用,1:使用)' AFTER `principal`;
+
 SET FOREIGN_KEY_CHECKS = 1;