A python client implementing the Ironic API.
Go to file
Jason b40630f3b3 Use endpoint_override in version negotiation
Change [1] introduced the usage of endpoint_filter when deciding which
endpoint to use during version negotiation. This requires properly
setting interface/region/service_type in order to properly pick the
endpoint. But, sometimes (for example in Kolla-ansible), the endpoint
url is explicitly defined. In the event of the endpoint being explicitly
defined, it should take priority here.

It should be noted that even though SessionClient extends from
keystoneauth1's adapter.LegacyJsonAdapter, the `request` function within
_make_simple_request is being called on the nested Session object, not
the Adapter itself. If it was called on the Adapter this problem
wouldn't exist, as the `endpoint_override` (or `endpoint`) kwarg passed
in to the constructor of the SessionClient would already take
precedence.

Additionally: Adds a release note to the older branch as this is a
fix that needs to be released and is worthy of change visibility
in release notes.

[1]: I42b66daea1f4397273a3f4eb1638abafb3bb28ce

Change-Id: I69dc2c88648ba1d09a9ad3ab3435662e8d1ea6ff
Related-Bug: #1818295
(cherry picked from commit 8071d5de57)
2019-04-16 21:26:58 -07:00
doc Allocation API: client API and CLI 2019-02-16 15:51:38 +01:00
ironicclient Use endpoint_override in version negotiation 2019-04-16 21:26:58 -07:00
playbooks/functional Run jobs under python2 and python3 2019-04-10 10:58:57 +02:00
releasenotes Use endpoint_override in version negotiation 2019-04-16 21:26:58 -07:00
tools Move to zuulv3 2019-03-26 17:02:04 +01:00
zuul.d Run jobs under python2 and python3 2019-04-10 10:58:57 +02:00
.coveragerc Fix coverage target 2016-07-27 14:12:42 -07:00
.gitignore Remove testrepository 2018-07-11 17:49:59 +07:00
.gitreview Update .gitreview for stable/stein 2019-03-21 12:47:30 +00:00
.stestr.conf Replace testr with stestr 2017-10-06 07:20:47 +00:00
CONTRIBUTING.rst Update the documentation link for doc migration 2017-08-02 08:35:17 +00:00
LICENSE Add initial files 2013-09-05 16:35:21 -07:00
README.rst Modify useful links to project resources in README 2018-09-28 14:26:05 +01:00
lower-constraints.txt Merge "Fix lower-constraints.txt" 2018-07-14 01:25:55 +00:00
requirements.txt Switch to none auth for standalone mode 2018-05-07 13:52:45 +00:00
setup.cfg Deploy templates: client support 2019-03-01 14:24:28 +00:00
setup.py Updated from global requirements 2017-03-02 11:54:32 +00:00
test-requirements.txt Switch to using stestr 2018-06-05 08:53:23 -04:00
tox.ini Run jobs under python2 and python3 2019-04-10 10:58:57 +02:00

README.rst

Python bindings for the Ironic API

Team and repository tags

image

Overview

This is a client for the OpenStack Bare Metal API. It provides:

  • a Python API: the ironicclient module, and
  • two command-line interfaces: openstack baremetal and ironic (deprecated, please use openstack baremetal).

Development takes place via the usual OpenStack processes as outlined in the developer guide. The master repository is on git.openstack.org.

python-ironicclient is licensed under the Apache License, Version 2.0, like the rest of OpenStack.

Contents:

Project resources

Python API

Quick-start Example:

>>> from ironicclient import client
>>>
>>> kwargs = {'os_auth_token': '3bcc3d3a03f44e3d8377f9247b0ad155',
>>>           'ironic_url': 'http://ironic.example.org:6385/'}
>>> ironic = client.get_client(1, **kwargs)

openstack baremetal CLI

The openstack baremetal command line interface is available when the bare metal plugin (included in this package) is used with the OpenStackClient.

There are two ways to install the OpenStackClient (python-openstackclient) package:

  • along with this python-ironicclient package:

    # pip install python-ironicclient[cli]
  • directly:

    # pip install python-openstackclient

An example of creating a basic node with the ipmi driver:

$ openstack baremetal node create --driver ipmi

An example of creating a port on a node:

$ openstack baremetal port create --node <UUID> AA:BB:CC:DD:EE:FF

An example of updating driver properties for a node:

$ openstack baremetal node set --driver-info ipmi_address=<IPaddress> <UUID or name>

For more information about the openstack baremetal command and the subcommands available, run:

$ openstack help baremetal

ironic CLI (deprecated)

This is deprecated and will be removed in the S* release. Please use the openstack baremetal CLI instead.

This package will install the ironic command line interface that you can use to interact with the ironic API.

In order to use the ironic CLI you'll need to provide your OpenStack tenant, username, password and authentication endpoint. You can do this with the --os-tenant-name, --os-username, --os-password and --os-auth-url parameters, though it may be easier to set them as environment variables:

$ export OS_PROJECT_NAME=project
$ export OS_USERNAME=user
$ export OS_PASSWORD=pass
$ export OS_AUTH_URL=http://auth.example.com:5000/v2.0

To use a specific Ironic API endpoint:

$ export IRONIC_URL=http://ironic.example.com:6385

An example of creating a basic node with the ipmi driver:

$ ironic node-create -d ipmi

An example of creating a port on a node:

$ ironic port-create -a AA:BB:CC:DD:EE:FF -n nodeUUID

An example of updating driver properties for a node:

$ ironic node-update nodeUUID add driver_info/ipmi_address=<IPaddress>
$ ironic node-update nodeUUID add driver_info/ipmi_username=<username>
$ ironic node-update nodeUUID add driver_info/ipmi_password=<password>

For more information about the ironic command and the subcommands available, run:

$ ironic help