Bug #21580

Updated by Tomáš Strachota about 3 years ago

Foreman saves compute attributes as a serialized hash that comes directly from the compute attribute form without any pre-processing. Read API returns that hash as is. This approach has several negative side effects. The API response is significantly different from what foreman standardly returns and is quite difficult to use.

Following issues in compute attributes API responses should be fixed:
* fileds containing IDs must be named as "*_id"
* the API must provide "*_name" alternatives for all "*_id" fields (where possible) and vice versa
* memory and storage sizes must be provided in common format and units
* empty strings saved from empty form fields must be mapped to nil
* collections must be consistently returned either as a numbered hash or an array
* field names must be in snake case
* boolean values saved as strings like "1", "0", "true", "false" must be casted to true/false
* nics_attributes vs interfaces_attributes must be consistent