示例#1
0
 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)
示例#2
0
文件: extend.py 项目: jackerzz/spug
 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)
示例#3
0
 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)