Skip to main content

Python 3.7 Lint and Test PyPI version

Cloudshell Sandbox Rest Api Client

A python client wrapper around the cloudshell sandbox api . No additional library object wrapping implemented. All methods return the json.loads python object in the shape of the documented json response. See the documentation for details.

Installation

pip install cloudshell-sandbox-rest

Basic Usage

from cloudshell.sandbox_rest.sandbox_api import SandboxRestApiSession

# pull in api user credentials
CS_SERVER = "localhost"
CS_USER = "admin"
CS_PASSWORD = "admin"
CS_DOMAIN = "Global"

TARGET_BLUEPRINT = "<MY_BLUEPRINT_NAME>"
DEPLOYED_SANDBOX_NAME = "My Rest Api Blueprint"

api = SandboxRestApiSession(host=CS_SERVER, username=CS_USER, password=CS_PASSWORD, domain=CS_DOMAIN)
start_response = api.start_sandbox(blueprint_id=TARGET_BLUEPRINT, sandbox_name=DEPLOYED_SANDBOX_NAME)
sandbox_id = start_response["id"]
components_response = api.get_sandbox_components(sandbox_id)

print(f"total components in sandbox: {len(components_response)}")

Context Manager Usage

Using the api session with a context manager "with" statement will log out and invalidate the token for you.

from cloudshell.sandbox_rest.sandbox_api import SandboxRestApiSession

CS_SERVER = "localhost"
CS_USER = "admin"
CS_PASSWORD = "admin"
CS_DOMAIN = "Global"

TARGET_BLUEPRINT = "<MY_BLUEPRINT_NAME>"
DEPLOYED_SANDBOX_NAME = "My Rest Api Blueprint"

api = SandboxRestApiSession(host=CS_SERVER, username=CS_USER, password=CS_PASSWORD, domain=CS_DOMAIN)

with api:
    start_response = api.start_sandbox(blueprint_id=TARGET_BLUEPRINT, sandbox_name=DEPLOYED_SANDBOX_NAME)
    sandbox_id = start_response["id"]
    components_response = api.get_sandbox_components(sandbox_id)
    print(f"total components in sandbox: {len(components_response)}")
    print(f"session token is: {api.token}")

print(f"session token outside context manager: {api.token}")
  • NOTE: api login happens during init, not on entering context
  • context exit invalidates token

Instantiate Session with Token

Common use case is for admin to pull user token and start a session on their behalf. This can be done as seen in example below.

from cloudshell.sandbox_rest.sandbox_api import SandboxRestApiSession

# admin credentials
CS_SERVER = "localhost"
CS_USER = "admin"
CS_PASSWORD = "admin"
ADMIN_DOMAIN = "Global"

# end user details
TARGET_END_USER = "end user"
TARGET_USER_DOMAIN = "<END_USERS_DOMAIN>"

TARGET_BLUEPRINT = "<MY_BLUEPRINT_NAME>"
DEPLOYED_SANDBOX_NAME = "My Rest Api Blueprint"

admin_api = SandboxRestApiSession(host=CS_SERVER, username=CS_USER, password=CS_PASSWORD, domain=ADMIN_DOMAIN)

with admin_api:
    user_token = admin_api.get_token_for_target_user(TARGET_END_USER)
    user_api = SandboxRestApiSession(host=CS_SERVER, token=user_token, domain=TARGET_USER_DOMAIN)
    with user_api:
        start_response = user_api.start_sandbox(blueprint_id=TARGET_BLUEPRINT, sandbox_name=DEPLOYED_SANDBOX_NAME)
        sandbox_id = start_response["id"]
        components_response = user_api.get_sandbox_components(sandbox_id)
        print(f"total components in sandbox: {len(components_response)}")
  • Note the use of nested context managers to manage the different session tokens

License

Free Software: MIT License

Download files

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

Source Distribution

cloudshell-sandbox-rest-0.1.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloudshell_sandbox_rest-0.1.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file cloudshell-sandbox-rest-0.1.1.tar.gz.

File metadata

  • Download URL: cloudshell-sandbox-rest-0.1.1.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for cloudshell-sandbox-rest-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0196bd56c4585a35ed4fc657d19e01fb0063b32dc5ea79ca235e3a3a4398a3de
MD5 d75a02fa5d51b5a956994e7fc19a31bc
BLAKE2b-256 890b8529dc934fc1b2bc46417142dced707e4840de5104424239b4e87fa7adbb

See more details on using hashes here.

File details

Details for the file cloudshell_sandbox_rest-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cloudshell_sandbox_rest-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for cloudshell_sandbox_rest-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3d09c05703f462cfbe4afd2e70287bd500911fbc772c25f67d4977d6136be9d6
MD5 902f1f0c52130efa33dfff7bacc05a4d
BLAKE2b-256 e12909fd16671e055aa51e07b77994844d01a62053caeb6c5861b79c9c914320

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

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