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)
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)
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)
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)
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)