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
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
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
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
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
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
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
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
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
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