Example #1
0
    def update(self, instance, validated_data):
        # 三级拓扑
        if int(validated_data['business'].topology
               ) == 1 and validated_data['cluster']:
            if models.Module.objects.exclude(id=instance.id).filter(
                    business=validated_data['business'],
                    cluster=validated_data['cluster'],
                    name=validated_data['name']).exists():
                raise cust_exceptions.ValidationFailed(
                    detail="对不起,该集群下已存在该名称的集群!")
        # 二级拓扑
        else:
            if models.Module.objects.exclude(id=instance.id).filter(
                    business=validated_data['business'],
                    name=validated_data['name']).exists():
                raise cust_exceptions.ValidationFailed(
                    detail="对不起,该业务下已存在该名称的集群!")

        return super(ModuleSerializer, self).update(instance, validated_data)
Example #2
0
 def update(self, instance, validated_data):
     try:
         repo_url_split = urlparse(validated_data['lib_url'])
         # 项目名称
         project_word_list = repo_url_split.path.split("/")[-1].split(
             ".")[:-1]
         project_name = '.'.join(project_word_list)
     except:
         raise cust_exceptions.ValidationFailed(detail="仓库地址不规范!")
     project_path = '/' + project_name
     if validated_data.has_key('lib_path'):
         if validated_data['lib_path']:
             project_path = project_path + '/' + validated_data['lib_path']
     if validated_data.has_key('lib_deploy_path'):
         deploy_container_name = validated_data[
             'lib_deploy_path'] if validated_data[
                 'lib_deploy_path'] else project_path.split("/")[-1]
     else:
         deploy_container_name = project_path.split("/")[-1]
     validated_data['deploy_container_name'] = deploy_container_name
     if validated_data['deploy_container_name']:
         if validated_data.has_key('version'):
             if validated_data['version']:
                 validated_data[
                     'docker_img_name'] = deploy_container_name + (
                         ':%s' % validated_data['version'])
             else:
                 validated_data[
                     'docker_img_name'] = deploy_container_name + ':latest'
         else:
             validated_data[
                 'docker_img_name'] = deploy_container_name + ':latest'
     else:
         validated_data['docker_img_name'] = ''
     validated_data['deploy_docker_run'] = "docker run --name {0} --net=host -d {1}" \
         .format(validated_data['deploy_container_name'], validated_data['docker_img_name'])
     return super(ProjectCenterSerializer,
                  self).update(instance, validated_data)
Example #3
0
 def update(self, instance, validated_data):
     if models.Cluster.objects.exclude(id=instance.id).filter(
             business=validated_data['business'],
             name=validated_data['name']).exists():
         raise cust_exceptions.ValidationFailed(detail="对不起,该业务下已存在该名称的集群!")
     return super(ClusterSerializer, self).update(instance, validated_data)
Example #4
0
 def create(self, validated_data):
     if models.Cluster.objects.filter(business=validated_data['business'],
                                      name=validated_data['name']).exists():
         raise cust_exceptions.ValidationFailed(detail="对不起,该业务下已存在该名称的集群!")
     return super(ClusterSerializer, self).create(validated_data)