Skip to main content

A simple client for calling System Center Orchestrator runbooks in python

Project description

forked from https://github.com/oznu/pyHyperV due to the being readonly

https://img.shields.io/pypi/v/pySCOrchestrator.svg

Simple client for calling System Center Orchestrator runbooks in python.

Installation

Using pip:

$ pip install pySCOrchestrator

Import & Initialize pySCOrchestrator

import pySCOrchestrator

orchestratorEndpoint = "http://hostname.local:81/Orchestrator2012/Orchestrator.svc"
username = "domain\\username"
password = "password"

o = pySCOrchestrator.orchestrator(orchestratorEndpoint, username, password)

Execute Runbook

pySCOrchestrator.orchestrator.Execute(runbookID, runbookParameters, dictionary=False)

You can send the parameters to orchestrator using the parameter ID or the parameter name.

Using Parameter IDs

Example of sending using the parameter ID:

runbookID = '285f017e-bc97-4b03-a999-64e08065769e'

runbookParameters = {
    'f90e6468-31d3-4aa8-9d50-f8bf5bf689e2' : 'value',
    'edb8d27d-38ad-4d29-a255-30d8360a3852' : 'value',
    'b61abea1-4001-42fd-99b5-470acc5c1386' : 'value',
    '32725695-0b25-47e0-abbe-b28e22eca8ad' : 'value',
}

o.Execute(runbookID, runbookParameters)

Using Parameter Names

To send a request using the parameter names indead of the IDs, add the dictionary=True flag. The parameter names must match the names for each parameter in orchestrator.

Example:

runbookID = '285f017e-bc97-4b03-a999-64e08065769e'

runbookParameters = {
    'HDD'  : '50gb',
    'CPU'  : '2',
    'RAM'  : '2048',
    'OS'   : 'Server2012',
}

o.Execute(runbookID, runbookParameters, dictionary=True)

Response

Successfully initiating a runbook execution will return a 201 status code, along with the orchestrator job ID. The job ID returned can be used to check the status of the job using the GetJobStatus function.

Example Response:

{
'status' : 201,
    'result': {
        'id'               : '3c87fd6c-69f5-41c9-bd55-ec2aa6ec7c64',
        'status'           : 'pending',
        'CreationTime'     : '2014-04-02T12:11:05.617',
        'LastModifiedTime' : '2014-04-02T12:19:08.963',
        }
}

Get Runbooks

pySCOrchestrator.orchestrator.GetRunbooks()
pySCOrchestrator.orchestrator.GetRunbookID(runbookName)

Returns a list of runbooks and their IDs from orchestrator.

Example:

o.GetRunbooks()

{
'status' : 200,
'result' : {
    'Runbook_1' : 'e5944fe0-b600-45d2-a872-0c256594e394'
    'Runbook_2' : 'fd6d6a4b-1e57-40a3-930a-f4eb56394d3f'
    'Runbook_3' : '31451e20-5829-4323-9661-603ff826c852'
    }
}

It is also possible to return a single runbook ID by it’s name:

o.GetRunbookID('Runbook_1')

'e5944fe0-b600-45d2-a872-0c256594e394'

Get Runbook Parameters

pySCOrchestrator.orchestrator.GetParameters(runbookID)

This function returns the parameter names and paramater IDs required by the runbook specified.

Example:

runbookID = '285f017e-bc97-4b03-a999-64e08065769e'

o.GetParameters(runbookID)

Example Response:

{
'status' : 200,
  'result': {
    'HDD' : 'f90e6468-31d3-4aa8-9d50-f8bf5bf689e2',
    'CPU' : 'edb8d27d-38ad-4d29-a255-30d8360a3852',
    'RAM' : 'b61abea1-4001-42fd-99b5-470acc5c1386',
    'OS'  : '32725695-0b25-47e0-abbe-b28e22eca8ad',
    }
}

Get Job Status

pySCOrchestrator.orchestrator.GetJobStatus(jobID)

This function allows you to check the status of an orchestrator job/task.

Example:

jobID = '285f017e-bc97-4b03-a999-64e08065769e'

o.GetParameters(jobID)

Example Response:

{
'status' : 200,
    'result': {
        'id'               : '3c87fd6c-69f5-41c9-bd55-ec2aa6ec7c64',
        'status'           : 'Complete',
        'CreationTime'     : '2014-04-02T12:11:05.617',
        'LastModifiedTime' : '2014-04-02T12:19:08.963',
        }
}

Get Job Instance ID

pySCOrchestrator.orchestrator.GetJobInstance(jobID)

Returns the job instance ID. This ID can then be used in other functions such as GetInstanceParameters.

Example:

jobID = '3c87fd6c-69f5-41c9-bd55-ec2aa6ec7c64'

o.GetJobInstance(jobID)

'f4ac97ed-495b-44ae-b547-64611b0d8075'

Get Instance Parameters

pySCOrchestrator.orchestrator.GetInstanceParameters(instanceID)

Returns the instance parameters from orchestrator. This function can be used to get data returned from orchestrator.

Example:

instanceID = 'f4ac97ed-495b-44ae-b547-64611b0d8075'

o.GetInstanceParameters(instanceID)

{
'status' : 200,
'result' : {
    'HDD'   : '50gb',
    'CPU'   : '2',
    'RAM'   : '2048',
    'OS'    : 'Server2012',
    'VM_ID' : 'edb8d27d-38ad-4d29-a255-30d8360a3852',
    'VM_IP' : '127.0.0.1',
    }
}

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

pySCOrchestrator-0.0.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

pySCOrchestrator-0.0.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file pySCOrchestrator-0.0.1.tar.gz.

File metadata

  • Download URL: pySCOrchestrator-0.0.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for pySCOrchestrator-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1542cf7cf715d3315bc50dad1143747dfac5d277e1c5dc7944e3ce76878d9111
MD5 b63904286ecc09f13cba84c8da38a90a
BLAKE2b-256 f4abfdd83ee09c201bd71d6324cc998bf6fbcd85b84cf9dd30dbff8b17920a2d

See more details on using hashes here.

File details

Details for the file pySCOrchestrator-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pySCOrchestrator-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 83abec58a53e2d9442fb2274a9962a39023dc62a6033998bb864460a97c6c602
MD5 1354fc7fd9a40e09dc4b2ecc7ac0b0bc
BLAKE2b-256 4aaf8eb26b9e2e399cb37adca38ae0447a2c1cb66267e1c65fafc9fd5a1e9823

See more details on using hashes here.

Supported by

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