Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

intersight-rest-1.0.4.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

intersight_rest-1.0.4-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file intersight-rest-1.0.4.tar.gz.

File metadata

  • Download URL: intersight-rest-1.0.4.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.2

File hashes

Hashes for intersight-rest-1.0.4.tar.gz
Algorithm Hash digest
SHA256 b594a39ab152d64ce9582287db11d5bc1ad38aafc7e1b96a2ce4e1e6d6f4b776
MD5 7e068269bc997658cd642f1d7dff9a69
BLAKE2b-256 ab527563e6eca3fe5ecce20c5e66de1397194d9449371b17b62e31303a26d70e

See more details on using hashes here.

File details

Details for the file intersight_rest-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: intersight_rest-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.2

File hashes

Hashes for intersight_rest-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5660fbde701d10e8f66d40c7ba8f733b873ea4dc81c8ef23a36c49a4fc448348
MD5 4659dd294bc41cfd9d978fc06de92457
BLAKE2b-256 d732ec499014b86d0f2a72c9fc4ea9abee70596efdca8fd335c1a7b15d8be758

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page