mirror of
				https://github.com/veops/cmdb.git
				synced 2025-11-01 03:49:31 +08:00 
			
		
		
		
	fix(api): auto discovery update
This commit is contained in:
		| @@ -365,7 +365,7 @@ class AutoDiscoveryCITypeCRUD(DBMixin): | ||||
|             adr = AutoDiscoveryRule.get_by_id(kwargs['adr_id']) or abort( | ||||
|                 404, ErrFormat.adr_not_found.format("id={}".format(kwargs['adr_id']))) | ||||
|             if adr.type == "http": | ||||
|                 kwargs.setdefault('extra_option', dict) | ||||
|                 kwargs.setdefault('extra_option', dict()) | ||||
|                 en_name = None | ||||
|                 for i in DEFAULT_INNER: | ||||
|                     if i['name'] == adr.name: | ||||
| @@ -404,7 +404,7 @@ class AutoDiscoveryCITypeCRUD(DBMixin): | ||||
|         adr = AutoDiscoveryRule.get_by_id(existed.adr_id) or abort( | ||||
|             404, ErrFormat.adr_not_found.format("id={}".format(existed.adr_id))) | ||||
|         if adr.type == "http": | ||||
|             kwargs.setdefault('extra_option', dict) | ||||
|             kwargs.setdefault('extra_option', dict()) | ||||
|             en_name = None | ||||
|             for i in DEFAULT_INNER: | ||||
|                 if i['name'] == adr.name: | ||||
| @@ -447,7 +447,9 @@ class AutoDiscoveryCITypeCRUD(DBMixin): | ||||
|             kwargs['extra_option']['password'] = AESCrypto.encrypt(kwargs['extra_option']['password']) | ||||
|  | ||||
|         inst = self._can_update(_id=_id, **kwargs) | ||||
|         if inst.agent_id != kwargs.get('agent_id') or inst.query_expr != kwargs.get('query_expr'): | ||||
|         if len(kwargs) == 1 and 'enabled' in kwargs: # enable or disable | ||||
|             pass | ||||
|         elif inst.agent_id != kwargs.get('agent_id') or inst.query_expr != kwargs.get('query_expr'): | ||||
|             for item in AutoDiscoveryRuleSyncHistory.get_by(adt_id=inst.id, to_dict=False): | ||||
|                 item.delete(commit=False) | ||||
|             db.session.commit() | ||||
| @@ -789,7 +791,7 @@ class AutoDiscoveryHTTPManager(object): | ||||
|                     mapping = AutoDiscoveryMappingCache.get(name) | ||||
|                     if isinstance(mapping, dict): | ||||
|                         return {mapping[key][provider]['key'].split('.')[0]: key for key in mapping if | ||||
|                                 mapping[key].get(provider, {}).get('key')} | ||||
|                                 (mapping[key].get(provider) or {}).get('key')} | ||||
|  | ||||
|         return {} | ||||
|  | ||||
| @@ -807,7 +809,7 @@ class AutoDiscoveryHTTPManager(object): | ||||
|                         return ({key: mapping[key][provider].get('map') for key in mapping if | ||||
|                                  mapping[key].get(provider, {}).get('map')}, | ||||
|                                 {key: mapping[key][provider]['key'].split('.', 1)[1] for key in mapping if | ||||
|                                  (mapping[key].get(provider, {}).get('key') or '').split('.')[1:]}) | ||||
|                                  ((mapping[key].get(provider) or {}).get('key') or '').split('.')[1:]}) | ||||
|  | ||||
|         return {}, {} | ||||
|  | ||||
|   | ||||
| @@ -73,8 +73,8 @@ CLOUD_MAP = { | ||||
|             "category": "存储", | ||||
|             "items": ["块存储EBS", "对象存储OSS"], | ||||
|             "map": { | ||||
|                 "块存储EBS": "templates/aliyun_ebs.json", | ||||
|                 "对象存储OSS": "templates/aliyun_oss.json", | ||||
|                 "块存储EBS": {"template": "templates/aliyun_ebs.json", "mapping": "evs"}, | ||||
|                 "对象存储OSS": {"template": "templates/aliyun_oss.json", "mapping": "objectStorage"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "块存储EBS": "ali.ebs", | ||||
| @@ -85,9 +85,9 @@ CLOUD_MAP = { | ||||
|             "category": "数据库", | ||||
|             "items": ["云数据库RDS MySQL", "云数据库RDS PostgreSQL", "云数据库 Redis"], | ||||
|             "map": { | ||||
|                 "云数据库RDS MySQL": "templates/aliyun_rds_mysql.json", | ||||
|                 "云数据库RDS PostgreSQL": "templates/aliyun_rds_postgre.json", | ||||
|                 "云数据库 Redis": "templates/aliyun_redis.json", | ||||
|                 "云数据库RDS MySQL": {"template": "templates/aliyun_rds_mysql.json", "mapping": "mysql"}, | ||||
|                 "云数据库RDS PostgreSQL": {"template": "templates/aliyun_rds_postgre.json", "mapping": "postgresql"}, | ||||
|                 "云数据库 Redis": {"template": "templates/aliyun_redis.json", "mapping": "redis"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云数据库RDS MySQL": "ali.rds_mysql", | ||||
| @@ -101,7 +101,7 @@ CLOUD_MAP = { | ||||
|             "category": "计算", | ||||
|             "items": ["云服务器 CVM"], | ||||
|             "map": { | ||||
|                 "云服务器 CVM": "templates/tencent_cvm.json", | ||||
|                 "云服务器 CVM": {"template": "templates/tencent_cvm.json", "mapping": "ecs"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云服务器 CVM": "tencent.cvm", | ||||
| @@ -111,7 +111,7 @@ CLOUD_MAP = { | ||||
|             "category": "CDN与边缘", | ||||
|             "items": ["内容分发CDN"], | ||||
|             "map": { | ||||
|                 "内容分发CDN": "templates/tencent_cdn.json", | ||||
|                 "内容分发CDN": {"template": "templates/tencent_cdn.json", "mapping": "CDN"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "内容分发CDN": "tencent.cdn", | ||||
| @@ -121,9 +121,9 @@ CLOUD_MAP = { | ||||
|             "category": "网络", | ||||
|             "items": ["负载均衡CLB", "私有网络VPC", "子网"], | ||||
|             "map": { | ||||
|                 "负载均衡CLB": "templates/tencent_clb.json", | ||||
|                 "私有网络VPC": "templates/tencent_vpc.json", | ||||
|                 "子网": "templates/tencent_subnet.json", | ||||
|                 "负载均衡CLB": {"template": "templates/tencent_clb.json", "mapping": "loadbalancer"}, | ||||
|                 "私有网络VPC": {"template": "templates/tencent_vpc.json", "mapping": "vpc"}, | ||||
|                 "子网": {"template": "templates/tencent_subnet.json", "mapping": "vswitch"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "负载均衡CLB": "tencent.clb", | ||||
| @@ -135,21 +135,21 @@ CLOUD_MAP = { | ||||
|             "category": "存储", | ||||
|             "items": ["云硬盘CBS", "对象存储COS"], | ||||
|             "map": { | ||||
|                 "云硬盘CBS": "templates/tencent_cbs.json", | ||||
|                 "对象存储OSS": "templates/tencent_cos.json", | ||||
|                 "云硬盘CBS": {"template": "templates/tencent_cbs.json", "mapping": "evs"}, | ||||
|                 "对象存储COS": {"template": "templates/tencent_cos.json", "mapping": "objectStorage"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云硬盘CBS": "tencent.cbs", | ||||
|                 "对象存储OSS": "tencent.cos", | ||||
|                 "对象存储COS": "tencent.cos", | ||||
|             }, | ||||
|         }, | ||||
|         { | ||||
|             "category": "数据库", | ||||
|             "items": ["云数据库 MySQL", "云数据库 PostgreSQL", "云数据库 Redis"], | ||||
|             "map": { | ||||
|                 "云数据库 MySQL": "templates/tencent_rdb.json", | ||||
|                 "云数据库 PostgreSQL": "templates/tencent_postgres.json", | ||||
|                 "云数据库 Redis": "templates/tencent_redis.json", | ||||
|                 "云数据库 MySQL": {"template": "templates/tencent_rdb.json", "mapping": "mysql"}, | ||||
|                 "云数据库 PostgreSQL": {"template": "templates/tencent_postgres.json", "mapping": "postgresql"}, | ||||
|                 "云数据库 Redis": {"template": "templates/tencent_redis.json", "mapping": "redis"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云数据库 MySQL": "tencent.rdb", | ||||
| @@ -163,7 +163,7 @@ CLOUD_MAP = { | ||||
|             "category": "计算", | ||||
|             "items": ["云服务器 ECS"], | ||||
|             "map": { | ||||
|                 "云服务器 ECS": "templates/huaweicloud_ecs.json", | ||||
|                 "云服务器 ECS": {"template": "templates/huaweicloud_ecs.json", "mapping": "ecs"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云服务器 ECS": "huawei.ecs", | ||||
| @@ -173,7 +173,7 @@ CLOUD_MAP = { | ||||
|             "category": "CDN与智能边缘", | ||||
|             "items": ["内容分发网络CDN"], | ||||
|             "map": { | ||||
|                 "内容分发网络CDN": "templates/huawei_cdn.json", | ||||
|                 "内容分发网络CDN": {"template": "templates/huawei_cdn.json", "mapping": "CDN"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "内容分发网络CDN": "huawei.cdn", | ||||
| @@ -183,9 +183,9 @@ CLOUD_MAP = { | ||||
|             "category": "网络", | ||||
|             "items": ["弹性负载均衡ELB", "虚拟私有云VPC", "子网"], | ||||
|             "map": { | ||||
|                 "弹性负载均衡ELB": "templates/huawei_elb.json", | ||||
|                 "虚拟私有云VPC": "templates/huawei_vpc.json", | ||||
|                 "子网": "templates/huawei_subnet.json", | ||||
|                 "弹性负载均衡ELB": {"template": "templates/huawei_elb.json", "mapping": "loadbalancer"}, | ||||
|                 "虚拟私有云VPC": {"template": "templates/huawei_vpc.json", "mapping": "vpc"}, | ||||
|                 "子网": {"template": "templates/huawei_subnet.json", "mapping": "vswitch"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "弹性负载均衡ELB": "huawei.elb", | ||||
| @@ -197,8 +197,8 @@ CLOUD_MAP = { | ||||
|             "category": "存储", | ||||
|             "items": ["云硬盘EVS", "对象存储OBS"], | ||||
|             "map": { | ||||
|                 "云硬盘EVS": "templates/huawei_evs.json", | ||||
|                 "对象存储OBS": "templates/huawei_obs.json", | ||||
|                 "云硬盘EVS": {"template": "templates/huawei_evs.json", "mapping": "evs"}, | ||||
|                 "对象存储OBS": {"template": "templates/huawei_obs.json", "mapping": "objectStorage"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云硬盘EVS": "huawei.evs", | ||||
| @@ -209,8 +209,8 @@ CLOUD_MAP = { | ||||
|             "category": "数据库", | ||||
|             "items": ["云数据库RDS MySQL", "云数据库RDS PostgreSQL"], | ||||
|             "map": { | ||||
|                 "云数据库RDS MySQL": "templates/huawei_rds_mysql.json", | ||||
|                 "云数据库RDSPostgreSQL": "templates/huaweirds_postgre.json", | ||||
|                 "云数据库RDS MySQL": {"template": "templates/huawei_rds_mysql.json", "mapping": "mysql"}, | ||||
|                 "云数据库RDS PostgreSQL": {"template": "templates/huawei_rds_postgre.json", "mapping": "postgresql"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云数据库RDS MySQL": "huawei.rds_mysql", | ||||
| @@ -221,7 +221,7 @@ CLOUD_MAP = { | ||||
|             "category": "应用中间件", | ||||
|             "items": ["分布式缓存Redis"], | ||||
|             "map": { | ||||
|                 "分布式缓存Redis": "templates/huawei_dcs.json", | ||||
|                 "分布式缓存Redis": {"template": "templates/huawei_dcs.json", "mapping": "redis"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "分布式缓存Redis": "huawei.dcs", | ||||
| @@ -233,7 +233,7 @@ CLOUD_MAP = { | ||||
|             "category": "计算", | ||||
|             "items": ["云服务器 EC2"], | ||||
|             "map": { | ||||
|                 "云服务器 EC2": "templates/aws_ec2.json", | ||||
|                 "云服务器 EC2": {"template": "templates/aws_ec2.json", "mapping": "ecs"}, | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "云服务器 EC2": "aws.ec2", | ||||
| @@ -283,7 +283,7 @@ CLOUD_MAP = { | ||||
|             "items": ["数据存储", "数据存储集群"], | ||||
|             "map": { | ||||
|                 "数据存储": "templates/vsphere_datastore.json", | ||||
|                 "数据存储集群": "templates/vsphere.storage_pod.json", | ||||
|                 "数据存储集群": "templates/vsphere_storage_pod.json", | ||||
|             }, | ||||
|             "collect_key_map": { | ||||
|                 "数据存储": "vsphere.datastore", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user