DeepOperations
更新时间: 2026/06/29
在Gitcode上查看源码

ResourceDefinition

uris

  • /redfish/v1/{resource}.Deep

properties

名称类型是否只读取值范围/枚举值说明
Membersarraytrue-创建所有资源的结果集合
Members[].@odata.contextstringtrue-创建资源的元数据描述信息
Members[].@odata.idstringtrue-创建资源的访问路径
Members[].@odata.typestringtrue-创建资源的类型
Members[].Idstringtrue-创建资源的唯一标识
Members[].Namestringtrue-创建资源的名称
Members[].Oemobjecttrue-创建资源的自定义属性

supported_methods

  • POST

HTTP methods

POST

命令功能

深操作

说明

Deep POST 支持客户端通过单个操作创建多个资源。在资源集合中创建一个或多个资源以及可选的从属资源。 下面以创建新用户的命令举例说明Deep POST的使用方法,操作过程中所需请求头与请求消息体此处忽略,请在各资源的对应章节查找。

当前不支持创建资源时同时创建从属资源。 仅创建类型的POST接口有深操作,指令(Action)类型的POST接口没有深操作。

BMC300 5.8.0.1及以上版本支持

响应体其他字段请参考各资源的对应章节

命令格式

操作类型:POST URL:https://device_ip/resource.Deep

请求头:

X-Auth-Token: 123456789***********************
Content-Type: header_type

请求消息体:

json
{
  "Members": [
    body_type,
    body_type,
    ... ...
  ]
}

说明

"Members"中的成员数量不超过32个。

请求头参数说明

参见 请求头参数说明

请求体参数说明

参数参数说明取值
resource创建资源使用的接口接口对应的uri,如/redfish/v1/AccountService/Accounts
body_type创建资源对应的请求消息体格式,具体内容请在各资源的对应章节查找json对象类型,取值为创建单个资源时的请求消息体

使用指南

使用Deep POST方法同时创建多个资源的场景下,redfish接口将认为不同的资源创建是不同的操作,因此,只要有一个资源创建成功,则响应码会返回201, 创建失败的属性将在返回报文中以Message的形式报错给用户。 /redfish/v1/SessionService/Sessions与/redfish/v1/UpdateService/FirmwareInventory不支持深操作。

使用实例

请求样例:

http
POST https://device_ip/redfish/v1/AccountService/Accounts.Deep

请求头:

X-Auth-Token: 123456789***********************
Content-Type: application/json

请求消息体:

json
{
  "Members": [
    {
      "Id": "3",
      "UserName": "username3",
      "Password": "password3",
      "RoleId": "Operator"
    },
    {
      "Id": "4",
      "UserName": "username4",
      "Password": "password4",
      "RoleId": "Administrator"
    }
  ]
}

响应样例:

json
{
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount",
      "@odata.id": "/redfish/v1/AccountService/Accounts/3",
      "@odata.type": "#ManagerAccount.v1_0_2.ManagerAccount",
      "Id": "3",
      "Name": "User Account",
      "Password": null,
      "UserName": "username3",
      "RoleId": "Operator",
      "ReauthKey": "null",
      "Locked": false,
      "Enabled": true,
      "Oem": {
        "Public": {
          "AccountInsecurePromptEnabled": true,
          "FirstLoginPolicy": "ForcePasswordReset",
          "MutualAuthClientCert": null,
          "SSHPublicKeyHash": null,
          "LoginInterface": [
            "Redfish",
            "SSH",
            "Local",
            "IPMI",
            "SFTP",
            "SNMP",
            "Web"
          ],
          "SnmpV3AuthProtocol": "SHA256",
          "SnmpV3PrivProtocol": "AES",
          "SnmpV3PrivPasswd": null,
          "SNMPEncryptPwdInit": true,
          "Deleteable": true,
          "DelDisableReason": null,
          "LoginRule": [],
          "PasswordValidityDays": null,
          "Actions": {
            "#Account.ImportMutualAuthClientCert": {
              "target": "/redfish/v1/AccountService/Accounts/3/Oem/Public/Actions/Account.ImportMutualAuthClientCert",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/3/ImportMutualAuthClientCertActionInfo"
            },
            "#Account.DeleteMutualAuthClientCert": {
              "target": "/redfish/v1/AccountService/Accounts/3/Oem/Public/Actions/Account.DeleteMutualAuthClientCert",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/3/DeleteMutualAuthClientCertActionInfo"
            },
            "#Account.ImportSSHPublicKey": {
              "target": "/redfish/v1/AccountService/Accounts/3/Oem/Public/Actions/Account.ImportSSHPublicKey",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/3/ImportSSHPublicKeyActionInfo"
            },
            "#Account.DeleteSSHPublicKey": {
              "target": "/redfish/v1/AccountService/Accounts/3/Oem/Public/Actions/Account.DeleteSSHPublicKey",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/3/DeleteSSHPublicKeyActionInfo"
            }
          }
        }
      },
      "Links": {
        "Role": {
          "@odata.id": "/redfish/v1/AccountService/Roles/Operator"
        }
      }
    },
    {
      "@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount",
      "@odata.id": "/redfish/v1/AccountService/Accounts/4",
      "@odata.type": "#ManagerAccount.v1_0_2.ManagerAccount",
      "Id": "4",
      "Name": "User Account",
      "Password": null,
      "UserName": "username4",
      "RoleId": "Administrator",
      "ReauthKey": "null",
      "Locked": false,
      "Enabled": true,
      "Oem": {
        "Public": {
          "AccountInsecurePromptEnabled": true,
          "FirstLoginPolicy": "ForcePasswordReset",
          "MutualAuthClientCert": null,
          "SSHPublicKeyHash": null,
          "LoginInterface": [
            "Redfish",
            "SSH",
            "Local",
            "IPMI",
            "SFTP",
            "SNMP",
            "Web"
          ],
          "SnmpV3AuthProtocol": "SHA256",
          "SnmpV3PrivProtocol": "AES",
          "SnmpV3PrivPasswd": null,
          "SNMPEncryptPwdInit": true,
          "Deleteable": true,
          "DelDisableReason": null,
          "LoginRule": [],
          "PasswordValidityDays": null,
          "Actions": {
            "#Account.ImportMutualAuthClientCert": {
              "target": "/redfish/v1/AccountService/Accounts/4/Oem/Public/Actions/Account.ImportMutualAuthClientCert",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/4/ImportMutualAuthClientCertActionInfo"
            },
            "#Account.DeleteMutualAuthClientCert": {
              "target": "/redfish/v1/AccountService/Accounts/4/Oem/Public/Actions/Account.DeleteMutualAuthClientCert",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/4/DeleteMutualAuthClientCertActionInfo"
            },
            "#Account.ImportSSHPublicKey": {
              "target": "/redfish/v1/AccountService/Accounts/4/Oem/Public/Actions/Account.ImportSSHPublicKey",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/4/ImportSSHPublicKeyActionInfo"
            },
            "#Account.DeleteSSHPublicKey": {
              "target": "/redfish/v1/AccountService/Accounts/4/Oem/Public/Actions/Account.DeleteSSHPublicKey",
              "@Redfish.ActionInfo": "/redfish/v1/AccountService/Accounts/4/DeleteSSHPublicKeyActionInfo"
            }
          }
        }
      },
      "Links": {
        "Role": {
          "@odata.id": "/redfish/v1/AccountService/Roles/Administrator"
        }
      }
    }
  ]
}

响应码:201