Example #1
0
    def run(self, jobuuid, jobType, jobTarget, jobSubmitedby, jobScheduleAt,
            job_lastrun_at, job_if_daily, job_groupOrIP, userName):
        jobout = {}
        jobout['confComp_uuid'] = jobuuid
        jobout['confComp_type'] = jobType
        _jobTarget = self.getJobTargetIPList(jobType, jobTarget)
        jobout['confComp_target'] = _jobTarget
        jobout['confComp_submited_by'] = jobSubmitedby
        jobout['confComp_scheduled_at'] = jobScheduleAt
        jobout['confComp_lastrun_at'] = job_lastrun_at
        jobout['confComp_if_daily'] = job_if_daily
        jobout['confComp_groupOrIP'] = job_groupOrIP

        jobDetailOut = {}
        jobDetail_uuid = uuid.uuid1()
        jobDetailOut['confCompDetail_uuid'] = str(jobDetail_uuid)
        jobDetailOut['confCompDetail_scheduled_at'] = jobScheduleAt
        jobDetailOut['confCompDetail_status'] = 0
        jobDetailOut['confCompDetail_submited_by'] = jobSubmitedby
        jobDetailOut['confComp_uuid'] = jobuuid
        jobDetailOut['confCompDetail_target'] = _jobTarget
        jobDetailOut['confCompDetail_groupOrIP'] = job_groupOrIP
        jobDetailOut['confCompDetail_if_daily'] = job_if_daily
        jobDetailOut[
            'confCompDetail_detail'] = './configCompare_outline.do?confComptype=' + jobType + '&confCompDetail_uuid=' + str(
                jobDetail_uuid)
        jobout['confComp_detail'] = './configCompare_outline.do?confComptype=' + jobType + '&confCompDetail_uuid=' + str(
            jobDetail_uuid
        ) + '&confCompDetail_if_daily=' + job_if_daily + '&confCompRunResult_datetime=' + self.convertScheduledatDate(
            jobScheduleAt)
        try:
            mongoOps.db().confCompJobs.insert(jobout)
            mongoOps.db().confCompJobDetails.insert(jobDetailOut)
            if job_if_daily == '0' or job_if_daily == '2':
                tasks.configCompare_run_playbook.apply_async(
                    args=[
                        jobuuid,
                        str(jobDetail_uuid), _jobTarget,
                        jobType.lower() + 'cc',
                        self.convertScheduledatDate(jobScheduleAt),
                        job_if_daily, jobScheduleAt, userName
                    ],
                    queue='queue_configCompare_run_playbook')
        except Exception as e:
            raise e
            return "error"
        return True
Example #2
0
 def get(self):
     out = []
     result = mongoOps.db().logCatch.find()
     for res in result:
         out.append(res)
     print json.dumps(out)
     self.write(json.dumps(out))
     self.finish()
Example #3
0
    def get(self):
        curPage = self.get_argument('curPage')  #judge current page is which
        if curPage == 'outline':
            jobDetail_uuid = self.get_argument("jobDetail_uuid")
            healthJobsRunResult_datetime = self.get_argument(
                "healthJobsRunResult_datetime")
            if len(healthJobsRunResult_datetime
                   ) > 5 and jobDetail_uuid != None:
                out = []
                result = mongoOps.db().healthJobRunResult.find(
                    {
                        'jobDetail_uuid':
                        jobDetail_uuid,
                        'healthJobsRunResult_datetime':
                        healthJobsRunResult_datetime
                    }, {'_id': 0})
                for res in result:
                    out.append(res)
                self.write({'status': 1, 'msg': json.dumps(out)})
                self.finish()
            elif jobDetail_uuid != None:
                out = []
                #result=mongoOps.db().healthJobRunResult.find({'jobDetail_uuid':jobDetail_uuid},{'_id':0}).sort('healthJobsRunResult_datetime',pymongo.DESCENDING)
                result = mongoOps.db().healthJobRunResult.find(
                    {
                        'jobDetail_uuid': jobDetail_uuid
                    }, {
                        '_id': 0
                    }).sort('healthJobsRunResult_datetime', pymongo.ASCENDING)
                for res in result:
                    out.append(res)
                self.write({'status': 1, 'msg': json.dumps(out)})
                self.finish()
                # find everyday job

        if curPage == 'summary':
            healthJobsRunResult_uuid = self.get_argument(
                'healthJobsRunResult_uuid')
            if healthJobsRunResult_uuid != None:
                out = {}
                result = mongoOps.db().healthJobRunResult.find_one(
                    {'healthJobsRunResult_uuid': healthJobsRunResult_uuid},
                    {'_id': 0})
                self.write({'status': 1, 'msg': result})
                self.finish()
