# 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