コード例 #1
0
def test_restore_ports():
    from console.services.app_actions.app_restore import AppRestore
    tn = Tenants()
    tn.tenant_id = "c1a29fe4d7b0413993dc859430cf743d"
    svc = TenantServiceInfo()
    svc.service_id = "5a9209f3a3e94695b23fbd8b16a07d2b"
    backup_data = {
        "service_ports": [{
            "lb_mapping_port": 0,
            "protocol": "http",
            "mapping_port": 80,
            "tenant_id": "c1a29fe4d7b0413993dc859430cf743d",
            "port_alias": "GR063B3980",
            "container_port": 80,
            "is_outer_service": False,
            "is_inner_service": False,
            "service_id": "5a9209f3a3e94695b23fbd8b16a07d2b",
            "ID": 513
        }],
    }
    service_ports = backup_data["service_ports"]
    raw_ports = [port["port_alias"] for port in service_ports]
    app_restore = AppRestore(tn, svc)
    app_restore.ports(service_ports)
    ports = port_repo.get_service_ports(tn.tenant_id, svc.service_id)

    for port in ports:
        assert port.port_alias in raw_ports
コード例 #2
0
 def get_team_by_team_id(self, team_id):
     team = team_repo.get_team_by_team_id(team_id=team_id)
     if team is None:
         raise Tenants.DoesNotExist()
     user = user_repo.get_by_user_id(team.creater)
     team.creater = user.nick_name
     return team
コード例 #3
0
 def get_tenant_role_by_tenant_name(self, tenant_name):
     """获取一个团队中的所有角色和角色对应的权限信息"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     return role_repo.get_tenant_role_by_tenant_id(tenant_id=tenant.pk)
コード例 #4
0
ファイル: tests.py プロジェクト: zhanglimin/rainbond-console
def test_record_not_found(mocker):
    with pytest.raises(RecordNotFound):
        from console.services.app_actions.properties_changes import PropertiesChanges
        service_source = ServiceSourceInfo()
        service_source.group_key = "dummy group_key"
        mocker.patch(
            "console.repositories.app.service_source_repo.get_service_source",
            return_value=service_source)
        properties_changes = PropertiesChanges(TenantServiceInfo(), Tenants())
        properties_changes.get_property_changes("eid", "version")
コード例 #5
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)
コード例 #6
0
 def change_tenant_role(self, user_id, tenant_name, role_id_list):
     """修改用户在团队中的角色"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     enterprise = enterprise_services.get_enterprise_by_enterprise_id(enterprise_id=tenant.enterprise_id)
     user_role = role_repo.update_user_role_in_tenant_by_user_id_tenant_id_role_id(
         user_id=user_id, tenant_id=tenant.pk, enterprise_id=enterprise.pk, role_id_list=role_id_list)
     return user_role
コード例 #7
0
 def get_user_perm_identitys_in_permtenant(self, user_id, tenant_name):
     """获取用户在一个团队的身份列表"""
     user = user_repo.get_by_user_id(user_id)
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     user_roles = user_kind_role_service.get_user_roles(kind_id=tenant.ID, kind="team", user=user)
     if tenant.creater == user_id:
         user_roles["roles"].append("owner")
     return user_roles
