def get_and_save_migrate_status(self, user, restore_id):
        migrate_record = migrate_repo.get_by_restore_id(restore_id)
        if not migrate_record:
            return 404, "无此记录", None
        if migrate_record.status == "starting":

            data = region_api.get_apps_migrate_status(migrate_record.migrate_region, migrate_record.migrate_team,
                                                      migrate_record.backup_id, restore_id)

            bean = data["bean"]
            logger.debug('===========>{0}'.format(bean))
            status = bean["status"]
            service_change = bean["service_change"]
            logger.debug("service change : {0}".format(service_change))
            metadata = bean["metadata"]
            migrate_team = team_repo.get_tenant_by_tenant_name(migrate_record.migrate_team)
            if status == "success":
                with transaction.atomic():
                    try:
                        self.save_data(migrate_team, migrate_record.migrate_region, user, service_change, json.loads(metadata), migrate_record.group_id)
                    except Exception as e:
                        migrate_record.status = "failed"
                        migrate_record.save()
                        raise e
                    if migrate_record.migrate_type == "recover":
                        # 如果为恢复操作,将原有备份和迁移的记录的组信息修改
                        backup_record_repo.get_record_by_group_id(migrate_record.original_group_id).update(
                            group_id=migrate_record.group_id)
                        self.update_migrate_original_group_id(migrate_record.original_group_id, migrate_record.group_id)
            migrate_record.status = status
            migrate_record.save()

        return 200, "success", migrate_record
 def team_user_is_exist_by_role_id_tenant_name(self, role_id, tenant_name):
     """判断团队中一个角色是否有绑定的人"""
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name)
     if not tenant:
         raise Tenants.DoesNotExist
     return PermRelTenant.objects.filter(tenant_id=tenant.ID,
                                         role_id=role_id)
Exemple #3
0
 def get_region_by_tenant_name(self, tenant_name):
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name,
                                                  exception=True)
     regions = TenantRegionInfo.objects.filter(tenant_id=tenant.tenant_id)
     if regions:
         return regions
     return None
Exemple #4
0
 def send_user_message_to_tenantadmin(self, admins, team_name, nick_name):
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=team_name)
     logger.debug('---------admin---------->{0}'.format(admins))
     for admin in admins:
         message_id = make_uuid()
         content = '{0}用户申请加入{1}团队'.format(nick_name, tenant.tenant_alias)
         UserMessage.objects.create(
             message_id=message_id, receiver_id=admin.user_id, content=content, msg_type="warn", title="团队加入信息")
Exemple #5
0
 def send_user_message_for_apply_info(self, user_id, team_name, info):
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=team_name)
     message_id = make_uuid()
     content = '{0}团队{1}您加入该团队'.format(tenant.tenant_alias, info)
     UserMessage.objects.create(message_id=message_id,
                                receiver_id=user_id,
                                content=content,
                                msg_type="warn",
                                title="用户加入团队信息")
Exemple #6
0
    def team_role_is_exist_by_role_name_team_id_2(self, tenant_name, role_name):
        """判断一个角色在一个团队中是否存在"""

        tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name)
        if not tenant:
            raise Tenants.DoesNotExist

        role_obj = TenantUserRole.objects.filter(tenant_id=tenant.pk, role_name=role_name)

        return role_obj
Exemple #7
0
 def get(self, request, team_name, *args, **kwargs):
     page = int(request.GET.get("page", 1))
     page_size = int(request.GET.get("page_size", 10))
     query = request.GET.get("query")
     tenant = team_repo.get_tenant_by_tenant_name(team_name)
     if not tenant:
         result = general_message(404, "not found", "团队不存在")
         return Response(data=result, status=404)
     enterprise = enterprise_repo.get_enterprise_by_enterprise_id(tenant.enterprise_id)
     user_list = team_services.get_not_join_users(enterprise, tenant, query)
     total = len(user_list)
     data = user_list[(page - 1) * page_size:page * page_size]
     result = general_message(200, None, None, list=data, page=page, page_size=page_size, total=total)
     return Response(data=result, status=200)
Exemple #8
0
 def get_service_group_list(self, team_name, region_name):
     team = team_repo.get_tenant_by_tenant_name(tenant_name=team_name,
                                                exception=True)
     service_groups = ServiceGroup.objects.filter(tenant_id=team.tenant_id,
                                                  region_name=region_name)
     group_list = list()
     if service_groups:
         for service_group in service_groups:
             group_info = dict()
             group_info["group_id"] = service_group.ID
             group_info["group_name"] = service_group.group_name
             g_s_l = ServiceGroupRelation.objects.filter(
                 group_id=service_group.ID, region_name=region_name)
             gslist = list()
             for g_s in g_s_l:
                 g_n_l = TenantServiceInfo.objects.filter(
                     service_id=g_s.service_id, service_region=region_name)
                 if g_n_l:
                     g_n = g_n_l[0]
                     service_info = dict()
                     service_info["service_id"] = g_s.service_id
                     service_info["service_cname"] = g_n.service_cname
                     service_info["service_alias"] = g_n.service_alias
                     gslist.append(service_info)
                 group_info["service_list"] = gslist
             group_list.append(group_info)
         no_services = self.get_no_grop_service_by_team_id(
             team_id=team.tenant_id, region_name=region_name)
         no_service_list = []
         for no_service in no_services:
             service = TenantServiceInfo.objects.filter(
                 service_id=no_service.get("service_id"))[0]
             no_service_list.append({
                 "service_id": service.service_id,
                 "service_cname": service.service_cname,
                 "service_alias": service.service_alias
             })
         group_list.append({
             "group_id": -1,
             "group_name": "未分组",
             "service_list": no_service_list
         })
         return group_list
     else:
         return []
Exemple #9
0
 def get_no_group_list(self, team_name, region_name):
     team = team_repo.get_tenant_by_tenant_name(tenant_name=team_name,
                                                exception=True)
     group_list = list()
     no_services = self.get_no_grop_service_by_team_id(
         team_id=team.tenant_id, region_name=region_name)
     if no_services:
         no_service_list = []
         for no_service in no_services:
             service = TenantServiceInfo.objects.filter(
                 service_id=no_service.get("service_id"))[0]
             no_service_list.append({
                 "service_id": service.service_id,
                 "service_cname": service.service_cname,
                 "service_alias": service.service_alias
             })
         group_list.append({
             "group_id": -1,
             "group_name": "未分组",
             "service_list": no_service_list
         })
         return group_list
     else:
         return []
Exemple #10
0
 def get_user_detail(self, tenant_name, nick_name):
     u = user_repo.get_user_by_username(user_name=nick_name)
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name)
     perms = team_repo.get_tenant_perms(tenant_id=tenant.ID,
                                        user_id=u.user_id)
     return u, perms
 def update_tenant_alias(self, tenant_name, new_team_alias):
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name, exception=True)
     tenant.tenant_alias = new_team_alias
     tenant.save()
     return tenant
 def get_tenant_users_by_tenant_name(self, tenant_name):
     tenant = team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name)
     user_list = team_repo.get_tenant_users_by_tenant_ID(tenant_ID=tenant.ID)
     return user_list
 def get_tenant_by_tenant_name(self, tenant_name, exception=True):
     return team_repo.get_tenant_by_tenant_name(tenant_name=tenant_name, exception=exception)