This section provides examples of SuperCluster Virtual Assistant REST APIs that are available at the time of publication. To see the specific APIs available on your SuperCluster, view the REST API catalog on SuperCluster. See Access the REST API Catalog (BUI).
/api/agentrequest/ GET: List all pending Agent Requests (Agent requests encapsulate Start/Stop Domain requests.) RETURNS: Multiple Serialized Agent Request Objects /api/agentrequest/{id} GET: Returns Agent Request matching supplied ID RETURNS: Serialized Agent Request Object
/api/deploymentgroup/ POST Data: { "io_domains": [] } io_domains: List of Integer IODomain IDs to be queued for deployment note: Domains must be in applicable state, as per BUI rules. RETURNS: Serialized IODomain and Deployment Group Object HTTP 200 OK Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 16, "io_domains": [ { "id": 17, "state": 1, "state_str": "Queued for Deployment", "mgmt_hostname": "test" } ], "state_str": "Queued for Deployment", "state": 0, "created": "2018-05-12T13:18:20.965024Z", "owner": 2 } ] /api/deploymentgroup/ GET: List All Deployment Groups RETURNS: Multiple Deployment Group Objects HTTP 200 OK Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 16, "io_domains": [ { "id": 17, "state": 1, "state_str": "Queued for Deployment", "mgmt_hostname": "test" } ], "state_str": "Queued for Deployment", "state": 0, "created": "2018-05-12T13:18:20.965024Z", "owner": 2 }, { ... } ] /api/deploymentgroup/{id}/ GET: Returns Deployment Group with supplied ID. RETURNS: Deployment Group Object HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 16, "io_domains": [ { "id": 17, "state": 1, "state_str": "Queued for Deployment", "mgmt_hostname": "test" } ], "state_str": "Queued for Deployment", "state": 0, "created": "2018-05-12T13:18:20.965024Z", "owner": 2 }
/api/flavour/ GET: Returns all IO Domain Flavours (Domain Types) RETURNS: Multiple Serialized Flavour Objects HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "description": "My Database Domain", "disk_size": 150, "token": "db", "recipes": [ { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }, { "id": 3, "description": "Solaris 11 Application Domain", "disk_size": 100, "token": "11", "recipes": [ { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 2, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 3, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }, { "id": 4, "description": "My Database Zone Domain", "disk_size": 100, "token": "dbz", "recipes": [] } ] /api/flavour/{id}/ GET: Returns IO Domain Flavour which matches supplied ID RETURNS: Serialized Flavour Object HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "description": "My Database Domain", "disk_size": 150, "token": "db", "recipes": [ { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }
/api/health/reports/ GET: Returns all Health Monitor Reports RETURNS: Multiple Serialized Health Monitor Objects (can take a while) HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "records": [ { "id": 2, "state_str": "Pass", "state": 0, "date_run": "2018-04-29T14:09:50.390554Z", "result_text": "{\"results\": []}", "resolved": true, "date_resolved": "2018-04-29T14:09:50.390142Z", "sanity_check": 3, "resolved_by": null }, { "id": 3, "state_str": "Pass", "state": 0, "date_run": "2018-04-29T14:10:04.898457Z", "result_text": "{\"results\": []}", "resolved": true, "date_resolved": "2018-04-29T14:10:04.897516Z", "sanity_check": 13, "resolved_by": null } } ] /api/health/latest/ GET: Returns the latest Health Monitor Report RETURNS: Serialized Health Monitor Object HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "records": [ { "id": 2, "state_str": "Pass", "state": 0, "date_run": "2018-04-29T14:09:50.390554Z", "result_text": "{\"results\": []}", "resolved": true, "date_resolved": "2018-04-29T14:09:50.390142Z", "sanity_check": 3, "resolved_by": null }, { "id": 3, "state_str": "Pass", "state": 0, "date_run": "2018-04-29T14:10:04.898457Z", "result_text": "{\"results\": []}", "resolved": true, "date_resolved": "2018-04-29T14:10:04.897516Z", "sanity_check": 13, "resolved_by": null } }
/api/install_bundle/ GET: Return All Install Bundles (Solaris Large Server/Solaris Minimal Server) RETURNS: Multiple Serialized Install Bundle Objects HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "description": "Solaris Minimal Server", "identifier": "solaris-minimal-server", "active": true } /api/install_bundle/{id}/ GET: Return the Bundle which matches supplied ID RETURNS: Serialized Install Bundle Object HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "description": "Solaris Minimal Server", "identifier": "solaris-minimal-server", "active": true }, { "id": 2, "description": "Solaris Large Server", "identifier": "solaris-large-server", "active": true } ]
/api/iodomain/ GET: Return all IODomains which the user has permission to see RETURNS: Multiple Serialized IO Domain Objects HTTP 200 OK Allow: GET, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "mgmt_ips": [], "ten_g_ips": [], "zfs_ib_ips": [], "exa_ib_ips": [], "vip_ips": [], "resource_allocation": { "id": 1, "cores": [], "memory": [], "virtual_functions": [], "iodrae_token": "-3406869841" }, "flavour": { "id": 1, "description": "My Database Domain", "disk_size": 150, "token": "db", "recipes": [ { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }, "state_str": "Destroyed Domain", "recipe": { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, "root_domains": [ { "mgmt_hostname": "mysys" } ], "iodomainlog_set": [ { "id": 1, "level": "info", "message": "Creation of IO Domain Started.", "created": "2018-04-29T15:44:52.708954Z", "io_domain": 1 }, { "id": 2, "level": "info", "message": "Resources Allocated. Domain is ready for deployment.", "created": "2018-04-29T15:44:52.709522Z", "io_domain": 1 }, { "id": 3, "level": "info", "message": "IO Domain Released", "created": "2018-04-29T16:02:46.719994Z", "io_domain": 1 } ], "rac_cluster_id": -1, "state": -7, "root_domain_num": 1, "owner": 2 }, ... ... ] /api/iodomain/by_hostname/{hostname}/ GET: Return the IODomain whose Management Hostname matches the supplied Hostname RETURNS: Serialized IO Domain Object HTTP 200 OK Allow: GET, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "mgmt_ips": [], "ten_g_ips": [], "zfs_ib_ips": [], "exa_ib_ips": [], "vip_ips": [], "resource_allocation": { "id": 1, "cores": [], "memory": [], "virtual_functions": [], "iodrae_token": "-3406869841" }, "flavour": { "id": 1, "description": "My Database Domain", "disk_size": 150, "token": "db", "recipes": [ { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }, "state_str": "Destroyed Domain", "recipe": { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, "root_domains": [ { "mgmt_hostname": "mysysmgt" } ], "iodomainlog_set": [ { "id": 1, "level": "info", "message": "Creation of IO Domain Started.", "created": "2018-04-29T15:44:52.708954Z", "io_domain": 1 }, { "id": 2, "level": "info", "message": "Resources Allocated. Domain is ready for deployment.", "created": "2018-04-29T15:44:52.709522Z", "io_domain": 1 }, { "id": 3, "level": "info", "message": "IO Domain Released", "created": "2018-04-29T16:02:46.719994Z", "io_domain": 1 } ], "rac_cluster_id": -1, "state": -7, "root_domain_num": 1, "owner": 2 }
/api/iodomain/{id}/ DELETE: Queue the IODomain with supplied ID for destruction. RETURNS: Serialized Deletion Queue Object HTTP 200 OK Allow: GET, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "mgmt_ips": [], "ten_g_ips": [], "zfs_ib_ips": [], "exa_ib_ips": [], "vip_ips": [], "resource_allocation": { "id": 1, "cores": [], "memory": [], "virtual_functions": [], "iodrae_token": "-3406869841" }, "flavour": { "id": 1, "description": "My Database Domain", "disk_size": 150, "token": "db", "recipes": [ { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }, "state_str": "Destroyed Domain", "recipe": { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, "root_domains": [ { "mgmt_hostname": "mysysmgt" } ], "iodomainlog_set": [ { "id": 1, "level": "info", "message": "Creation of IO Domain Started.", "created": "2018-04-29T15:44:52.708954Z", "io_domain": 1 }, { "id": 2, "level": "info", "message": "Resources Allocated. Domain is ready for deployment.", "created": "2018-04-29T15:44:52.709522Z", "io_domain": 1 }, { "id": 3, "level": "info", "message": "IO Domain Released", "created": "2018-04-29T16:02:46.719994Z", "io_domain": 1 } ], "rac_cluster_id": -1, "state": -7, "root_domain_num": 1, "owner": 2 } /api/iodomain/{id} GET: Return the IODomain which matches supplied ID RETURNS: Serialized IODomain Object HTTP 200 OK Allow: GET, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "mgmt_ips": [], "ten_g_ips": [], "zfs_ib_ips": [], "exa_ib_ips": [], "vip_ips": [], "resource_allocation": { "id": 1, "cores": [], "memory": [], "virtual_functions": [], "iodrae_token": "-3406869841" }, "flavour": { "id": 1, "description": "My Database Domain", "disk_size": 150, "token": "db", "recipes": [ { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] }, "state_str": "Destroyed Domain", "recipe": { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, "root_domains": [ { "mgmt_hostname": "mysysmgt" } ], "iodomainlog_set": [ { "id": 1, "level": "info", "message": "Creation of IO Domain Started.", "created": "2018-04-29T15:44:52.708954Z", "io_domain": 1 }, { "id": 2, "level": "info", "message": "Resources Allocated. Domain is ready for deployment.", "created": "2018-04-29T15:44:52.709522Z", "io_domain": 1 }, { "id": 3, "level": "info", "message": "IO Domain Released", "created": "2018-04-29T16:02:46.719994Z", "io_domain": 1 } ], "rac_cluster_id": -1, "state": -7, "root_domain_num": 1, "owner": 2 } /api/iodomain/{id}/action/{action}/ GET: Start/Stop an Iodomain which matches the supplied ID Args: action = 'start' or 'stop' RETURNS: Serialized AgentRequest object /api/iodomain/{id}/freeze/ POST: Freeze IODomain which matches the supplied ID RETURNS: Serialized IODomain Freeze Queue Entry/Deployment Group /api/iodomain/{id}/thaw/ PUT: Thaw IODomain which matches the supplied ID INPUT: physical_domain: <id> #PDOM On which to thaw RETURNS: Serialized IODomain Thaw Queue Entry /api/iodomain/create/ POST: Allocate one or many IODomains and their ScanAddressGroups INPUT: Expanded in Auxilliary file EXAMPLE INPUT: { "domains": [ { "compute_node": 1, "flavour_token": "db", "rac_cluster_id": 10, "mgmt_hostname": "mysysmgt", "network_recipe_id": 1, "recipe_id": 4 } ] } RETURNS: Complex Serializer containing IODomains and Scan Address Group Objects HTTP 201 Created Allow: POST, OPTIONS Content-Type: application/json Vary: Accept { "domains": [ { "id": 1, "compute_node": 1, "mgmt_network_id": 6, "mgmt_hostname": "mysysmgt", "mgmt_ipaddr": "nnn.nnn.nnn.35", "teng_network_id": 7, "teng_hostname": "mysys-client", "teng_ipaddr": "nnn.nnn.nnn.4", "stor_ib_network_id": 8, "stor_ib_hostname": "mysys-storib", "stor_ib_ipaddr": "nnn.nnn.nnnnnn.nnn.nnn.9", "exa_priv_network_id": 9, "exa_priv_hostname": "mysys-priv1", "exa_priv_ipaddr": "nnn.nnn.nnn.7", "vip_hostname": "mysys-vip", "vip_ipaddr": "nnn.nnn.nnn.5", "primary_hostname": "mysys", "flavour_id": 1, "flavour_token": "db", "install_bundle_id": 2, "install_bundle_name": "solaris-large-server", "rac_cluster_id": 10, "network_recipe": { "domain_name": "us.example.com", "name_servers": "nnn.nnn.nnn.197 nnn.nnn.nnn.198", "time_servers": "nnn.nnn.nnn.1 nnn.nnn.nnn.nnn.nnn.nnn.1", "time_zone": "America/Los_Angeles" }, "recipe": { "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2 } } ], "scan_address_groups": [ { "id": 1, "scan_addresses": [ { "ip_address": "nnn.nnn.nnn.6" }, { "ip_address": "nnn.nnn.nnn.7" }, { "ip_address": "nnn.nnn.nnn.8" } ], "scan_hostname": "io-scan-1", "rac_cluster_id": 10 } ], "deployment_group": null } /api/iodomain/create_and_deploy/ POST: Create one or many IODomains and their ScanAddressGroups and return their Deployment Queue Objects INPUT: Expanded in attached file EXAMPLE INPUT: { "domains": [ { "compute_node": 1, "exa_priv_hostname": "mysys-priv1", "flavour_token": "db", "rac_cluster_id": 10, "install_bundle_name": "solaris-minimal-server", "mgmt_hostname": "mysysmgt", "network_recipe": { "domain_name": "us.example.com", "gateway": "nnn.nnn.nnn.1", "name_servers": "nnn.nnn.nnn.197 nnn.nnn.nnn.198", "time_servers": "nnn.nnn.nnn.1 nnn.nnn.nnn.nnn.nnn.nnn.1", "time_zone": "America/Los_Angeles" }, "primary_hostname": "mysys.us.example.com", "recipe_id": 4, "teng_hostname": "mysys-client", "vip_hostname": "mysys-vip" } ] } RETURNS: Complex Serializer containing IODomains and Scan Address Group Objects and created IODomain Deployment Group objects HTTP 201 Created Allow: POST, OPTIONS Content-Type: application/json Vary: Accept { "domains": [ { "id": 2, "compute_node": 1, "mgmt_network_id": 6, "mgmt_hostname": "mysys46", "mgmt_ipaddr": "nnn.nnn.nnn.36", "teng_network_id": 7, "teng_hostname": "mysys-client", "teng_ipaddr": "nnn.nnn.nnn.9", "stor_ib_network_id": 8, "stor_ib_hostname": "mysys-storib", "stor_ib_ipaddr": "nnn.nnn.nnn.10", "exa_priv_network_id": 9, "exa_priv_hostname": "mysys-priv1", "exa_priv_ipaddr": "nnn.nnn.nnn.8", "vip_hostname": "mysys-vip", "vip_ipaddr": "nnn.nnn.nnn.10", "primary_hostname": "mysys", "flavour_id": 1, "flavour_token": "db", "install_bundle_id": 2, "install_bundle_name": "solaris-large-server", "rac_cluster_id": 10, "network_recipe": { "domain_name": "us.example.com", "name_servers": "nnn.nnn.nnn.nnn.nnn.nnn.198", "time_servers": "nnn.nnn.nnn.1 nnn.nnn.nnn.nnn.nnn.nnn.1", "time_zone": "America/Los_Angeles" }, "recipe": { "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2 } } ], "scan_address_groups": [ { "id": 1, "scan_addresses": [ { "ip_address": "nnn.nnn.nnn.6" }, { "ip_address": "nnn.nnn.nnn.7" }, { "ip_address": "nnn.nnn.nnn.8" } ], "scan_hostname": "io-scan-1", "rac_cluster_id": 10 } ], "deployment_group": { "id": 1, "io_domains": [ { "id": 2, "state": 1, "state_str": "Queued for Deployment", "mgmt_hostname": "mysys46" } ], "state_str": "Queued for Deployment", "state": 0, "created": "2018-05-12T13:31:13.217440Z", "owner": 2 } }
/api/ip_address/{id}/ GET: Return IP Address object whose ID matches supplied ID RETURNS: Multiple Serialized IPAddress Objects { "id": 1, "ip_address": "nnn.nnn.nnn.26", "hostname": "mysys-sp0", "allocated": true, "allocated_at_setup": true, "is_scan": false, "is_gateway": false, "order_weight": 1, "network": 1, "tag": null }
/api/network/ GET: Returns All Networks RETURNS: Multiple Serialized Network Objects [ { "id": 6, "start_address": "nnn.nnn.nnn.35", "end_address": "nnn.nnn.nnn.64", "netmask": "255.255.255.0", "default_route": "nnn.nnn.nnn.254", "network_identifier": { "id": 1, "display_name": "Management Network", "internal_name": "management", "description": "The Management (1Gb) Network", "routable": true }, "applies_to_all": true, "accessible_users": [], "accessible_groups": [ 6 ], "ipaddress_set": [ { "ip_address": "nnn.nnn.nnn.35", "hostname": null, "is_scan": false, "allocated": false }, ... ] /api/network/ POST Data: { "start_address": "nnn.nnn.nnn.1", "end_address": "nnn.nnn.nnn.120", #optional "netmask": "255.255.255.0", "default_route": "nnn.nnn.nnn.1", #optional for non-routable nets "network_identifier": 1, "applies_to_all": false, "accessible_users": [], "accessible_groups": [] } network_identifier: Id of a Network Identifier - Note NetworkIdentifier Retrieval REST Interface not yet available. Use manual mapping accessible_users: List of User ID's accessible_groups: Ignored currently RETURNS: Serialized Network Object { "id": 6, "start_address": "nnn.nnn.nnn.35", "end_address": "nnn.nnn.nnn.64", "netmask": "255.255.255.0", "default_route": "nnn.nnn.nnn.254", "network_identifier": { "id": 1, "display_name": "Management Network", "internal_name": "management", "description": "The Management (1Gb) Network", "routable": true }, "applies_to_all": true, "accessible_users": [], "accessible_groups": [ 6 ], "ipaddress_set": [ { "ip_address": "nnn.nnn.nnn.35", "hostname": null, "is_scan": false, "allocated": false }, ... } /api/network/{id}/ GET: Returns a serialized network instance which matches supplied ID Not Found: Should return 404 RETURNS: Serialized Network Object { "id": 6, "start_address": "nnn.nnn.nnn.35", "end_address": "nnn.nnn.nnn.64", "netmask": "255.255.255.0", "default_route": "nnn.nnn.nnn.254", "network_identifier": { "id": 1, "display_name": "Management Network", "internal_name": "management", "description": "The Management (1Gb) Network", "routable": true }, "applies_to_all": true, "accessible_users": [], "accessible_groups": [ 6 ], "ipaddress_set": [ { "ip_address": "nnn.nnn.nnn.35", "hostname": null, "is_scan": false, "allocated": false }, ... }
/api/network/recipe/ GET: Return all Network Recipe Objects RETURNS: Serialized Network Recipe Object HTTP 200 OK Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "name": "default", "domain_name": "us.example.com", "name_servers": "nnn.nnn.nnn.197 nnn.nnn.nnn.198 nnn.nnn.nnn.132", "time_servers": "nnn.nnn.nnn.1", "time_zone": "America/Los_Angeles", "applies_to_all": true, "active": true, "owner": 2 }, ... ... ] /api/network/recipe/ POST: Create a new Network Recipe POST Data: { "name": "", "domain_name": "", "name_servers": "", "time_servers": "", "time_zone": "", "applies_to_all": false, # default "active": false, "users": [] } users: list of user id's who may access this network RETURNS: Serialized New Network Recipe Object /api/network/recipe/{id}/ DELETE: Delete a Network Recipe with supplied ID /api/network/recipe/{id}/ GET: Get a Network Recipe with supplied ID RETURNS: Serialized Network Recipe Object { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } /api/network/recipe/{id}/ PUT: Modify a network recipe with the supplied ID POST Data: { "id": "", "name": "", "domain_name": "", "name_servers": "", "time_servers": "", "time_zone": "", "applies_to_all": false, # default "active": false, "users": [] } users: list of user id's who may access this network RETURNS: Serialized Modified Network Recipe { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }
/api/physicaldomain/ GET: Return all PhysicalDomain (PDOM) Objects RETURNS: Multiple Serialized Physical Domain Objects [ { "id": 1, "internal_name": "ssccn1", "guests": [ { "id": 1, "internal_name": "primary", "host_os": "s11", "host_type": "root", "physical_type": "guest", "virtual_type": "ldom", "state": 400, "primary_interface": "mgmt", "is_control_domain": true, "is_master_control_domain": true, "is_service_domain": false, "rac_id": null, "active": true, "sanity_target": true, "physical_position_index": null, "timing": null, "net_config": 1, "mgmt_interfaces": [ 6 ], "client_interfaces": [ 8 ], "zfs_ib_interfaces": [ 7 ], "exa_ib_interfaces": [], "vip_interfaces": [], "versaboot_interfaces": [ 9, 10 ], "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [ 1, 2, 3, 4, 5, 6 ], "variables": [], "accessible_groups": [], "accessible_users": [], "io_domains": [], "vms": [] }, { "id": 2, "internal_name": "ssccn1-dom1", "host_os": "s11", "host_type": "root", "physical_type": "guest", "virtual_type": "ldom", "state": 400, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": true, "rac_id": null, "active": true, "sanity_target": true, "physical_position_index": null, "timing": null, "net_config": 2, "mgmt_interfaces": [ 11 ], "client_interfaces": [], "zfs_ib_interfaces": [ 12 ], "exa_ib_interfaces": [], "vip_interfaces": [], "versaboot_interfaces": [ 13, 14 ], "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [ 8, 9, 10, 7 ], "variables": [], "accessible_groups": [], "accessible_users": [], "io_domains": [], "vms": [] } ] }, { "id": 2, "internal_name": "ssccn3", "guests": [ { "id": 3, "internal_name": "primary", "host_os": "s11", "host_type": "root", "physical_type": "guest", "virtual_type": "ldom", "state": 400, "primary_interface": "mgmt", "is_control_domain": true, "is_master_control_domain": false, "is_service_domain": false, "rac_id": null, "active": true, "sanity_target": true, "physical_position_index": null, "timing": null, "net_config": 3, "mgmt_interfaces": [ 19 ], "client_interfaces": [], "zfs_ib_interfaces": [ 20 ], "exa_ib_interfaces": [], "vip_interfaces": [], "versaboot_interfaces": [ 21, 22 ], "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [ 1, 2, 3, 4, 5, 6 ], "variables": [], "accessible_groups": [], "accessible_users": [], "io_domains": [], "vms": [] }, { "id": 4, "internal_name": "ssccn3-dom1", "host_os": "s11", "host_type": "root", "physical_type": "guest", "virtual_type": "ldom", "state": 400, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": true, "rac_id": null, "active": true, "sanity_target": true, "physical_position_index": null, "timing": null, "net_config": 4, "mgmt_interfaces": [ 23 ], "client_interfaces": [], "zfs_ib_interfaces": [ 24 ], "exa_ib_interfaces": [], "vip_interfaces": [], "versaboot_interfaces": [ 25, 26 ], "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [ 8, 9, 10, 7 ], "variables": [], "accessible_groups": [], "accessible_users": [], "io_domains": [], "vms": [] } ] }, { "id": 3, "internal_name": "ssccn4", "guests": [ { "id": 5, "internal_name": "primary", "host_os": "s11", "host_type": "root", "physical_type": "guest", "virtual_type": "ldom", "state": 400, "primary_interface": "mgmt", "is_control_domain": true, "is_master_control_domain": false, "is_service_domain": false, "rac_id": null, "active": true, "sanity_target": true, "physical_position_index": null, "timing": null, "net_config": 5, "mgmt_interfaces": [ 28 ], "client_interfaces": [], "zfs_ib_interfaces": [ 29 ], "exa_ib_interfaces": [], "vip_interfaces": [], "versaboot_interfaces": [ 30, 31 ], "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [ 11, 12, 13, 14, 15, 16 ], "variables": [], "accessible_groups": [], "accessible_users": [], "io_domains": [], "vms": [] }, { "id": 6, "internal_name": "ssccn4-dom1", "host_os": "s11", "host_type": "root", "physical_type": "guest", "virtual_type": "ldom", "state": 400, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": true, "rac_id": null, "active": true, "sanity_target": true, "physical_position_index": null, "timing": null, "net_config": 6, "mgmt_interfaces": [ 32 ], "client_interfaces": [], "zfs_ib_interfaces": [ 33 ], "exa_ib_interfaces": [], "vip_interfaces": [], "versaboot_interfaces": [ 34, 35 ], "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [ 17, 18, 19, 20 ], "variables": [], "accessible_groups": [], "accessible_users": [], "io_domains": [], "vms": [] } ] } ]
/api/recipe/ GET: Return All IODomain Recipe Objects RETURNS: Multiple Serialized Recipe Objects HTTP 200 OK Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 2, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 3, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 4, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 5, "name": "Medium", "core_max": 4, "memory_max": 64, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }, { "id": 6, "name": "Large", "core_max": 8, "memory_max": 128, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } ] /api/recipe/ POST: Create a new recipe DATA: { "name": "", "core_max": null, "memory_max": null, "ib_vf_max": null, "xgb_vf_max": null, "applies_to_all": false, "owner": null, "active": false } owner: ID of user who will own this recipe. Defaults to current user. RETURNS: Serialized Recipe Object HTTP 200 OK Allow: GET, PUT, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } /api/recipe/{id}/ DELETE: Deletes the Recipe whose ID matches supplied ID /api/recipe/{id}/ GET: Get the Recipe whose ID matches Supplied ID RETURNS: Serialized Recipe Object HTTP 200 OK Allow: GET, PUT, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true } /api/recipe/{id}/ PUT: Update the Recipe whose ID matches Supplied ID DATA: { "id":"", "name": "", "core_max": null, "memory_max": null, "ib_vf_max": null, "xgb_vf_max": null, "applies_to_all": false, "owner": null, "active": false } RETURNS: Serialized Recipe Object HTTP 200 OK Allow: GET, PUT, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 1, "name": "Small", "core_max": 2, "memory_max": 32, "ib_vf_max": 1, "xgb_vf_max": 2, "applies_to_all": true, "owner": 2, "active": true }
/api/resourceallowance/ GET: List all User Resource Allowances HTTP 200 OK Allow: GET, PUT, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": "", "num_ib_vfs": null, "num_xgb_vfs": null, "num_fc_vfs": null, "num_cores": null, "mem_in_gb": null, "user": null } /api/resourceallowance/ POST: Create a User Resource Allowance DATA: { "num_ib_vfs": null, "num_xgb_vfs": null, "num_fc_vfs": null, "num_cores": null, "mem_in_gb": null, "user": null } user: id of the user to whom this allowance corresponds RETURNS: Serialized Resource Allowance Object HTTP 200 OK Allow: GET, PUT, DELETE, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": "", "num_ib_vfs": null, "num_xgb_vfs": null, "num_fc_vfs": null, "num_cores": null, "mem_in_gb": null, "user": null }
/api/scan_address_group/ GET: List All Scan Address Groups RETURNS: Multiple Serialized Scan Address Group Objects /api/scan_address/group/{id} GET: Return ScanAddressGroup whose ID matches the supplied ID RETURNS: Serialized Scan Address Group Objects
/api/systemlog/ GET: Return All SystemLog Entries (can take a while) RETURNS: Multiple Serialized System Log Objects HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 50, "level": "success", "message": "The user admin logged in successfully from nnn.nnn.nnn.99", "created": "2018-05-12T10:51:30.514744Z" }, { "id": 49, "level": "success", "message": "System Configuration Import Complete.", "created": "2018-05-12T10:48:56.996620Z" }, { "id": 48, "level": "info", "message": "Resource Discovery Complete.", "created": "2018-05-12T10:48:56.970266Z" } ... ]
/api/user/ GET: Return all Users RETURNS: Multiple Serialized Resource Allowance Objects HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 2, "groups": [ { "id": 1, "name": "network_1_owners" }, { "id": 2, "name": "network_2_owners" }, { "id": 3, "name": "network_3_owners" }, { "id": 4, "name": "network_4_owners" }, { "id": 5, "name": "network_5_owners" }, { "id": 6, "name": "network_6_owners" }, { "id": 7, "name": "network_7_owners" }, { "id": 8, "name": "network_8_owners" }, { "id": 9, "name": "network_9_owners" }, { "id": 10, "name": "network_10_owners" } ], "username": "admin", "first_name": "Administrator", "last_name": "", "email": "example@example.com", "is_staff": true, "is_active": true, "user_permissions": [] } ] /api/user/{id}/resourceallowance/ GET: Return the User Allowance for the User whose ID matches the supplied ID RETURNS: Serialized Resource Allowance Object /api/user/{id}/resourceallowance/ PUT: Update the Resource Allowance for the User whose ID matches the supplied ID DATA: { "num_ib_vfs": null, "num_xgb_vfs": null, "num_fc_vfs": null, "num_cores": null, "mem_in_gb": null } RETURNS: Serialized Resource Allowance Object
/api/zone/ HTTP 200 OK Allow: GET Content-Type: application/json\ [ { "id": 2, "mgmt_interfaces": [ { "ip_address": "nnn.nnn.nnn.31", "hostname": "z1", "is_scan": false, "allocated": true } ], "client_interfaces": [ { "ip_address": "nnn.nnn.nnn.215", "hostname": "z1-client1", "is_scan": false, "allocated": true }, { "ip_address": "nnn.nnn.nnn.216", "hostname": "z1-client2", "is_scan": false, "allocated": true } ], "zfs_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.10", "hostname": "z1-storib", "is_scan": false, "allocated": true } ], "exa_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.13", "hostname": "z1-priv1", "is_scan": false, "allocated": true } ], "vip_interfaces": [ { "ip_address": "nnn.nnn.nnn.217", "hostname": "z1-vip", "is_scan": false, "allocated": true } ], "versaboot_interfaces": [], "state_str": "Configured", "accessible_groups": [ { "id": 27, "name": "vm_2_owners" } ], "internal_name": "zone", "host_os": "s11", "host_type": "zone", "physical_type": "guest", "virtual_type": "zone", "state": 350, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": false, "rac_id": 10, "active": true, "sanity_target": false, "physical_position_index": null, "timing": null, "net_config": 7, "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [], "variables": [], "accessible_users": [], "io_domains": [ 22 ] }, { "id": 4, "mgmt_interfaces": [ { "ip_address": "nnn.nnn.nnn.32", "hostname": "z2", "is_scan": false, "allocated": true } ], "client_interfaces": [ { "ip_address": "nnn.nnn.nnn.225", "hostname": "z2-client", "is_scan": false, "allocated": true } ], "zfs_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.11", "hostname": "z2-storib", "is_scan": false, "allocated": true } ], "exa_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.15", "hostname": "z2-priv1", "is_scan": false, "allocated": true } ], "vip_interfaces": [ { "ip_address": "nnn.nnn.nnn.226", "hostname": "z2-vip", "is_scan": false, "allocated": true } ], "versaboot_interfaces": [], "state_str": "Configured", "accessible_groups": [ { "id": 29, "name": "vm_4_owners" } ], "internal_name": "zone", "host_os": "s11", "host_type": "zone", "physical_type": "guest", "virtual_type": "zone", "state": 350, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": false, "rac_id": 10, "active": true, "sanity_target": false, "physical_position_index": null, "timing": null, "net_config": 9, "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [], "variables": [], "accessible_users": [], "io_domains": [ 31 ] }, { "id": 5, "mgmt_interfaces": [ { "ip_address": "nnn.nnn.nnn.34", "hostname": "z3", "is_scan": false, "allocated": true } ], "client_interfaces": [ { "ip_address": "nnn.nnn.nnn.227", "hostname": "z3-client1", "is_scan": false, "allocated": true }, { "ip_address": "nnn.nnn.nnn.230", "hostname": "z3-client2", "is_scan": false, "allocated": true } ], "zfs_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.13", "hostname": "z3-storib", "is_scan": false, "allocated": true } ], "exa_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.17", "hostname": "z3-priv1", "is_scan": false, "allocated": true } ], "vip_interfaces": [ { "ip_address": "nnn.nnn.nnn.231", "hostname": "z3-vip", "is_scan": false, "allocated": true } ], "versaboot_interfaces": [], "state_str": "Configured", "accessible_groups": [ { "id": 30, "name": "vm_5_owners" } ], "internal_name": "zone", "host_os": "s11", "host_type": "zone", "physical_type": "guest", "virtual_type": "zone", "state": 350, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": false, "rac_id": 5, "active": true, "sanity_target": false, "physical_position_index": null, "timing": null, "net_config": 10, "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [], "variables": [], "accessible_users": [], "io_domains": [ 22 ] }, { "id": 6, "mgmt_interfaces": [ { "ip_address": "nnn.nnn.nnn.36", "hostname": "z4", "is_scan": false, "allocated": true } ], "client_interfaces": [ { "ip_address": "nnn.nnn.nnn.235", "hostname": "z4-client", "is_scan": false, "allocated": true } ], "zfs_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.15", "hostname": "z4-storib", "is_scan": false, "allocated": true } ], "exa_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.18", "hostname": "z4-priv1", "is_scan": false, "allocated": true } ], "vip_interfaces": [ { "ip_address": "nnn.nnn.nnn.236", "hostname": "z4-vip", "is_scan": false, "allocated": true } ], "versaboot_interfaces": [], "state_str": "Configured", "accessible_groups": [ { "id": 31, "name": "vm_6_owners" } ], "internal_name": "zone", "host_os": "s11", "host_type": "zone", "physical_type": "guest", "virtual_type": "zone", "state": 350, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": false, "rac_id": 5, "active": true, "sanity_target": false, "physical_position_index": null, "timing": null, "net_config": 11, "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [], "variables": [], "accessible_users": [], "io_domains": [ 31 ] }, { "id": 7, "mgmt_interfaces": [ { "ip_address": "nnn.nnn.nnn.42", "hostname": "z22", "is_scan": false, "allocated": true } ], "client_interfaces": [ { "ip_address": "nnn.nnn.nnn.241", "hostname": "z22-client", "is_scan": false, "allocated": true } ], "zfs_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.22", "hostname": "z22-storib", "is_scan": false, "allocated": true } ], "exa_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.19", "hostname": "z22-priv1", "is_scan": false, "allocated": true } ], "vip_interfaces": [ { "ip_address": "nnn.nnn.nnn.242", "hostname": "z22-vip", "is_scan": false, "allocated": true } ], "versaboot_interfaces": [], "state_str": "Configured", "accessible_groups": [ { "id": 33, "name": "vm_7_owners" } ], "internal_name": "zone", "host_os": "s11", "host_type": "zone", "physical_type": "guest", "virtual_type": "zone", "state": 350, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": false, "rac_id": 1, "active": true, "sanity_target": false, "physical_position_index": null, "timing": null, "net_config": 12, "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [], "variables": [], "accessible_users": [], "io_domains": [ 31 ] }, { "id": 8, "mgmt_interfaces": [ { "ip_address": "nnn.nnn.nnn.46", "hostname": "z33-dbz", "is_scan": false, "allocated": true } ], "client_interfaces": [ { "ip_address": "nnn.nnn.nnnnnn.nnn.nnn.248", "hostname": "z33-dbz-client", "is_scan": false, "allocated": true } ], "zfs_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.25", "hostname": "z33-dbz-storib", "is_scan": false, "allocated": true } ], "exa_ib_interfaces": [ { "ip_address": "nnn.nnn.nnn.21", "hostname": "z33-dbz-priv1", "is_scan": false, "allocated": true } ], "vip_interfaces": [ { "ip_address": "nnn.nnn.nnn.249", "hostname": "z33-dbz-vip", "is_scan": false, "allocated": true } ], "versaboot_interfaces": [], "state_str": "Configured", "accessible_groups": [ { "id": 34, "name": "vm_8_owners" } ], "internal_name": "zone", "host_os": "s11", "host_type": "zone", "physical_type": "guest", "virtual_type": "zone", "state": 350, "primary_interface": "mgmt", "is_control_domain": false, "is_master_control_domain": false, "is_service_domain": false, "rac_id": 10, "active": true, "sanity_target": false, "physical_position_index": null, "timing": null, "net_config": 13, "ilom_interfaces": [], "memory": [], "cores": [], "physical_functions": [], "root_complexes": [], "variables": [], "accessible_users": [], "io_domains": [ 55 ] } ]