def manager_ecs(token,url_project,sub_project_id,smn_token, smn_project, smn_project_id): '''清理一个sub_project_id下的ECS资源+短信通知''' ecs_list = search_list.search_ecs(token, url_project, sub_project_id) SHUTOFF_list = {'id_dict':[],'ecs_name':[]} for ecs in ecs_list: ecs_id = ecs["id"] create_stamp = time.mktime(time.strptime(ecs['created'], format("%Y-%m-%dT%H:%M:%SZ"))) + 28800 # 将时间字符串转按指定格式换为元组<class 'time.struct_time'> SHUTOFF_time = create_stamp + settings.off_time['ecs'] * 3600 DELETE_time = create_stamp + settings.del_time['ecs'] * 3600 ecs_status = ecs['status'] user_id = ecs['user_id'] ecs_name = ecs['name'] if user_id in settings.userinfo: pass else: settings.userinfo[user_id] = {'phone': settings.all_phone, 'name': settings.iam['domainname']} smn_shut_info = '%s 您好,您的主机:%s 被你累的Down了, 当前自动关机时间为创建后 %d小时 当前设置的自焚时间为创建后 %d小时。有重要数据请尽快做镜像备份or需长期使用请将主机名和>带宽名称加入 勿删 二字 然后再开机,将不会被关机和删除,否则您主机:%s 将于%s被删除' % (settings.userinfo[user_id]['name'], ecs_name, settings.off_time['ecs'],settings.del_time['ecs'],ecs_name,time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(DELETE_time))) smn_del_info = '%s 您好,您的主机:%s 正在自焚....当前设置的自焚时间为创建后 %d小时。' % (settings.userinfo[user_id]['name'], ecs_name, settings.del_time['ecs']) if ecs_id not in protected.ECS and time.time() > SHUTOFF_time and ecs_status != "SHUTOFF" and settings.nodel_ecs_name not in ecs_name: SHUTOFF_list['id_dict'].append({"id":ecs_id}) SHUTOFF_list['ecs_name'].append(ecs_name) smn.smn(smn_token, smn_project, smn_project_id, settings.userinfo[user_id]['phone'], smn_shut_info) if ecs_id not in protected.ECS and time.time() > DELETE_time and settings.nodel_ecs_name not in ecs_name: delete.del_ecs(token, url_project, sub_project_id, ecs_id, ecs_name) smn.smn(smn_token, smn_project, smn_project_id, settings.userinfo[user_id]['phone'], smn_del_info) if len(SHUTOFF_list['id_dict']) >0: poweroff.poweoff_ecs(token, url_project, sub_project_id, SHUTOFF_list)
def manager_elb(token, url_project, sub_project_id, del_elb_iplist, smn_token, smn_project, smn_project_id): #,del_elb_iplist '''删除经典负载均衡器里面的公网IP和负载均衡''' if len(del_elb_iplist) > 0: elb_list = search_list.search_elb_list(token, url_project, sub_project_id) for elb_ip in del_elb_iplist: for elb in elb_list: if elb_ip == elb['vip_address']: listeners = search_list.search_elb_listeners( token, url_project, sub_project_id, elb['id']) for listener in listeners: if listener['member_number'] > 0: backend_ecs_list = search_list.search_elb_listen_backend_ecs_list( token, url_project, sub_project_id, listener['id']) for backend_ecs in backend_ecs_list: delete.remove_elb_listener_ecs( token, url_project, sub_project_id, listener['id'], backend_ecs) time.sleep(3) smn_del_ELBip_info = '%s 您好 您的 经典型ELB IP:%s 已经化蝶飞。当前设置自动化蝶时间为按需IP创建后 %d小时' % ( settings.iam['domainname'], elb_ip, settings.del_time['publicip']) del_resource = delete.del_elb(token, url_project, sub_project_id, elb['id'], elb['vip_address']) if del_resource: smn.smn(smn_token, smn_project, smn_project_id, settings.all_phone, smn_del_ELBip_info)