コード例 #8
0
def test_restore_env():
    from console.services.app_actions.app_restore import AppRestore
    tn = Tenants()
    tn.tenant_id = "c1a29fe4d7b0413993dc859430cf743d"
    svc = TenantServiceInfo()
    svc.service_id = "36966cedcad44358a12f1707dece18da"
    backup_data = {
        "service_env_vars": [{
            "name": "PHPIZE_DEPS",
            "tenant_id": "c1a29fe4d7b0413993dc859430cf743d",
            "attr_name": "PHPIZE_DEPS",
            "container_port": 0,
            "create_time": "2019-05-14 18:04:26",
            "attr_value": "autoconf",
            "is_change": True,
            "scope": "inner",
            "service_id": "36966cedcad44358a12f1707dece18da",
            "ID": 1080
        }, {
            "name": "PHP_EXTRA_CONFIGURE_ARGS",
            "tenant_id": "c1a29fe4d7b0413993dc859430cf743d",
            "attr_name": "PHP_EXTRA_CONFIGURE_ARGS",
            "container_port": 0,
            "create_time": "2019-05-14 18:04:26",
            "attr_value": "--with-apxs2 --disable-cgi",
            "is_change": True,
            "scope": "inner",
            "service_id": "36966cedcad44358a12f1707dece18da",
            "ID": 1081
        }]
    }
    service_env_vars = backup_data["service_env_vars"]
    raw_envs = [env["name"] for env in service_env_vars]
    app_restore = AppRestore(tn, svc)
    app_restore.envs(service_env_vars)
    envs = env_var_repo.get_service_env(tn.tenant_id, svc.service_id)

    for env in envs:
        assert env.name in raw_envs
コード例 #9
0
 def user_is_exist_in_team(self, user_list, tenant_name):
     """判断一个用户是否存在于一个团队中"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     enterprise = enterprise_services.get_enterprise_by_enterprise_id(enterprise_id=tenant.enterprise_id)
     for user_id in user_list:
         obj = PermRelTenant.objects.filter(user_id=user_id, tenant_id=tenant.pk, enterprise_id=enterprise.pk)
         if obj:
             return obj[0].user_id
     return False
コード例 #10
0
    def get_all_team_role_id(self, tenant_name, allow_owner=False):
        """获取一个团队中的所有可选角色ID列表"""
        try:
            team_obj = self.get_tenant(tenant_name=tenant_name)
        except Tenants.DoesNotExist:
            team_obj = self.get_team_by_team_id(tenant_name)
            if team_obj is None:
                raise Tenants.DoesNotExist()

        filter = Q(is_default=True)
        if not allow_owner:
            filter &= ~Q(role_name="owner")
        default_role_id_list = TenantUserRole.objects.filter(filter).values_list("pk", flat=True)
        team_role_id_list = TenantUserRole.objects.filter(tenant_id=team_obj.pk, is_default=False).values_list("pk", flat=True)
        return list(default_role_id_list) + list(team_role_id_list)
コード例 #11
0
 def get_user_perm_role_id_in_permtenant(self, user_id, tenant_name):
     """获取一个用户在一个团队的角色ID列表"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     user_perms = team_repo.get_user_perms_in_permtenant(user_id=user_id, tenant_id=tenant.ID)
     if not user_perms:
         return []
     role_id_list = []
     for role_id in [perm.role_id for perm in user_perms]:
         if not role_id:
             continue
         role_id_list.append(role_id)
     return role_id_list
コード例 #12
0
    def get_tenant_roles(self, tenant_id, page=None, page_size=None):
        """获取一个团队中的所有角色和角色对应的权限信息"""
        tenant = team_repo.get_team_by_team_id(tenant_id)
        if tenant is None:
            raise Tenants.DoesNotExist()

        role_list = role_repo.get_tenant_role_by_tenant_id(tenant_id=tenant.pk, allow_owner=True)
        if page is not None and page_size is None:
            paginator = Paginator(role_list, page_size)
            try:
                role_list = paginator.page(page).object_list
            except PageNotAnInteger:
                page = 1
                role_list = paginator.page(1).object_list
            except EmptyPage:
                page = paginator.num_pages
                role_list = paginator.page(paginator.num_pages).object_list
        return role_list
