def _validate_config(self, data): config = data['config'] resource_name = data['resource_name'] capitalize_name = resource_name.capitalize() try: name = data['name'] validate_mesos_res_name(name) except ValidationError as e: raise ValidationError(f'{capitalize_name} {e}') # 校验配置信息中的变量名是否规范 validate_variable_inconfig(config) if settings.IS_TEMPLATE_VALIDATE: validate_res_config(config, capitalize_name, get_config_schema(resource_name)) # 检查单个 APP 中端口名称/挂载名 是否重复 containers = config.get('spec', {}).get('template', {}).get('spec', {}).get('containers', []) try: self._validate_volume_duplicate(containers) except ValidationError as e: raise ValidationError(_("挂载名:{},请重新填写").format(e)) try: self._validate_port_duplicate(containers) except ValidationError as e: raise ValidationError(_("端口名称:{},请重新填写").format(e)) if data.get('version_id'): validate_port_duplicate_in_ventity(containers, data.get('resource_id'), data['version_id'])
def _validate_config(self, data): config = data['config'] resource_name = data['resource_name'] short_name = resource_name[3:] try: name = data['name'] validate_k8s_res_name(name) except ValidationError as e: raise ValidationError(f'{short_name} {e}') try: validate_pod_selector(config) except ValidationError as e: raise ValidationError( _("{}[{}]中选择器{}").format(short_name, name, e)) # 校验配置信息中的变量名是否规范 validate_variable_inconfig(config) if settings.IS_TEMPLATE_VALIDATE: validate_res_config(config, short_name, get_config_schema(resource_name)) try: validate_affinity(config) except ValidationError as e: raise ValidationError(f'{short_name} {e}')
def _validate_config(self, data): config = data['config'] resource_name = data['resource_name'] capitalize_name = resource_name.capitalize() validate_variable_inconfig(config) if settings.IS_TEMPLATE_VALIDATE: resource_name = data['resource_name'] validate_res_config(config, capitalize_name, get_config_schema(resource_name))
def validate(self, data): if not data.get('version_id'): raise ValidationError("请先创建 Deployment,再创建 Service") if not data.get('deploy_tag_list'): raise ValidationError( f"Service模板中{data.get('name')}: 请选择关联的 Deployment") config = data['config'] if not data.get('namespace_id') and not data.get('instance_id'): # 校验配置信息中的变量名是否规范 validate_variable_inconfig(config) self._validate_name_duplicate(data) return data
def validate(self, data): # 目前仅支持配置了selector的Service的创建, 因此需要校验deploy_tag_list字段 if not data.get('version_id'): raise ValidationError(_("请先创建 Deployment/StatefulSet/Daemonset,再创建 Service")) if not data.get('deploy_tag_list'): raise ValidationError(_("Service模板中{}: 请选择关联的 Deployment/StatefulSet/Daemonset").format(data.get('name'))) config = data['config'] if not data.get('namespace_id') and not data.get('instance_id'): # 校验配置信息中的变量名是否规范 validate_variable_inconfig(config) self._validate_name_duplicate(data) return data
def _validate_config(self, data): config = data['config'] resource_name = data['resource_name'] capitalize_name = resource_name.capitalize() try: name = data['name'] validate_mesos_res_name(name) except ValidationError as e: raise ValidationError(f'{capitalize_name} {e}') # 校验配置信息中的变量名是否规范 validate_variable_inconfig(config) if settings.IS_TEMPLATE_VALIDATE: validate_res_config(config, capitalize_name, get_config_schema(resource_name))
def validate(self, data): self._validate_config(data) if not data.get('namespace_id') and not data.get('instance_id'): # 校验配置信息中的变量名是否规范 validate_variable_inconfig(data['config']) self._validate_name_duplicate(data) if isinstance(data['app_id'], dict): app_id_list = data['app_id'].keys() else: app_id_list = data['app_id'] validate_app_in_ventity(app_id_list, data.get('version_id')) return data