Example #4
0
 def checkUser(self, userName):
     if userName == None:
         raise ValueError('参数不能为空')
     result = mongoOps.db().login.find_one({'name': userName})
     if result:
         self.write({'status': 1, 'msg': 1})
     else:
         self.write({'status': 1, 'msg': 0})
     self.finish()
Example #5
0
 def getAllPlayBooks(self):
     result = mongoOps.db().playbooks.find({}, {
         '_id': 0
     }).sort('created_at', pymongo.DESCENDING)  #降序
     out = []
     for playbook in result:
         out.append(playbook)
     self.write(json.dumps(out))
     self.finish()
Example #6
0
 def get(self):
     cursor = mongoOps.db().healthJobs.find({}, {
         '_id': 0
     }).sort('job_scheduled_at', pymongo.DESCENDING)
     out = []
     for res in cursor:
         out.append(res)
     self.write(json.dumps(out))
     self.finish()
Example #7
0
 def modifyServer(self,server):
     result=mongoOps.db().servers.update({'uuid':server['uuid']},{'$set':{'userid':server['userid'],\
     'password':server['password'],'ip':server['ip'],'product':server['product']}})
     if result['n']==1: 
         #tasks.updateServerInfo.delay(server)
         tasks.updateServerInfo.apply_async(args=[server,'modifyIP'],queue='default')
         self.write({'status':1,'message':'修改成功'})
     else: 
         self.write({'status':0,'message':'修改失败'})
     self.finish()
Example #8
0
    def get(self):
        out = []
        ip = self.get_argument('ip')
        result = mongoOps.db().confCompRunResult.find(
            {
                'confCompJobRunResult_ip': ip,
                'confCompJobRunResult_result': 0
            }, {
                '_id': 0,
                'confCompJobRunResult_result': 0,
                'confCompDetail_uuid': 0,
                'confComp_uuid': 0,
                'confCompJobRunResult_detail': 0,
                'confCompJobRunResult_uuid': 0
            })
        for res in result:
            if res.has_key('confCompRunResult_errmsg'):
                continue
            elif res.has_key('confCompJobRunResult_retJson'):
                out.append(res)
            else:
                pass
        '''

          for res in result:
              retJsonstr=res['confCompJobRunResult_retJson']
              retJson=json.loads(retJsonstr)
              dic={}
              dic['product']=retJson['product']
              dic['datetime']=res['confCompJobRunResult_datetime']
              datas=retJson['data']
              for arr in datas:
          '''
        '''
          for res in result:
              retJsonstr=res['confCompJobRunResult_retJson'] 
              retJson=json.loads(retJsonstr)
              dic={}
              #array=[]
              dic['ip']=ip
              dic['product']=retJson['product']
              dic['datetime']=res['confCompJobRunResult_datetime']
              innerArray = retJson['data']
              for arr in innerArray:
                  inner={}
                  inner['name']=arr['name']
                  inner['version']=arr['version']
                  inner['type']=arr['type']
              dic['proInfo']=inner
              out.append(dic)  
          '''
        retValue = json.dumps(out)
        self.write({'status': 1, 'msg': retValue})
        self.finish()
Example #9
0
 def getOneServer(self, uuid):
     result = mongoOps.db().servers.find_one({"uuid": uuid}, {'_id': 0})
     if result is None:
         self.write({
             "status": "info",
             "message": "您找的" + str(uuid) + "不存在!"
         })
         self.finish()
     else:
         self.write(json.dumps(result))
         self.finish()
Example #10
0
 def getOneTask(self, uuid):
     result = mongoOps.db().tasks.find_one({"uuid": uuid}, {'_id': 0})
     if result is None:
         self.write({
             "status": "info",
             "message": "您找的" + str(uuid) + "不存在!"
         })
         self.finish()
     else:
         self.write(str(result).decode('utf8'))
         self.finish()
