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