def get(self, request, *args, **kwargs): """ 查询构建源信息 --- """ try: service_source = service_source_repo.get_service_source(team_id=self.service.tenant_id, service_id=self.service.service_id) bean = { "user_name": "", "password": "" } if service_source: bean["user"] = service_source.user_name bean["password"] = service_source.password if self.service.service_source == 'market': if service_source: # 获取内部市场对象 rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version(service_source.group_key, service_source.version) if rain_app: bean["rain_app_name"] = rain_app.group_name bean["details"] = rain_app.details logger.debug("app_version: {}".format(rain_app.version)) bean["app_version"] = rain_app.version bean["group_key"] = rain_app.group_key bean["service_source"] = self.service.service_source bean["image"] = self.service.image bean["cmd"] = self.service.cmd bean["code_from"] = self.service.code_from bean["version"] = self.service.version bean["docker_cmd"] = self.service.docker_cmd bean["create_time"] = self.service.create_time bean["git_url"] = self.service.git_url bean["code_version"] = self.service.code_version bean["server_type"] = self.service.server_type bean["language"] = self.service.language if self.service.service_source == 'market': if service_source: # 获取内部市场对象 rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version(service_source.group_key, service_source.version) if rain_app: bean["rain_app_name"] = rain_app.group_name bean["details"] = rain_app.details logger.debug("version: {}".format(rain_app.version)) bean["version"] = rain_app.version bean["group_key"] = rain_app.group_key result = general_message(200, "success", "查询成功", bean=bean) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def get(self, request, *args, **kwargs): """ 应用详情信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 服务别名 required: true type: string paramType: path """ try: if self.service.service_source == "market": service_source = service_source_repo.get_service_source(self.tenant.tenant_id, self.service.service_id) if not service_source: result = general_message(200, "success", "当前云市应用已删除", bean=self.service.to_dict()) return Response(result, status=result["code"]) rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version(service_source.group_key, service_source.version) if not rain_app: result = general_message(200, "success", "当前云市应用已删除", bean=self.service.to_dict()) return Response(result, status=result["code"]) result = general_message(200, "success", "查询成功", bean=self.service.to_dict()) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
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 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 get(self, request, *args, **kwargs): """ 查询构建源信息 --- """ try: service_source = service_source_repo.get_service_source( team_id=self.service.tenant_id, service_id=self.service.service_id) bean = { "user_name": "", "password": "", "service_source": self.service.service_source, "image": self.service.image, "cmd": self.service.cmd, "code_from": self.service.code_from, "version": self.service.version, "docker_cmd": self.service.docker_cmd, "create_time": self.service.create_time, "git_url": self.service.git_url, "code_version": self.service.code_version, "server_type": self.service.server_type, "language": self.service.language, } if service_source: bean["user"] = service_source.user_name bean["password"] = service_source.password if self.service.service_source == 'market': if service_source: # get from cloud rain_app = None if service_source.extend_info: extend_info = json.loads(service_source.extend_info) if extend_info and extend_info.get( "install_from_cloud", False): rain_app = market_app_service.get_app_from_cloud( self.tenant, service_source.group_key, service_source.version) bean["install_from_cloud"] = True bean["app_detail_url"] = rain_app.describe if not rain_app: rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( service_source.group_key, service_source.version) if rain_app: bean["rain_app_name"] = rain_app.group_name bean["details"] = rain_app.details logger.debug("app_version: {}".format( rain_app.version)) bean["app_version"] = rain_app.version bean["version"] = rain_app.version bean["group_key"] = rain_app.group_key result = general_message(200, "success", "查询成功", bean=bean) except ServiceHandleException as e: raise e except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def get(self, request, *args, **kwargs): """ 查询构建源信息 --- """ service_alias = self.service.service_alias try: service_source = team_services.get_service_source( service_alias=service_alias) service_source_user = service_source_repo.get_service_source( team_id=self.service.tenant_id, service_id=self.service.service_id) user = "" password = "" bean = {} if service_source_user: user = service_source_user.user_name password = service_source_user.password bean["user_name"] = user bean["password"] = password if not service_source: return Response(general_message(404, "no found source", "没有这个应用的构建源"), status=404) if service_source.service_source == 'market': # 获取组对象 group_obj = tenant_service_group_repo.get_group_by_service_group_id( service_source.tenant_service_group_id) if group_obj: # 获取内部市场对象 rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( group_obj.group_key, group_obj.group_version) if rain_app: bean["rain_app_name"] = rain_app.group_name bean["details"] = rain_app.details bean["app_version"] = rain_app.version bean["group_key"] = rain_app.group_key bean["service_source"] = service_source.service_source bean["image"] = service_source.image bean["cmd"] = service_source.cmd bean["code_from"] = service_source.code_from bean["version"] = service_source.version bean["docker_cmd"] = service_source.docker_cmd bean["create_time"] = service_source.create_time bean["git_url"] = service_source.git_url bean["code_version"] = service_source.code_version bean["server_type"] = service_source.server_type bean["language"] = service_source.language result = general_message(200, "success", "查询成功", bean=bean) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def save_market_app_template(self, app_templates): v2_template = template_transform_service.v1_to_v2(app_templates) rainbond_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( v2_template["group_key"], v2_template["group_version"]) if rainbond_app: rainbond_app.share_user = v2_template["share_user"] rainbond_app.share_team = v2_template["share_team"] rainbond_app.pic = v2_template["pic"] rainbond_app.describe = v2_template["describe"] rainbond_app.app_template = json.dumps(v2_template) rainbond_app.is_complete = True rainbond_app.update_time = current_time_str("%Y-%m-%d %H:%M:%S") rainbond_app.save()
def download_app_service_group_from_market(self, user, tenant, group_key, group_version): rainbond_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( group_key, group_version) if rainbond_app and rainbond_app.is_complete: return rainbond_app try: rainbond_app = self.down_market_group_app_detail( user, tenant, group_key, group_version, "v2") return rainbond_app except Exception as e: logger.exception(e) logger.error( 'download app_group[{0}-{1}] from market failed!'.format( group_key, group_version)) return None
def __save_import_info(self, tenant_name, 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( app_template["group_key"], app_template["group_version"]) if app: # 覆盖原有应用数据 app.share_team = 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( 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_market_app_template(self, app_templates): template_version = app_templates["template_version"] is_v1 = bool(template_version == "v1") if is_v1: v2_template = template_transform_service.v1_to_v2(app_templates) else: v2_template = app_templates rainbond_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( v2_template["group_key"], v2_template["group_version"]) logger.debug("=========> {0}".format(json.dumps(v2_template))) if rainbond_app: if is_v1: rainbond_app.share_user = v2_template["share_user"] rainbond_app.share_team = v2_template["share_team"] rainbond_app.pic = v2_template["pic"] rainbond_app.describe = v2_template["describe"] rainbond_app.app_template = json.dumps(v2_template) rainbond_app.is_complete = True rainbond_app.update_time = current_time_str( "%Y-%m-%d %H:%M:%S") rainbond_app.save() else: user_name = v2_template.get("publish_user", None) user_id = 0 if user_name: try: user = user_repo.get_user_by_username(user_name) user_id = user.user_id except Exception as e: logger.exception(e) rainbond_app.share_user = user_id rainbond_app.share_team = v2_template.get("publish_team", "") rainbond_app.pic = v2_template.get("pic", rainbond_app.pic) rainbond_app.describe = v2_template.get( "update_note", rainbond_app.describe) rainbond_app.app_template = v2_template["template_content"] rainbond_app.is_complete = True rainbond_app.update_time = current_time_str( "%Y-%m-%d %H:%M:%S") rainbond_app.save()
def get(self, request, *args, **kwargs): """ 组件详情信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 组件别名 required: true type: string paramType: path """ bean = dict() try: # status_map = app_service.get_service_status(self.tenant, self.service) # used_resource = app_service.get_service_resource_with_plugin(self.tenant, self.service, # status_map["status"]) # service_abled_plugins = app_plugin_service.get_service_abled_plugin(self.service) # plugin_list = [p.to_dict() for p in service_abled_plugins] # bean.update(status_map) # bean.update(used_resource) # bean.update({"plugin_list": plugin_list}) service_model = self.service.to_dict() group_map = group_service.get_services_group_name( [self.service.service_id]) group_name = group_map.get(self.service.service_id)["group_name"] group_id = group_map.get(self.service.service_id)["group_id"] service_model["group_name"] = group_name service_model["group_id"] = group_id bean.update({"service": service_model}) tenant_actions = self.user.actions.tenant_actions bean.update({"tenant_actions": tenant_actions}) service_actions = self.user.actions.service_actions bean.update({"service_actions": service_actions}) event_websocket_url = ws_service.get_event_log_ws( self.request, self.service.service_region) bean.update({"event_websocket_url": event_websocket_url}) if self.service.service_source == "market": service_source = service_source_repo.get_service_source( self.tenant.tenant_id, self.service.service_id) if not service_source: result = general_message(200, "success", "查询成功", bean=bean) return Response(result, status=result["code"]) rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( service_source.group_key, service_source.version) if not rain_app: result = general_message(200, "success", "当前云市组件已删除", bean=bean) return Response(result, status=result["code"]) else: bean.update({"rain_app_name": rain_app.group_name}) apps_template = json.loads(rain_app.app_template) apps_list = apps_template.get("apps") for app in apps_list: if app["service_key"] == self.service.service_key: if self.service.deploy_version and int( app["deploy_version"]) > int( self.service.deploy_version): self.service.is_upgrate = True self.service.save() bean.update({"service": service_model}) try: apps_template = json.loads(rain_app.app_template) apps_list = apps_template.get("apps") service_source = service_source_repo.get_service_source( self.service.tenant_id, self.service.service_id) if service_source and service_source.extend_info: extend_info = json.loads( service_source.extend_info) if extend_info: for app in apps_list: if "service_share_uuid" in app: if app["service_share_uuid"] == extend_info[ "source_service_share_uuid"]: new_version = int( app["deploy_version"]) old_version = int(extend_info[ "source_deploy_version"]) if new_version > old_version: self.service.is_upgrate = True self.service.save() service_model[ "is_upgrade"] = True bean.update( {"service": service_model}) elif "service_share_uuid" not in app and "service_key" in app: if app["service_key"] == extend_info[ "source_service_share_uuid"]: new_version = int( app["deploy_version"]) old_version = int(extend_info[ "source_deploy_version"]) if new_version > old_version: self.service.is_upgrate = True self.service.save() service_model[ "is_upgrade"] = True bean.update( {"service": service_model}) except Exception as e: logger.exception(e) if self.service.service_source == AppConstants.DOCKER_COMPOSE: if self.service.create_status != "complete": compose_service_relation = compose_service.get_service_compose_id( self.service) if compose_service_relation: service_model[ "compose_id"] = compose_service_relation.compose_id bean.update({"service": service_model}) bean["is_third"] = False if self.service.service_source == "third_party": bean["is_third"] = True service_endpoints = service_endpoints_repo.get_service_endpoints_by_service_id( self.service.service_id) if service_endpoints: bean["register_way"] = service_endpoints.endpoints_type if service_endpoints.endpoints_type == "api": # 从环境变量中获取域名,没有在从请求中获取 host = os.environ.get('DEFAULT_DOMAIN', request.get_host()) bean["api_url"] = "http://" + host + "/console/" + \ "third_party/{0}".format(self.service.service_id) key_repo = deploy_repo.get_service_key_by_service_id( service_id=self.service.service_id) if key_repo: bean["api_service_key"] = pickle.loads( base64.b64decode( key_repo.secret_key)).get("secret_key") if service_endpoints.endpoints_type == "discovery": # 返回类型和key endpoints_info_dict = json.loads( service_endpoints.endpoints_info) bean["discovery_type"] = endpoints_info_dict["type"] bean["discovery_key"] = endpoints_info_dict["key"] result = general_message(200, "success", "查询成功", bean=bean) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def get(self, request, *args, **kwargs): try: bean = dict() upgrate_version_list = [] # 判断服务状态,未部署的服务不提供升级数据 try: body = region_api.check_service_status( self.service.service_region, self.tenant.tenant_name, self.service.service_alias, self.tenant.enterprise_id) bean = body["bean"] status = bean["cur_status"] except Exception as e: logger.exception(e) status = "unKnow" if status == "undeploy": result = general_message(200, "success", "查询成功", bean=bean, list=upgrate_version_list) return Response(result, status=result["code"]) if self.service.service_source != "market": return Response(general_message( 400, "non-cloud installed applications require no judgment", "非云市安装的应用无需判断"), status=400) # 获取组对象 group_obj = tenant_service_group_repo.get_group_by_service_group_id( self.service.tenant_service_group_id) if group_obj: # 获取内部市场对象 rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( group_obj.group_key, group_obj.group_version) if not rain_app: result = general_message(200, "success", "当前云市应用已删除") return Response(result, status=result["code"]) else: apps_template = json.loads(rain_app.app_template) apps_list = apps_template.get("apps") for app in apps_list: if app["service_key"] == self.service.service_key: if app["deploy_version"] > self.service.deploy_version: self.service.is_upgrate = True self.service.save() try: apps_template = json.loads(rain_app.app_template) apps_list = apps_template.get("apps") service_source = service_source_repo.get_service_source( self.service.tenant_id, self.service.service_id) if service_source and service_source.extend_info: extend_info = json.loads( service_source.extend_info) if extend_info: for app in apps_list: logger.debug( '---------====app===============>{0}'. format(json.dumps(app))) logger.debug( '---------=====extend_info==============>{0}' .format(json.dumps(extend_info))) if app.has_key("service_share_uuid"): if app["service_share_uuid"] == extend_info[ "source_service_share_uuid"]: new_version = int( app["deploy_version"]) old_version = int(extend_info[ "source_deploy_version"]) if new_version > old_version: self.service.is_upgrate = True self.service.save() elif not app.has_key("service_share_uuid" ) and app.has_key( "service_key"): if app["service_key"] == extend_info[ "source_service_share_uuid"]: new_version = int( app["deploy_version"]) old_version = int(extend_info[ "source_deploy_version"]) if new_version > old_version: self.service.is_upgrate = True self.service.save() bean["is_upgrate"] = self.service.is_upgrate except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"]) # 通过group_key获取不同版本的应用市场对象 rain_apps = rainbond_app_repo.get_rainbond_app_by_key( group_obj.group_key) if rain_apps: for r_app in rain_apps: if r_app.version > group_obj.group_version and r_app.version not in upgrate_version_list: upgrate_version_list.append(r_app.version) elif r_app.version == group_obj.group_version and self.service.is_upgrate: upgrate_version_list.append(r_app.version) upgrate_version_list.sort() result = general_message(200, "success", "查询成功", bean=bean, list=upgrate_version_list) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def deploy(self, tenant, service, user, is_upgrade, committer_name=None): code, msg, event = event_service.create_event(tenant, service, user, self.DEPLOY, committer_name) if code != 200: return code, msg, event body = dict() # 默认更新升级 body["action"] = "deploy" service.build_upgrade = False if is_upgrade: body["action"] = "upgrade" service.build_upgrade = True service.deploy_version = datetime.datetime.now().strftime('%Y%m%d%H%M%S') service.save() event.deploy_version = service.deploy_version event.save() clone_url = service.git_url body["deploy_version"] = service.deploy_version body["operator"] = str(user.nick_name) body["event_id"] = event.event_id body["service_id"] = service.service_id envs = env_var_repo.get_build_envs(tenant.tenant_id, service.service_id) body["envs"] = envs kind = self.__get_service_kind(service) service_source = service_source_repo.get_service_source(service.tenant_id, service.service_id) if kind == "build_from_source_code" or kind == "source": body["repo_url"] = clone_url body["branch"] = service.code_version body["server_type"] = service.server_type if service.service_source == "market": try: # 获取组对象 group_obj = tenant_service_group_repo.get_group_by_service_group_id(service.tenant_service_group_id) if group_obj: # 获取内部市场对象 rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version(group_obj.group_key, group_obj.group_version) if rain_app: # 解析app_template的json数据 apps_template = json.loads(rain_app.app_template) apps_list = apps_template.get("apps") if service_source and service_source.extend_info: extend_info = json.loads(service_source.extend_info) for app in apps_list: if app["service_share_uuid"] == extend_info["source_service_share_uuid"]: # 如果是slug包,获取内部市场最新的数据保存(如果是最新,就获取最新,不是最新就获取之前的) share_image = app.get("share_image", None) share_slug_path = app.get("share_slug_path", None) new_extend_info = {} if share_image: if app.get("service_image", None): body["image_url"] = share_image body["user"] = app.get("service_image").get("hub_user") body["password"] = app.get("service_image").get("hub_password") new_extend_info = app["service_image"] if share_slug_path: slug_info = app.get("service_slug") slug_info["slug_path"] = share_slug_path new_extend_info = slug_info body["slug_info"] = new_extend_info # 如果是image,获取内部市场最新镜像版本保存(如果是最新,就获取最新,不是最新就获取之前的, 不会报错) service.cmd = app.get("cmd", "") service.version = app["version"] service.is_upgrate = False service.save() new_extend_info["source_deploy_version"] = app.get("deploy_version") new_extend_info["source_service_share_uuid"] = app.get("service_share_uuid") \ if app.get("service_share_uuid", None)\ else app.get("service_key", "") service_source.extend_info = json.dumps(new_extend_info) service_source.save() except Exception as e: logger.exception('===========000============>'.format(e)) body["image_url"] = service.image if service_source: extend_info = json.loads(service_source.extend_info) if service.is_slug(): body["slug_info"] = extend_info else: body["image_url"] = service.image body["kind"] = kind body["service_alias"] = service.service_alias body["service_name"] = service.service_name body["tenant_name"] = tenant.tenant_name body["enterprise_id"] = tenant.enterprise_id body["lang"] = service.language body["cmd"] = service.cmd if service_source: if service_source.user_name or service_source.password: body["user"] = service_source.user_name body["password"] = service_source.password if service_source.extend_info: extend_info = json.loads(service_source.extend_info) if not service.is_slug(): hub_user = extend_info.get("hub_user", None) hub_password = extend_info.get("hub_password", None) if hub_user or hub_password: body["user"] = hub_user body["password"] = hub_password logger.debug('-------------deploy-----body-------------------->{0}'.format(body)) try: region_api.build_service(service.service_region, tenant.tenant_name, service.service_alias, body) except region_api.CallApiError as e: logger.exception(e) if event: event.message = u"应用构建失败".format(e.message) event.final_status = "complete" event.status = "failure" event.save() return 507, "构建异常", event return 200, "操作成功", event
def get(self, request, *args, **kwargs): """ 应用详情信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 服务别名 required: true type: string paramType: path """ bean = dict() try: # status_map = app_service.get_service_status(self.tenant, self.service) # used_resource = app_service.get_service_resource_with_plugin(self.tenant, self.service, # status_map["status"]) # service_abled_plugins = app_plugin_service.get_service_abled_plugin(self.service) # plugin_list = [p.to_dict() for p in service_abled_plugins] # bean.update(status_map) # bean.update(used_resource) # bean.update({"plugin_list": plugin_list}) service_model = self.service.to_dict() group_map = group_service.get_services_group_name( [self.service.service_id]) group_name = group_map.get(self.service.service_id)["group_name"] group_id = group_map.get(self.service.service_id)["group_id"] service_model["group_name"] = group_name service_model["group_id"] = group_id bean.update({"service": service_model}) tenant_actions = self.user.actions.tenant_actions bean.update({"tenant_actions": tenant_actions}) service_actions = self.user.actions.service_actions bean.update({"service_actions": service_actions}) event_websocket_url = ws_service.get_event_log_ws( self.request, self.service.service_region) bean.update({"event_websocket_url": event_websocket_url}) if self.service.service_source == "market": group_obj = tenant_service_group_repo.get_group_by_service_group_id( self.service.tenant_service_group_id) if not group_obj: result = general_message(200, "success", "查询成功", bean=bean) return Response(result, status=result["code"]) rain_app = rainbond_app_repo.get_rainbond_app_by_key_and_version( group_obj.group_key, group_obj.group_version) if not rain_app: result = general_message(200, "success", "当前云市应用已删除", bean=bean) return Response(result, status=result["code"]) else: apps_template = json.loads(rain_app.app_template) apps_list = apps_template.get("apps") for app in apps_list: if app["service_key"] == self.service.service_key: if app["deploy_version"] > self.service.deploy_version: self.service.is_upgrate = True self.service.save() bean.update({"service": service_model}) if self.service.service_source == AppConstants.DOCKER_COMPOSE: if self.service.create_status != "complete": compose_service_relation = compose_service.get_service_compose_id( self.service) if compose_service_relation: service_model[ "compose_id"] = compose_service_relation.compose_id bean.update({"service": service_model}) result = general_message(200, "success", "查询成功", bean=bean) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def get_rain_bond_app_by_key_and_version(self, group_key, group_version): app = rainbond_app_repo.get_rainbond_app_by_key_and_version( group_key, group_version) if not app: return 404, None return 200, app
def is_group_exist(self, group_key, group_version): if rainbond_app_repo.get_rainbond_app_by_key_and_version( group_key, group_version): return True return False