コード例 #1
0
 def down_market_group_list(self, tenant):
     app_group_list = market_api.get_service_group_list(tenant.tenant_id)
     rainbond_apps = []
     for app_group in app_group_list:
         rbc = rainbond_app_repo.get_rainbond_app_by_key_and_version(
             app_group["group_key"], app_group["group_version"])
         if rbc:
             rbc.describe = app_group["info"] if app_group[
                 "info"] else rbc.describe
             rbc.pic = app_group["pic"] if app_group["pic"] else rbc.pic
             rbc.update_time = current_time_str("%Y-%m-%d %H:%M:%S")
             rbc.template_version = app_group.get("template_version",
                                                  rbc.template_version)
             rbc.save()
         else:
             rainbond_app = RainbondCenterApp(
                 group_key=app_group["group_key"],
                 group_name=app_group["group_name"],
                 version=app_group['group_version'],
                 share_user=0,
                 record_id=0,
                 share_team="",
                 source="market",
                 scope="goodrain",
                 describe=app_group["info"],
                 pic=app_group["pic"],
                 app_template="",
                 template_version=app_group.get("template_version", ""))
             rainbond_apps.append(rainbond_app)
     rainbond_app_repo.bulk_create_rainbond_apps(rainbond_apps)
コード例 #2
0
    def __save_import_info(self, tenant_name, scope, metadata):
        rainbond_apps = []
        metadata = json.loads(metadata)
        for app_template in metadata:
            app = rainbond_app_repo.get_rainbond_app_by_key_and_version(app_template["group_key"],
                                                                        app_template["group_version"])
            if app:
                continue
            image_base64_string = app_template.pop("image_base64_string", "")
            pic_url = ""
            if image_base64_string:
                pic_url = self.decode_image(image_base64_string, app_template.pop("suffix", "jpg"))

            rainbond_app = RainbondCenterApp(
                group_key=app_template["group_key"],
                group_name=app_template["group_name"],
                version=app_template['group_version'],
                share_user=0,
                record_id=0,
                share_team=tenant_name,
                source="import",
                scope=scope,
                describe=app_template.pop("describe", ""),
                pic=pic_url,
                app_template=json.dumps(app_template),
                is_complete=True,
                template_version=app_template.get("template_version", "")
            )
            rainbond_apps.append(rainbond_app)
        rainbond_app_repo.bulk_create_rainbond_apps(rainbond_apps)
コード例 #3
0
 def __save_enterprise_import_info(self, import_record, metadata):
     rainbond_apps = []
     rainbond_app_versions = []
     metadata = json.loads(metadata)
     key_and_version_list = []
     if not metadata:
         return
     for app_template in metadata:
         app = rainbond_app_repo.get_rainbond_app_by_app_id(
             import_record.enterprise_id, app_template["group_key"])
         # if app exists, update it
         if app:
             app.scope = import_record.scope
             app.describe = app_template.pop("describe", "")
             app.save()
             app_version = rainbond_app_repo.get_rainbond_app_version_by_app_id_and_version(
                 app.app_id, app_template["group_version"])
             if app_version:
                 # update version if exists
                 app_version.scope = import_record.scope
                 app_version.app_template = json.dumps(app_template)
                 app_version.template_version = app_template[
                     "template_version"]
                 app_version.save()
             else:
                 # create a new version
                 rainbond_app_versions.append(
                     self.create_app_version(app, import_record,
                                             app_template))
         else:
             image_base64_string = app_template.pop("image_base64_string",
                                                    "")
             pic_url = ""
             if image_base64_string:
                 pic_url = self.decode_image(
                     image_base64_string, app_template.pop("suffix", "jpg"))
             key_and_version = "{0}:{1}".format(
                 app_template["group_key"], app_template['group_version'])
             if key_and_version in key_and_version_list:
                 continue
             key_and_version_list.append(key_and_version)
             rainbond_app = RainbondCenterApp(
                 enterprise_id=import_record.enterprise_id,
                 app_id=app_template["group_key"],
                 app_name=app_template["group_name"],
                 source="import",
                 create_team=import_record.team_name,
                 scope=import_record.scope,
                 describe=app_template.pop("describe", ""),
                 pic=pic_url,
             )
             rainbond_apps.append(rainbond_app)
             # create a new app version
             rainbond_app_versions.append(
                 self.create_app_version(rainbond_app, import_record,
                                         app_template))
     rainbond_app_repo.bulk_create_rainbond_app_versions(
         rainbond_app_versions)
     rainbond_app_repo.bulk_create_rainbond_apps(rainbond_apps)
コード例 #4
0
    def __save_import_info(self, tenant, scope, metadata):
        rainbond_apps = []
        metadata = json.loads(metadata)
        key_and_version_list = []
        for app_template in metadata:
            app = rainbond_app_repo.get_rainbond_app_by_key_and_version_eid(
                tenant.enterprise_id, app_template["group_key"],
                app_template["group_version"])
            if app:
                # 覆盖原有应用数据
                app.share_team = tenant.tenant_name  # 分享团队名暂时为那个团队将应用导入进来的
                app.scope = scope
                app.describe = app_template.pop("describe", "")
                app.app_template = json.dumps(app_template)
                app.template_version = app_template.get("template_version", "")
                app.is_complete = True
                app.save()
                continue
            image_base64_string = app_template.pop("image_base64_string", "")
            pic_url = ""
            if image_base64_string:
                pic_url = self.decode_image(image_base64_string,
                                            app_template.pop("suffix", "jpg"))

            key_and_version = "{0}:{1}".format(app_template["group_key"],
                                               app_template['group_version'])
            if key_and_version in key_and_version_list:
                continue
            key_and_version_list.append(key_and_version)
            rainbond_app = RainbondCenterApp(
                enterprise_id=tenant.enterprise_id,
                group_key=app_template["group_key"],
                group_name=app_template["group_name"],
                version=app_template['group_version'],
                share_user=0,
                record_id=0,
                share_team=tenant.tenant_name,
                source="import",
                scope=scope,
                describe=app_template.pop("describe", ""),
                pic=pic_url,
                app_template=json.dumps(app_template),
                is_complete=True,
                template_version=app_template.get("template_version", ""))
            rainbond_apps.append(rainbond_app)
        rainbond_app_repo.bulk_create_rainbond_apps(rainbond_apps)
コード例 #5
0
 def down_market_group_list(self, tenant):
     app_group_list = market_api.get_service_group_list(tenant.tenant_id)
     rainbond_apps = []
     for app_group in app_group_list:
         if not self.is_group_exist(app_group["group_key"],
                                    app_group["group_version"]):
             rainbond_app = RainbondCenterApp(
                 group_key=app_group["group_key"],
                 group_name=app_group["group_name"],
                 version=app_group['group_version'],
                 share_user=0,
                 record_id=0,
                 share_team="",
                 source="market",
                 scope="goodrain",
                 describe="",
                 app_template="")
             rainbond_apps.append(rainbond_app)
     rainbond_app_repo.bulk_create_rainbond_apps(rainbond_apps)