tree 58161d84ce2a3a9b4ae83af196ae3ee7013ad877
parent 5fd7ba65ac0e49dff95e4a0b334c9a314e870918
author Jayashankar Padath <jayashankar.padath@in.ibm.com> 1566543657 +0530
committer James Feist <james.feist@linux.intel.com> 1575480054 +0000

Redfish: ApplyTime property GET and PATCH support

This change is to GET and PATCH the ApplyTime property using the
UpdateServce redfish schema. GET request can be used to check the value
before initiating the BMC image upload and activation. PATCH request
can be used to update the ApplyTime value.

If the ApplyTime value is Immediate, force-reboot.service gets called
which reboots the BMC. If the ApplyTime value is OnReset, no force reboot
will be triggered and the new BMC image will be functional till the user
decideds to reboot the BMC manually.

Tested:
Changes passed the Redfish-Service-Validator test.

Success Scenarios:
1. If the value of ApplyTime is Immediate (GET request)
GET https://$bmc/redfish/v1/UpdateService
{
  "@odata.context": "/redfish/v1/$metadata#UpdateService.UpdateService",
  "@odata.id": "/redfish/v1/UpdateService",
  "@odata.type": "#UpdateService.v1_2_0.UpdateService",
  "ApplyTime": "Immediate",
  "Description": "Service for Software Update",
  "FirmwareInventory": {
    "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory"
  },
  "HttpPushUri": "/redfish/v1/UpdateService",
  "Id": "UpdateService",
  "Name": "Update Service",
  "ServiceEnabled": true
}

2. PATCH request to change value to OnReset:

PATCH -d '{ "HttpPushUriOptions": { "HttpPushUriApplyTime":
{ "ApplyTime""OnReset"}}}' https://${bmc}/redfish/v1/UpdateService
{
  "@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "Successfully Completed Request",
      "MessageArgs": [],
      "MessageId": "Base.1.4.0.Success",
      "Resolution": "None",
      "Severity": "OK"
    }
  ]
}

Error Scenarios:
1. Test by giving wrong HttpPushUriOptions name
[Given as "HttpPushUriOptions1"]

PATCH -d '{ "HttpPushUriOptions1": { "HttpPushUriApplyTime":
{ "ApplyTime":"Immediate"}}}' https://${bmc}/redfish/v1/UpdateService
{
  "HttpPushUriOptions1@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The property HttpPushUriOptions1 is not in the list of valid properties for the resource.",
      "MessageArgs": [
        "HttpPushUriOptions1"
      ],
      "MessageId": "Base.1.4.0.PropertyUnknown",
      "Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

2. Test by giving wrong HttpPushUriApplyTime name
[Given as "HttpPushUriApplyTime1"]

PATCH -d '{ "HttpPushUriOptions": { "HttpPushUriApplyTime1":
{ "ApplyTime:"Immediate"}}}' https://${bmc}/redfish/v1/UpdateService
{
  "HttpPushUriApplyTime1@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The property HttpPushUriApplyTime1 is not in the list of valid properties for the resource.",
      "MessageArgs": [
        "HttpPushUriApplyTime1"
      ],
      "MessageId": "Base.1.4.0.PropertyUnknown",
      "Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

3. Test by giving wrong ApplyTime name [Given as "ApplyTime1"]
PATCH -d '{ "HttpPushUriOptions": { "HttpPushUriApplyTime":
{ "ApplyTime1":"Immediate"}}}' https://${bmc}/redfish/v1/UpdateService
{
  "ApplyTime1@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The property ApplyTime1 is not in the list of valid properties for the resource.",
      "MessageArgs": [
        "ApplyTime1"
      ],
      "MessageId": "Base.1.4.0.PropertyUnknown",
      "Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

4. Giving wrong ApplyTime value ["Immediat" instead of "Immediate"]
PATCH -d '{ "HttpPushUriOptions": { "HttpPushUriApplyTime":
{ "ApplyTime":"Immediat"}}}' https://${bmc}/redfish/v1/UpdateService
{
  "ApplyTime@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The value Immediat for the property ApplyTime is not in the list of acceptable values.",
      "MessageArgs": [
        "Immediat",
        "ApplyTime"
      ],
      "MessageId": "Base.1.4.0.PropertyValueNotInList",
      "Resolution": "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

5. NULL value given for "HttpPushUriOptions"
PATCH -d '{ "HttpPushUriOptions": ""}' https://${bmc}/redfish/v1/UpdateSrvice
{
  "HttpPushUriOptions@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The value \"\" for the property HttpPushUriOptions is of a different type than the property can accept.",
      "MessageArgs": [
        "\"\"",
        "HttpPushUriOptions"
      ],
      "MessageId": "Base.1.4.0.PropertyValueTypeError",
      "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

6. NULL value given for "HttpPushUriApplyTime"
PATCH -d '{ "HttpPushUriOptions": { "HttpPushUriApplyTime":""}}' https:/${bmc}/redfish/v1/UpdateService
{
  "HttpPushUriApplyTime@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The value \"\" for the property HttpPushUriApplyTime is of a different type than the property can accept.",
      "MessageArgs": [
        "\"\"",
        "HttpPushUriApplyTime"
      ],
      "MessageId": "Base.1.4.0.PropertyValueTypeError",
      "Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

7. NULL value given for "HttpPushUriApplyTime"
PATCH -d '{ "HttpPushUriOptions": { "HttpPushUriApplyTime":{ "ApplyTime":""}}}' https://${bmc}/redfish/v1/UpdateService
{
  "ApplyTime@Message.ExtendedInfo": [
    {
      "@odata.type": "/redfish/v1/$metadata#Message.v1_0_0.Message",
      "Message": "The value  for the property ApplyTime is not in the list of acceptable values.",
      "MessageArgs": [
        "",
        "ApplyTime"
      ],
      "MessageId": "Base.1.4.0.PropertyValueNotInList",
      "Resolution": "Choose a value from the enumeration list that the implementation can support and resubmit the request if the operation failed.",
      "Severity": "Warning"
    }
  ]
}

Signed-off-by: Jayashankar Padath <jayashankar.padath@in.ibm.com>
Change-Id: Icd01bb6c102c0a24285c79ccf4d41fd5fe53f0ed
