def expired_aliyun_ecs(): ExpiredAliyunECS.objects.all().delete() from deveops.tools.aliyun import ecs API = ecs.AliyunECSTool() for page in range(1, API.pagecount + 1): results = API.get_instances(page) for result in results: dict_models = API.get_aliyun_expired_models(result) if dict_models.get('expired') < settings.ALIYUN_EXPIREDTIME: obj_maker(ExpiredAliyunECS, dict_models)
def aliyun2cmdb(): from deveops.tools.aliyun import ecs API = ecs.AliyunECSTool() for page in range(1,API.pagecount+1): results = API.get_instances(page) for result in results: dict_models = API.get_aliyun_models(result) host_query = Host.objects.filter(detail__aliyun_id=dict_models['detail']['aliyun_id'], connect_ip=dict_models['connect_ip']) if not host_query.exists(): host_maker(dict_models)
def cmdb2aliyun(): from deveops.tools.aliyun import ecs from django.db.models import Q API = ecs.AliyunECSTool() queryset = Host.objects.filter(~Q(detail__aliyun_id='')) for host in queryset: results = API.get_instance_status(host.detail.aliyun_id) print( results.get('InstanceFullStatusSet').get('InstanceFullStatusType') [0]) status = API.get_aliyun_instance_status(results) if status is None: host.delete() elif host.status == settings.STATUS_HOST_PAUSE: continue else: host.status = status
def cmdb2aliyun(): from deveops.tools.aliyun import ecs from django.db.models import Q API = ecs.AliyunECSTool() queryset = Host.objects.filter(~Q(detail__aliyun_id='')) for host in queryset: status_results = API.request_get_instance_status(host.detail.aliyun_id) status = API.get_aliyun_instance_status(status_results) if status == 'delete': host.delete() else: expired_results = API.request_get_instance(host.detail.aliyun_id) expired = API.get_aliyun_expired_models(expired_results) if expired.get('expired') < settings.ALIYUN_OVERDUETIME: host.delete() else: host.status = status
def get(self, request, *args, **kwargs): from deveops.tools.aliyun import ecs, cms API = ecs.AliyunECSTool() API = cms.AliyunCMSTool() from deveops.utils import vmware obj = self.get_object() data = None if obj.detail.aliyun_id: data = API.get_instance(obj.detail.aliyun_id) if data: data['type'] = 'aliyun' else: return Response(data, status=status.HTTP_406_NOT_ACCEPTABLE) return Response(data, status=status.HTTP_200_OK) elif obj.detail.vmware_id: data = vmware.fetch_Instance(obj.detail.vmware_id) if data: data['type'] = 'vmware' else: return Response(data, status=status.HTTP_406_NOT_ACCEPTABLE) return Response(data, status=status.HTTP_200_OK) else: return Response(data, status=status.HTTP_406_NOT_ACCEPTABLE)