Post by fish on May 22, 2019 11:28:33 GMT
Hi,
Chassis can be of ChassisType Row and Rack. These ChassisTypes should be useful for describing the structure/arrangement of ComputerSystem equipment by using the Chassis ContainedBy and Contains properties with links to other Chassis resources.
Assume that a Manager (of ManagerType Service) is managing multiple ComputerSystems (with associated Chassis) that is arranged in Rows of multiple Racks. The Manager should expose a Redfish REST API including the correspond Chassis hierarchy. It is unlikely that this Manager or any hardware in this setup can automatically detect the existence of Racks and how they are arranged in Rows, at least by using any legacy hardware for servers and racks. So Chassis resources for Racks and Rows cannot be automatically created by the Manager (“system created”). And the Manager will likely also not be able to automatically populate the ContainedBy and Contains properties of Chassis for same reason. This means that Chassis for rack and rows would likely need to be added by end-user /client, e.g. doing POST/create operation towards the ChassisCollection resource. But ChassisCollection schemas has "Insertable" Bool="false" (and "Deletable" Bool="false" on Chassis), which should mean that POST/create on this collection and DELETE of Chassis is not allowed. So how could the Chassis of type Row and Rack be used in this scenario, if client/end-user is never allowed to create such Chassis? And Redfish schema modification rules does not allow to add operations to schemas, only to remove them (chapter 11.4 in 1.7.0). I guess one option is to abandon Redfish schema for Chassis and define own OEM schema for “OemChassis” but I would rather use the standard one in this case. Opinions?
Would Redfish consider to change to "Insertable" = “true” (on the Collection) and "Deletable" ="true" on Chassis?
I see a potential problem that the clients should preferably not be able to delete “system created” Chassis resources (automatically created and exposed by the Manager / Redfish service,) such as Chassis of type Sled or Rackmount. But this issue could probably be resolved by some new property “SystemCreated (boolean)” that is False for end-user created Chassis (such as for Raw, Rack), and not allowing DELETE of the SystemCreated Chassis instances. This would also be easy to add as Oem property in the Chassis for implementations that needed it. Other implementations could choose to have conventions that only Chassis with specific ChassisType can be deleted.
Other problem would be that ContainedBy and Contains in Chassis properties are readOnly. But I think updating of these could possibly be handled via (Oem) actions, if it would not be enough to set this at POST/create of the Chassis. (Even if providing full Link/URI to other resource is a little tricky. ) Any opinions on how to handle possible update (“PATCH”) of ContainedBy and Contains after Chassis was created?
BR /Magnus
Chassis can be of ChassisType Row and Rack. These ChassisTypes should be useful for describing the structure/arrangement of ComputerSystem equipment by using the Chassis ContainedBy and Contains properties with links to other Chassis resources.
Assume that a Manager (of ManagerType Service) is managing multiple ComputerSystems (with associated Chassis) that is arranged in Rows of multiple Racks. The Manager should expose a Redfish REST API including the correspond Chassis hierarchy. It is unlikely that this Manager or any hardware in this setup can automatically detect the existence of Racks and how they are arranged in Rows, at least by using any legacy hardware for servers and racks. So Chassis resources for Racks and Rows cannot be automatically created by the Manager (“system created”). And the Manager will likely also not be able to automatically populate the ContainedBy and Contains properties of Chassis for same reason. This means that Chassis for rack and rows would likely need to be added by end-user /client, e.g. doing POST/create operation towards the ChassisCollection resource. But ChassisCollection schemas has "Insertable" Bool="false" (and "Deletable" Bool="false" on Chassis), which should mean that POST/create on this collection and DELETE of Chassis is not allowed. So how could the Chassis of type Row and Rack be used in this scenario, if client/end-user is never allowed to create such Chassis? And Redfish schema modification rules does not allow to add operations to schemas, only to remove them (chapter 11.4 in 1.7.0). I guess one option is to abandon Redfish schema for Chassis and define own OEM schema for “OemChassis” but I would rather use the standard one in this case. Opinions?
Would Redfish consider to change to "Insertable" = “true” (on the Collection) and "Deletable" ="true" on Chassis?
I see a potential problem that the clients should preferably not be able to delete “system created” Chassis resources (automatically created and exposed by the Manager / Redfish service,) such as Chassis of type Sled or Rackmount. But this issue could probably be resolved by some new property “SystemCreated (boolean)” that is False for end-user created Chassis (such as for Raw, Rack), and not allowing DELETE of the SystemCreated Chassis instances. This would also be easy to add as Oem property in the Chassis for implementations that needed it. Other implementations could choose to have conventions that only Chassis with specific ChassisType can be deleted.
Other problem would be that ContainedBy and Contains in Chassis properties are readOnly. But I think updating of these could possibly be handled via (Oem) actions, if it would not be enough to set this at POST/create of the Chassis. (Even if providing full Link/URI to other resource is a little tricky. ) Any opinions on how to handle possible update (“PATCH”) of ContainedBy and Contains after Chassis was created?
BR /Magnus