Cloudforms.ProviderManager

Provider Manager

license:MIT, see LICENSE for more details.
class Cloudforms.managers.provider.ProviderManager(client)[source]

Manages Providers.

Parameters:client (Cloudforms.API.Client) – an API client instance

Example:

import Cloudforms
client = Cloudforms.Client()
provider_mgr = Cloudforms.ProviderManager(client)
create(params=None)[source]

Creates a new provider on the account (pass-through params)

Parameters:params (dict) – Additional POST request data
Returns:Provider dictionary object

Example:

# Creates a new provider using pass-through params
provider = provider_mgr.create({
    'type': 'EmsRedhat',
    'name': 'rhevm101',
    'hostname': 'rhevm101',
    'ipaddress': '127.0.0.1',
    'credentials': {
        'userid': 'admin',
        'password': 'smartvm'
    }
})
# Refresh the provider
provider_mgr.refresh(provider['id'])
create_amazon(name, region, access_key, secret_key, params=None)[source]

Creates a new Amazon (AWS) provider on the account

Parameters:
  • string (secret_key) – Display name of the provider
  • string – AWS region (ex. us-east-1)
  • string – AWS API Access Key ID
  • string – AWS API Access Secret Key
  • params (dict) – Additional POST request data
Returns:

Provider dictionary object

Example:

# Creates a new Amazon (AWS) provider
provider = provider_mgr.create_amazon(
    name='MyAWSProvider',
    region='us-east-1',
    access_key='MY4CC3SSK3Y',
    secret_key='My$Freak1shly/L0ng=S3cr3t&K3y'
)
# Refresh the provider
provider_mgr.refresh(provider['id'])
delete(_id, params=None)[source]

Sends a request to delete a provider

Parameters:
  • _id (string) – Specifies which provider the request is for
  • params (dict) – Additional POST request data
Returns:

Task request dictionary (see TaskManager)

Example:

# Gets a list of all providers
for provider in provider_mgr.list():
    # Send requests to delete all providers
    task = provider_mgr.delete(provider['id'])
    # Wait for the request to be processed
    task_mgr.wait_for_task(task.get('task_id'))
get(_id, params=None)[source]

Retrieve details about a provider on the account

Parameters:
  • _id (string) – Specifies which provider the request is for
  • params (dict) – response-level options (attributes, limit, etc.)
Returns:

Dictionary representing the matching provider

Example:

# Gets a list of all providers (returns IDs only)
providers = provider_mgr.list({'attributes': 'id'})
for provider in providers:
    provider_details = provider_mgr.get(provider['id'])
list(params=None)[source]

Retrieve a list of all providers on the account

Parameters:params (dict) – response-level options (attributes, limit, etc.)
Returns:List of dictionaries representing the matching providers

Example:

# Gets a list of all providers (returns IDs only)
providers = provider_mgr.list({'attributes': 'id'})
perform_action(_id, action, params=None)[source]

Sends a request to perform an action on a provider

Parameters:
  • _id (string) – Specifies which provider the request is for
  • action (string) – The action to request (delete, refresh, etc.)
  • params (dict) – Additional POST request data
Returns:

Task request, or Provider, dictionary object

Example:

# Gets a list of all providers
for provider in provider_mgr.list():
    # Send requests to refresh all providers
    provider_mgr.perform_action(provider['id'], 'refresh')
refresh(_id, params=None)[source]

Sends a request to refresh a provider

Parameters:
  • _id (string) – Specifies which provider the request is for
  • params (dict) – Additional POST request data
Returns:

JSON object with a ‘success’ key

Example:

# Gets a list of all providers
for provider in provider_mgr.list():
    # Send requests to refresh all providers
    res = provider_mgr.refresh(provider['id'])
    if not res or not res.get('success'):
        raise RuntimeError('An error occurred')
update(_id, params=None)[source]

Sends a request to update a provider

Parameters:
  • _id (string) – Specifies which provider the request is for
  • params (dict) – Additional POST request data
Returns:

Provider dictionary object (with updates applied)

Example:

# Gets a list of all providers
for provider in provider_mgr.list():
    # Send requests to update all providers
    provider_mgr.update(
        provider['id'],
        params={
            'credentials': [{
                'userid': 'metrics_userid',
                'password': 'metrics_password',
                'auth_type': 'metrics'
            }]
        }
    )