Cisco Intersight Python REST Module
Project description
intersight-rest
Cisco has released their new Intersight platform for managing UCS Server and Hyperflex Hyperconverged infrastructure from a SaaS based interface. With high security standards, forming and signing the RESTful API calls to Intersight can be a challenge, so this package was written to do all of that work for you. All you need to provide is your Public/Private keys generated from the Intersight interface, as well at the API endpoint you'd like to target. Optionally you can add in query parameters for GET requests, and a body for POST/PATCH opterations.
Overview:
intersight_call(**options);
Option | Format | Value |
---|---|---|
resource_path | <String> | Resource Path from https://intersight.com/apidocs |
query_params | <Dict> | Query Parameters from Resource Path GET |
body | <Dict> | Body Parameters from Resource Path POST |
moid | <String> | MOID of Object to be Modified |
The HTTP verbs will be assumed as follows:
- GET: <resource_path>
- GET: <resource_path> + <query_params>
- POST: <resource_path> + <body>
- PATCH: <resource_path> + <body> + <moid>
More information about Intersight is available at: https://intersight.com
Details on the RESTful API and documentation: https://intersight.com/apidocs
NPM Installation:
$ pip install intersight-rest
Usage:
# Import "intersight.rest" Package import intersight_rest as isREST # Import JSON PAckage import json # Load Public/Private Keys isREST.set_private_key(open("./keys/private_key.pem", "r") .read()) isREST.set_public_key(open("./keys/public_key.txt", "r") .read()) # Select Resource Path from https://www.intersight.com/apidocs resourcePath = '/ntp/Policies' # GET EXAMPLE #-- Set GET Options --# options = { resource_path: resourcePath, query_params: queryParams } results = isREST.intersight_call(**options) print(json.dumps(results, indent=4)) #-- NOTE: intersightREST Returns a JS Promise --# # GET "queryParams" Examples #-- Example queryParams returning the top 1 result(s) --# queryParams = { "$top": 1 } #-- Example queryParams showing filter by "Name" key --# queryParams = { "$filter": "Name eq 'Test-NTP'" } #-- Example queryParams showing filter by "Description" key --# queryParams = { "$filter": "Description eq 'pool.ntp.org'" } #-- Example queryParams showing advanced Tag filder by key & value --# queryParams = { "$filter": "Tags/any(t: t/Key eq 'loc' and t/Value eq 'California')" } # POST EXAMPLE #-- Assemble POST Body --# postBody = { Name: "Test-NTP", Description: "Test NTP Policy", NtpServers: ["8.8.8.8"] } #-- Set POST Options --# options = { resource_path: resourcePath, body: postBody } results = isREST.intersight_call(**options) print(json.dumps(results, indent=4)) #-- NOTE: intersightREST Returns a JS Promise --# # PATCH EXAMPLE #-- Set Object MOID to be Modified --# patchMoid = "6b1727fa686c873463b8163e" #-- Assemble PATCH Body --# patchBody = { NtpServers: ["10.10.10.10"] } #-- Set PATCH Options --# options = { resource_path: resourcePath, body: patchBody, moid: patchMoid } results = isREST.intersight_call(**options) print(json.dumps(results, indent=4)) #-- NOTE: intersightREST Returns a JS Promise --#
See package source for more details...
*Copyright (c) 2018 Cisco and/or its affiliates.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size intersight_rest-1.0.4-py3-none-any.whl (5.5 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size intersight-rest-1.0.4.tar.gz (5.2 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for intersight_rest-1.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5660fbde701d10e8f66d40c7ba8f733b873ea4dc81c8ef23a36c49a4fc448348 |
|
MD5 | 4659dd294bc41cfd9d978fc06de92457 |
|
BLAKE2-256 | d732ec499014b86d0f2a72c9fc4ea9abee70596efdca8fd335c1a7b15d8be758 |