Esempio n. 1
0
 def get(self, request, *args, **kwargs):
     PageSize = request.GET.get('pageSize') or 15
     Page = request.GET.get('page') or 1
     RegionId = request.GET.get('region') or 'cn-shenzhen'
     tagkey = request.GET.get('tagkey')
     tagvalue = request.GET.get('tagvalue')
     currAccount = request.GET.get('currAccount') or 'wbd'
     Tags = []
     if tagkey and tagvalue:
         Tags = [{
             'Key': tagkey,
             'Value': "" if tagkey == tagvalue else tagvalue
         }]
     response = {}
     cacheEcs = aliClound.setAccount(currAccount).getAliCloundEcsList(
         RegionId, PageSize, Page, Tags)
     if cacheEcs:
         data = CmdbJson().decode(cacheEcs)
         response['total'] = data.get('TotalCount')
         response['pageSize'] = PageSize
         response['ecslist'] = data.get('Instances').get('Instance')
         return JsonResponse(response, safe=False)
     else:
         return JsonResponse({'error': '获取ECS列表信息出错,请检查!'},
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 2
0
    def getAliCloundEcsAllStatus(self,RegionIds='cn-shenzhen'):
        """
        获取ECS统计列表
        """
        ecsData=cache.get('ecsData')
        if not ecsData:
            ecsData={"count": 0,
                    "runCount":0,
                    "expireWill":0}
            for user in settings.ALI_CLOUND_API_ACCOUNT:
                ecsList = self.setAccount(user).getAliCloundEcsList(PageSize=100)

                data=CmdbJson().decode(ecsList)
                ecsData['count']+=data.get('TotalCount')
                ecslist=data.get('Instances').get('Instance')
                for a in ecslist:
                    expiredtime=a.get('ExpiredTime')
                    invalidtime = datetime.strptime(expiredtime, '%Y-%m-%dT%H:%MZ')
                    diff_day = invalidtime - datetime.now()
                    if diff_day.days<=30:
                        ecsData['expireWill']+=1
                    if a.get('Status')=='Running':
                        ecsData['runCount']+=1
                cache.set('ecsData',ecsData)
        return ecsData
Esempio n. 3
0
 def get(self, request, *args, **kwargs):
     cacheRigions = cache.get('cacheRigions')
     if not cacheRigions:
         cacheRigions = aliClound.getAliCloundRegionsList()
         cache.set('cacheRigions', cacheRigions)
     if cacheRigions:
         data = CmdbJson().decode(cacheRigions)
         response = []
         # if 'Regions' in data:
         response = data.get('Regions').get('Region')
         return JsonResponse(response, safe=False)
     else:
         return JsonResponse({'error': '获取Rigion信息出错,请检查!'},
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 4
0
 def get(self, request, *args, **kwargs):
     serializer = GetAliCloundEcsMonitorDataListSerializer(data=request.GET)
     if serializer.is_valid():
         validdata = serializer.validated_data
         InstanceID = validdata.get('InstanceID')
         StartTime = (validdata.get('StartTime') -
                      timedelta(hours=8)).strftime("%Y-%m-%dT%H:%M:%SZ")
         EndTime = (validdata.get('EndTime') -
                    timedelta(hours=8)).strftime("%Y-%m-%dT%H:%M:%SZ")
         Period = validdata.get('Period')
         RegionId = validdata.get('region') or 'cn-shenzhen'
         currAccount = validdata.get('currAccount') or 'wbd'
         EcsData = aliClound.setAccount(
             currAccount).getAliCloundEcsMonitorDataList(
                 RegionId, InstanceID, StartTime, EndTime, Period)
         if EcsData:
             data = CmdbJson().decode(EcsData)
             return JsonResponse(data, safe=False)
         else:
             return JsonResponse({'error': '获取ECS监控数据信息出错,请检查!'},
                                 status=status.HTTP_400_BAD_REQUEST,
                                 safe=False)
     else:
         return JsonResponse(serializer.errors,
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 5
0
 def get(self, request, *args, **kwargs):
     DashboardData = aliClound.getAliCloundDashboardStatus()
     if DashboardData:
         data = CmdbJson().decode(DashboardData)
         return JsonResponse(data, safe=False)
     else:
         return JsonResponse({'error': '获取Dashboard信息出错,请检查!'},
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 6
0
 def getAliCloundCertificateStatusCount(self):
     alldata={}
     for k,v in settings.ALI_CLOUND_API_ACCOUNT.items():
         client=AcsClient(v.get('accesskey'),v.get('accesssecret'))
         req = DescribeCertificateStatusCountRequest()
         req.set_accept_format('json')
         try:
             data=CmdbJson().decode(client.do_action_with_exception(req))
             for s,m in data.items():
                 # logger.info(s)
                 if s in alldata:
                     alldata[s]=alldata[s]+m
                 else:
                     alldata[s]=m
         except Exception as e:
             logger.error(e)
             return False
     return alldata
Esempio n. 7
0
 def get(self, request, *args, **kwargs):
     status = request.GET.get('status') or ''
     CertificateLocation = aliClound.getAliCloundCertificateLocationList()
     if CertificateLocation:
         data = CmdbJson().decode(CertificateLocation)
         return JsonResponse(data, safe=False)
     else:
         return JsonResponse({'error': '获取Certificate Location信息出错,请检查!'},
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 8
0
 def getAliCloundAccountBalanceAll(self):
     """
     获取域名列表
     """
     alldata={}
     for k,v in settings.ALI_CLOUND_API_ACCOUNT.items():
         client=AcsClient(v.get('accesskey'),v.get('accesssecret'))
         req = QueryAccountBalanceRequest()
         req.set_accept_format('json')
         try:
             data=CmdbJson().decode(client.do_action_with_exception(req))
             if 'Data' in data:
                 alldata[v.get('name')]=data.get('Data')
         except Exception as e:
             logger.error(e)
             return False
     if len(alldata)==0:
         return False
     return alldata
Esempio n. 9
0
 def get(self, request, *args, **kwargs):
     RegionId = request.GET.get('region') or ''
     currAccount = request.GET.get('currAccount') or 'wbd'
     TagsList = aliClound.setAccount(currAccount).getAliCloundTagsList(
         RegionId)
     if TagsList:
         data = CmdbJson().decode(TagsList)
         return JsonResponse(data, safe=False)
     else:
         return JsonResponse({'error': '获取Tags信息出错,请检查!'},
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 10
0
def getCrontabLogsViewSet(request, *args, **kwargs):
    pageSize = request.GET.get('pageSize') or 15
    page = request.GET.get('page') or 1
    response = {}
    results = TaskResult.objects.all().order_by('pk')
    paginator = Paginator(results, pageSize)
    response['total'] = paginator.count
    try:
        mailTask = paginator.page(page)
    except PageNotAnInteger:
        mailTask = paginator.page(1)
    except EmptyPage:
        mailTask = paginator.page(paginator.num_pages)
    response['list'] = CmdbJson().encode(serialize("json", mailTask))
    return JsonResponse(response, safe=False)
Esempio n. 11
0
 def getAliCloundRdsAllStatus(self,RegionIds='cn-shenzhen'):
     """
     获取ECS统计列表
     """
     rdsData=cache.get('rdsData')
     if not rdsData:
         rdsData={"count": 0,
                 "runCount":0,
                 "expireWill":0}
         for user in settings.ALI_CLOUND_API_ACCOUNT:
             rdsList = self.setAccount(user).getAliCloundRdsList(PageSize=100)
             data=CmdbJson().decode(rdsList)
             rdsData['count']+=data.get('PageRecordCount')
             rdsinstance=data.get('Items').get('DBInstance')
             for a in rdsinstance:
                 expiredtime=a.get('ExpireTime')
                 invalidtime = datetime.strptime(expiredtime, '%Y-%m-%dT%H:%M:%SZ')
                 diff_day = invalidtime - datetime.now()
                 if diff_day.days<=30:
                     rdsData['expireWill']+=1
                 if a.get('DBInstanceStatus')=='Running':
                     rdsData['runCount']+=1
             cache.set('rdsData',rdsData)
     return rdsData
Esempio n. 12
0
 def get(self, request, *args, **kwargs):
     serializer = GetCerificateListSerializer(data=request.GET)
     if serializer.is_valid():
         certicateStatus = request.GET.get('status') or ''
         PageSize = request.GET.get('pageSize') or 15
         Page = request.GET.get('page') or 1
         currAccount = request.GET.get('currAccount') or 'wbd'
         CertificateList = aliClound.setAccount(
             currAccount).getAliCloundCertificateList(
                 certicateStatus, PageSize, Page)
         if CertificateList:
             data = CmdbJson().decode(CertificateList)
             return JsonResponse(data, safe=False)
         else:
             return JsonResponse({'error': '获取Rigion信息出错,请检查!'},
                                 status=status.HTTP_400_BAD_REQUEST,
                                 safe=False)
     else:
         logger.error(serializer.errors)
         return JsonResponse(serializer.errors,
                             status=status.HTTP_400_BAD_REQUEST,
                             safe=False)
Esempio n. 13
0
 def getAliCloundDomainList(self):
     """
     获取域名列表
     """
     alldata={}
     for k,v in settings.ALI_CLOUND_API_ACCOUNT.items():
         client=AcsClient(v.get('accesskey'),v.get('accesssecret'))
         req = QueryDomainListRequest()
         req.set_PageNum(1)
         req.set_PageSize(100)
         req.set_accept_format('json')
         try:
             data=CmdbJson().decode(client.do_action_with_exception(req))
             if 'Data' in alldata:
                 if type(alldata['Data']['Domain']) == list:
                     alldata['Data']['Domain'].extend(data['Data']['Domain'])
                     alldata['TotalItemNum']+=data['TotalItemNum']
             else:
                 alldata=data
         except Exception as e:
             logger.error(e)
             return False
     return alldata