def test_envs_changes(): from console.services.app_actions.properties_changes import PropertiesChanges from console.repositories.app_config import env_var_repo tenant_id = "c1a29fe4d7b0413993dc859430cf743d" service_id = "03289ae373e65e4a1a22046d7f76ca5e" tenantServiceEnvVar = {} tenantServiceEnvVar["tenant_id"] = tenant_id tenantServiceEnvVar["service_id"] = service_id tenantServiceEnvVar['container_port'] = 0 tenantServiceEnvVar["name"] = "NGINX_VERSION" tenantServiceEnvVar["attr_name"] = "NGINX_VERSION" tenantServiceEnvVar["attr_value"] = "1.15.12-1~stretch" tenantServiceEnvVar["is_change"] = False tenantServiceEnvVar["scope"] = "inner" env_var_repo.add_service_env(**tenantServiceEnvVar) envs = [ { "is_change": True, "name": "\\u65e5\\u5fd7\\u8f93\\u51fa\\u65b9\\u5f0f", "attr_value": "file", "attr_name": "DESTINATION" }, { "is_change": True, "name": "\\u8be6\\u7ec6\\u9519\\u8bef\\u65e5\\u5fd7", "attr_value": "true", "attr_name": "TRACEALLEXCEPTIONS" }, { "is_change": True, "name": "NGINX_VERSION", "attr_value": "1.15.12-1~stretch", "attr_name": "NGINX_VERSION" }, ] service = TenantServiceInfo() service.tenant_id = tenant_id service.service_id = service_id properties_changes = PropertiesChanges(service, Tenants()) env_changes = properties_changes.env_changes(envs) print(env_changes) assert 2 == len(env_changes["add"]) assert next( iter([ x for x in env_changes["add"] if x["attr_name"] == "DESTINATION" ]), None) assert next( iter([ x for x in env_changes["add"] if x["attr_name"] == "TRACEALLEXCEPTIONS" ]), None)
def create_env_var(self, service, container_port, name, attr_name, attr_value, is_change=False, scope="outer"): """ raise: EnvAlreadyExist raise: InvalidEnvName """ if env_var_repo.get_service_env_by_attr_name(service.tenant_id, service.service_id, attr_name): raise EnvAlreadyExist() attr_name = str(attr_name).strip() attr_value = str(attr_value).strip() is_pass, msg = self.check_env_attr_name(attr_name) if not is_pass: raise InvalidEnvName(msg) if len(str(attr_value)) > 512: attr_value = str(attr_value)[:512] tenantServiceEnvVar = {} tenantServiceEnvVar["tenant_id"] = service.tenant_id tenantServiceEnvVar["service_id"] = service.service_id tenantServiceEnvVar['container_port'] = container_port tenantServiceEnvVar["name"] = name tenantServiceEnvVar["attr_name"] = attr_name tenantServiceEnvVar["attr_value"] = attr_value tenantServiceEnvVar["is_change"] = is_change tenantServiceEnvVar["scope"] = scope return env_var_repo.add_service_env(**tenantServiceEnvVar)
def add_service_build_env_var(self, tenant, service, container_port, name, attr_name, attr_value, is_change, scope="build"): attr_name = str(attr_name).strip() attr_value = str(attr_value).strip() is_pass, msg = self.check_env_attr_name(attr_name) if not is_pass: return 400, msg, None if len(str(attr_value)) > 512: attr_value = str(attr_value)[:512] tenant_service_env_var = dict() tenant_service_env_var["tenant_id"] = service.tenant_id tenant_service_env_var["service_id"] = service.service_id tenant_service_env_var['container_port'] = container_port tenant_service_env_var["name"] = name tenant_service_env_var["attr_name"] = attr_name tenant_service_env_var["attr_value"] = attr_value tenant_service_env_var["is_change"] = is_change tenant_service_env_var["scope"] = scope new_env = env_var_repo.add_service_env(**tenant_service_env_var) return 200, 'success', new_env
def create_env_var(self, service, container_port, name, attr_name, attr_value, is_change=False, scope="outer"): """ raise: EnvAlreadyExist raise: InvalidEnvName """ self.check_env(service, attr_name, attr_value) if len(str(attr_value)) > 65532: attr_value = str(attr_value)[:65532] tenantServiceEnvVar = {} tenantServiceEnvVar["tenant_id"] = service.tenant_id tenantServiceEnvVar["service_id"] = service.service_id tenantServiceEnvVar['container_port'] = container_port tenantServiceEnvVar["name"] = name tenantServiceEnvVar["attr_name"] = attr_name tenantServiceEnvVar["attr_value"] = attr_value tenantServiceEnvVar["is_change"] = is_change tenantServiceEnvVar["scope"] = scope return env_var_repo.add_service_env(**tenantServiceEnvVar)
def add_service_env_var(self, tenant, service, container_port, name, attr_name, attr_value, isChange, scope="outer"): is_pass, msg = self.check_env_attr_name(attr_name) if not is_pass: return 400, msg, None if len(str(attr_value)) > 512: attr_value = str(attr_value)[:512] tenantServiceEnvVar = {} tenantServiceEnvVar["tenant_id"] = service.tenant_id tenantServiceEnvVar["service_id"] = service.service_id tenantServiceEnvVar['container_port'] = container_port tenantServiceEnvVar["name"] = name tenantServiceEnvVar["attr_name"] = attr_name tenantServiceEnvVar["attr_value"] = attr_value tenantServiceEnvVar["is_change"] = isChange tenantServiceEnvVar["scope"] = scope env = env_var_repo.get_service_env_by_attr_name(service.tenant_id, service.service_id, attr_name) if env: return 412, u"环境变量{0}已存在".format(attr_name), None # 判断是否需要再region端添加 if service.create_status == "complete": attr = {"container_port": container_port, "tenant_id": service.tenant_id, "service_id": service.service_id, "name": name, "attr_name": attr_name, "attr_value": str(attr_value), "is_change": True, "scope": scope, "env_name": attr_name, "env_value": str(attr_value), "enterprise_id": tenant.enterprise_id } region_api.add_service_env(service.service_region, tenant.tenant_name, service.service_alias, attr) new_env = env_var_repo.add_service_env(**tenantServiceEnvVar) return 200, 'success', new_env