deb-sahara/doc/source/devref/plugins.rst
Elise Gafford 2ee34891ff Documentation fixes and updates for devref
Batch update of minor fixes, updates, grammar corrections, and
formatting improvements for all devref documents.

Change-Id: Ifb73bccf9788c11b60473891170b8cf55a0a5fb6
2016-09-15 12:19:45 -04:00

1.2 KiB

Pluggable Provisioning Mechanism

Sahara can be integrated with 3rd party management tools like Apache Ambari and Cloudera Management Console. The integration is achieved using the plugin mechanism.

In short, responsibilities are divided between the Sahara core and a plugin as follows. Sahara interacts with the user and uses Heat to provision OpenStack resources (VMs, baremetal servers, security groups, etc.) The plugin installs and configures a Hadoop cluster on the provisioned instances. Optionally, a plugin can deploy management and monitoring tools for the cluster. Sahara provides plugins with utility methods to work with provisioned instances.

A plugin must extend the sahara.plugins.provisioning:ProvisioningPluginBase class and implement all the required methods. Read plugin.spi for details.

The instance objects provided by Sahara have a remote property which can be used to interact with instances. The remote is a context manager so you can use it in with instance.remote: statements. The list of available commands can be found in sahara.utils.remote.InstanceInteropHelper. See the source code of the Vanilla plugin for usage examples.