Beispiel #1
0
    def post(self, request, project_id, template_id):
        if is_create_template(template_id):
            # template dict like {'desc': '', 'name': ''}
            tpl_args = request.data.get('template', {})
            template = create_template_with_perm_check(request, project_id,
                                                       tpl_args)
        else:
            template = get_template_by_project_and_id(project_id, template_id)

        self.can_edit_template(request, template)

        serializer = serializers_new.TemplateDraftSLZ(
            template, data=request.data, context={'template_id': template.id})
        serializer.is_valid(raise_exception=True)
        serializer.save(draft_updator=request.user.username)

        validated_data = serializer.validated_data
        # 记录操作日志
        client.ContextActivityLogClient(project_id=template.project_id,
                                        user=request.user.username,
                                        resource_type='template',
                                        resource=template.name,
                                        resource_id=template.id,
                                        extra=json.dumps(validated_data),
                                        description=_("保存草稿")).log_modify()

        return Response({
            'template_id': template.id,
            'show_version_id': -1,
            'real_version_id': validated_data['real_version_id'],
        })
Beispiel #2
0
    def post(self, request, project_id, template_id, resource_name):
        validate_resource_name(resource_name)

        if is_create_template(template_id):
            # template dict like {'desc': '', 'name': ''}
            tpl_args = request.data.get('template', {})
            template = create_template_with_perm_check(request, project_id,
                                                       tpl_args)
        else:
            template = get_template_by_project_and_id(project_id, template_id)

        self.can_edit_template(request, template)

        data = request.data or {}
        data.update({
            'version_id': 0,
            'resource_id': 0,
            'project_id': project_id
        })
        serializer_class = serializers_new.get_slz_class_by_resource_name(
            resource_name)
        serializer = serializer_class(data=data)
        serializer.is_valid(raise_exception=True)
        validated_data = serializer.validated_data
        create_data = self._compose_create_data(validated_data)
        ret_data = self._create_resource_entity(resource_name, template.id,
                                                create_data)
        return Response(ret_data)
Beispiel #3
0
 def create(self, validated_data):
     request = self.context["request"]
     project_id = validated_data["project_id"]
     desc_args = {
         "name": validated_data["name"],
         "desc": validated_data.get("desc", ""),
         "project_id": project_id,
         "edit_mode": TemplateEditMode.YAML.value,
     }
     template = utils.create_template_with_perm_check(request, project_id, desc_args)
     files2res.create_resources(template, validated_data["show_version"], validated_data["template_files"])
     return template
Beispiel #4
0
 def create(self, validated_data):
     request = self.context['request']
     project_id = validated_data['project_id']
     desc_args = {
         'name': validated_data['name'],
         'desc': validated_data.get('desc', ''),
         'project_id': project_id,
         'edit_mode': TemplateEditMode.YAML.value
     }
     template = utils.create_template_with_perm_check(
         request, project_id, desc_args)
     files2res.create_resources(template, validated_data['show_version'],
                                validated_data['template_files'])
     return template