Bug #21580

Compute attributes returned from api need to be normalized

Added by Tomáš Strachota 8 months ago. Updated 6 days ago.

Status:Closed
Priority:Normal
Assignee:Tomáš Strachota
Category:Compute resources
Target version:1.19.0
Difficulty: Team Backlog:
Triaged: Fixed in Releases:
Bugzilla link: Found in Releases:
Pull request:https://github.com/theforeman/foreman/pull/4980, https://github.com/theforeman/foreman/pull/5659

Description

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

Related issues

Related to Foreman - Bug #22037: Compute attributes create and update API miss validations New 12/20/2017
Blocks Hammer CLI - Feature #6344: Commands for read operations around compute profiles and ... Assigned 06/23/2014

Associated revisions

Revision 56de025f
Added by Tomáš Strachota about 1 month ago

Fixes #21580 - normalize compute attributes (#4980)

Normalizes compute attributes in API show actions. For backwards
compatibility reasons this patch adds a new rabl node instead of
replacing 'vm_attrs'.

Revision 0cab9e6b
Added by Tomáš Strachota about 1 month ago

Refs #21580 - require rbvmomi

The compute resource for VMware was using rbvmomi classes wihout
explicitly requiring rbvmomi. That can cause issues in tests.

History

#1 Updated by Tomáš Strachota 8 months ago

  • Blocks Feature #6344: Commands for read operations around compute profiles and attributes added

#2 Updated by Tomáš Strachota 8 months ago

  • Description updated (diff)

#3 Updated by The Foreman Bot 8 months ago

  • Status changed from Assigned to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/4980 added

#4 Updated by Marek Hulán 8 months ago

  • Target version changed from 1.16.2 to 1.16.1

#5 Updated by Marek Hulán 7 months ago

  • Target version changed from 1.16.1 to 238

#6 Updated by Tomáš Strachota 7 months ago

  • Related to Bug #22037: Compute attributes create and update API miss validations added

#7 Updated by Marek Hulán about 1 month ago

  • Legacy Backlogs Release (now unused) set to 353

#8 Updated by Tomáš Strachota about 1 month ago

  • % Done changed from 0 to 100
  • Status changed from Ready For Testing to Closed

#9 Updated by The Foreman Bot about 1 month ago

  • Pull request https://github.com/theforeman/foreman/pull/5659 added

Also available in: Atom PDF