ironicclient Python API¶
The ironicclient python API lets you access ironic, the OpenStack Bare Metal Provisioning Service.
For example, to manipulate nodes, you interact with an ironicclient.v1.node object. You obtain access to nodes via attributes of the ironicclient.v1.client.Client object.
Usage¶
Get a Client object¶
First, create an ironicclient.v1.client.Client instance by passing your credentials to ironicclient.client.get_client(). By default, the Bare Metal Provisioning system is configured so that only administrators (users with ‘admin’ role) have access.
Note
Explicit instantiation of ironicclient.v1.client.Client may cause errors since it doesn’t verify provided arguments, using ironicclient.client.get_client() is prefered way to get client object.
There are two different sets of credentials that can be used:
* ironic endpoint and auth token
* Identity Service (keystone) credentials
Using ironic endpoint and auth token¶
An auth token and the ironic endpoint can be used to authenticate:
* os_auth_token: authentication token (from Identity Service)
* ironic_url: ironic API endpoint, eg http://ironic.example.org:6385/v1
To create the client, you can use the API like so:
>>> from ironicclient import client
>>>
>>> kwargs = {'os_auth_token': '3bcc3d3a03f44e3d8377f9247b0ad155',
>>> 'ironic_url': 'http://ironic.example.org:6385/'}
>>> ironic = client.get_client(1, **kwargs)
Using Identity Service (keystone) credentials¶
These Identity Service credentials can be used to authenticate:
* os_username: name of user
* os_password: user's password
* os_auth_url: Identity Service endpoint for authorization
* insecure: Boolean. If True, does not perform X.509 certificate
validation when establishing SSL connection with identity
service. default: False (optional)
* os_tenant_{name|id}: name or ID of tenant
To create a client, you can use the API like so:
>>> from ironicclient import client
>>>
>>> kwargs = {'os_username': 'name',
>>> 'os_password': 'password',
>>> 'os_auth_url': 'http://keystone.example.org:5000/',
>>> 'os_tenant_name': 'tenant'}
>>> ironic = client.get_client(1, **kwargs)
Perform ironic operations¶
Once you have an ironic Client, you can perform various tasks:
>>> ironic.driver.list() # list of drivers
>>> ironic.node.list() # list of nodes
>>> ironic.node.get(node_uuid) # information about a particular node
When the Client needs to propagate an exception, it will usually raise an instance subclassed from ironicclient.exc.BaseException or ironicclient.exc.ClientException.
Refer to the modules themselves, for more details.
ironicclient Modules¶
- The
ironicclient.client
Module - The
ironicclient.common.apiclient.base
Module - The
ironicclient.common.apiclient.exceptions
Module - The
ironicclient.common.base
Module - The
ironicclient.common.cliutils
Module - The
ironicclient.common.filecache
Module - The
ironicclient.common.http
Module - The
ironicclient.common.i18n
Module - The
ironicclient.common.utils
Module - The
ironicclient.exc
Module - The
ironicclient.osc.plugin
Module - The
ironicclient.osc.v1.baremetal_chassis
Module - The
ironicclient.osc.v1.baremetal_create
Module - The
ironicclient.osc.v1.baremetal_driver
Module - The
ironicclient.osc.v1.baremetal_node
Module - The
ironicclient.osc.v1.baremetal_port
Module - The
ironicclient.shell
Module - The
ironicclient.tests.unit.common.apiclient.test_base
Module - The
ironicclient.tests.unit.common.apiclient.test_exceptions
Module - The
ironicclient.tests.unit.common.test_base
Module - The
ironicclient.tests.unit.common.test_cliutils
Module - The
ironicclient.tests.unit.common.test_filecache
Module - The
ironicclient.tests.unit.common.test_http
Module - The
ironicclient.tests.unit.common.test_utils
Module - The
ironicclient.tests.unit.osc.fakes
Module - The
ironicclient.tests.unit.osc.v1.fakes
Module - The
ironicclient.tests.unit.osc.v1.test_baremetal_chassis
Module - The
ironicclient.tests.unit.osc.v1.test_baremetal_create
Module - The
ironicclient.tests.unit.osc.v1.test_baremetal_driver
Module - The
ironicclient.tests.unit.osc.v1.test_baremetal_node
Module - The
ironicclient.tests.unit.osc.v1.test_baremetal_port
Module - The
ironicclient.tests.unit.test_client
Module - The
ironicclient.tests.unit.test_exc
Module - The
ironicclient.tests.unit.test_import
Module - The
ironicclient.tests.unit.test_shell
Module - The
ironicclient.tests.unit.utils
Module - The
ironicclient.tests.unit.v1.test_chassis
Module - The
ironicclient.tests.unit.v1.test_chassis_shell
Module - The
ironicclient.tests.unit.v1.test_client
Module - The
ironicclient.tests.unit.v1.test_create_resources
Module - The
ironicclient.tests.unit.v1.test_create_resources_shell
Module - The
ironicclient.tests.unit.v1.test_driver
Module - The
ironicclient.tests.unit.v1.test_driver_shell
Module - The
ironicclient.tests.unit.v1.test_node
Module - The
ironicclient.tests.unit.v1.test_node_shell
Module - The
ironicclient.tests.unit.v1.test_port
Module - The
ironicclient.tests.unit.v1.test_port_shell
Module - The
ironicclient.tests.unit.v1.test_resource_fields
Module - The
ironicclient.v1.chassis
Module - The
ironicclient.v1.chassis_shell
Module - The
ironicclient.v1.client
Module - The
ironicclient.v1.create_resources
Module - The
ironicclient.v1.create_resources_shell
Module - The
ironicclient.v1.driver
Module - The
ironicclient.v1.driver_shell
Module - The
ironicclient.v1.node
Module - The
ironicclient.v1.node_shell
Module - The
ironicclient.v1.port
Module - The
ironicclient.v1.port_shell
Module - The
ironicclient.v1.resource_fields
Module - The
ironicclient.v1.shell
Module - The
ironicclient.v1.utils
Module