API Reference

os_faults.connect(cloud_config=None, config_filename=None)

Connects to the cloud

Parameters
  • cloud_config – dict with cloud and power management params

  • config_filename – name of the file where to read config from

Returns

CloudManagement object

os_faults.discover(cloud_config)

Connect to the cloud and discover nodes and services

Parameters

cloud_config – dict with cloud and power management params

Returns

config dict with discovered nodes/services

os_faults.human_api(cloud_management, command)

Executes a command written as English sentence

Parameters
  • cloud_management – library instance as returned by :connect: function

  • command – text command

os_faults.register_ansible_modules(paths)

Registers ansible modules by provided paths

Allows to use custom ansible modules in NodeCollection.run_task method

Parameters

paths – list of paths to folders with ansible modules

class os_faults.api.cloud_management.CloudManagement
abstract execute_on_cloud(hosts, task, raise_on_error=True)

Execute task on specified hosts within the cloud.

Parameters
  • hosts – List of host FQDNs

  • task – Ansible task

  • raise_on_error – throw exception in case of error

Returns

Ansible execution result (list of records)

get_container(name)

Get container with specified name

Parameters

name – name of the container

Returns

Container

get_nodes(fqdns=None)

Get nodes in the cloud

This function returns NodesCollection representing all nodes in the cloud or only those that has specified FQDNs. :param fqdns list of FQDNs or None to retrieve all nodes :return: NodesCollection

get_service(name)

Get service with specified name

Parameters

name – name of the service

Returns

Service

classmethod list_supported_networks()

Lists all networks supported by nodes returned by this driver

Returns

[String] list of network names

classmethod list_supported_services()

Lists all services supported by this driver

Returns

[String] list of service names

abstract verify()

Verify connection to the cloud.

class os_faults.api.service.Service(service_name, config, node_cls, cloud_management, hosts=None)
abstract discover_nodes()

Discover nodes where this Service is running

Returns

NodesCollection

freeze(nodes=None, sec=None)

Pause service execution

Send SIGSTOP to Service into network on all nodes or on particular subset. If sec is defined - it mean Service will be stopped for a wile.

Parameters
  • nodes – NodesCollection

  • sec – int

get_nodes()

Get nodes where this Service is running

Returns

NodesCollection

kill(nodes=None)

Terminate Service abruptly on all nodes or on particular subset

Parameters

nodes – NodesCollection

plug(nodes=None, direction=None, other_port=None)

Plug Service into network on all nodes or on particular subset

Parameters
  • nodes – NodesCollection

  • direction – str, traffic direction ‘ingress’ or ‘egress’

  • other_port – int, port number which needs to be allowed

restart(nodes=None)

Restart Service on all nodes or on particular subset

Parameters

nodes – NodesCollection

start(nodes=None)

Start Service on all nodes or on particular subset

Parameters

nodes – NodesCollection

terminate(nodes=None)

Terminate Service gracefully on all nodes or on particular subset

Parameters

nodes – NodesCollection

unfreeze(nodes=None)

Resume service execution

Send SIGCONT to Service into network on all nodes or on particular subset.

Parameters

nodes – NodesCollection

unplug(nodes=None, direction=None, other_port=None)

Unplug Service out of network on all nodes or on particular subset

Parameters
  • nodes – NodesCollection

  • direction – str, traffic direction ‘ingress’ or ‘egress’

  • other_port – int, port number which needs to be blocked

class os_faults.api.container.Container(container_name, config, node_cls, cloud_management, hosts=None)
abstract discover_nodes()

Discover nodes where this Container is running

Returns

NodesCollection

get_nodes()

Get nodes where this Container is running

Returns

NodesCollection

restart(nodes=None)

Restart Container on all nodes or on particular subset

Parameters

nodes – NodesCollection

start(nodes=None)

Start Container on all nodes or on particular subset

Parameters

nodes – NodesCollection

terminate(nodes=None)

Terminate Container gracefully on all nodes or on particular subset

Parameters

nodes – NodesCollection

class os_faults.api.node_collection.NodeCollection(cloud_management=None, hosts=None)
connect(network_name)

Connect nodes to <network_name> network

Parameters

network_name – name of network

disconnect(network_name)

Disconnect nodes from <network_name> network

Parameters

network_name – name of network

pick(count=1)

Pick one Node out of collection

Returns

NodeCollection consisting just one node

poweroff()

Power off all nodes abruptly

poweron()

Power on all nodes abruptly

reboot()

Reboot all nodes gracefully

reset()

Reset (cold restart) all nodes

revert(snapshot_name, resume=True)

Revert snapshot for all nodes

run_task(task, raise_on_error=True)

Run ansible task on node colection

Parameters
  • task – ansible task as dict

  • raise_on_error – throw exception in case of error

Returns

AnsibleExecutionRecord with results of task

shutdown()

Shutdown all nodes gracefully

snapshot(snapshot_name, suspend=True)

Create snapshot for all nodes

stress(target, duration=None)

Stress node OS and hardware