<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Abraham,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Please find enclosed my feedback preceded by [JK]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Given the level of detail and input required, could you please open a Gerrit review in order to get feedback and comments?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">John<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-----Original Message-----<o:p></o:p></p>
<p class="MsoNormal">From: Arce Moreno, Abraham [<a href="mailto:abraham.arce.moreno@intel.com">mailto:abraham.arce.moreno@intel.com</a>]
<o:p></o:p></p>
<p class="MsoNormal">Sent: Tuesday, December 04, 2018 11:48 AM<o:p></o:p></p>
<p class="MsoNormal">To: <a href="mailto:starlingx-discuss@lists.starlingx.io">starlingx-discuss@lists.starlingx.io</a><o:p></o:p></p>
<p class="MsoNormal">Subject: [Starlingx-discuss] API requests: stx-config<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">stx-config team,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Based in some time spent now within stx-config and with the objective to align our REST API Documentation with our REST APIs, we are kindly requesting your comments for questions "?" under each section [ Section ] [Sub Section]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Please assume:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- The require X-Auth-Token is in place to authenticate, only URLs might be shown.<o:p></o:p></p>
<p class="MsoNormal">- StarlingX is configured as Standard Controller: 2 Controllers, 2 Computes.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ Project Information ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The mismatch between documentation [0] and information via API Query is addressed under [3] and [4].<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  ? Heads Up! The description includes the word "interfaces" however as you will find<o:p></o:p></p>
<p class="MsoNormal">    below, "interfaces is also listed in the documentation but not intuitively found as<o:p></o:p></p>
<p class="MsoNormal">    a REST method under the API query output. More information below.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ v1/ ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here we are showing 3 different views of what we are seeing within stx-config<o:p></o:p></p>
<p class="MsoNormal">project:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Our initial "Migration WADL to RST", see history here [1]<o:p></o:p></p>
<p class="MsoNormal">- What we have documented in our "Current Official API Documentation" pages [0]<o:p></o:p></p>
<p class="MsoNormal">- What the "API Query Output" is actually showing with<o:p></o:p></p>
<p class="MsoNormal">  curl -i <a href="http://10.10.10.2:6385/v1/">http://10.10.10.2:6385/v1/</a>...<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ v1/ ] [ Migration WADL to RST ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Migration analysis from WADL to RST format gave us the REST METHODs below to include, we are adding in the second column what it seems to be the match for the valid API REST methods:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  System                                                   > isystems<o:p></o:p></p>
<p class="MsoNormal">  Clusters                                                 > clusters<o:p></o:p></p>
<p class="MsoNormal">  Interfaces                                             > ?  [JK]  v1/iinterfaces<o:p></o:p></p>
<p class="MsoNormal">  Partitions                                              > ! /v1/ihosts/​{host_id}​/partitions || /v1/partitions/​{partition_id}​<o:p></o:p></p>
<p class="MsoNormal">  Volume Groups                                   > ! /v1/ihosts/​{host_id}​/ilvgs || /v1/ilvgs/​{volumegroup_id}​<o:p></o:p></p>
<p class="MsoNormal">  Physical Volumes                                > ! /v1/ihosts/​{host_id}​/ipvs || /v1/ipvs/​{physicalvolume_id}​<o:p></o:p></p>
<p class="MsoNormal">  Ceph Storage Functions                     > ! /v1/ihosts/​{host_id}​/istors || /v1/istors/​{stor_id}​<o:p></o:p></p>
<p class="MsoNormal">  Profiles                                                  > iprofile<o:p></o:p></p>
<p class="MsoNormal">  DNS                                                        > idns<o:p></o:p></p>
<p class="MsoNormal">  NTP                                                        > intp<o:p></o:p></p>
<p class="MsoNormal">  External OAM                                      > iextoam<o:p></o:p></p>
<p class="MsoNormal">  Infrastructure Subnet                        > iinfra<o:p></o:p></p>
<p class="MsoNormal">  DRBD Configuration                           > drbdconfig<o:p></o:p></p>
<p class="MsoNormal">  SNMP Communities                           > icommunity<o:p></o:p></p>
<p class="MsoNormal">  SNMP Trap Destinations                   > itrapdest<o:p></o:p></p>
<p class="MsoNormal">  Devices                                                 > ! /v1/devices/​{device_id}​ || /v1/ihosts/​{host_id}​/pci_devices       [JK] This should be v1/pci_devices/{pci_device_id} || /v1/ihosts/{ihost_id}/pci_devices<o:p></o:p></p>
<p class="MsoNormal">  Service Parameter                              > service_parameter<o:p></o:p></p>
<p class="MsoNormal">  SDN Controllers                                  > sdn_controller<o:p></o:p></p>
<p class="MsoNormal">  Remote Logging                                  > remotelogging<o:p></o:p></p>
<p class="MsoNormal">  Networks                                             > networks<o:p></o:p></p>
<p class="MsoNormal">  Address Pools                                     > addrpools<o:p></o:p></p>
<p class="MsoNormal">  Addresses                                            > addresses<o:p></o:p></p>
<p class="MsoNormal">  Routes                                                  > ! /v1/ihosts/​{host_id}​/routes<o:p></o:p></p>
<p class="MsoNormal">  Storage Backends                               > storage_backend<o:p></o:p></p>
<p class="MsoNormal">  Storage Tiers                                       > ! storage_tiers<o:p></o:p></p>
<p class="MsoNormal">  Controller Filesystem                        > controller_fs<o:p></o:p></p>
<p class="MsoNormal">  Ceph Monitors                                   > ceph_mon<o:p></o:p></p>
<p class="MsoNormal">  System Certificate Configuration    > ! certificate<o:p></o:p></p>
<p class="MsoNormal">  Custom Firewall Rules                      > firewallrules<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  ? Are all the names and API REST methods correctly matched?<o:p></o:p></p>
<p class="MsoNormal">[JK] Added /v1/iinterfaces above for Interfaces.<o:p></o:p></p>
<p class="MsoNormal">No, devices should be pci_devices<o:p></o:p></p>
<p class="MsoNormal">[JK] missing ethernet_ports<o:p></o:p></p>
<p class="MsoNormal">  ? Are all the valid API REST method names correct?<o:p></o:p></p>
<p class="MsoNormal">[JK] See my comment above<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  ? "Interfaces" is listed under v1/ API Version output [2]<o:p></o:p></p>
<p class="MsoNormal">     as an expected service but a REST METHOD match was not found, are we talking<o:p></o:p></p>
<p class="MsoNormal">     about "Interface" one of the following ones:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[JK] This is referring to v1/iinterfaces<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">     1) Is it the "interface_networks" REST method?<o:p></o:p></p>
<p class="MsoNormal">Interface_networks is a separate REST method and allows association of a networks to an iinterfaces<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">     2) Or found under "Profiles" as described under its description:<o:p></o:p></p>
<p class="MsoNormal">          "...This includes interface profiles..."<o:p></o:p></p>
<p class="MsoNormal">     3) Or found under "SDN Controllers" as described under its description:<o:p></o:p></p>
<p class="MsoNormal">         "...SDN manager interface..."<o:p></o:p></p>
<p class="MsoNormal">     4) Or as simple as "Networks" interfaces?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ v1/ ] [ Current Official API Documentation ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The following API REST methods documented under [0] give valid API output:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  - System<o:p></o:p></p>
<p class="MsoNormal">  - Clusters<o:p></o:p></p>
<p class="MsoNormal">  - DNS<o:p></o:p></p>
<p class="MsoNormal">  - NTP<o:p></o:p></p>
<p class="MsoNormal">  - External OAM<o:p></o:p></p>
<p class="MsoNormal">  - Infrastructure Subnet<o:p></o:p></p>
<p class="MsoNormal">  - DRBD Configuration<o:p></o:p></p>
<p class="MsoNormal">  - SNMP Communities<o:p></o:p></p>
<p class="MsoNormal">  - SNMP Trap Destinations<o:p></o:p></p>
<p class="MsoNormal">  - Service Parameter<o:p></o:p></p>
<p class="MsoNormal">  - SDN Controllers<o:p></o:p></p>
<p class="MsoNormal">  - Remote Logging<o:p></o:p></p>
<p class="MsoNormal">  - Networks<o:p></o:p></p>
<p class="MsoNormal">  - Address Pools<o:p></o:p></p>
<p class="MsoNormal">  - Storage Backends<o:p></o:p></p>
<p class="MsoNormal">  - Storage Tiers<o:p></o:p></p>
<p class="MsoNormal">  - Controller Filesystem<o:p></o:p></p>
<p class="MsoNormal">  - Ceph Monitors<o:p></o:p></p>
<p class="MsoNormal">  - System Certificate Configuration<o:p></o:p></p>
<p class="MsoNormal">  - Custom Firewall Rules<o:p></o:p></p>
<p class="MsoNormal">  - Partitions<o:p></o:p></p>
<p class="MsoNormal">  - Volume Groups<o:p></o:p></p>
<p class="MsoNormal">  - Physical Volumes<o:p></o:p></p>
<p class="MsoNormal">  - Ceph Storage Functions<o:p></o:p></p>
<p class="MsoNormal">  - Devices<o:p></o:p></p>
<p class="MsoNormal">  - Addresses<o:p></o:p></p>
<p class="MsoNormal">  - Routes<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The following API REST method documented under [0] has an invalid name:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  - Profiles   Documentation pointing to: /v1/iprofiles<o:p></o:p></p>
<p class="MsoNormal">                     and a valid v1/ endpoint:  <a href="http://10.10.10.2:6385/v1/iprofile">
http://10.10.10.2:6385/v1/iprofile</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  ? Is this a valid Documentation change from "iprofiles" to "iprofile"?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[JKUNG] Yes, this should be updated to 'iprofile' from 'iprofiles'<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[ v1/ ] [ API Query Output ]<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Based in our "[Starlingx-discuss] API requests: stx-ha" [3] we learned the following API REST methods from "System Inventory API v1" are assigned to stx-ha:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  - services<o:p></o:p></p>
<p class="MsoNormal">  - servicenodes<o:p></o:p></p>
<p class="MsoNormal">  - service_groups  [JK] this is servicegroup, not service_groups<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And in our "[Starlingx-discuss] API requests: stx-metal" [4] the following are assigned to stx-metal.  [JK] This is part of a pending user story 2002950.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- lldp_neighbours<o:p></o:p></p>
<p class="MsoNormal">- ihosts<o:p></o:p></p>
<p class="MsoNormal">- icpu<o:p></o:p></p>
<p class="MsoNormal">- lldp_agents<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And now these API REST methods are assigned to stx-config:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  - isystems<o:p></o:p></p>
<p class="MsoNormal">  - clusters<o:p></o:p></p>
<p class="MsoNormal">  - <Interfaces><o:p></o:p></p>
<p class="MsoNormal">  - ! /v1/ihosts/​{host_id}​/partitions || /v1/partitions/​{partition_id}​<o:p></o:p></p>
<p class="MsoNormal">  - ! /v1/ihosts/​{host_id}​/ilvgs || /v1/ilvgs/​{volumegroup_id}​<o:p></o:p></p>
<p class="MsoNormal">  - ! /v1/ihosts/​{host_id}​/ipvs || /v1/ipvs/​{physicalvolume_id}​<o:p></o:p></p>
<p class="MsoNormal">  - ! /v1/ihosts/​{host_id}​/istors || /v1/istors/​{stor_id}​<o:p></o:p></p>
<p class="MsoNormal">  - iprofile<o:p></o:p></p>
<p class="MsoNormal">  - idns<o:p></o:p></p>
<p class="MsoNormal">  - intp<o:p></o:p></p>
<p class="MsoNormal">  - iextoam<o:p></o:p></p>
<p class="MsoNormal">  - iinfra<o:p></o:p></p>
<p class="MsoNormal">  - drbdconfig<o:p></o:p></p>
<p class="MsoNormal">  - icommunity<o:p></o:p></p>
<p class="MsoNormal">  - itrapdest<o:p></o:p></p>
<p class="MsoNormal">  - ! /v1/devices/​{device_id}​ || /v1/ihosts/​{host_id}​/pci_devices<o:p></o:p></p>
<p class="MsoNormal">  - service_parameter<o:p></o:p></p>
<p class="MsoNormal">  - sdn_controller<o:p></o:p></p>
<p class="MsoNormal">  - remotelogging<o:p></o:p></p>
<p class="MsoNormal">  - networks<o:p></o:p></p>
<p class="MsoNormal">  - addrpools<o:p></o:p></p>
<p class="MsoNormal">  - addresses<o:p></o:p></p>
<p class="MsoNormal">  - ! /v1/ihosts/​{host_id}​/routes<o:p></o:p></p>
<p class="MsoNormal">  - storage_backend<o:p></o:p></p>
<p class="MsoNormal">  - ! storage_tiers<o:p></o:p></p>
<p class="MsoNormal">  - controller_fs<o:p></o:p></p>
<p class="MsoNormal">  - ceph_mon<o:p></o:p></p>
<p class="MsoNormal">  - ! certificate<o:p></o:p></p>
<p class="MsoNormal">  - firewallrules<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Leaving the following assigned to other StarlingX components, more to come once we review the remaining StarlingX projects:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  - links<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[JKUNG] These are still currently in stx-config, except, I believe license, upgrade does not apply to StarlingX.  Needs confirmation from storage which ones will continue to be supported (i.e. storage_ceph_external). 
<o:p></o:p></p>
<p class="MsoNormal">  - storage_file<o:p></o:p></p>
<p class="MsoNormal">  - storage_lvm<o:p></o:p></p>
<p class="MsoNormal">  - interface_networks<o:p></o:p></p>
<p class="MsoNormal">  - id<o:p></o:p></p>
<p class="MsoNormal">  - ptp<o:p></o:p></p>
<p class="MsoNormal">  - media_types<o:p></o:p></p>
<p class="MsoNormal">  - upgrade<o:p></o:p></p>
<p class="MsoNormal">  - imemory<o:p></o:p></p>
<p class="MsoNormal">  - storage_ceph_external<o:p></o:p></p>
<p class="MsoNormal"> - health<o:p></o:p></p>
<p class="MsoNormal">  - license<o:p></o:p></p>
<p class="MsoNormal">  - storage_ceph<o:p></o:p></p>
<p class="MsoNormal">  - storage_external<o:p></o:p></p>
<p class="MsoNormal">  - iuser<o:p></o:p></p>
<p class="MsoNormal">  - helm_charts<o:p></o:p></p>
<p class="MsoNormal">  - inode<o:p></o:p></p>
<p class="MsoNormal">  <o:p></o:p></p>
<p class="MsoNormal">  ? Do we need another level of review?<o:p></o:p></p>
<p class="MsoNormal">YES, needs update and re-review.   <o:p></o:p></p>
<p class="MsoNormal">  ? Should we target an update to the documentation in terms of number<o:p></o:p></p>
<p class="MsoNormal">    of services we are documenting comparing the 3 perspectives?<o:p></o:p></p>
<p class="MsoNormal">  ? Is there anything we need to take care of?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks for your initial support.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[0] <a href="https://docs.starlingx.io/api-ref/stx-config/index.html">
https://docs.starlingx.io/api-ref/stx-config/index.html</a><o:p></o:p></p>
<p class="MsoNormal">[1] <a href="https://wiki.openstack.org/wiki/StarlingX/Developer_Guide/API_Documentation#Analysis">
https://wiki.openstack.org/wiki/StarlingX/Developer_Guide/API_Documentation#Analysis</a><o:p></o:p></p>
<p class="MsoNormal">[2] <a href="https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html?expanded=shows-details-for-configuration-api-v1-detail#api-versions">
https://docs.starlingx.io/api-ref/stx-config/api-ref-sysinv-v1-config.html?expanded=shows-details-for-configuration-api-v1-detail#api-versions</a><o:p></o:p></p>
<p class="MsoNormal">[3]<a href="http://lists.starlingx.io/pipermail/starlingx-discuss/2018-November/001868.html">http://lists.starlingx.io/pipermail/starlingx-discuss/2018-November/001868.html</a><o:p></o:p></p>
<p class="MsoNormal">[4] <a href="http://lists.starlingx.io/pipermail/starlingx-discuss/2018-November/002032.html">
http://lists.starlingx.io/pipermail/starlingx-discuss/2018-November/002032.html</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">_______________________________________________<o:p></o:p></p>
<p class="MsoNormal">Starlingx-discuss mailing list<o:p></o:p></p>
<p class="MsoNormal"><a href="mailto:Starlingx-discuss@lists.starlingx.io">Starlingx-discuss@lists.starlingx.io</a><o:p></o:p></p>
<p class="MsoNormal"><a href="http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss">http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>