Example #11
0
 def importExcel(self,lists):
     out=lists #定义已经存在的IP,无法通过excel导入
     for server in lists:
         try:
            result=mongoOps.db().servers.insert(server)
         except pymongo.errors.DuplicateKeyError,e1:
            out.remove(server)
            continue
         except Exception ,e :
             self.write({'status':0,'message':'出错,出错原因为:'+str(e)})
             self.finish()
Example #12
0
 def getJobDetailList(self,jobuuid):
     out=[]  #change to array to printout
     res=mongoOps.db().confCompJobDetails.find({'confComp_uuid':jobuuid},{'_id':0})
     for jobDetail in res:
         out.append(jobDetail)
     if len(out) == 0:
        self.write({'status':2,'msg':'no data found!'})
     elif len(out) > 0 :
        self.write({'status':1,'msg':out})
     else:
        self.write({'status':0,'msg':'faiulre'})
     self.finish()
Example #13
0
 def getOneServerByIp(self, ipaddr):
     ips = ipaddr.encode('gbk')
     result = mongoOps.db().servers.find_one({"IP": ips}, {'_id': 0})
     if result is None:
         self.write({
             "status": "info",
             "message": "您找的" + str(ipaddr) + "不存在!"
         })
         self.finish()
     else:
         self.write(json.dumps(result))
         self.finish()
Example #14
0
 def get(self):
     uuid = self.get_argument("healthJobsRunResult_uuid", 'withoutuuid')
     try:
         result = mongoOps.db().healthJobRunResult.find_one(
             {'healthJobsRunResult_uuid': uuid}, {'_id': 0})
         if result:
             self.write({'errmsg': result['healthJobsRunResult_errmsg']})
         else:
             self.write({'errmsg': '没有找到本次任务的uuid!'})
     except KeyError as err:
         self.write({'errmsg': '错误描述未产生!'})
     self.finish()
Example #15
0
      def IPCheck(self,ip):
          try:
             result=mongoOps.db().servers.find({"ip":ip})
	     length=result.count()
             if length<=0:
                self.write({"status":0,"message":"不存在!"})
                self.finish()
             else:
                self.write({"status":1,"message":"已经存在!"})
	        self.finish()
          except Exception ,e :
             self.write({"status":0,"message":"调用mongodb IPCheck出错,错误描述为:"+str(e)})
             self.finish()
Example #16
0
 def addLog(self, body):
     proj_log.log().info(self.request.body)
     body = json.loads(self.request.body)
     ip = body['ip']
     product = body['product']
     version = body['version']
     task_timestamp = body['task_timestamp']
     instance = body['instance']
     job = {}
     job['ip'] = ip
     job['product'] = product
     job['version'] = version
     job['task_timestamp'] = task_timestamp
     job['instance'] = instance
     uuid1 = str(uuid.uuid1())
     job['_id'] = uuid1
     mongoOps.db().logCatch.insert(job)
     tasks.logCatch_run_playbook.apply_async(
         args=[uuid1, ip, product, instance, task_timestamp],
         queue='queue_logCatch_run_playbook')
     self.write({'status': 1, 'msg': 'success'})
     self.finish()
Example #17
0
 def getJobTargetIPList(self, jobType, jobTarget):
     if jobTarget == 'All':
         result = mongoOps.db().healthCheckGroups.find_one(
             {'group': jobType.lower()}, {
                 '_id': 0,
                 'group': 0
             })
         if result:
             out = ''
             for res in result['iplist']:
                 out += res + ','
             return out
     else:
         return jobTarget
Example #18
0
 def post(self):
     body = json.loads(self.request.body)
     _id = body['_id']
     res = mongoOps.db().logCatch.find_one({'_id': _id})
     location = res['loc']
     buf_size = 1000
     self.set_header('Content-Type', 'application/ostet-stream')  #很重要
     with open(location, 'rb') as f:
         while True:
             data = f.read(buf_size)
             if not data:
                 break
             self.write(data)
     self.finish()
Example #19
0
 def post(self):
     body=json.loads(self.request.body)
     runResult=body['healthJobsRunResult_uuid']
     res=mongoOps.db().healthJobRunResult.find_one({'healthJobsRunResult_uuid':runResult},{'_id':0})
     if body['product'] == 'os':
        summary_location=res['healthJobsRunResult_os_summary_loc']
     else:
        summary_location=res['healthJobsRunResult_summary_loc']
     buf_size=1000
     with open(summary_location,'rb') as f:
          while True:
                data=f.read(buf_size)
                if not data:
                   break
                self.write(data)
     self.finish()
