def save_service_info(self, tenant, service, check_service_info): service_info = check_service_info service.language = service_info.get("language", "") memory = service_info.get("memory", 128) min_cpu = common_services.calculate_cpu(service.service_region, memory) service.min_memory = memory - memory % 32 service.min_cpu = min_cpu # Set the deployment type based on the test results logger.debug("save svc extend_method {0}".format( service_info.get("service_type", ComponentType.stateless_multiple.value))) service.extend_method = service_info.get( "service_type", ComponentType.stateless_multiple.value) args = service_info.get("args", None) if args: service.cmd = " ".join(args) else: service.cmd = "" image = service_info.get("image", None) if image: service_image = image["name"] + ":" + image["tag"] service.image = service_image service.version = image["tag"] envs = service_info.get("envs", None) ports = service_info.get("ports", None) volumes = service_info.get("volumes", None) service_runtime_os = service_info.get("os", "linux") if service_runtime_os == "windows": label_service.set_service_os_label(tenant, service, service_runtime_os) self.__save_compile_env(tenant, service, service.language) # save env self.__save_env(tenant, service, envs) self.__save_port(tenant, service, ports) self.__save_volume(tenant, service, volumes)
def save_service_info(self, tenant, service, check_service_info): service_info = check_service_info service.language = service_info["language"] memory = service_info.get("memory", 128) min_cpu = common_services.calculate_cpu(service.service_region, memory) service.min_memory = memory service.min_cpu = min_cpu args = service_info.get("args", None) if args: service.cmd = " ".join(args) else: service.cmd = "" image = service_info.get("image", None) if image: service_image = image["name"] + ":" + image["tag"] service.image = service_image service.version = image["tag"] library = service_info.get("dependencies", False) procfile = service_info.get("procfile", False) runtime = service_info.get("runtime", False) envs = service_info["envs"] ports = service_info["ports"] volumes = service_info["volumes"] code, msg = self.__save_compile_env(tenant, service, service_info["language"], library, runtime, procfile) if code != 200: return code, msg # 先保存env,再保存端口,因为端口需要处理env code, msg = self.__save_env(tenant, service, envs) if code != 200: return code, msg code, msg = self.__save_port(tenant, service, ports) if code != 200: return code, msg code, msg = self.__save_volume(tenant, service, volumes) if code != 200: return code, msg return 200, "success"
def save_service_info(self, tenant, service, check_service_info): service_info = check_service_info service.language = service_info.get("language", "") memory = service_info.get("memory", 128) min_cpu = common_services.calculate_cpu(service.service_region, memory) service.min_memory = memory service.min_cpu = min_cpu # Set the deployment type based on the test results service.extend_method = "state" if service_info[ "deploy_type"] == "StatefulServiceType" else "stateless" args = service_info.get("args", None) if args: service.cmd = " ".join(args) else: service.cmd = "" image = service_info.get("image", None) if image: service_image = image["name"] + ":" + image["tag"] service.image = service_image service.version = image["tag"] envs = service_info.get("envs", None) ports = service_info.get("ports", None) volumes = service_info.get("volumes", None) code, msg = self.__save_compile_env(tenant, service, service.language) if code != 200: return code, msg # 先保存env,再保存端口,因为端口需要处理env code, msg = self.__save_env(tenant, service, envs) if code != 200: return code, msg code, msg = self.__save_port(tenant, service, ports) if code != 200: return code, msg code, msg = self.__save_volume(tenant, service, volumes) if code != 200: return code, msg return 200, "success"
def put(self, request, plugin_id, *args, **kwargs): """ 启停用应用插件 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 服务别名 required: true type: string paramType: path - name: plugin_id description: 插件ID required: true type: string paramType: path - name: is_switch description: 插件启停状态 required: false type: boolean paramType: form - name: min_memory description: 插件内存 required: false type: boolean paramType: form """ try: if not plugin_id: return Response(general_message(400, "params error", "参数异常"), status=400) is_active = request.data.get("is_switch", True) service_plugin_relation = app_plugin_service.get_service_plugin_relation(self.service.service_id, plugin_id) if not service_plugin_relation: return Response(general_message(404, "params error", "未找到关联插件的构建版本"), status=404) else: build_version = service_plugin_relation.build_version pbv = plugin_version_service.get_by_id_and_version(plugin_id,build_version) # 更新内存和cpu min_memory = request.data.get("min_memory", pbv.min_memory) min_cpu = common_services.calculate_cpu(self.service.service_region, min_memory) data = dict() data["plugin_id"] = plugin_id data["switch"] = is_active data["version_id"] = build_version data["plugin_memory"] = min_memory data["plugin_cpu"] = min_cpu # 更新数据中心数据参数 region_api.update_plugin_service_relation(self.response_region, self.tenant.tenant_name, self.service.service_alias, data) # 更新本地数据 app_plugin_service.start_stop_service_plugin(self.service.service_id, plugin_id, is_active) pbv.min_memory = min_memory pbv.min_cpu = min_cpu pbv.save() result = general_message(200, "success", "操作成功") except Exception, e: logger.exception(e) result = error_message(e.message)
def put(self, request, plugin_id, *args, **kwargs): """ 启停用组件插件 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 组件别名 required: true type: string paramType: path - name: plugin_id description: 插件ID required: true type: string paramType: path - name: is_switch description: 插件启停状态 required: false type: boolean paramType: form - name: min_memory description: 插件内存 required: false type: boolean paramType: form """ if not plugin_id: return Response(general_message(400, "not found plugin_id", "参数异常"), status=400) is_active = request.data.get("is_switch", True) service_plugin_relation = app_plugin_service.get_service_plugin_relation( self.service.service_id, plugin_id) if not service_plugin_relation: return Response(general_message(404, "not found plugin relation", "未找到组件使用的插件"), status=404) else: build_version = service_plugin_relation.build_version pbv = plugin_version_service.get_by_id_and_version( self.tenant.tenant_id, plugin_id, build_version) # 更新内存和cpu memory = request.data.get("min_memory", pbv.min_memory) cpu = common_services.calculate_cpu(self.service.service_region, memory) data = dict() data["plugin_id"] = plugin_id data["switch"] = is_active data["version_id"] = build_version data["plugin_memory"] = int(memory) data["plugin_cpu"] = int(cpu) # 更新数据中心数据参数 region_api.update_plugin_service_relation(self.response_region, self.tenant.tenant_name, self.service.service_alias, data) # 更新本地数据 app_plugin_service.start_stop_service_plugin(self.service.service_id, plugin_id, is_active, cpu, memory) result = general_message(200, "success", "操作成功") return Response(result, status=result["code"])