def record_rollback_app(self, username, release_id, access_token): # operation record extra = json.dumps( dict( access_token=access_token, release_id=release_id, )) logger_client = client.UserActivityLogClient( project_id=self.project_id, user=username, resource_type="helm_app", activity_type="rollback", resource=self.name, resource_id=self.id, extra=extra, description= "Helm App[{app_name}:{app_id}] 回滚, 集群[{cluster_id}], 命名空间[{namespace}]" .format( app_id=self.id, app_name=self.name, namespace=self.namespace, cluster_id=self.cluster_id, )) logger_client.log(activity_status="busy") return logger_client
def update(self, request, project_id): """更新项目信息 """ if not self.can_edit(request, project_id): raise error_codes.CheckFailed("请确认有项目管理员权限,并且项目下无集群", replace=True) data = self.validate_update_project_data(request) access_token = request.user.token.access_token data['updator'] = request.user.username # 添加操作日志 ual_client = client.UserActivityLogClient( project_id=project_id, user=request.user.username, resource_type='project', resource=request.project.project_name, resource_id=project_id, description="更新项目: %s" % request.project.project_name, ) project = paas_cc.update_project_new(access_token, project_id, data) if project.get('code') != 0: ual_client.log_modify(activity_status='failed') raise error_codes.APIError(project.get('message', "更新项目成功")) ual_client.log_modify(activity_status='succeed') project_data = project.get('data') if project_data: project_data['created_at'], project_data['updated_at'] = self.normalize_create_update_time( project_data['created_at'], project_data['updated_at']) # 主动令缓存失效 self.invalid_project_cache(project_id) # 创建或更新依赖服务,包含data、template、helm update_bcs_service_for_project(request, project_id, data) return Response(project_data)
def record_upgrade_app(self, chart_version_id, answers, customs, updator, access_token, valuefile=None, sys_variables=None): # operation record extra = json.dumps(dict( access_token=access_token, chart_version_id=chart_version_id, answers=answers, customs=customs, valuefile=valuefile, updator=updator, sys_variables=sys_variables, )) logger_client = client.UserActivityLogClient( project_id=self.project_id, user=updator, resource_type="helm_app", activity_type="modify", resource=self.name, resource_id=self.id, extra=extra, description=u"Helm App[{app_name}:{app_id}] 升级, 集群[{cluster_id}], 命名空间[{namespace}]".format( app_id=self.id, app_name=self.name, namespace=self.namespace, cluster_id=self.cluster_id, ) ) logger_client.log(activity_status="busy") return logger_client
def setUp(self): self.project_id = "000" self.user = "******" self.client = client.UserActivityLogClient( project_id=self.project_id, user=self.user, resource_type="testcase", )
def record_initialize_app(self, access_token, project_id, cluster_id, namespace_id, namespace, chart_version, answers, customs, creator, updator, valuefile=None, name=None, unique_ns=0, sys_variables=None, valuefile_name=DEFAULT_VALUES_FILE_NAME, **kwargs): # operation record extra = json.dumps( dict( access_token=access_token, name=name, project_id=project_id, cluster_id=cluster_id, namespace_id=namespace_id, namespace=namespace, chart_version=chart_version.id, answers=answers, customs=customs, valuefile=valuefile, creator=creator, updator=updator, unique_ns=unique_ns, sys_variables=sys_variables, valuefile_name=valuefile_name, cmd_flags=kwargs.get("cmd_flags"), )) desc = "create Helm App, chart [{chart_name}:{template_id}], cluster[{cluster_id}], namespace[{namespace}]" desc = desc.format( template_id=chart_version.id, chart_name=chart_version.chart.name, namespace=namespace, cluster_id=cluster_id, ) logger_client = client.UserActivityLogClient( project_id=project_id, user=creator, activity_type="add", resource_type="helm_app", resource=chart_version.name, resource_id=chart_version.id, extra=extra, description=desc, ) logger_client.log(activity_status="busy") return logger_client
def update(self, request, project_id): """更新项目信息 """ if not self.can_edit(request, project_id): raise error_codes.CheckFailed("请确认有项目管理员权限,并且项目下无集群", replace=True) data = self.validate_update_project_data(request) access_token = request.user.token.access_token data['updator'] = request.user.username # 编辑之前项目绑定的业务和调度类型,用户后面判断是否进行相应的操作 pre_cc_app_id = request.project.cc_app_id pre_kind = request.project.kind # 添加操作日志 ual_client = client.UserActivityLogClient( project_id=project_id, user=request.user.username, resource_type='project', resource=request.project.project_name, resource_id=project_id, description="更新项目: %s" % request.project.project_name, ) project = paas_cc.update_project_new(access_token, project_id, data) if project.get('code') != 0: ual_client.log_modify(activity_status='failed') raise error_codes.APIError(project.get('message', "更新项目成功")) ual_client.log_modify(activity_status='succeed') project_data = project.get('data') if project_data: project_data['created_at'], project_data[ 'updated_at'] = self.normalize_create_update_time( project_data['created_at'], project_data['updated_at']) # 主动令缓存失效 self.invalid_project_cache(project_id) # 触发后台任务 self.backend_tasks(request, project_id, data, pre_cc_app_id, pre_kind) return Response(project_data)
def update(self, request, project_id): """更新项目信息 """ if not self.can_edit(request, project_id): raise error_codes.CheckFailed(_("请确认有项目管理员权限,并且项目下无集群")) data = self.validate_update_project_data(request) access_token = request.user.token.access_token data["updator"] = request.user.username # 添加操作日志 ual_client = client.UserActivityLogClient( project_id=project_id, user=request.user.username, resource_type="project", resource=request.project.project_name, resource_id=project_id, description="{}: {}".format(_("更新项目"), request.project.project_name), ) resp = paas_cc.update_project_new(access_token, project_id, data) if resp.get("code") != ErrorCode.NoError: ual_client.log_modify(activity_status="failed") raise error_codes.APIError( _("更新项目信息失败,错误详情: {}").format(resp.get("message"))) ual_client.log_modify(activity_status="succeed") project_data = resp.get("data") if project_data: project_data["created_at"], project_data[ "updated_at"] = self.normalize_create_update_time( project_data["created_at"], project_data["updated_at"]) # 主动令缓存失效 self.invalid_project_cache(project_id) # 创建或更新依赖服务,包含data、template、helm update_bcs_service_for_project(request, project_id, data) return Response(project_data)
def record_initialize_app(self, access_token, project_id, cluster_id, namespace_id, namespace, chart_version, answers, customs, creator, updator, valuefile=None, name=None, unique_ns=0, sys_variables=None): # operation record extra = json.dumps(dict( access_token=access_token, name=name, project_id=project_id, cluster_id=cluster_id, namespace_id=namespace_id, namespace=namespace, chart_version=chart_version.id, answers=answers, customs=customs, valuefile=valuefile, creator=creator, updator=updator, unique_ns=unique_ns, sys_variables=sys_variables, )) logger_client = client.UserActivityLogClient( project_id=project_id, user=creator, activity_type="add", resource_type="helm_app", resource=chart_version.name, resource_id=chart_version.id, extra=extra, description="创建Helm App, 实例化模板集[{chart_name}:{template_id}], 集群[{cluster_id}], 命名空间[{namespace}]".format( template_id=chart_version.id, chart_name=chart_version.chart.name, namespace=namespace, cluster_id=cluster_id, ) ) logger_client.log(activity_status="busy") return logger_client