Setupdata
REST wrapper for setupdata. Provides methods for listing, creating, modifying, and deleting setupdata.
Retrieving the setupdata
Resource URI
Verb
|
URI
|
GET
|
/v1/setupdata
|
Example
JSON Request
GET /v1/setupdata
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{"setupdatas": [{
"status": "Active",
"name":"GG34",
"uuid": "123"
"meta":{
"user":"root"
},
"jsondata":{
.......
}
}]}
Creating the setupdata
Resource URI
Verb
|
URI
|
POST
|
/v1/setupdata
|
Example
JSON Request
POST /v1/setupdata
Accept: application/json
{
"name":"GG34",
"uuid": "123"
"meta":{
"user":"root"
},
"jsondata":{
.......
}
}
JSON Response
201 OK
Content-Type: application/json
{
"status": "Active",
"name":"GG34",
"uuid": "123"
"meta":{
"user":"root"
},
"jsondata":{
.......
}
}
400 Bad Request
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Error"
}
409 CONFLICT
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Error"
}
Retrieving a single setupdata
Resource URI
Verb
|
URI
|
GET
|
/v1/setupdata/(id)
|
Property:
id—The ID of the setupdata that you want to retrieve.
Example
JSON Request
GET /v1/setupdata/123
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"status": "Active",
"name":"GG34",
"uuid": "123"
"meta":{
"user":"root"
},
"jsondata":{
.......
}
}
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Setupdata could not be found."
}
Updating a setupdata
Resource URI
Verb
|
URI
|
PUT
|
/v1/setupdata/(id)
|
Property:
id—The ID of the setupdata that you want to update.
Example
JSON Request
PUT /v1/setupdata/123
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"status": "Active",
"name":"GG34",
"uuid": "123"
"meta":{
"user":"root"
},
"jsondata":{
.......
}
}
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Setupdata could not be found."
}
Deleting a setupdata
Resource URI
Verb
|
URI
|
DELETE
|
/v1/setupdata/(id)
|
Property:
id—The ID of the setupdata that you want to delete.
Example
JSON Request
DELETE /v1/setupdata/123
Accept: application/json
JSON Response
204 NO CONTENT
Returned on success
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Setupdata could not be found."
}
400 BAD REQUEST
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Setupdata cannot be deleted when it is being used by an installation"
}
Install resource
REST wrapper for install. Provides methods for starting, stopping, and viewing the status of the installation process.
Return a list of installation
Resource URI
Example
JSON Request
GET /v1/install
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{"installs": [{
"ceph": "Skipped",
"uuid": "123",
"setupdata": "345",
"vmtpresult": "{
"status": "PASS",
"EXT_NET": []
}",
"baremetal": "Success",
"orchestration": "Success",
"validationstatus": "{
"status": "PASS",
"Software_Validation": [],
"Hardware_Validation": []
}",
"currentstatus": "Completed",
"validation": "Success",
"hostsetup": "Success",
"vmtp": "Skipped"
}]
}
Create an installation
Resource URI
Verb
|
URI
|
POST
|
/v1/install
|
Example
JSON Request
GET /v1/install
Accept: application/js
{
"setupdata": "123",
"stages": [
"validation",
"bootstrap",
"runtimevalidation",
"baremetal",
"orchestration",
"hostsetup",
"ceph",
"vmtp"
]
}
JSON Response
201 CREATED
Content-Type: application/json
{
"ceph": "Skipped",
"uuid": "123",
"setupdata": "345",
"vmtpresult": "{
"status": "PASS",
"EXT_NET": []
}",
"baremetal": "Success",
"orchestration": "Success",
"validationstatus": "{
"status": "PASS",
"Software_Validation": [],
"Hardware_Validation": []
}",
"currentstatus": "Completed",
"validation": "Success",
"hostsetup": "Success",
"vmtp": "Skipped"
}
409 CONFLICT
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Install already exists"
}
Retrieve the installation
Resource URI
Verb
|
URI
|
GET
|
/v1/install/{id}
|
Property:
id—The ID of the installation that you want to retrieve.
Example
JSON Request
GET /v1/install/345
Accept: application/js
JSON Response
200 OK
Content-Type: application/json
{
"ceph": "Skipped",
"uuid": "123",
"setupdata": "345",
"vmtpresult": "{
"status": "PASS",
"EXT_NET": []
}",
"baremetal": "Success",
"orchestration": "Success",
"validationstatus": "{
"status": "PASS",
"Software_Validation": [],
"Hardware_Validation": []
}",
"currentstatus": "Completed",
"validation": "Success",
"hostsetup": "Success",
"vmtp": "Skipped"
}
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Install doesn’t exists"
}
Stop the installation
Resource URI
Verb
|
URI
|
DELETE
|
/v1/install/{id}
|
Property:
id—The ID of the installation that you want to stop.
Example
JSON Request
DELETE /v1/install/345
Accept: application/js
JSON Response
204 NO CONTENT
Content-Type: application/json
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Install doesn’t exists"
}
Nodes
Getting a list of nodes
Resource URI
Example
JSON Request
Get /v1/nodes
Accept: application/js
JSON Response
200 OK
Content-Type: application/json
{
"nodes": [
[
"status": "Active",
"uuid": "456",
"setupdata": "123",
"node_data": "{
"rack_info": {
"rack_id": "RackA"
},
"cimc_info": {
"cimc_ip": "10.10.10.10"
},
"management_ip": "7.7.7.10"
}",
"updated_at": null,
"mtype": "compute",
"install": "345",
"install_logs": "logurl",
"created_at":"2016-0710T06:17:03.761152",
"name": " compute-1"
}
]
}
Add New Nodes
The nodes are in compute or block_storage type. Before adding the nodes to the system, the name of the nodes and other necessary
information like cimc_ip and rackid must be updated in the setupdata object. If the setupdata object is not updated, the post
call does not allow you to add the node.
Resource URI
Example
JSON Request
POST /v1/nodes
Accept: application/js
{
"name" : "compute-5"
}
JSON Response
201 CREATED
Content-Type: application/json
{
"status": "ToAdd",
"uuid": "456",
"setupdata": "123",
"node_data": "{
"rack_info": {
"rack_id": "RackA"
},
"cimc_info": {
"cimc_ip": "10.10.10.10"
},
"management_ip": "7.7.7.10"
}",
"updated_at": null,
"mtype": "compute",
"install": "345",
"install_logs": "logurl",
"created_at":"2016-0710T06:17:03.761152",
"name": " compute-1"
}
Retrieve information about a particular node
Resource URI
Verb
|
URI
|
GET
|
/v1/nodes{id}
|
Property:
id—The ID of the node that you want to retrieve.
Example
JSON Request
POST /v1/nodes
Accept: application/js
JSON Response
200 OK
Content-Type: application/json
{
"status": "Active",
"uuid": "456",
"setupdata": "123",
"node_data": "{
"rack_info": {
"rack_id": "RackA"
},
"cimc_info": {
"cimc_ip": "10.10.10.10"
},
"management_ip": "7.7.7.10"
}",
"updated_at": null,
"mtype": "compute",
"install": "345",
"install_logs": "logurl",
"created_at":"2016-0710T06:17:03.761152",
"name": " compute-1"
}
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Node doesn’t exists"
}
Remove a Node
The node that must be deleted must be removed from the setupdata object. Once the setupdata object is updated, you can safely
delete the node. The node object cannot be deleted until it calls the remove node backend and succeeds.
Resource URI
Verb
|
URI
|
DELETE
|
/v1/nodes{id}
|
Property:
id—The ID of the node that you want to remove.
Example
JSON Request
DELETE /v1/nodes/456
Accept: application/js
JSON Response
204 ACCEPTED
Content-Type: application/json
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Node doesn’t exists"
}
To clear the database and delete the entries in the nodes, the delete API is called with special parameters that are passed
along with the delete request. The JSON parameters are in the following format.
JSON Request
DELETE /v1/nodes/456
Accept: application/js
{
"clear_db_entry":"True"\
}
JSON Response
204 ACCEPTED
Content-Type: application/json
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Node doesn’t exists"
}
Note |
This is done only if the node is deleted from the REST API database. The failure reason of the node must be rectified manually
apart from the API. True is a string and not a boolean in the preceding line.
|
Replace a controller
Resource URI
Verb
|
URI
|
PUT
|
/v1/nodes{id}
|
Property:
id—The ID of the controller that you want to replace.
Example
JSON Request
PUT /v1/nodes/456
Accept: application/js
JSON Response
200 OK
Content-Type: application/json
404 NOT FOUND
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Node doesn’t exists"
}
Offline validation
REST wrapper does the offline validation of setupdata. Rest Wrapper does only the Software Validation of the input setupdata.
Create an offline validation operation
Resource URI
Verb
|
URI
|
POST
|
/v1/offlinevalidation
|
Example
JSON Request
POST /v1/offlinevalidation
Accept: application/json
{
"jsondata": ".. .. .."
}
JSON Response
201 CREATED
Content-Type: application/json
{
"status": "NotValidated",
"uuid": "bb42e4ba-c8b7-4a5c-98b3-1f384aae2b69",
"created_at": "2016-02-03T02:05:28.384274",
"updated_at": "2016-02-03T02:05:51.880785",
"jsondata": "{}",
"validationstatus": {
"status": "PASS",
"Software_Validation": [],
"Hardware_Validation": []
}
}
Retrieve the results of offline validation
Resource URI
Verb
|
URI
|
GET
|
/v1/offlinevalidation
|
Property:
id—The ID of the node you want to retrieve.
Example
JSON Request
GET /v1/offlinevalidation/789
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"status": " ValidationSuccess",
"uuid": "bb42e4ba-c8b7-4a5c-98b3-1f384aae2b69",
"created_at": "2016-02-03T02:05:28.384274",
"updated_at": "2016-02-03T02:05:51.880785",
"jsondata": "{}",
"validationstatus": {
"status": "PASS",
"Software_Validation": [],
"Hardware_Validation": []
}
}
Update
Start an Update Process
Resource URI
Parameters:
Example
JSON Request
curl -sS -X POST --form
"fileupload=@Test/installer.good.tgz" --form
"filename=installer.good.tgz"
https://10.10.10.8445/v1/update
Note |
This curl request is done as a form request.
|
JSON Response
200 OK
Content-Type: application/json
{
"update_logs": "logurl",
"update_status": "UpdateSuccess",
"update_filename": "installer-4579.tgz",
"created_at": "2016-07-10T18:33:52.698656",
"updated_at": "2016-07-10T18:54:56.885083"
}
409 CONFLICT
Content-Type: application/json
{
"debuginfo": null
"faultcode": "Client"
"faultstring": "Uploaded file is not in tar format"
}
Roll back an update
Resource URI
Example
JSON Request
PUT /v1/update
Accept: application/json
{
"action":"rollback"
}
JSON Response
200 OK
Content-Type: application/json
{
"update_logs": "logurl",
"update_status": "ToRollback",
"update_filename": "installer-4579.tgz",
"created_at": "2016-07-10T18:33:52.698656",
"updated_at": "2016-07-10T18:54:56.885083"
}
Commit an update
Resource URI
Example
JSON Request
PUT /v1/update
Accept: application/json
{
"action":"commit"
}
JSON Response
200 OK
Content-Type: application/json
{
"update_logs": "logurl",
"update_status": "ToCommit",
"update_filename": "installer-4579.tgz",
"created_at": "2016-07-10T18:33:52.698656",
"updated_at": "2016-07-10T18:54:56.885083"
}
Retrieve the details of an update
Resource URI
Example
JSON Request
GET /v1/update
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"update_logs": "logurl",
"update_status": "UpdateSuccess",
"update_filename": "installer-4579.tgz",
"created_at": "2016-07-10T18:33:52.698656",
"updated_at": "2016-07-10T18:54:56.885083"
}
Secrets
Retrieve the list of secrets that are associated with the OpenStack Setup
You can retrieve the set of secret password that are associated with the OpenStack setup using the preceding api. This gives
the list of secrets for each service in OpenStack.
Resource URI
Example
JSON Request
GET /v1/secrets
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"HEAT_KEYSTONE_PASSWORD": "xxxx",
"CINDER_KEYSTONE_PASSWORD": "xxxxx",
….
….
"RABBITMQ_PASSWORD": "xxxxx"
}
OpenStack Configs
Retrieve the list of OpenStack configs associated with the OpenStack Setup
You can retrieve the set of OpenStack configs associated with the OpenStack setup using the preceding api. This gives the
current settings of different configs such as verbose logging, debug logging for different OpenStack services.
Resource URI
Verb
|
URI
|
GET
|
/v1/openstack_config
|
Example
JSON Request
GET /v1/openstack_config
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"CINDER_DEBUG_LOGGING": false,
"KEYSTONE_DEBUG_LOGGING": false,
….
….
"NOVA_VERBOSE_LOGGING": true
}
Version
Retrieve the version of the Cisco Virtualized Infrastructure Manager.
Resource URI
Example
JSON Request
GET /v1/version
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{"version": "1.9.1"}
Health of the Management Node
Retrieve the health of the Management node
This API is used to retrieve the health of the management node. It checks various parameters such as partitions, space and
so on.
Resource URI
Example
JSON Request
GET /v1/health
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"status": "PASS",
"BuildNode Validation": {
"Check Docker Pool Settings": {"status": "Pass", "reason": "None"}
….
….
}
}
Hardware Information
REST wrapper to do hardware information of setupdata. This returns the hardware information of all hardware available in the
setupdata.
Create a HWinfo operation
Resource URI
Example
JSON Request
POST /v1/hwinfo
Accept: application/json
{
"setupdata":"c94d7973-2fcc-4cd1-832d-453d66e6b3bf"
}
JSON Response
201 CREATED
Content-Type: application/json
{
"status": "hwinfoscheduled",
"uuid": "928216dd-9828-407b-9739-8a7162bd0676",
"setupdata": "c94d7973-2fcc-4cd1-832d-453d66e6b3bf",
"created_at": "2017-03-19T13:41:25.488524",
"updated_at": null,
"hwinforesult": ""
}
Retrieve the results of Hwinfo Operation
Resource URI
Verb
|
URI
|
GET
|
/v1/hwinfo/{id}
|
Property:
id—The ID of the node you want to query.
Example
JSON Request
GET /v1/hwinfo/789
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
{
"status": "hwinfosuccess",
"uuid": "928216dd-9828-407b-9739-8a7162bd0676",
"setupdata": "c94d7973-2fcc-4cd1-832d-453d66e6b3bf",
"created_at": "2017-03-19T13:41:25.488524",
"updated_at": "2017-03-19T13:42:05.087491",
"hwinforesult": "{\"172.29.172.73\": {\"firmware\": …………..
…………
……………..
}
Release mapping Information
This api is used to see the list of Features included and list of options which can be reconfigured in the Openstack Setup.
Retrieve the release mapping information
Resource URI
Verb
|
URI
|
GET
|
/v1/releasemapping
|
JSON Request
GET /v1/releasemapping
Accept: application/json
JSON Response
200 OK
Content-Type: application/json
[
{
"SWIFTSTACK": {
"feature_status": true,
],
"desc": "swift stack feature"
}
},……..
…………..
}
POST Install operations
The following are the post install operations that can be carried on after the OpenStack installation is carried out successfully.
It uses a common api. Following is an Example:
-
reconfigure,
-
reconfigure -regenerate passwords
-
reconfigure -setpasswords,setopenstack_configs,
-
check-fernet-keys
-
period-rotate-fernet-keys
-
resync-fernet-keys
-
rotate-fernet-keys
Create a post install operation
Resource URI
Example
JSON Request
POST /v1/misc
Accept: application/json
{"action": {"reconfigure": true}}
JSON Response
201 CREATED
Content-Type: application/json
{
"uuid": "7e30a671-bacf-4e3b-9a8f-5a1fd8a46733",
"created_at": "2017-03-19T14:03:39.723914",
"updated_at": null,
"operation_status": "OperationScheduled",
"operation_logs": "",
"operation_name": "{"reconfigure": true}"
}
Retrieve a status of the post install operation
Resource URI
Example
JSON Request
GET /v1/misc
Accept: application/json
JSON Response
201 CREATED
Content-Type: application/json
{
"uuid": "7e30a671-bacf-4e3b-9a8f-5a1fd8a46733",
"created_at": "2017-03-19T14:03:39.723914",
"updated_at": "2017-03-19T14:03:42.181180",
"operation_status": "OperationRunning",
"operation_logs": "xxxxxxxxxxxxxxxxx",
"operation_name": "{\"reconfigure\": true}"
}
In VIM Rest APIs exist to support NFVBench, query hardware information and to get a list of optional and mandatory features
that the pod supports.
Following are the API details:
NFVBench Network Performance Testing
Create NFVBench Run
Starts the network performance test with provided configuration.
REST API To Create Fixed Rate Test
Verb
|
URI
|
Post
|
v1/nfvbench/ create_ndr_pdr_test
|
Example
JSON Request
POST Request URL
/v1/nfvbench/create_fixed_rate_test
JSON Request:
{“nfvbench_request”:
{
"duration_sec": 20,
"traffic_profile": [
{
"name": "custom",
"l2frame_size": [
"64",
"IMIX",
"1518"
]
}
],
"traffic": {
"bidirectional": true,
"profile": "custom"
},
"flow_count": 1000
}
}
JSON Response
201 CREATED
Content-Type: application/json
{
"status": "not_run",
"nfvbench_request":
‘{
"duration_sec": 20,
"traffic_profile": [
{
"name": "custom",
"l2frame_size": [
"64",
"IMIX",
"1518"
]
}
],
"traffic": {
"bidirectional": true,
"profile": "custom"
},
"flow_count": 1000
}’,
"created_at": "2017-08-16T06:14:54.219106",
"updated_at": null,
"nfvbench_result": "",
"test_name": "Fixed_Rate_Test"
}
Status Polling
Polling of NFVbench run status which is one of nfvbench_running, nfvbench_failed, nfvbench_completed.
Resource URI
Verb
|
URI
|
GET
|
v1/nfvbench/<test_name>
|
REST API To Get Fixed Rate Test Result
GET Request URL
/v1/upgrade/get_fixed_rate_test_result
JSON Response:
Check If NFVbench Test is running
200 OK
Content-Type: application/json
{
"status": "nfvbench_running",
"nfvbench_request": '{"traffic": {"bidirectional": true, "profile": "custom"},
"rate": "1000000pps",
"traffic_profile": [{"l2frame_size": ["1518"], "name": "custom"}], "duration_sec": 60, "flow_count": 1000}',
"nfvbench_result": ""
"created_at": "2017-05-30T21:40:40.394274",
"updated_at": "2017-05-30T21:40:41.367279",
}
Check If NFVbench Test is completed
200 OK
Content-Type: application/json
{
"status": "nfvbench_completed",
"nfvbench_request": '{"traffic": {"bidirectional": true, "profile": "custom"},
"rate": "1000000pps",
"traffic_profile": [{"l2frame_size": ["1518"], "name": "custom"}], "duration_sec": 60, "flow_count": 1000}',
"nfvbench_result": '{"status": "PROCESSED", "message": {"date": "2017-08-15 23:15:04", "nfvbench_version": "0.9.3.dev2", ….}
"created_at": "2017-05-30T21:40:40.394274",
"updated_at": "2017-05-30T22:29:56.970779",
}
REST API to create NDR/PDR Test
POST Request URL
/v1/nfvbench/create_ndr_pdr_test
Accept: application/json
{“nfvbench_request”:
{
"duration_sec": 20,
"traffic_profile": [
{
"name": "custom",
"l2frame_size": [
"64",
"IMIX",
"1518"
]
}
],
"traffic": {
"bidirectional": true,
"profile": "custom"
},
"flow_count": 1000
}
}
JSON Response
201 CREATED
Content-Type: application/json
{
"status": "not_run",
“nfvbench_request”:
‘{
"duration_sec": 20,
"traffic_profile": [
{
"name": "custom",
"l2frame_size": [
"64",
"IMIX",
"1518"
]
}
],
"traffic": {
"bidirectional": true,
"profile": "custom"
},
"flow_count": 1000
}’
"created_at": "2017-08-16T07:18:41.652891",
"updated_at": null,
"nfvbench_result": "",
"test_name": "NDR_PDR_Test"
}
REST API To Get NDR/PDR Test Results
GET Request URL
/v1/ nfvbench/get_ndr_pdr_test_result
JSON Response:
If NFVbench NDR/PDR test is running
200 OK
Content-Type: application/json
{
"status": "nfvbench_running",
"nfvbench_request": '{"duration_sec": 20,
"traffic": {"bidirectional": true, "profile": "custom"},
"traffic_profile": [{"l2frame_size": ["64", "IMIX", "1518"], "name": "custom"}], "flow_count": 1000}',
"nfvbench_result": ""
"created_at": "2017-08-16T07:18:41.652891",
"updated_at": "2017-09-30T22:29:56.970779",
}
If NFVbench NDR/PDR test is completed
200 OK
Content-Type: application/json
{
"status": "nfvbench_completed",
"nfvbench_request": '{"duration_sec": 20,
"traffic": {"bidirectional": true, "profile": "custom"},
"traffic_profile": [{"l2frame_size": ["64", "IMIX", "1518"], "name": "custom"}], "flow_count": 1000}',
"nfvbench_result": '{"status": "PROCESSED",...}'
"created_at": "2017-08-16T07:18:41.652891",
"updated_at": "2017-09-30T22:29:56.970779",
}
REST API to Get Node Hardware Information
Rest API helps you to get the hardware information of all the nodes in the POD through CIMC/UCSM.
GET Request URL
/v1/hwinfo
Output Response
{
"hwinforesult": "{"control-server-2": {"memory": {"total_memory": "131072"},
"firmware": {"serial_number": "FCH1905V16Q", "fw_model": "UCSC-C220-M4S"},
"cimc_ip": "172.31.230.100", "storage": {"num_storage": 4},
"cisco_vic_adapters": {"product_name": "UCS VIC 1225"},
"cpu": {"number_of_cores": "24"}, "power_supply": {"power_state": "on"}}
…
}
REST API to Get Mandatory Features Mapping
POST Request URL
/v1/releasemapping/mandatory_features_mapping
JSON Response:
{
"mandatory": {
"networkType": {
"C": {
"feature_status": true,
"values": [{"name": "VXLAN/Linux Bridge", "value": "VXLAN/Linux Bridge"},],
"insight_label": "Tenant Network",
"desc": "Tenant Network"
},
"B": {
"feature_status": true,
"values": [{"name": "VXLAN/Linux Bridge", "value": "VXLAN/Linux Bridge"},],
"insight_label": "Tenant Network",
"desc": "Tenant Network"
}
},
"cephMode": {
"all": {
"feature_status": true,
"values": [{"name": "Central", "value": "Central"},],
"insight_label": "Ceph Mode",
"desc": "Ceph Mode"
}
},
"podType": {
"C": {
"feature_status": true,
"values": [{"name": "Fullon", "value": "fullon"},],
"insight_label": "POD Type",
"desc": "POD Type"
},
"B": {
"feature_status": true,
"values": [{"name": "Fullon", "value": "fullon"},],
"insight_label": "POD Type",
"desc": "POD Type"
}
},
"installMode": {
"all": {
"feature_status": true,
"values": [{"name": "Connected", "value": "connected"}, ],
"insight_label": "Install Mode",
"desc": "Install Mode"
}
}
},
"platformType": [{"name": "B-series", "value": "B"}, {"name": "C-series", "value": "C"}],
"postinstalllinks": {
"view_cloudpulse": {"alwayson": true, "feature_status": true, "platformtype": "all", "insight_label": "Run VMTP", "desc": "Cloudpluse"},
"password_reconfigure": {"alwayson": true, "feature_status": true, "platformtype": "all", "insight_label": "Reconfigure Passwords", "desc": "Reconfigure Passwords"}
}
}
REST API to Get Optional Features Mapping
POST Request URL
/v1/releasemapping/optional_features_mapping
JSON Response:
[
{
"SWIFTSTACK": {
"feature_status": true,
"insight_label": "Swiftstack",
"repeated_redeployment": true,
"reconfigurable": ["cluster_api_endpoint", "reseller_prefix", "admin_password", "protocol"],
"desc": "swift stack feature"
}
},
{
"heat": {
"feature_status": true,
"insight_label": "Heat",
"repeated_redeployment": false,
"reconfigurable": ["all"],
"desc": "Openstack HEAT service"
}
},
….. other features
]
Cloud sanity information
REST wrapper to run cloud-sanity test suites. The cloud-sanity extension to the VIM REST API enables support for managing
cloud-sanity test actions
Create a cloud-sanity test
Verb
|
URI
|
Post
|
/v1/cloud-sanity/create
|
Example
JSON Request
POST /v1/cloudsanity/create
Accept: application/json
'{"cloudsanity_request": {"command": "create",
"action": "test",
"test_name": "cephmon",
"uuid": ""}}'
test_name can be all,management,control,compute,cephmon,cephosd
JSON Response
201 Created
{
'cloudsanity_request': "{u'action': u'test', u'command': u'create', u'uuid': '5dff1662-3d33-4901-808d-479927c01dde',
u'test_name': u'cephmon'}",
'cloudsanity_result': '',
'created_at': '2018-01-26T20:32:20.436445',
'status': 'not_run',
'test_name': 'cephmon',
'updated_at': ''
}
List cloud-sanity test results
Verb
|
URI
|
GET
|
/v1/cloud-sanity
|
JSON Request
GET /v1/cloudsanity
JSON Response
200 OK
{ '0b91746f-90b4-4355-a748-727c2e5c59c5': { 'action': 'test',
'created_at': '2018-01-25 12:08:22',
'status': 'cloudsanity_completed',
'test_name': 'management',
'uuid': '0b91746f-90b4-4355-a748-727c2e5c59c5'},
'5695cb31-39e4-4be2-9dee-09e7daffc2e7': { 'action': 'test',
'created_at': '2018-01-25 12:03:06',
'status': 'cloudsanity_completed',
'test_name': 'compute',
'uuid': '5695cb31-39e4-4be2-9dee-09e7daffc2e7'},
'5dff1662-3d33-4901-808d-479927c01dde': { 'action': 'test',
'created_at': '2018-01-26 20:32:20',
'status': 'cloudsanity_completed',
'test_name': 'cephmon',
'uuid': '5dff1662-3d33-4901-808d-479927c01dde'},
'7946255d-df58-4432-b729-20cf16eb5ba5': { 'action': 'test',
'created_at': '2018-01-25 12:05:56',
'status': 'cloudsanity_completed',
'test_name': 'cephosd',
'uuid': '7946255d-df58-4432-b729-20cf16eb5ba5'},
'797d79ba-9ee0-4e11-9d9e-47791dd05e07': { 'action': 'test',
'created_at': '2018-01-25 12:05:11',
'status': 'cloudsanity_completed',
'test_name': 'cephmon',
'uuid': '797d79ba-9ee0-4e11-9d9e-47791dd05e07'},
'962e2c8e-c7b0-4e24-87c1-528cad84002c': { 'action': 'test',
'created_at': '2018-01-26 18:52:31',
'status': 'cloudsanity_completed',
'test_name': 'control',
'uuid': '962e2c8e-c7b0-4e24-87c1-528cad84002c'},
'd0111530-ee3b-45df-994c-a0917fd18e11': { 'action': 'test',
'created_at': '2018-01-26 18:46:23',
'status': 'cloudsanity_completed',
'test_name': 'control',
'uuid': 'd0111530-ee3b-45df-994c-a0917fd18e11'}}
List specific cloud-sanity test results
Verb
|
URI
|
GET
|
/v1/cloud-sanity/list/?test_name={all,management,
control,compute,cephmon,cephosd}
|
JSON Request
GET /v1/cloudsanity/list/?test_name=cephmon
Accept: application/json
JSON Response
200 OK
{ '5dff1662-3d33-4901-808d-479927c01dde': { 'action': 'test',
'created_at': '2018-01-26 20:32:20',
'status': 'cloudsanity_completed',
'test_name': 'cephmon',
'uuid': '5dff1662-3d33-4901-808d-479927c01dde'},
'797d79ba-9ee0-4e11-9d9e-47791dd05e07': { 'action': 'test',
'created_at': '2018-01-25 12:05:11',
'status': 'cloudsanity_completed',
'test_name': 'cephmon',
'uuid': '797d79ba-9ee0-4e11-9d9e-47791dd05e07'}}
Show cloud-sanity test results
Verb
|
URI
|
GET
|
/v1/cloud-sanity/show/?uuid=<uuid>
|
JSON Request
GET /v1/cloudsanity/show/?uuid=d0111530-ee3b-45df-994c-a0917fd18e11
JSON Response
200 OK
{ 'action': 'test',
'cloudsanity_request':
"{u'action': u'test',
u'command': u'create',
u'uuid': 'd0111530-ee3b-45df-994c-a0917fd18e11',
u'test_name': u'control'}",
'cloudsanity_result':
'{"status": "PROCESSED",
"message": {"status": "Pass",
"message": "[PASSED] Cloud Sanity Control Checks Passed",
"results": {"control": {"ping_all_controller_nodes": "PASSED",
"check_rabbitmq_is_running": "PASSED",
"check_rabbitmq_cluster_status": "PASSED",
"check_nova_service_list": "PASSED",
"ping_internal_vip": "PASSED",
"disk_maintenance_raid_health": "PASSED",
"check_mariadb_cluster_size": "PASSED",
"disk_maintenance_vd_health": "PASSED"}}}}',
'created_at': '2018-01-26 18:46:23',
'status': 'cloudsanity_completed',
'test_name': 'control',
'updated_at': '2018-01-26 18:47:58',
'uuid': 'd0111530-ee3b-45df-994c-a0917fd18e11'}
Delete cloud-sanity test results
Verb
|
URI
|
DELETE
|
/v1/cloud-sanity/delete/?uuid=<uuid>
|
JSON Request
GET /v1/cloudsanity/delete/?uuid=444aa4c8-d2ba-4379-b035-0f47c686d1c4
JSON Response
200 OK
{
"status": "deleted",
"message": "UUID 444aa4c8-d2ba-4379-b035-0f47c686d1c4 deleted from database",
"uuid": "444aa4c8-d2ba-4379-b035-0f47c686d1c4",
"error": "None"
}
Disk Maintenance information
REST wrapper to query information about RAID disks on Pod nodes. This returns the RAID disk information of all or a selection
of RAID disks available in the Pod.
The disk management extension to the VIM REST API enables support for Disk Management actions
Create a Check disk operation
Resource URI
Verb
|
URI
|
POST
|
/v1/diskmgmt/check_disks
|
Example
JSON Request
POST /v1/diskmgmt/check_disks Accept: application/json
'{"diskmgmt_request": {"command": "create",
"action": "check-disks",
"role": "control",
"locator": "False",
"json_display": "False",
"servers": "", "uuid": ""}}'
JSON Response
201 Created
Content-Type: application/json
{
'action': 'check-disks',
'created_at': '2018-03-08T02:03:18.170849+00:00',
'diskmgmt_request': "{u'uuid': '0729bdea-cc19-440f-8339-ab21e76be84b',
u'json_display': u'False',
u'servers': u'',
u'locator': u'False',
u'role': u'control',
u'action': u'check-disks',
u'command': u'create'}",
'diskmgmt_result': '',
'status': 'not_run',
'updated_at': 'None'
}
Create a replace disk operation
Verb
|
URI
|
POST
|
/v1/diskmgmt/replace_disks
|
Example
JSON Request
POST /v1/diskmgmt/replace_disks
Accept: application/json
'{"diskmgmt_request": {"command": "create",
"action": "replace-disks",
"role": "control",
"locator": "False",
"json_display": "False",
"servers": "", "uuid": ""}}'
JSON Response
201 Created
Content-Type: application/json
{
"status": "not_run",
"diskmgmt_request": "{u'uuid': 'cb353f41-6d25-4190-9386-330e971603c9',
u'json_display': u'False',
u'servers': u'',
u'locator': u'False',
u'role': u'control',
u'action': u'replace-disks',
u'command': u'create'}",
"created_at": "2018-03-09T12:43:41.289531+00:00",
"updated_at": "",
"diskmgmt_result": "",
"action": "replace-disks"}
List check disk operation
Verb
|
URI
|
GET
|
/v1/diskmgmt/list/?action=
{check-disks,replace-disks
\&role={all,management,control,compute}
|
Example
JSON Request
GET /v1/diskmgmt/list/?action=check-disks\&role=all
JSON Response
200 OK
Content-Type: application/json
{
'0be7a55a-37fe-43a1-a975-cbf93ac78893': { 'action': 'check-disks',
'created_at': '2018-03-05 14:45:45+00:00',
'role': 'compute',
'status': 'diskmgmt_completed',
'uuid': '0be7a55a-37fe-43a1-a975-cbf93ac78893'},
'861d4d73-ffee-40bf-9348-13afc697ee3d': { 'action': 'check-disks',
'created_at': '2018-03-05 14:44:47+00:00',
'role': 'control',
'status': 'diskmgmt_completed',
'uuid': '861d4d73-ffee-40bf-9348-13afc697ee3d'},
'cdfd18c1-6346-47a2-b0f5-661305b5d160': { 'action': 'check-disks',
'created_at': '2018-03-05 14:43:50+00:00',
'role': 'all',
'status': 'diskmgmt_completed',
'uuid': 'cdfd18c1-6346-47a2-b0f5-661305b5d160'}
}
}
Show a completed diskmgmt operation
Verb
|
URI
|
GET
|
v1/diskmgmt/show/?uuid=<uuid>
|
Example
JSON Request
GET /v1/diskmgmt/show/?uuid=d24036c6-4557-4c12-8695-a92f6f9315ed
JSON Response
200 OK
Content-Type: application/json
{ 'action': 'check-disks',
'created_at': '2018-03-07 21:46:41+00:00',
'diskmgmt_request': "{u'uuid': 'd24036c6-4557-4c12-8695-a92f6f9315ed',
u'json_display': False,
u'servers': u'f24-michigan-micro-2',
u'locator': False,
u'role': u'compute',
u'action': u'check-disks',
u'command': u'create'}",
'diskmgmt_result': '{"status": "PROCESSED", "message": ["{\'Overall_Status\': \'PASS\', \'Result\': {\'fcfg_disks_results_list\': [], \'spare_disks_results_list\': [], \'raid_results_list\': [{\'RAID level\': \'RAID1\', \'Disk Med\': \'HDD\', \'server\': \'7.7.7.6\', \'RAID type\': \'HW\', \'host\': \'f24-michigan-micro-2\', \'role\': \'block_storage control compute\', \'VD health\': \'Optl\', \'Num VDs\': 1, \'Num PDs\': 8, \'RAID health\': \'Opt\'}], \'bad_disks_results_list\': [], \'rbld_disks_results_list\': [], \'add_as_spares_disks_results_list\': []}}"]}',
'role': 'compute',
'status': 'diskmgmt_completed',
'updated_at': '2018-03-07 21:47:35+00:00',
'uuid': 'd24036c6-4557-4c12-8695-a92f6f9315ed'
}
Delete a completed diskmgmt operation
Verb
|
URI
|
DELETE
|
v1/diskmgmt/delete/?uuid=<uuid>
|
Example
JSON Request
DELETE /v1/diskmgmt/delete/?uuid=d24036c6-4557-4c12-8695-a92f6f9315ed
JSON Response
200 OK
Content-Type: application/json
{
"status": "deleted",
"message": "UUID d24036c6-4557-4c12-8695-a92f6f9315ed deleted from database",
"uuid": "d24036c6-4557-4c12-8695-a92f6f9315ed",
"error": "None"
}
OSD Maintenance information
REST wrapper to query information about OSD on Pod storage nodes. This returns to the OSD status information of all or a selection
of OSDs available in the Pod.
Create a OSD disk operation
Verb
|
URI
|
POST
|
/v1/osdmgmt/check_osds
|
Example
JSON Request
POST /v1/osdmgmt/osdmgmt/check_osds
'{"osdmgmt_request": {"command": "create",
"action": "check-osds",
"locator": "False",
"json_display": "False",
"servers": "",
"osd": "None",
"uuid": ""}}'
JSON Response
201 Created
Content-Type: application/json
{
'action': 'check-osds',
'created_at': '2018-03-08T21:26:15.329195+00:00',
'osdmgmt_request': "{u'uuid': '9c64ee52-bed5-4b69-91a2-d589411dd223', u'json_display': u'False', u'servers': u'', u'locator': u'False', u'command': u'create', u'action': u'check-osds', u'osd': u'None'}",
'osdmgmt_result': '',
'status': 'not_run',
'updated_at': 'None'
}
Create a replace OSD operation
Verb
|
URI
|
POST
|
v1/osdmgmt/replace_osd
|
Example
JSON Request
POST /v1/osdmgmt/replace_osd
Accept: application/json
'{"osdmgmt_request": {"command": "create",
"action": "replace-osd",
"locator": "False",
"json_display": "False",
"servers": "f24-michigan-micro-1",
"osd": "osd.9",
"uuid": ""}}'
JSON Response
201 Created
Content-Type: application/json
{
"status": "not_run",
"osdmgmt_request": "{u'uuid': '5140f6fb-dca3-4801-8c44-89b293405310', u'json_display': u'False', u'servers': u'f24-michigan-micro-1', u'locator': u'False', u'command': u'create', u'action': u'replace-osd', u'osd': u'osd.9'}",
"created_at": "2018-03-09T15:07:10.731220+00:00",
"updated_at": null,
"action": "replace-osd",
"osdmgmt_result": ""
}
}
List check OSD operation
Verb
|
URI
|
GET
|
v1/osdmgmt/list/?action=
{check-osds,replace-osd}
|
Example
JSON Request
GET /v1/osdmgmt/list/?action=check-osds
JSON Response
200 OK
Content-Type: application/json
{
'4efd0be8-a76c-4bc3-89ce-142de458d844': { 'action': 'check-osds',
'created_at': '2018-03-08 21:31:01+00:00',
'status': 'osdmgmt_running',
'uuid': '4efd0be8-a76c-4bc3-89ce-142de458d844'},
'5fd4f9b5-786a-4a21-a70f-bffac70a3f3f': { 'action': 'check-osds',
'created_at': '2018-03-08 21:11:13+00:00',
'status': 'osdmgmt_completed',
'uuid': '5fd4f9b5-786a-4a21-a70f-bffac70a3f3f'},
'9c64ee52-bed5-4b69-91a2-d589411dd223': { 'action': 'check-osds',
'created_at': '2018-03-08 21:26:15+00:00',
'status': 'osdmgmt_completed',
'uuid': '9c64ee52-bed5-4b69-91a2-d589411dd223'}
}
}
Show a completed osdmgmt operation
Verb
|
URI
|
GET
|
v1/osdmgmt/show/?uuid=<uuid>
|
Example
JSON Request
GET /v1/osdmgmt/show/?uuid=9c64ee52-bed5-4b69-91a2-d589411dd223
JSON Response
200 OK
Content-Type: application/json
{
'action': 'check-osds',
'created_at': '2018-03-08 21:26:15+00:00',
'osdmgmt_request': "{u'uuid': '9c64ee52-bed5-4b69-91a2-d589411dd223', u'json_display': u'False', u'servers': u'', u'locator': u'False', u'command': u'create', u'action': u'check-osds', u'osd': u'None'}",
'osdmgmt_result': '{"status": "PROCESSED", "message": ["{\'Overall_Status\': \'PASS\', \'Result\': { ommitted for doc }}]}',
'status': 'osdmgmt_completed',
'updated_at': '2018-03-08 21:27:16+00:00',
'uuid': '9c64ee52-bed5-4b69-91a2-d589411dd223'
}
}
Delete a completed osdmgmt operation
Verb
|
URI
|
DELETE
|
v1/osdmgmt/delete/?uuid=<uuid>
|
Example
JSON Request
DELETE /v1/osdmgmt/delete/?uuid=9c64ee52-bed5-4b69-91a2-d589411dd223
JSON Response
200 OK
Content-Type: application/json
{
'error': 'None',
'message': 'UUID 9c64ee52-bed5-4b69-91a2-d589411dd223 deleted from database',
'status': 'deleted',
'uuid': '9c64ee52-bed5-4b69-91a2-d589411dd223'
}
}
Hardware Management Utility
REST wrapper to control the execution of or query information from the hardware validation utility.
Create a Validate Operation
Verb
|
URI
|
POST
|
/v1/hardwaremgmt/validate
|
JSON Request
POST /v1/hardwaremgmt/validate
'{"hwmgmt_request": {"command": "create",
"action": "validate",
"hosts": "None",
"file": "None",
"feature_list": "all",
"uuid": ""}}'
feature_list is a comma separated list of valid features for the given POD
JSON Reponse
201 Created
Content-Type: application/json
{
'action': 'validate',
'created_at': '2018-03-08T22:01:22.195232+00:00',
'hwmgmt_request': "{u'feature_list': u'all', u'command': u'create', u'file': None, u'action': u'validate', u'hosts': None, u'uuid': '89e094d8-b246-4620-afca-ba3529385cac'}",
'hwmgmt_result': '',
'status': 'not_run',
'updated_at': 'None'
}
Create a Validate Operation for Failure
Verb
|
URI
|
GET
|
/v1/hardwaremgmt/resolve_failures
|
JSON Request
POST /v1/hardwaremgmt/resolve_failures
{
"hwmgmt_request": {
"command": "create",
"action": "resolve-failures",
"hosts": "None",
"file": "None",
"feature_list": "all",
"uuid": ""}
}
feature_list is a comma separated list of valid features for the given POD
JSON Response
201 Created
Content-Type: application/json
{
"status": "not_run",
"created_at": "2018-03-09T15:47:36.503712+00:00",
"hwmgmt_request": "{u'feature_list': u'all', u'command': u'create', u'file': None, u'action': u'resolve-failures', u'hosts': None, u'uuid': '49dc1dc9-3170-4f68-b152-0f99bd19f7b1'}",
"updated_at": "",
"action": "resolve-failures",
"hwmgmt_result": ""
}
Create a Validate Operation
Verb
|
URI
|
GET
|
v1/hardwaremgmt/list
|
JSON Request
GET /v1/hardwaremgmt/list
JSON Response
200 OK
Content-Type: application/json
{ '89e094d8-b246-4620-afca-ba3529385cac': { 'action': 'validate',
'created_at': '2018-03-08 22:01:22+00:00',
'feature_list': 'all',
'status': 'hardwaremgmt_completed',
'uuid': '89e094d8-b246-4620-afca-ba3529385cac'},
'9f70e872-a888-439a-8661-2d2f36a4f4b1': { 'action': 'validate',
'created_at': '2018-03-08 20:34:32+00:00',
'feature_list': 'all',
'status': 'hardwaremgmt_completed',
'uuid': '9f70e872-a888-439a-8661-2d2f36a4f4b1'}
}
Show a completed hardwaremgmt operation
Verb
|
URI
|
GET
|
/v1/hardwaremgmt/show
/?uuid=<uuid>
|
JSON Request
GET /v1/hardwaremgmt/show/?uuid=9f70e872-a888-439a-8661-2d2f36a4f4b
JSON Response
200 OK
Content-Type: application/json
{
'action': 'validate',
'created_at': '2018-03-08 20:34:32+00:00',
'feature_list': 'all',
'hwmgmt_request': "{u'feature_list': u'all', u'hosts': None, u'file': None, u'action': u'validate', u'command': u'create', u'uuid': '9f70e872-a888-439a-8661-2d2f36a4f4b1'}",
'hwmgmt_result': '{"status": "PROCESSED", "message": "Validate of all completed", "results": {"status": "PASS", "results": [{"status": "PASS", "name": "CIMC Firmware Version Check", "err": null}, {"status": "PASS", "name": "All Onboard LOM Ports Check", "err": null}, {"status": "PASS", "name": "PCIe Slot: HBA Status Check", "err": null}, {"status": "PASS", "name": "Server Power Status Check", "err": null}, {"status": "PASS", "name": "NFV Config Check", "err": null}, {"status": "PASS", "name": "Physical Drives Check", "err": null}, {"status": "PASS", "name": "PCIe Slot(s) OptionROM Check", "err": null}, {"status": "PASS", "name": "Intel Network Adapter Check", "err": null}]}}',
'status': 'hardwaremgmt_completed',
'updated_at': '2018-03-08 20:38:02+00:00',
'uuid': '9f70e872-a888-439a-8661-2d2f36a4f4b1'
Delete a completed hardwaremgmt operation
Verb
|
URI
|
DELETE
|
/v1/hardwaremgmt/delete/?uuid=<uuid>
|
JSON Request
DELETE /v1/hardwaremgmt/delete/?uuid=9f70e872-a888-439a-8661-2d2f36a4f4b1
JSON Response
200 OK
Content-Type: application/json
{
'error': 'None',
'message': 'UUID 9f70e872-a888-439a-8661-2d2f36a4f4b1 deleted from database',
'status': 'deleted',
'uuid': '9f70e872-a888-439a-8661-2d2f36a4f4b1'
}