[Starlingx-discuss] API requests: stx-metal
Arce Moreno, Abraham
abraham.arce.moreno at intel.com
Wed Nov 28 20:24:03 UTC 2018
stx-metal team,
As a result of time spent within stx-metal, we have some initial questions
with respect to documentation and source code so we are kindly requesting your
comments for questions "?" under each section [ Section ] [Sub Section]
Please assume:
- The require X-Auth-Token is in place to authenticate, only URLs might be shown.
- StarlingX is configured as Standard Controller: 2 Controllers, 2 Computes.
[ Project Information ]
When we look at the name and description reported out by
curl -i http://10.10.10.2:6385/
there is a mismatch between documentation [0] and information via API Query:
API Documentation:
Name: StarlingX SysInv API
Description: StarlingX System API allows for the management of physical servers.
This includes inventory collection and configuration of hosts, ports, interfaces, CPUs,
disk, memory, and system configuration.
The API also supports the configuration of the cloud's SNMP interface.
Source Code via API Query:
Name: Titanium SysInv API
Description: Titanium Cloud System API allows for the management of physical servers.
This includes inventory collection and configuration of hosts, ports, interfaces, CPUs,
disk, memory, and system configuration.
The API also supports alarms and fault collection for the cloud itself as well as the
configuration of the cloud's SNMP interface.
? Can you please let us know where the modifications are required? API Documentation
or Source Code?
[ v1/ ]
Here we are showing 3 different views of what we are seeing within stx-metal
project:
- Our initial "Migration WADL to RST", see history here [1]
- What we have documented in our "Current Official API Documentation" pages [0]
- What the "API Query Output" is actually showing with
curl -i http://10.10.10.2:6385/v1/...
[ v1/ ] [ Migration WADL to RST ]
Migration analysis from WADL to RST format gave us the endpoints below to include,
we are adding in the second column what it seems to be the match for the valid
API endpoint name:
Hosts > ihosts
Ports > ports
CPUs > icpu
Memory > imemorys
Disks > idisks
SensorGroup > isensorgroups
Sensor > isensors
LLDP Agents > lldp_agents
LLDP Neighbors > lldp_neighbours
? Are all the names and API nodes correctly matched?
? Are all the valid API node names correct? E.g. imemorys Vs imemories
[ v1/ ] [ Current Official API Documentation ]
Current Official API documentation [0] includes the following 5 endpoints
under "API Versions" v1/ details:
- LLDP Neighbors: http://10.10.10.2:6385/v1/lldp_neighbours/
- Hosts: http://10.10.10.2:6385/v1/ihosts/
- CPUs: http://10.10.10.2:6385/v1/icpu/
- LLDP Agents: http://10.10.10.2:6385/v1/lldp_agents/
- Ports: http://10.10.10.2:6385/v1/iports/
? All of them are valid endpoints except for:
- icpu is not found, the correct working endpoint is:
http://10.10.10.2:6385/v1/icpus/
- iports is not found, the correct working endpoint is:
http://10.10.10.2:6385/v1/ports/
Any objection to make the documentation change?
The following 3 endpoints are not shown under "API Versions" v1/ details but they
have a valid top level v1/ endpoint:
- Memory Documentation pointing to: /v1/ihosts/{host_id}/imemorys
and a valid top level v1/ endpoint: http://10.10.10.2:6385/v1/imemorys/
- SensorGroup Documentation pointing to: /v1/ihosts/{host_id}/isensorgroups
and a valid top level v1/ endpoint: http://10.10.10.2:6385/v1/isensorgroups/
- Sensor Documentation pointing to: /v1/ihosts/{host_id}/isensors
and a valid top level v1/ endpoint: http://10.10.10.2:6385/v1/isensors/
? Since they a valid top level v1/ endpoint, do we need to add them under our
"API Versions" v1/ details documentation [2]?
idisks does not have a valid v1/ endpoint, it is accessed only through v1/ihosts:
- Disks > http://10.10.10.2:6385/v1/ihosts/{host_id}/idisks/
? It seems ok, anything to add here? anything to modify?
[ v1/ ] [ API Query Output ]
API queries output shows these endpoints:
- lldp_neighbours
- ihosts
- icpu
- lldp_agents
Plus additional ones, some other are assigned to other StarlingX repos:
- firewallrules
- addresses
- links
- remotelogging
- ceph_mon
- itrapdest
- iextoam
- intp
- storage_file
- storage_lvm
- interface_networks
- inode
- id
- ptp
- media_types
- servicegroup
- upgrade
- imemory
- networks
- storage_ceph_external
- health
- clusters
- drbdconfig
- icommunity
- helm_charts
- iprofile
- servicenodes
- iinfra
- storage_backend
- controller_fs
- services
- sdn_controller
- addrpools
- license
- service_parameter
- storage_ceph
- idns
- isystems
- storage_external
- iuser
Important!
Focusing on endpoints related to stx-metal, let's take a look at this
v1/ API Query Output and choose "imemory":
"imemory": [
{
"href": "http://10.10.10.2:6385/v1/imemory/",
"rel": "self"
},
{
"href": "http://10.10.10.2:6385/imemory/",
"rel": "bookmark"
}
],
When we query "imemory" endpoint based in the information presented above,
we find this endpoint as not valid, knowing from previous procedures the
endpoint name "imemorys" is the valid one.
? Do we need another level of review?
? Should we target an update to the documentation in terms of number
of services we are documenting comparing the 3 perspectives?
[ v1/ihosts ]
Some fields might be different. API Documentation does not include the field "tboot"
but our API query shows this "tboot" field under each host:
"tboot": "false",
? Is this different since it could have been queried in a AIO Vs a our Controller Storage?
In general:
? Is there any need to go deeper into reviewing the content fo the rest of the endpoints outputs?
We understand this might be a job for the API testing @ Zuul so let us know how can we help from
the documentation perspective.
? Anything else to add? mention? required?
Thanks for your initial support.
[0] https://docs.starlingx.io/api-ref/stx-metal/
[1] https://wiki.openstack.org/wiki/StarlingX/Developer_Guide/API_Documentation#Analysis
[2] https://docs.starlingx.io/api-ref/stx-metal/api-ref-sysinv-v1-metal.html?expanded=shows-details-for-bare-metal-api-v1-detail#api-versions
[3] https://docs.starlingx.io/api-ref/stx-metal/api-ref-sysinv-v1-metal.html?expanded=shows-details-for-bare-metal-api-v1-detail#memory
More information about the Starlingx-discuss
mailing list