summaryrefslogtreecommitdiff
path: root/doc/source/api.rst
blob: f49e66378fb08a64f8616317da0bfadcc88e9d29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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.

.. autoclass:: saharaclient.api.client.Client
    :members:

**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:

.. sourcecode:: python

    from keystoneauth1.identity import v2
    from keystoneauth1 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`_.

.. _Using Sessions: http://docs.openstack.org/developer/python-keystoneclient/using-sessions.html

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.

.. sourcecode:: python

        from keystoneauth1.identity import v2
        from keystoneauth1 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
~~~~~~~~~~

.. autoclass:: saharaclient.api.plugins.PluginManager
    :members:

Image Registry ops
~~~~~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.images.ImageManager
    :members:

Node Group Template ops
~~~~~~~~~~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.node_group_templates.NodeGroupTemplateManager
    :members:

Cluster Template ops
~~~~~~~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.cluster_templates.ClusterTemplateManager
    :members:

Cluster ops
~~~~~~~~~~~

.. autoclass:: saharaclient.api.clusters.ClusterManager
   :members:

Data Source ops
~~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.data_sources.DataSourceManager
   :members:

Job Binary Internal ops
~~~~~~~~~~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.job_binary_internals.JobBinaryInternalsManager
   :members: create, update

Job Binary ops
~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.job_binaries.JobBinariesManager
   :members:

Job ops
~~~~~~~

.. autoclass:: saharaclient.api.jobs.JobsManager
   :members:

Job Execution ops
~~~~~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.job_executions.JobExecutionsManager
   :members:

Job Types ops
~~~~~~~~~~~~~

.. autoclass:: saharaclient.api.job_types.JobTypesManager
   :members: