关联issue
背景
当浏览器存在异常时(例如本地缓存不足)可能导致web一键收集失败,此时前端会提示收集失败(下载日志时失败),但是后台操作日志显示收集成功,客户质疑操作日志审计的完整性。
当前web界面进行一键收集有两个步骤,第一步收集日志到tmp目录,第二步是前端将tmp目录下的日志文件下载到本地。其中第二步后端无法感知是否成功,导致操作日志无法被记录,因此需要提供web rest接口供前端记录操作日志,保证用户感知一键收集流程整体成功或者失败。
决策点
决策点1:新增资源协作接口
归属组件:web_backend
资源path: bmc/kepler/LogRecorder/OperationLog【新增】
资源interface:bmc.kepler.LogRecorder.OperationLog【新增】
变化类型:新增方法
应用场景:用于前端进行/UI/Rest/GeneralDownload的操作后,记录对应成功或者失败的操作日志
持久化类型:NA
操作权限:ConfigureSelf
详细描述:
| 方法名称 | 变化类型 | 签名 | 读写权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 |
|---|---|---|---|---|---|---|---|
| Add | 新增方法 | 请求:s | ConfigureSelf | NA | NA | 请求: OperationMsg:要记录到操作日志中的信息 |
OperationMsg:传入空字符串时不记录,限制长度为[1-1024] |
决策点2:新增web-rest接口
uri:/UI/Rest/RecordOperationLog
变化类型:新增uri,系统锁定时支持调用
操作类型:POST
应用场景:用于前端进行/UI/Rest/GeneralDownload的操作后,记录对应成功或者失败的操作日志,前端进行下载操作后,记录的日志格式如下,其中xxx为文件名称:
Download xxx successful/failed
请求体
| 属性名称 | 取值类型 | 取值范围 | 默认值 | 操作权限 | 约束 |
|---|---|---|---|---|---|
| Message | string | 1-1024 | NA | ConfigureSelf | 必传,且不为空字符串 |
评审结论
1、同意新增如下资源协作接口、方法,用于添加操作日志
新增path: bmc/kepler/LogRecorder/OperationLog
新增interface:bmc.kepler.LogRecorder.OperationLog
新增方法:
- Add,用于添加操作日志,请求签名为s,请求参数为操作日志内容,无响应签名,权限为ConfigureSelf
2、同意新增webrest接口/UI/Rest/RecordOperationLog,用于前端添加操作日志。例如,下载文件的操作日志为Download xxx successful/failed,xxx为文件名称
变化类型:新增uri,系统锁定时支持调用
操作类型:POST
权限:ConfigureSelf
参数说明:
- Message,表示操作日志内容,类型为string,长度1~1024,必选参数
遗留问题
Add方法的参数OperationMsg需要添加长度限制,限制长度为[1-1024]