@@ -44,15 +44,31 @@ def get_response(self):
4444 获取返回值
4545 :return:
4646 """
47+
48+ response_data = {}
49+ err = None
4750 request = self .set_request ()
4851 try :
49-
5052 response = self .client .do_action_with_exception (request )
5153 response_data = json .loads (str (response , encoding = "utf8" ))
52- return response_data
5354 except Exception as e :
54- # print(e)
55- return e
55+ err = e
56+ return response_data , err
57+
58+ # def get_response(self):
59+ # """
60+ # 获取返回值
61+ # :return:
62+ # """
63+ # request = self.set_request()
64+ # try:
65+ #
66+ # response = self.client.do_action_with_exception(request)
67+ # response_data = json.loads(str(response, encoding="utf8"))
68+ # return response_data
69+ # except Exception as e:
70+ # # print(e)
71+ # return e
5672
5773 # print(response_data)
5874
@@ -61,25 +77,24 @@ def get_server_count(self):
6177 获取机器总数
6278 :return:
6379 """
64-
65- try :
66- response = self .get_response ()
67- count = response ['TotalCount' ]
68- return count
69- except TypeError as e :
70- print (e )
80+ response_data , err = self .get_response ()
81+ if err != None :
82+ ins_log .read_log ('error' , err )
7183 return False
84+ count = response_data ['TotalCount' ]
85+ return count
7286
7387 def get_server_info (self ):
7488 """
7589 获取服务器信息
7690 :return:
7791 """
78- response = self .get_response ()
79- if not response :
92+ response_data , err = self .get_response ()
93+ if err != None :
94+ ins_log .read_log ('error' , err )
8095 return False
8196 try :
82- ret = response ['Instances' ]['Instance' ]
97+ ret = response_data ['Instances' ]['Instance' ]
8398 except (KeyError , TypeError ):
8499 ins_log .read_log ('error' , '可能是因为SecretID/SecretKey配置错误,没法拿到配置,请检查下配置' )
85100 # print('[Error]: 可能是因为SecretID/SecretKey配置错误,没法拿到配置,请检查下配置')
@@ -90,14 +105,14 @@ def get_server_info(self):
90105 try :
91106 asset_data ['hostname' ] = i .get ('InstanceName' )
92107 except (KeyError , TypeError ):
93- asset_data ['hostname' ] = i .get ('InstanceId' ) #取不到给instance_id
108+ asset_data ['hostname' ] = i .get ('InstanceId' ) # 取不到给instance_id
94109 asset_data ['region' ] = i .get ('ZoneId' )
95110 asset_data ['instance_id' ] = i .get ('InstanceId' )
96111 asset_data ['instance_type' ] = i .get ('InstanceType' )
97112 asset_data ['instance_state' ] = i .get ('Status' )
98113 asset_data ['cpu_cores' ] = i .get ('Cpu' )
99114 asset_data ['memory' ] = M2human (i .get ('Memory' ))
100- # 私钥IP
115+ # 内网IP
101116 try :
102117
103118 asset_data ['private_ip' ] = i ['VpcAttributes' ]['PrivateIpAddress' ]['IpAddress' ][0 ]
@@ -110,7 +125,7 @@ def get_server_info(self):
110125 except (KeyError , IndexError ):
111126 asset_data ['public_ip' ] = i ['EipAddress' ]['IpAddress' ]
112127 except Exception :
113- asset_data ['public_ip' ] = 'Null'
128+ asset_data ['public_ip' ] = asset_data [ 'private_ip' ]
114129
115130 asset_data ['os_type' ] = i .get ('OSType' )
116131 asset_data ['os_name' ] = i .get ('OSName' )
@@ -128,20 +143,20 @@ def sync_cmdb(self):
128143 if not server_list :
129144 ins_log .read_log ('info' , 'Not fount server info' )
130145 return False
131- with DBContext ('r ' ) as session :
146+ with DBContext ('w ' ) as session :
132147 for server in server_list :
133- ip = server .get ('public_ip' , server . get ( 'private_ip' ) )
148+ ip = server .get ('public_ip' )
134149 instance_id = server .get ('instance_id' , 'Null' )
135150 hostname = server .get ('hostname' , instance_id )
136- if hostname == '' :
151+ if hostname == '' or not hostname :
137152 hostname = instance_id
138153 region = server .get ('region' , 'Null' )
139154 instance_type = server .get ('instance_type' , 'Null' )
140155 instance_state = server .get ('instance_state' , 'Null' )
141156 cpu = server .get ('cpu' , 'Null' )
142157 cpu_cores = server .get ('cpu_cores' , 'Null' )
143158 memory = server .get ('memory' , 'Null' )
144- disk = server .get ('disk' , 'Null' ) # 阿里云接口里面没有disk信息
159+ disk = server .get ('disk' , 'Null' ) # 阿里云接口里面好像没有disk信息
145160 os_type = server .get ('os_type' , 'Null' )
146161 os_name = server .get ('os_name' , 'Null' )
147162 os_kernel = server .get ('os_kernel' , 'Null' )
@@ -213,8 +228,7 @@ def index(self):
213228 self .page_size = count
214229 else :
215230 self .page_size = c + 100
216-
217- # print('开始同步第{}--第{}台机器'.format(self.page_number, self.page_size))
231+ ins_log .read_log ('info' , '开始同步第{}--第{}台机器' .format (self .page_number , self .page_size ))
218232 self .sync_cmdb ()
219233
220234
@@ -254,7 +268,7 @@ def main():
254268 default_admin_user = config .get ('default_admin_user' )
255269
256270 obj = EcsAPi (access_id , access_key , region , default_admin_user )
257- obj .sync_cmdb ()
271+ obj .index ()
258272
259273
260274if __name__ == '__main__' :
0 commit comments