Files
python-saharaclient/doc/source/api.rst
Andrey Pavlov 8a5a16f1d6 Adding autogenerated saharaclient API docs
Saharaclient API docs now can be autogenerated, that
prevents them from manual update. Also docstrings
were added to describe some unclear parameters.

Change-Id: Ibf9fdf332c91cdfb18d6f8ec5429a39dc2862494
2015-11-12 19:20:02 +03:00

4.0 KiB

Sahara Client

Overview

Sahara Client provides a list of Python interfaces to communicate with the Sahara REST API. Sahara Client enables users to perform most of the existing operations like retrieving template lists, creating Clusters, submitting EDP Jobs, etc.

Instantiating a Client

To start using the Sahara Client users have to create an instance of the Client class. The client constructor has a list of parameters to authenticate and locate Sahara endpoint.

saharaclient.api.client.Client

Important!

It is not a mandatory rule to provide all of the parameters above. The minimum number should be enough to determine Sahara endpoint, check user authentication and tenant to operate in.

Authentication check

Passing authentication parameters to Sahara Client is deprecated. Keystone Session object should be used for this purpose. For example:

from keystoneclient.auth.identity import v2
from keystoneclient import session
from saharaclient import client

auth = v2.Password(auth_url=AUTH_URL,
                   username=USERNAME,
                   password=PASSWORD,
                   tenant_name=PROJECT_ID)

ses = session.Session(auth=auth)

sahara = client.Client('1.1', session=ses)

For more information about Keystone Sessions, see Using Sessions.

Sahara endpoint discovery

If user has a direct URL pointing to Sahara REST API, it may be specified as sahara_url. If this parameter is missing, Sahara client will use Keystone Service Catalog to find the endpoint. There are two parameters: service_type and endpoint_type to configure endpoint search. Both parameters have default values.

from keystoneclient.auth.identity import v2
from keystoneclient import session
from saharaclient import client

auth = v2.Password(auth_url=AUTH_URL,
                   username=USERNAME,
                   password=PASSWORD,
                   tenant_name=PROJECT_ID)

ses = session.Session(auth=auth)

sahara = client.Client('1.1', session=ses,
                       service_type="non-default-service-type",
                       endpoint_type="internalURL")

Object managers

Sahara Client has a list of fields to operate with:

  • plugins
  • clusters
  • cluster_templates
  • node_group_templates
  • images
  • data_sources
  • job_binaries
  • job_binary_internals
  • job_executions
  • job_types

Each of this fields is a reference to a Manager for a corresponding group of REST calls.

Supported operations

Plugin ops

saharaclient.api.plugins.PluginManager

Image Registry ops

saharaclient.api.images.ImageManager

Node Group Template ops

saharaclient.api.node_group_templates.NodeGroupTemplateManager

Cluster Template ops

saharaclient.api.cluster_templates.ClusterTemplateManager

Cluster ops

saharaclient.api.clusters.ClusterManager

Data Source ops

saharaclient.api.data_sources.DataSourceManager

Job Binary Internal ops

saharaclient.api.job_binary_internals.JobBinaryInternalsManager

Job Binary ops

saharaclient.api.job_binaries.JobBinariesManager

Job ops

saharaclient.api.jobs.JobsManager

Job Execution ops

saharaclient.api.job_executions.JobExecutionsManager

Job Types ops

saharaclient.api.job_types.JobTypesManager