【已评审】编排任务新增OperationApplyTime,支持触发式执行job

背景

硬件发生故障需要更换备件时,需要人工操作,固件升级易出错且效率低。因此希望能够有在备件更换时能自动升级的机制,需要提供触发式执行编排任务的能力。

关联ISSUE

创建和查询Job支持OperationApplyTime

整体方案

任务编排机制中新增OperationApplyTime属性,调用StartUpdate的redfish接口时,会触发所有OperationApplyTime的值为OnStartUpdateRequest的job执行。

评审点

1、新增资源协作属性OperationApplyTime、VisibilityScope
2、资源协作方法CreateJob的请求体Request新增键值
3、新增资源协作方法TriggerJobs
4、查询某一编排任务的redfish接口响应体中新增Oem/openUBMC/OperationApplyTime属性

详细描述

评审点1 新增资源协作属性OperationApplyTime、VisibilityScope

资源协作path: /bmc/kepler/JobService/Jobs/:Id(已有)
资源协作interface: bmc.kepler.JobService.Job(已有)
变化类型:新增属性
属性名称:OperationApplyTime、VisibilityScope
描述:

属性名称 变化类型 签名 可读写 操作权限 持久化 变化通知 属性说明 属性约束 默认值 备注
OperationApplyTime 新增属性 s true Read:ReadOnly
Write: BasicSetting
PoweroffPer true 客户端请求的完成创建、删除或操作的时间。 枚举类型,取值为[“”,“OnStartUpdateRequest”] “” NA
VisibilityScope 新增属性 string true Read:ReadOnly
Write: BasicSetting
PoweroffPer true job数据会在哪些接口中展示 枚举类型,取值为[“Redfish”, “Web”, “Shared”] Shared “Shared”表示job数据在所有接口中均互通展示。
由于sp编排任务的数据不互通,如果任务类型(JobType)取值不为SPDiagnose、SPFWUpdate、SPOSInstall其中的一个,则默认为share,否则根据当前job的Origin属性判断是redfish还是web

评审点2 资源协作方法CreateJob的请求体Request新增键值

资源协作path: /bmc/kepler/JobService/Jobs(已有)
资源协作interface: bmc.kepler.JobService.Jobs(已有)
变化类型:新增请求体的取值
方法:CreateJob
请求体:Request
新增键值如下:

属性名称 变化类型 签名 属性约束 属性说明
OperationApplyTime 新增属性 s 可选参数,枚举类型,取值为[“”, “OnStartUpdateRequest”],不传时默认为空字符串。 客户端请求的完成创建、删除或操作的时间。
VisibilityScope 新增属性 s 可选参数,枚举类型,取值为[“Redfish”, “Web”, “Shared”] job数据会在哪些接口中展示

评审点3 新增资源协作方法TriggerJobs

资源协作path: /bmc/kepler/JobService/Jobs (已有)
资源协作interface: bmc.kepler.JobService.Jobs (已有)
变化类型:新增方法
方法名称:TriggerJobs
操作权限:BasicSetting

方法名称 变化类型 请求签名 响应签名 参数说明 方法约束
TriggerJobs 新增方法 sas as 见下方描述 若是没有符合的job,则抛OperationFailed的错误
"TriggerJobs": {
    "req": {
        "OperationApplyTime": {
            "baseType": "String",
            "description": "待触发执行的Jobs的OperationApplyTime属性,当前仅支持取值:OnStartUpdateRequest",
        }
    },
    "rsp": {
        "JobIds": {
            "baseType": "Array",
            "description": "触发执行的Jobs的Id",
            "items": {
                "baseType": "String"
            }
        }
    },
    "description": "触发并执行对应OperationApplyTime属性的编排任务"
}

评审点4 查询某一编排任务的redfish接口响应体中新增Oem/openUBMC/OperationApplyTime属性

  • 场景:redfish接口的响应体新增属性
  • URI:/redfish/v1/JobService/Jobs/:jobid
  • 变化类型:新增属性
  • 操作类型:GET
  • 应用场景:查询指定编排任务
  • 详细描述
属性名称 属性类型 说明
Oem/openUBMC/OperationApplyTime string 客户端请求的完成创建、删除或操作的时间。

是否准备好AI预审

是

评审结论

已线下审核,同意新增资源协作接口。redfish接口以网管\工具评审会议结论为准

遗留问题

预审答案内容由AI生成,仅供参考:

帖子评审结论:【待评审】编排任务新增OperationApplyTime,支持触发式执行job

