Esempio n. 1
0
    def run(self):
        try:
            self.auth()
        except AssertionError:
            return 0

        option = self.filter()

        _opertor = Operation_logs(username=request_header.current_user(
            self.request),
                                  operation_msg='发布任务')
        _opertor.save()

        _obc = Host_release(host=option['host'],
                            release_type=option['type'],
                            release_status=False,
                            release_cmd=option['cmd'])
        _obc.save()

        command = 'python %s "%s"' % (settings.PROCESS_TASK_RELEASE, option)

        subprocess.Popen(command, shell=True)

        task_id = Host_release.objects.filter(host=option['host']).filter(
            release_status=0).first()
        return task_id.id
Esempio n. 2
0
    def remove(self, name):
        is_have = Manager_persion.objects.filter(persion=name).first()

        if is_have:
            is_have.delete()
            logger_info.info('用户:%s 删除联系人:%s' %
                             (request_header.current_user(self.request), name))
            Operation_logs(username=request_header.current_user(self.request),
                           operation_msg="删除联系人:%s" % name).save()
            return True
        return False
Esempio n. 3
0
 def add(self, name, phone):
     is_have = Manager_persion.objects.filter(persion=name).first()
     if not is_have:
         _save = Manager_persion(persion=name, phone=phone)
         _save.save()
         logger_info.info('用户:%s 添加联系人:%s' %
                          (request_header.current_user(self.request), name))
         Operation_logs(username=request_header.current_user(self.request),
                        operation_msg="添加联系人:%s" % name).save()
         return True
     return False
Esempio n. 4
0
 def remove(self, name):
     '''
         删除主机群组,filter出来进行删除
     '''
     result = Group.objects.filter(name=name).first()
     if result:
         result.delete()
         logger_info.info('用户:%s 删除主机组:%s' %
                          (request_header.current_user(self.request), name))
         Operation_logs(username=request_header.current_user(self.request),
                        operation_msg="删除主机组:%s" % name).save()
         return True
     return False
Esempio n. 5
0
 def update(self, source_name=None, new_name=None):
     '''
         修改主机群组名称,不推荐使用update方法,直接filter去过滤查询到的主机群组进行更新
     '''
     update_group = Group.objects.filter(name=source_name).first()
     if update_group:
         update_group.name = new_name
         update_group.save()
         logger_info.info(
             '用户:%s 修改主机组:%s' %
             (request_header.current_user(self.request), source_name))
         Operation_logs(username=request_header.current_user(self.request),
                        operation_msg="修改主机组:%s" % source_name).save()
         return True
     return False
Esempio n. 6
0
 def update(self, old_persion, new_persion=None, new_phone=None):
     is_have = Manager_persion.objects.filter(persion=old_persion).first()
     if is_have:
         if new_persion:
             is_have.persion = new_persion
         if new_phone:
             is_have.phone = new_phone
         is_have.save()
         logger_info.info(
             '用户:%s 修改联系人:%s' %
             (request_header.current_user(self.request), old_persion))
         Operation_logs(username=request_header.current_user(self.request),
                        operation_msg="修改联系人:%s" % old_persion).save()
         return True
     return False
Esempio n. 7
0
    def add(self, name):
        ''' 
            多值添加,添加前会去判断当前是否存在该主机群组,如果不存在则添加
        '''

        is_null = Group.objects.filter(name=name).first()

        if not is_null:
            handler = Group(name=name)
            handler.save()
            logger_info.info('用户:%s 添加主机组:%s' %
                             (request_header.current_user(self.request), name))
            Operation_logs(username=request_header.current_user(self.request),
                           operation_msg="添加主机组:%s" % name).save()
            return True
        return False
Esempio n. 8
0
 def remove(self, hostname):
     '''
         删除主机,删除不存在主外键关系,自动解除。
     '''
     asset = Host.objects.filter(host_name=hostname).first()
     if asset:
         asset.delete()
         logger_info.info(
             '用户:%s 删除主机:%s' %
             (request_header.current_user(self.request), hostname))
         Operation_logs(username=request_header.current_user(self.request),
                        operation_msg="删除主机:%s" % hostname).save()
         _mongo = MongoBase()
         _mongo.remove(asset.ip_address)
         return True
     return False
Esempio n. 9
0
    def update(self,
               old_host=None,
               host=None,
               ip=None,
               running=None,
               persion=None,
               group=None,
               *,
               option=True):

        if option:
            _instance = Host.objects.filter(host_name=old_host).first()

            if _instance:
                old_ip = _instance.ip_address
                _persion = Persions(self.request)
                _group = Groups(self.request)
                res_group = Group.objects.filter(name=group)
                res_persion = Manager_persion.objects.filter(
                    persion=persion).first()
                _instance.host_name = host
                _instance.ip_address = ip
                _instance.manager_persion = res_persion
                _instance.group_name.set(res_group)
                _instance.save()
                _mongo = MongoBase()
                _mongo.update(old_ip, ip)
                if not running:
                    logger_info.info(
                        '用户:%s 修改主机:%s' %
                        (request_header.current_user(self.request), old_host))
                    Operation_logs(username=request_header.current_user(
                        self.request),
                                   operation_msg="修改主机:%s" % old_host).save()
                return True
            return False
Esempio n. 10
0
    def add(self, name, ip, state=None, *, group, persion):
        '''
            添加主机,group必须存在,因为多对多原因,group必须是一个queryset对象
        '''

        _persion_instance = Manager_persion.objects.filter(
            persion=persion).first()
        is_have = Host.objects.filter(ip_address=ip).first()
        if not is_have:

            new_data = Host(host_name=name,
                            ip_address=ip,
                            running_state=0,
                            manager_persion=_persion_instance)
            new_data.save()
            _mongo = MongoBase()
            _mongo.add(ip)
            _group_instance = Group.objects.filter(name=group).first()
            logger_info.info('用户:%s 添加主机:%s' %
                             (request_header.current_user(self.request), name))
            Operation_logs(username=request_header.current_user(self.request),
                           operation_msg="添加主机:%s" % name).save()
            new_data.group_name.add(_group_instance)
            return True