コード例 #1
0
ファイル: tests.py プロジェクト: zzzhangqi/rainbond-console
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)
コード例 #2
0
 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)
コード例 #3
0
    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
コード例 #4
0
 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)
コード例 #5
0
    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