コード例 #13
0
 def get_user_perm_identitys_in_permtenant(self, user_id, tenant_name):
     """获取用户在一个团队的身份列表"""
     try:
         tenant = self.get_tenant(tenant_name=tenant_name)
     except Tenants.DoesNotExist:
         tenant = self.get_team_by_team_id(tenant_name)
         if tenant is None:
             raise Tenants.DoesNotExist()
     user_perms = team_repo.get_user_perms_in_permtenant(user_id=user_id, tenant_id=tenant.ID)
     if not user_perms:
         return []
     identitys = [perm.identity for perm in user_perms]
     identity_list = []
     for identity in identitys:
         if not identity:
             continue
         identity_list.append(identity)
     return identity_list
コード例 #14
0
ファイル: tests.py プロジェクト: zhanglimin/rainbond-console
def test_rbd_app_not_found(mocker):
    from console.services.app_actions.properties_changes import PropertiesChanges

    with open("{}/tests/console/svcupgrade/app_template.json".format(
            settings.BASE_DIR)) as json_file:
        app_template = json.load(json_file)
        rain_app = RainbondCenterApp()
        rain_app.app_template = json.dumps(app_template)
    mocker.patch(
        "console.repositories.market_app_repo.rainbond_app_repo.get_enterpirse_app_by_key_and_version",
        return_value=rain_app)

    service_source = ServiceSourceInfo()
    service_source.group_key = "dummy group_key"
    mocker.patch(
        "console.repositories.app.service_source_repo.get_service_source",
        return_value=service_source)

    with pytest.raises(RbdAppNotFound):
        properties_changes = PropertiesChanges(TenantServiceInfo(), Tenants())
        properties_changes.get_property_changes("eid", "version")
コード例 #15
0
 def get_team_service_count_by_team_name(self, team_name):
     tenant = self.get_tenant_by_tenant_name(tenant_name=team_name)
     if tenant is None:
         raise Tenants.DoesNotExist()
     return TenantServiceInfo.objects.filter(tenant_id=tenant.tenant_id).count()
コード例 #16
0
 def init(self):
     self.sources = [
         Tenants(),
         TenantRegionInfo(),
         TenantRegionResource(),
         ServiceInfo(),
         TenantServiceInfo(),
         TenantServiceInfoDelete(),
         TenantServiceLog(),
         TenantServiceRelation(),
         TenantServiceEnv(),
         TenantServiceAuth(),
         TenantServiceExtendMethod(),
         ServiceDomain(),
         ServiceDomainCertificate(),
         PermRelService(),
         PermRelTenant(),
         PhoneCode(),
         TenantServiceL7Info(),
         TenantServiceEnvVar(),
         TenantServicesPort(),
         TenantServiceMountRelation(),
         TenantServiceVolume(),
         TenantServiceConfigurationFile(),
         ServiceGroup(),
         ServiceGroupRelation(),
         ImageServiceRelation(),
         ComposeServiceRelation(),
         ServiceRule(),
         ServiceRuleHistory(),
         ServiceCreateStep(),
         ServiceProbe(),
         ConsoleConfig(),
         TenantEnterprise(),
         TenantEnterpriseToken(),
         TenantServiceGroup(),
         ServiceTcpDomain(),
         ThirdPartyServiceEndpoints(),
         ServiceWebhooks(),
         GatewayCustomConfiguration(),
         ConsoleSysConfig(),
         RainbondCenterApp(),
         RainbondCenterAppInherit(),
         RainbondCenterPlugin(),
         ServiceShareRecord(),
         EnterpriseUserPerm(),
         TenantUserRole(),
         TenantUserPermission(),
         TenantUserRolePermission(),
         PermGroup(),
         ServiceRelPerms(),
         AppExportRecord(),
         UserMessage(),
         AppImportRecord(),
         GroupAppBackupRecord(),
         GroupAppMigrateRecord(),
         GroupAppBackupImportRecord(),
         Applicants(),
         DeployRelation(),
         ServiceBuildSource(),
         TenantServiceBackup(),
         AppUpgradeRecord(),
         ServiceUpgradeRecord(),
         RegionConfig(),
         CloundBangImages(),
         Announcement(),
     ]