帖子相关性:相关(MDB 相关: 内容含强特征: 资源协作)

  • 总评审点数:7
  • MDB 资源协作接口评审点:3
  • Redfish 相关评审点:2
  • 其他评审点:2

总体结果:不通过(3/5 个评审点通过)

评审点 1:新增资源协作属性OperationApplyTime【MDB】

结果:通过

  • 规则合规性检查:通过(28 项检查全部通过)
    • 警告项(建议性):
      规则ID:MDB-REVIEW-003
      级别:建议性
      问题描述:缺少业务背景、消费方/使用场景及影响说明,建议补充。
      处理建议:severity=‘should’ 建议性规则,建议修改以提升规范符合性

评审点 2:资源协作方法CreateJob的请求体Request新增键值【MDB】

结果:通过

  • 规则合规性检查:通过(28 项检查全部通过)
    • 警告项(建议性):
      规则ID:MDB-REVIEW-003
      级别:建议性
      问题描述:缺少变更原因、消费方/使用场景及影响分析,背景信息不够充分。
      处理建议:severity=‘should’ 建议性规则,建议修改以提升规范符合性

      规则ID:MDB-RISK-004
      级别:建议性
      问题描述:涉及升级操作的接口变更未说明风险控制措施,建议补充权限、防误操作或失败恢复说明。
      处理建议:severity=‘should’ 建议性规则,建议修改以提升规范符合性

评审点 3:新增资源协作方法TriggerOnStartUpdateJobs【MDB】

结果:不通过

  • 规则合规性检查:不通过(1/28 项失败)
    • 规则合规性失败项(必须项):
      规则ID:MDB-PROPERTY-014
      级别:必须项
      问题描述:响应签名 a{s} 与 JSON 定义的字符串数组类型不一致,且 a{s} 不是合法的 DBus 签名。
      处理建议:请将表格中的响应签名修正为 as,以匹配 JSON 中定义的字符串数组类型。a{s} 不是合法的 DBus 签名(字典数组需包含键值类型,如 a{sv};字符串数组应为 as)。

    • 警告项(建议性):
      规则ID:MDB-REVIEW-003
      级别:建议性
      问题描述:缺少消费方、变更原因及影响范围说明,背景信息不充分。
      处理建议:severity=‘should’ 建议性规则,建议修改以提升规范符合性

      规则ID:MDB-RISK-004
      级别:建议性
      问题描述:该方法涉及触发更新作业执行,属于强触发场景,虽然说明了操作权限,但未说明防误操作机制及审计日志策略。
      处理建议:severity=‘should’ 建议性规则,建议修改以提升规范符合性

评审点 4:创建编排任务的redfish接口的请求体中新增@Redfish.OperationApplyTime属性【Redfish】

结果:通过

  • URI 示例生成:通过
  • Schema 验证:通过(8 项通过)
    • Schema 来源:DMTF ✓,OEM ✗(实际参与校验:DMTF)
    • 入口 schema 文件:dmtf/Job.v1_0_0.json(DMTF 官方 schema(SchemaFiles/dmtf))
    • Schema 依据:静态校验直接依据:DMTF 官方 schema(SchemaFiles/dmtf)(dmtf/Job.v1_0_0.json)
  • 规则合规性检查:通过(18 项检查全部通过)

评审点 5:查询某一编排任务的redfish接口响应体中新增@Redfish.OperationApplyTime属性【Redfish】

结果:不通过

  • URI 示例生成:通过
  • Schema 验证:不通过(1 项失败)
    • Schema 来源:DMTF ✓,OEM ✗(实际参与校验:DMTF)
    • 入口 schema 文件:dmtf/Job.v1_2_0.json(DMTF 官方 schema(SchemaFiles/dmtf))
    • Schema 依据:静态校验直接依据:DMTF 官方 schema(SchemaFiles/dmtf)(dmtf/Job.v1_2_0.json)
    • [Property Value Error] Property Value Error: Property ‘JobStatus’ value ‘Running’ is not in allowed values: [‘OK’, ‘Warning’, ‘Critical’]
  • 规则合规性检查:不通过(1/18 项失败)
    • 静态验证失败项:
      规则ID:N/A
      级别:Schema
      问题描述:Property Value Error: Property Value Error: Property ‘JobStatus’ value ‘Running’ is not in allowed values: [‘OK’, ‘Warning’, ‘Critical’]
      处理建议:请检查属性 ‘JobStatus’ 是否符合 Redfish 规范