def post(self, request): form, error = JsonParser( Argument('o_id', type=int, help='缺少必要参数'), Argument('type', filter=lambda x: x in dict(Config.TYPES), help='缺少必要参数'), Argument('envs', type=list, filter=lambda x: len(x), help='请选择环境'), Argument('key', help='请输入Key'), Argument('is_public', type=bool, help='缺少必要参数'), Argument('value', type=str, default=''), Argument('desc', required=False)).parse(request.body) if error is None: form.value = form.value.strip() form.updated_at = human_datetime() form.updated_by = request.user envs = form.pop('envs') for env_id in envs: cf = Config.objects.filter(o_id=form.o_id, type=form.type, env_id=env_id, key=form.key).first() if cf: raise Exception(f'{cf.env.name} 中已存在该Key') Config.objects.create(env_id=env_id, **form) ConfigHistory.objects.create(action='1', env_id=env_id, **form) return json_response(error=error)
def post(self, request): form, error = JsonParser( Argument('host_id', type=int, help='参数错误'), Argument('instance_id', required=False), Argument('os_name', help='请输入操作系统'), Argument('cpu', type=int, help='请输入CPU核心数'), Argument('memory', type=float, help='请输入内存大小'), Argument('disk', type=list, filter=lambda x: len(x), help='请添加磁盘'), Argument('private_ip_address', type=list, filter=lambda x: len(x), help='请添加内网IP'), Argument('public_ip_address', type=list, required=False), Argument('instance_charge_type', default='Other'), Argument('internet_charge_type', default='Other'), Argument('created_time', required=False), Argument('expired_time', required=False)).parse(request.body) if error is None: host = Host.objects.filter(pk=form.host_id).first() form.disk = json.dumps(form.disk) form.public_ip_address = json.dumps( form.public_ip_address) if form.public_ip_address else '[]' form.private_ip_address = json.dumps(form.private_ip_address) form.updated_at = human_datetime() form.os_type = check_os_type(form.os_name) if hasattr(host, 'hostextend'): extend = host.hostextend extend.update_by_dict(form) else: extend = HostExtend.objects.create(host=host, **form) return json_response(extend.to_view()) return json_response(error=error)
def post(self, request): form, error = JsonParser(Argument('id', type=int, required=False), Argument('name', help='请输入模版名称'), Argument('type', help='请选择模版类型'), Argument('body', help='请输入模版内容'), Argument('desc', required=False)).parse(request.body) if error is None: if form.id: form.updated_at = human_datetime() form.updated_by = request.user ExecTemplate.objects.filter(pk=form.pop('id')).update(**form) else: form.created_by = request.user ExecTemplate.objects.create(**form) return json_response(error=error)