Example #20
0
 def getAPlayBookTasks(self, uuid):
     result = mongoOps.db().tasks.find({
         "playbook_uuid": uuid
     }, {
         '_id': 0
     }).sort('created_at', pymongo.ASCENDING)  #按照时间升序
     if result is None:
         self.write({
             "status": "info",
             "message": "您找的playbook" + str(uuid) + "不存在!"
         })
         self.finish()
     else:
         out = []
         for task in result:
             out.append(task)
         self.write(json.dumps(out))
         self.finish()
Example #21
0
    def post(self):
        playbookstatusbody = base64.b64decode(self.request.body)
        body = json.loads(playbookstatusbody)
        out = []
        vers = ''
        for uuid in body:
            inner_data = {}
            result = mongoOps.db().playbooks.find_one(
                {'uuid': uuid['playbookuuid']}, {'_id': 0})
            status = result['status']
            inner_data[uuid['playbookuuid']] = status
            out.append(inner_data)
        vers = json.dumps(out)

        if vers != '':
            self.write({'status': 1, 'msg': vers})
        else:
            self.write({'status': 0, 'msg': 'failed'})
        self.finish()
Example #22
0
 def addUser(self, name, password, role, email, product):
     user = {
         'name': 'default',
         'password': '******',
         'role': 0,
         'email': '*****@*****.**',
         'product': []
     }
     user['name'] = name
     user['password'] = password
     user['role'] = role
     user['email'] = email
     user['product'] = product
     result = mongoOps.db().login.insert(user)
     if result:
         self.write({'status': 1, 'msg': '添加用户成功'})
     else:
         self.write({'status': 0, 'msg': '添加用户失败'})
     self.finish()
Example #23
0
 def createFinalJson(self, ip, product, datetime, instance, db):
     result = mongoOps.db().confCompRunResult.find(
         {
             'confCompJobRunResult_ip': ip,
             'confCompJobRunResult_datetime': datetime,
             'confCompJobRunResult_result': 0
         }, {'_id': 0})  #首先找出所有的ip 和datetime 在同一个时间点的数据
     out = []
     if result:
         for res in result:  # 在找出这个IP和时间点不同的产品和版本
             retJsonStr = res['confCompJobRunResult_retJson']
             retJson = json.loads(retJsonStr)
             if product == retJson['product']:  # 找到一类产品 接着找产品的实例
                 for data in retJson['data']:
                     if db == '-' and data['type'] == 'database':
                         continue
                     else:
                         dic = {}
                         dic['confCompJobRunResult_ip'] = ip
                         dic['confCompJobRunResult_datetime'] = datetime
                         dic['confCompJobRunResult_retJson'] = data
                         out.append(dic)
     return out
Example #24
0
 def deleteJob(self, job_param):
     try:
         userName = job_param['userName']
         cron = CronTab(user=userName)
         job_uuid = job_param['job_uuid']
         jobuuids = job_uuid.split(',')
         for jobuuid in jobuuids:  #delete more
             mongoOps.db().healthJobs.remove({'job_uuid': jobuuid})
             mongoOps.db().healthJobDetails.remove({'job_uuid': jobuuid})
             mongoOps.db().healthJobRunResult.remove({'job_uuid': jobuuid})
             jobs = cron.find_command(
                 jobuuid
             )  #findajob which to be deleted if run immediately not do
             for job in jobs:
                 cron.remove(job)
                 cron.write(user=userName)
         self.write({'status': 1, 'msg': 'deleted '})
     except Exception as e:
         self.write({'status': 0, 'msg': str(e)})
     self.finish()
Example #25
0
 def post(self):
     result = mongoOps.db().confCompRunResult.distinct(
         'confCompJobRunResult_ip')
     vers = json.dumps(result)
     self.write({'status': 1, 'msg': vers})
     self.finish()
Example #26
0
def findAllGroups():
    result = mongoOps.db().healthCheckGroups.find({}, {'_id': 0, 'iplist': 0})
    for res in result:
        print res
Example #27
0
 def get(self):
     confCompDetail_uuid=self.get_argument('confCompDetail_uuid')
     cursor = mongoOps.db().confCompJobDetails.find_one({'confCompDetail_uuid':confCompDetail_uuid},{'_id':0})
     self.write(cursor)
     self.finish()