OpenManage Integration for VMware vCenter Version 5.3 API Guide March 2021 Rev.
Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your product. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. © 2010 - 2021 Dell Inc. or its subsidiaries. All rights reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries.
Contents Chapter 1: Overview...................................................................................................................... 6 Access OMIVV API documentation on Dell Technologies API marketplace..........................................................6 What is new in this release................................................................................................................................................6 Chapter 2: Get started.........................................
Get list of repository profiles..........................................................................................................................................49 Get repository profile details..........................................................................................................................................50 Create a new repository profile......................................................................................................................................
Appendix A: Request body........................................................................................................... 92 Appendix B: Response body.........................................................................................................96 Appendix C: OMIVV-Specific error codes....................................................................................
1 Overview OpenManage Integration for VMware vCenter (OMIVV) provides RESTful APIs to enable automation. The support for RESTful API is available from version 5.2.0. The APIs are compliant with OpenAPI Specification (OAS) 3.0.0. This document is intended for a vCenter Administrator. It is assumed that the reader is familiar with REST APIs and programmatic interaction with REST APIs. Any programming language can be used to create applications that interface with these APIs.
Table 1. List of new and enhanced APIs (continued) Summary of new APIs APIs ● (GET)/Services/ConsoleService/Consoles/ {id}/Hosts/{hostid}—Gets details of a particular host in a vCenter.
Table 1.
2 Get started Topics: • • • • Prerequisites Base URI Request headers Rate limit Prerequisites Ensure that: ● User profile used to access API has administrator privileges ● vCenter profile has required Dell privileges. For more information, see the Required privileges for non-administrator users topic in User's Guide. ● Host Credential Profile, Cluster Profile, and System Profile are created in OMIVV User Interface (UI) and use the profiles as required.
During the lockout period, any REST API call will not work except logoff API. An appropriate error message is displayed.
3 Security The authentication and authorization flows are prerequisites to any API invocation. The request is forwarded to the CXF server defined for the REST API after the invocation. If there is authorization and authentication failure, an appropriate error code with message is sent to the API client. On success, the request is forwarded to the appropriate REST service endpoint (API) defined on the CXF servlet.
vCenter authorization Authorization flow validates the following: ● Session token ● vCenter user credentials for the required permissions to run the API Validate session token OMIVV validates the token that is received from the API client against the following: ● Tampering ● Session validity Validate vCenter user credentials APIs are authorized against the vCenter user credentials, when required. Set an operational context which indicates the registered vCenter and the associated user credentials.
4 Use cases Topics: • • • • • • Navigate vCenter heirachy Retrieve firmware repository data Update firmware using catalogs Retrieve OMIVV license information Compute server drift from baseline Monitor component health in OMIVV Navigate vCenter heirachy Prerequisites Ensure that you have verified all the pre-requisites mentioned in the Prerequisites on page 9. About this task The vSphere Client lists all the registered vCenters, hosts, clusters, and datacenters in a hierarchical manner.
if vcenter_ip.upper() == vc['ip'].upper(): vcenter_id = vc['id'] vcenter_tree_response = get_vcenter_tree_from_omivv(ip_address,vcenter_id, bearer_token) flag = True; cluster_list = [] if vcenter_tree_response is not None: vcenter_datacenters = json.
def get_cluster_details(url, session_token): head = {'Authorization': 'Bearer ' + session_token} response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): return response else: print(response.
json_response = json.dumps(response.json(), indent=4, sort_keys=True) return json_response; else: print("Get registered vCenter list failed") def get_vcenter_tree_from_omivv(OMIVV_ip, vcenter_id, session_token): url = "https://" + OMIVV_ip + "/Spectre/api/rest/v1/Services/ConsoleService/ Consoles/" + vcenter_id head = {'Authorization': 'Bearer ' + session_token} response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): json_response = json.dumps(response.
vcenter_id = None; registered_vc_array = json.loads(registered_vcenter_list) for vc in registered_vc_array: if vcenter_ip.upper() == vc['ip'].upper(): vcenter_id = vc['id'] vcenter_tree_response = get_vcenter_tree_from_omivv(ip_address,vcenter_id, bearer_token) flag = True; cluster_list = [] dacenter_name = ""; if vcenter_tree_response is not None: vcenter_datacenters = json.
response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): json_response = json.dumps(response.json(), indent=4, sort_keys=True) return json_response else: print("Get registered vCenter list failed") def get_cluster_details(url, session_token): head = {'Authorization': 'Bearer ' + session_token} response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): return response else: print(response.
try: """ Get all registered vcenter """ registered_vcenter_list = get_registered_vcenter_list(ip_address, bearer_token) if(registered_vcenter_list is None): print("No vcenter is regsitered with this OMIVV") return else: vcenter_id = None; registered_vc_array = json.loads(registered_vcenter_list) for vc in registered_vc_array: if vcenter_ip.upper() == vc['ip'].
def get_vcenter_tree_from_omivv(OMIVV_ip, vcenter_id, session_token): url = "https://" + OMIVV_ip + "/Spectre/api/rest/v1/Services/ConsoleService/ Consoles/" + vcenter_id head = {'Authorization': 'Bearer ' + session_token} response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): json_response = json.dumps(response.
print(host_response['id']) flag = False cluster_array = vcenter_datacenter['clusters'] for cluster in cluster_array: href = cluster['href'] cluster_list.
``` head = {'Authorization': 'Bearer ' + session_token} jsonReponse = requests.post(base_url, json=postBodyData, verify=False, headers=head) if (jsonReponse.status_code != 204): print("setOperationalContext failed.") ● Retrieve host details using host ID Retrieve the host IP, hostname, management IP, ServiceTag, model, and system ID for a host using host ID. ● ● ● ● ● ● host IP: Hypervisor IP address hostname: DNS host name of the hypervisor. If hostName is not configured value will be empty.
except: print("get_bearer_token: Unexpected error:", sys.exc_info()[0]) def logout(omivvIP,session_token): try: head = {'Authorization': 'Bearer ' + session_token} url = "https://" + omivvIP + "/Spectre/api/rest/v1/Services/ AuthenticationService/logoff" response = requests.post(url, verify=False, headers=head) if (response.status_code != 200): print("Log out failed.") except: print("logout: Unexpected error:", sys.
help="Id of the host") PARSER.add_argument("--getdetails", "-getd", required=True, help="get details of the host. Accepted value: 1.SubSystemHealth 2.HostOverview, 3.FirmwareInventory, 4.Warranty") ARGS = PARSER.parse_args() if(ARGS.password == None and ARGS.bearertoken == None): print("Pass either the password or the bearer token") get_vcenter_tree(ARGS.ip, ARGS.user, ARGS.password, ARGS.bearertoken, ARGS.vcenterip, ARGS.vcusername, ARGS.vcdomain, ARGS.vcpassword, ARGS.hostId, ARGS.
print("Get registered vCenter list failed") ``` After you get the list of registered vCenters, set the vCenter context.
print(response) if(response.status_code == 200): json_response = json.dumps(response.json(), indent=4, sort_keys=True) registered_vc_array = json.loads(json_response) for vc in registered_vc_array: if vcenter_ip.upper() == vc['ip'].
``` else: print("PostFirmwareInventoryReport API is failed.") Update firmware using catalogs Prerequisites Before you create firmware update job, ensure that you have: ● ● ● ● Service Tag of the host Repository profile name Verified all the required pre-requisites mentioned in the Prerequisites on page 9.
registered_vc_array = json.loads(json_response) for vc in registered_vc_array: if vcenter_ip.upper() == vc['ip'].upper(): vcenter_id = vc['id'] url = "https://" + OMIVV_ip + "/Spectre/api/rest/v1/Services/ ConsoleService/Consoles/" + vcenter_id + "/Hosts" head = {'Authorization': 'Bearer ' + session_token} response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): allHost = response.
● preCheck: Prerequisites check before firmware update. ● exit MaintenanceMode: Option to exit from maintenance mode. ● resetIDracAndDeleteJobs: Set this value as TRUE. Clears all the iDRAC jobs present in the Job Queue followed by iDRAC reset before updating firmware on the host. If you do not mention any value while running API, OMIVV considers the settings configured on the Settings > Firmware Update Settings on the User Interface.
● OMIVV has at least one license installed. ● You have verified all the pre-requisites mentioned in the Prerequisites on page 9. About this task OMIVV requires a valid license to successfully manage the hosts. Multiple licenses can be installed at a time to the appliance. This topic describes how to get list of all licenses installed in OMIVV and retrieve information of individual license. Steps Start an OMIVV session using OMIVV user credentials.
The sum of maxHosts of all active licenses during the time of API invocation gives the maximum number of hosts that can be managed using the OMIVV instance in context. Compute server drift from baseline Prerequisites Ensure that you have verified all the pre-requisites mentioned in the Prerequisites on page 9. About this task Configuration drift deals with calculating drift from the baseline (hardware configuration, firmware, or driver versions).
Sample code to create repository profile: ``` def create_repository_profile(omivv_ip, bearer_token, create_args_file): base_url = "https://" + omivv_ip + "/Spectre/api/rest/v1/Services/ PluginProfileService/RepositoryProfiles" """Open the JSON input file""" input_file = open(create_args_file,"r") input_data = json.load(input_file) head = {'Authorization': 'Bearer ' + bearer_token} jsonReponse = requests.post(base_url, json=input_data, verify=False, headers=head) if (jsonReponse.
DriftDetectionService/Jobs/" + d_job_id; print("url: " + url ) head = {'Authorization': 'Bearer ' + bearer_token} response = requests.get(url, verify=False, headers=head) if (response.status_code == 200): json_response = json.dumps(response.json(), indent=4, sort_keys=True) print(json_response) return json_response else: print("Get drift job detail by id.
else: print("Get the drift job report by job id.") ``` Invoke the following API to get only driver drift for a specific cluster: /Services/DriftDetectionService/DriftReport/{id}/ DriverDriftDetails Sample code to get only driver drift for a specific cluster: ``` d_job_id_href = It is the href for drift job i.
headers=head) if (response.status_code == 200): json_response = json.dumps(response.json(), indent=4, sort_keys=True) return json_response else: print("Get fw report failed.") ``` Next steps Update firmware for drifted components The intention is to maintain the desired state for the cluster. For the drifted components in the drift report, trigger firmware update using the use case described earlier. For sample code, see https://github.com/dell/omivv.
Next steps View different health status of the components that is Healthy, Warning, Critical and take corrective actions if necessary.
5 Session management Topics: • • Start an OMIVV session End an OMIVV session Start an OMIVV session Description: Starts an OMIVV session for the given OMIVV IP. The OMIVV session is valid for 60 minutes. Only the admin user is allowed to successfully log in as an API user. The bearer token received from this API must be used for other APIs as a header parameter.
End an OMIVV session Description: Logs out from the OMIVV session. This API internally invalidate the bearer token. Command or URL: /Services/AuthenticationService/logoff Method: POST Authorization: Bearer authentication Parameters: None vCenter privileges required: None HTTP response code: Table 3.
6 License management Topics: • • • Get list of vCenter and host license Get vCenter and hosts license details Upload license to OMIVV Get list of vCenter and host license Description: Gets list of all licenses uploaded in OMIVV. Command or URL: /Services/LicenseService/Licenses Method: GET Parameters: None Authorization: Bearer authentication vCenter privileges required: None HTTP response code: Table 4.
Get vCenter and hosts license details Description: Gets license details using license ID. Command or URL: /Services/LicenseService/Licenses/{id} Method: GET Authorization: Bearer authentication vCenter privileges required: None Parameters: Table 5. Parameters Parameter Value Description Default value Parameter type Data type id (required) License ID. Use the license ID received from the Get list of vCenter and host license on page 39 API. N/A Path String HTTP response code: Table 6.
Request Body: { } "sharetype": "{share type}", "path": "{license file path}", "credential": { "username": "{username}", "domain": "{domain}", "password": "{password}" } For more information about request body parameters, see Request body on page 92. Parameters: For NFS, credential is not required. For CIFS credentials are required. domain parameter is not mandatory. vCenter privileges required: None HTTP response code: Table 7.
7 Console management Topics: • • • • • • • Get list of registered vCenters Get list of all hosts in vCenter Get host details Get vCenter tree view of data center Set vCenter context Get cluster details Get cluster health Get list of registered vCenters Description: Gets the list of all the registered vCenters for the given OMIVV.
Get list of all hosts in vCenter Description: Gets the list of all the hosts registered in a vCenter for the given OMIVV IP. All Dell EMC and OEM managed hosts are listed. Command or URL: /Services/ConsoleService/Consoles/{id}/Hosts?serviceTags={service Tags 1}& serviceTags={service Tags 2} Method: GET Optional query Parameter: serviceTag Authorization: Bearer authentication vCenter privileges required: None HTTP response code: Table 9.
Authorization: Bearer authentication vCenter privileges required: None HTTP response code: Table 10. HTTP response code Code Description or response object 200 OK 401 Authorization failure 404 Resource not found 429 Too many requests 500 Internal Server error For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
Table 12.
The required vCenter user privilege for all other APIs are verified when you trigger the API. Command or URL: /Services/ConsoleService/OperationalContext Method: POST Request Body: { { } "consoleId": "{vCenterID}", "consoleUserCredential": } "username": "{vCenter username}", "domain": "{domain}", "password": "{vCenter password}" For more information about request body parameters, see Request body on page 92. Parameters: None vCenter privileges required: None HTTP response code: Table 13.
Table 15. HTTP response code Code Description or response object 200 OK 400 Operational context not set 401 Authorization failure 404 Resource not found 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
vCenter privileges required: None HTTP response code: Table 17. HTTP response code Code Description or response object 200 OK 400 Operational context is not set. 401 Authorization failure 404 Resource not found 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
8 Repository profile management Topics: • • • • Get list of repository profiles Get repository profile details Create a new repository profile Modify or edit repository profile Get list of repository profiles Description: Gets the list of all repository profiles that are created in OMIVV UI. Command or URL: /Services/PluginProfileService/RepositoryProfiles Method: GET Authorization: Bearer authentication Parameters: None vCenter privileges required: Dell.Inventory.
Get repository profile details Description: Gets the details of the given repository profile ID. You can view the firmware and driver repository details. Also, you can view factory-created and user-created repository details. Command or URL: /Services/PluginProfileService/RepositoryProfiles/{id} Method: GET Authorization: Bearer authentication Parameters: Table 19. Parameters Parameter Value Description Default value Parameter type Data type id (required) Resource ID.
Create a new repository profile Description: Creates a new repository profile Command or URL: /Services/PluginProfileService/RepositoryProfiles Method: POST Request Body: { } "name": "{profile name}", "description": "{profile description}", "globalDefault":{Dell default repository profile(false), currently not supported}, "repoType": "{repository type}", "protocolType": "{protocol type}", "uri": "{Catalog location}", "credential": { "username": "{share username}", "domain": "{domain}", "password": "{share
} } "synchronizeRepository": {Synchronize with current repository location(true)} Modify or edit repository profile Description: Modifies repository profile Command or URL: /Services/PluginProfileService/RepositoryProfiles Method: PUT Request Body: { } "name": "{profile name}", "description": "{profile description}", "repoType": "{Repository type}", "protocolType": "{Protocol type}", "uri": "{catalog location}", "credential": { "username": "{share username}", "domain": "{domain}", "password": "{share p
} } "credential": { "username": "{share username}", "domain": "{domain}", "password": "{}" }, "synchronizeRepository": {Synchronize with current repository location} Repository profile management 53
9 Cluster profile management Topics: • • Get list of cluster profiles Get details of cluster profiles Get list of cluster profiles Description: Gets the list of all cluster profiles that are created in OMIVV UI. Command or URL: /Services/PluginProfileService/ClusterProfiles Method: GET Authorization: Bearer authentication Parameters: None vCenter privileges required: Dell.Inventory.Configure Inventory HTTP response code: Table 23.
Method: GET Authorization: Bearer authentication Parameters: Table 24. Parameters Parameter Value Description Default value id (required) Cluster profile ID. Use the cluster profile N/A ID received from the Get list of cluster profiles API. For more information, see Get list of cluster profiles on page 54 Parameter type Data type Path String vCenter Privileges required: Dell.Inventory.Configure Inventory HTTP response code: Table 25.
"objectType": "BaseProfileMetadata", "profileName": "{System profile name}", "description": "{System profile description}" } }, "driftJob": { "id": "{Drift detection job ID}", "href": "https://{OMIVV IP}/Spectre/api/rest/v1/Services/DriftDetectionService/ Jobs/{drift detection job ID}", "objectType": "JOB", "status": "{Status of drift detection job}" } } For more information, see Response body on page 96.
10 Firmware repository inventory management Topics: • Get firmware repository inventory details Get firmware repository inventory details Description: Gets the details of firmware repository inventory. Ensure that the repository is successfully downloaded. The driver repository inventory is not supported. You can view the details like bundle ID, list of components of the particular bundle ID for the specific server model.
Table 27. HTTP response code Code Description or response object 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
11 Firmware inventory management Topics: • • Create host level firmware inventory report Create cluster level firmware inventory report Create host level firmware inventory report Description: Creates the host level firmware inventory report. You can view the host component details that is associated to the given bundle ID before performing firmware update. Ensure that the host is managed by OMIVV and management complaint.
Table 28. HTTP response code Code Description or response object 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
}, { } } "bundleID":"{Bundle ID}" "systemId":"{System ID}", "bundleID":"{Bundle ID}" ], "repoProfileID":"{Repository profile ID}" For more information about request body parameters, see Request body on page 92. Parameters: None vCenter privileges required: Dell.Configuration.Firmware Update HTTP response code: Table 29.
] } } ] }, "rebootRequired": {Host reboot required}, "releaseDate": "{Component release date and month}" }, "hostReport": null For more information, see Response body on page 96.
12 Firmware update management Topics: • • • • • • Create host level firmware update jobs Create cluster level firmware update jobs Get list of firmware update jobs (Host and Cluster) Get firmware update job details (Host or Cluster) Delete firmware update job Cancel firmware update job Create host level firmware update jobs Description: Creates the firmware update job for a host managed by OMIVV. You can update both vSAN and vSphere host. Driver update is not supported.
vCenter privileges required: Dell.Configuration.Firmware Update HTTP response code: Table 30. HTTP response code Code Description 202 OK 400 Operational Context not set 401 Authorization failure 403 VCenter permission denied 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
"exitMaintenanceMode":{true or false}, "migratePoweredOffAndSuspendedVMs":{true or false}, "resetIDracAndDeleteJobs":{true or false}, "enterMaintenanceModetimeout":60, “enterMaintenanceModeOption”: “{enter maintenance mode option}” } } For more information about request body parameters, see Request body on page 92. Authorization: Bearer authentication Parameters: None vCenter privileges required: Dell.Configuration.Firmware Update HTTP response code: Table 31.
Table 32. HTTP response code Code Description or response object 400 Operational Context not set 401 Authorization failure 403 VCenter permission denied 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
Table 34. HTTP response code Code Description or response object 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
Table 35. Parameters Parameter Value Description Default value id (required) Firmware update job ID. Use the N/A firmware update job ID received from the Get list of host firmware update jobs API. For more information, see Get list of firmware update jobs (Host and Cluster) on page 65. Parameter type Data type Path String HTTP response code: Table 36.
Table 38. HTTP response code Code Description or response object 200 Cancelled 202 Cancelling 400 Operational Context not set 401 Authorization failure 403 vCenter permission denied 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112. Example Response: The scheduled firmware update job is cancelled. For more information, see Response body on page 96.
13 System profile management Topics: • • Get list of system profiles Get system profile details Get list of system profiles Description: Gets the list of all system profiles that are created in OMIVV UI. Command or URL: /Services/PluginProfileService/SystemProfiles Method: GET Authorization: Bearer authentication Parameters: None vCenter privileges required: None HTTP response code: Table 39.
You can use only 12G and later PowerEdge servers and bare-metal servers as a reference server. Command or URL: /Services/PluginProfileService/SystemProfiles Method: GET Authorization: Bearer authentication Parameters: None vCenter privileges required: None HTTP response code: Table 40.
14 Host management Topics: • • • • • • • • Get all drift detection job Get specified drift detection job Get drift report for all clusters Get drift report for specific cluster Get firmware drift report Get driver drift report Get configuration drift report Gets host details on specified drift detection jobs Get all drift detection job Description: Gets all drift detection jobs.
Get specified drift detection job Description: Gets specified drift detection job. Command or URL: /Services/DriftDetectionService/Jobs/{id} Method: GET Authorization: Bearer authentication Parameters: Table 42. Parameters Parameter Value Description Default value Parameter type Data type id (required) Resource ID. Use the vCenter ID received from the Get all drift detection jobs API. For more information, see Get all drift detection job on page 72.
PluginProfileService/RepositoryProfiles/{profile ID}", "objectType": "RepositoryProfileMetadata", "profileName": "{Repository profile name}", "description": "{Profile description}", "repoType": "{Repository type}" } ], "systemProfile": { "id": "{system profile name}", "href": "", "objectType": "", "profileName": "{system profile name}", "description": "{profile description}" } }, "driftJob": { "id": "{drift job ID}", "href": "https://{OMIVVIP}/Spectre/api/rest/v1/Services/ DriftDetectionService/Jobs/{drift
"id": "{cluster profile ID}", "name": "{cluster profile name}", "href": "https://{OMIVVIP}/Spectre/api/rest/v1/Services/PluginProfileService/ ClusterProfiles/{cluster profile ID}" }, "href": "https://{OMIVV IP}/Spectre/api/rest/v1/Services/DriftDetectionService/ DriftReport/{cluster ID}", "systemProfileName": "{system profile name}", "fmRepoProfileName": "{firmware respository profile name}", "driverRepoProfileName": "{driver repository profile name}" } ] For more information, see Response body on page 96.
}, "clusterComplianceStatus": "{Cluster Compliance Status}", "clusterProfileDetails": { "id": "{Cluster Profile ID}", "name": "{Cluster Profile Name}", "href": "https://{OMIVVIP}/Spectre/api/rest/v1/Services/PluginProfileService/ ClusterProfiles/{Cluster profile ID}" }, "driftDetails": { "fwDriftDetails": { "complianceStatus": "{Firmware compliance status of the cluster}", "href": "https://{OMIVVIP}/Spectre/api/rest/v1/Services/ DriftDetectionService/DriftReport/{Cluster ID}/FwDriftDetails", "objectType": "
HTTP response code: Table 48. HTTP response code Code Description or response object 200 OK 401 Authorization failure 404 Resource not found 429 Too many requests 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
] NOTE: After you upgrade OMIVV to 5.2 (RPM Upgrade or backup and restore), the value of model, revisionHistory, and description are displayed as null until firmware repository is refreshed. To refresh the repository profile, on the repository profile page, click Edit and complete the wizard without doing any modification. After repository profile is updated, update the associated cluster profile. Drift detection job runs after you update the cluster profile.
"compliantStatus": "{Component compliance status}", "nonCompliantType": "{Non-Compliance Type}", "noncompliantTypeDescription": "{Non-Compliance Reason}" }, "componentDetails": { "vendorName": "{Vendor name}" "componentName": "{Component Name}", "driverName": "{Driver Name}", "packageType": "{Package Type}", "rebootRequired": "{Host reboot required (True or False)}", "recommendation": "{Recommendation (Yes or No)}" ] } } } ], "host": { "id": "{Host ID}", "href": "", "objectType": "Host", "hostip": "{Hos
Table 52. HTTP response code Code Description or response object 500 Internal Server error / timeout For OMIVV-Specific error codes, see OMIVV-Specific error codes on page 112.
Gets host details on specified drift detection jobs Description: Gets host details on specified drift detection jobs Command or URL: /Services/DriftDetectionService/Jobs/{id}/Details Method: GET Authorization: Bearer authentication vCenter privileges required: Dell.Inventory.Configure Inventory Table 53. Parameters Paramet er Value Description Default value Parameter type Data type id (required) Drift detection job ID. Use the job ID received from /Services/ DriftDetectionService/Jobs.
15 Get subsystem health report (OMIVV Host Health) Description: Gets the health of the server components such as Fan, Power Supply, and Memory. The information displayed here is real-time information. Command or URL: Services/InventoryService/Hosts/{id}/SubSystemHealth Method: GET Authorization: Bearer authentication Parameters: Table 55. Parameters Parameter Value Description Parameter type Data type id (required) Host ID.
{ }, { }, { }, { }, { }, } "subSystem": "{Processor}", "rollUpStatus": "CRITICAL" "subSystem": "{Temperature}", "rollUpStatus": "NORMAL" "subSystem": "{Voltage}", "rollUpStatus": "NORMAL" "subSystem": "{Battery}", "rollUpStatus": "NORMAL" "subSystem": "{PowerConsumption}", "rollUpStatus": "NORMAL" ] For more information, see Response body on page 96.
16 Host management Topics: • • • • • • • • Get the host overview Get host firmware inventory Get host warranty Get alarms and events Set alarms and events Get host power supply information Get host memory information Get host processors information Get the host overview Description: Gets the host overview of successfully inventoried host. Command or URL: /Services/InventoryService/Hosts/{id}/HostOverview Method: GET Authorization: Bearer authentication vCenter privileges required: Dell.Inventory.
"hostName": "{Host name}", "serviceTag": "{Host Service Tag}", "powerState": "{Power state (on or off)", "assetTag": "{Asset tag}", "warrantyDaysleft": {Number of warranty days left}, "warrantyStatus": {Warranty status}, "warrantyNotificationEnabled": {warranty notification enabled on the Settings page (True or False)}, "operatingSystem": "{OS name}", "operatingSystemVersion": "{OS version}", "HostcredentialProfileName": "{Host credential profile name}", "lastInventoryScan": "{Date and time when invetory is
Example Response: { "componentType": "{component type}", "elementName": "{Name of the software component}", "installationDate": "{component installation date}", "versionString": "{firmware version}", "componentId": "{componenent ID}", "deviceId": "{device ID}", "identityInfoValue": "{component type:component ID}", "instanceId": "{Unique identifier}", "isEntity": "{true or false}", "majorVersion": "{component major version}", "minorVersion": "{component minor version}", "releaseDate": null, "revisionNumber"
Example Response: { "overAllStatus": "{overall status of warranty}", "warranty": [ { "hostName": "{host name}", "serviceTag": "{host Service Tag}", "id": {Host ID}, "serviceLevelCode": "{Types of warranty}", "serviceLevelDescription": "{Warranty description}", "provider": "{Provider}", "startDate": "{Warranty start date}", "endDate": "{warranty end date}", "daysLeft": "{number of days left}", "entitlementType": "{entitlement type}", "lastUpdated": "{The date and time when the warranty job is run}", "status
Set alarms and events Description: Sets alarms and events. Command or URL: /Services/ConsoleService/AlarmsAndEvents Method: PUT Request Body: { } "alarmStatus": {Host and chassis alarm status (true or false)}, "mprAlarmStatus": {MPR forecast alarm status(true or false)}, "eventPostType": "{event posting level options}" For more information about request body parameters, see Request body on page 92. Authorization: Bearer authentication vCenter privileges required: Dell.Inventory.
Table 65. Parameters Parameter Value Description Default value Parameter type Data type Consoles/{Console-id}/Hosts API. For more information, see Get list of all hosts in vCenter on page 43. HTTP response code: Table 66.
Table 67. Parameters Parameter Value Description Default value Parameter type Data type id (required) Host ID. Get the host ID from / Services/ConsoleService/ Consoles/{Console-id}/Hosts API. N/A Path String HTTP response code: Table 68.
Table 69. Parameters Parameter Value Description Default value Parameter type Data type id (required) Host ID. Get the host ID from / Services/ConsoleService/ Consoles/{Console-id}/Hosts API. For more information, see Get list of all hosts in vCenter on page 43. N/A Path String HTTP response code: Table 70.
A Request body Start an OMIVV session Table 71. Start an OMIVV session API Parameter Description username OMIVV username. Only admin user is allowed to login to API. password OMIVV password Set vCenter context Table 72. Set vCenter context API Parameter Description consoleId vCenter ID username vCenter username domain vCenter domain password vCenter password Create and modify repository profile Table 73.
Table 73. Create and modify repository profile Parameter Description password share password synchronizeRepository Synchronize with current repository location (always set to true) Create host or cluster level firmware inventory report Table 74.
Table 75. Cluster or host level firmware update job (continued) Parameter Description Force reboot: Apply updates and force reboot without entering maintenance mode. Applicable for vSphere and datacenter host level. NOTE: If you select the Next reboot or Force reboot options, the following parameters are not applicable: exitMaintenanceMode, migratePoweredOffAndSuspendedVMs, enterMaintenanceModetimeout, enterMaintenanceModeOption preCheck Prerequisites check before firmware update.
Table 75. Cluster or host level firmware update job Parameter Description or timed out. However, the components may get updated automatically when the host is restarted. enterMaintenanceModeOption Enter maintenance mode option. This option is applicable for vSAN host and cluster. Supported options are: Ensure accessibility Full Data migration No data migration Upload license to OMIVV Table 76. Upload license to OMIVV Parameter Description sharetype Repository share location (NFS/CIFS).
B Response body This topic describes each parameter in the example response. Start an OMIVV session Table 78. Start an OMIVV session Field Type Description accessToken String Token ID tokenType String Token type expiresAt Integer and string Expiry date and time for token ID. Get list of vCenter and host license Table 79.
Table 80. Get host and vCenter license details, upload vCenter license Field Type Description licenseStatus String Status of license (ACTIVE, INACTIVE, and EXPIRED) Get list of registered vCenters Table 81. Get list of registered vCenters Field Type Description id String vCenter ID hostname String vCenter Hostname or FQDN ip String vCenter IP Get list of all hosts in vCenter Table 82.
Table 84. Get vCenter tree view of datacenter Field Type Description is configured properly using DNS. Otherwise, hostname value displayed as null or blank.
Get details of cluster profiles Table 88.
Create and modify repository profile Table 91. Create and modify repository profile Parameter Description name Repository profile name description Repository profile description globalDefault Dell default repository profile. Currently, this parameter is not supported. repoType Repository profile type (Firmware and Driver). You cannot edit this parameter while modifying the profile. Ensure that you enter value for repository type in upper case letters. protocolType Protocol Type (NFS or CIFS).
Create host level firmware inventory report Table 93.
Table 94.
Table 97. Get host or cluster firmware update job details (continued) Field Type Description hostip String Host IPv4 or FQDN hostName String Hostname managementIP String IDRAC IP serviceTag String Host Service Tag model String Server Model systemId String System ID bundleId String Bundle ID packageIDs String Component unique package ID rebootOptions String Reboot options. Safe reboot: Apply Updates and Reboot after entering Maintenance mode.
Table 97. Get host or cluster firmware update job details Field Type Description If the wait time goes beyond the specified time, the update jobs fail and enter maintenance task will be canceled or timed out. However, the components may get updated automatically when the host is restarted enterMaintenanceModeOption String Enter maintenance mode option. This option is applicable for vSAN host and cluster.
Table 99. Get firmware drift report Field Type Description managementIP String iDRAC IP Service Tag String Service Tag of the host model String Server Model Name systemID String System ID complianceStatus String Compliance Status.
Table 100. Get drift report for all clusters Field Type Description clusterComplianceStatus String Compliance status of the cluster (Complaint or non-compliant) systemprofileName String System profile name. If any system profile is not associated with cluster profile, profile name is displayed as null. fmRepoProfileName String Firmware repository profile name. If any firmware repository profile is not associated with cluster profile, profile name is displayed as null.
Table 102. Get driver report Field Type Description noncompliantTypeDescription String Reason for non-compliance vendorName String Component vendor name componentName String Component name driverName String Driver name packageType String Package type (Component, Bulletin) rebootRequired Boolean Host reboot required (true or false) recommendation Boolean Recommendation (Yes or No) compliantStatus String Complaint status nonCompliantType String non-compliance type.
Table 103.
Table 105.
Table 106.
Table 108. Get alarms and events, Set alarm and events Field Type Description events, and Post only virtualizationrelated critical, and warning events. Get host power supply information Table 109. Get host power supply information Field Type Description powerSupplyCount String PSU count type String PSU type location String PSU location outputWatts String Output in watts status String PSU status Get host memory information Table 110.
C OMIVV-Specific error codes Table 112. OMIVV-specific error codes Code Description 11501 Number of active sessions limit exceeded. 11502 Number of active client limit exceeded. 11503 Input user data is not valid to process the login request. 11504 Exception occurred in token generation. 11505 User is not authorized to process the login request. 11506 Not a valid API Action specified. 11507 Account is locked. 11508 Request limit per minute exceeded. 11509 Empty Action request.
Table 112. OMIVV-specific error codes Code Description 10206 Invalid Parameters. No vCenter is registered with the appliance. 10301 Cluster does not exist. 10302 The cluster with name {0} and id {1} has been deleted or has zero hosts. 10303 The cluster with name {0} and id {1} has been deleted or has zero OMIVV managed hosts. 10304 The cluster with name {0} and id {1} is not associated with Cluster Profile. 10305 The {0} is invalid host-id.
Table 112. OMIVV-specific error codes Code Description 11001 Cluster profile does not exist. 11002 Drift detection Job does not exist. 10701 Invalid repository profile {0}. 10702 The repository {0} is not downloaded or refreshed. 10703 An exception occurred while loading the repository {0} : {1}. 10704 Invalid bundleId {0}. 10705 Invalid systemId {0}. 10706 Driver repository profiles {0} are not supported.
Table 112. OMIVV-specific error codes Code Description 11305 Invalid job schedule. 11306 Invalid jobSpecificCustomConfiguration details : {0}. 11307 rebootOptions cannot be null or empty. 11308 Invalid jobSpecificCustomConfiguration details. Enter the enterMaintenanceModetimeout value between 60 to 1440 minutes. 11309 Invalid input. The value for preCheck should be true for cluster update. 11310 exitMaintenanceMode value should be true for cluster update.
Table 112. OMIVV-specific error codes Code Description 11336 The dateTime format for job schedular should be : yyyy-MMdd'T'HH:mm:ssZ. 11337 Host {0} is not part of the cluster. 11338 All hosts in the cluster are non-compliant. 11339 The host is not compliant {0}. 11340 rebootOptions with NEXTREBOOT is not applicable for runLater. 11341 rebootOptions with NEXTREBOOT is applicable only for HOST level Update Job. 11342 rebootOptions with FORCEREBOOT is not applicable for runLater.
Table 112. OMIVV-specific error codes Code Description 12505 vCenter for which the Operational Context was set got unregistered with the appliance. 12506 Could not find the request header information. 12507 Could not find the Bearer Authorization token. 12508 Invalid Server Context. 12509 Error in connecting to vCenter. 12510 vCenter User is not authorized to access this URI. 12511 URI not supported by OMIVV. 12512 vCenter ID {0} is not available in the registered list.
Table 112. OMIVV-specific error codes Code Description 13013 File path is not matching the mentioned sharetype parameter. Enter proper license file path. 13014 Unable to read the file. 13015 File content is empty. Upload a proper license file. 13016 Unable to access the file or file has insufficient permission. Enter proper license file and provide permission to read the file. 13017 Failed to authenticate the CIFS share. Enter credentials to read the file. 13018 Unable to access the file.