Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: python-ironicclient

python-ironicclient (2.8.0-0ubuntu1) eoan; urgency=medium * New upstream release for OpenStack Train. -- Corey Bryant <corey.bryant@canonical.com> Tue, 30 Jul 2019 15:30:22 -0400 python-ironicclient (2.7.2-0ubuntu1) eoan; urgency=medium * Merge from Debian experimental. Remaining changes: - d/gbp.conf: Retain for pristine-tar. - d/watch: Get tarball from pypi.debian.net. - d/control: Enable autopkgtest-pkg-python testsuite. - d/control: Update Standards-Version to 4.1.4. * New upstream release for OpenStack Train. * d/control: Align (Build-)Depends with upstream. -- Corey Bryant <corey.bryant@canonical.com> Wed, 05 Jun 2019 13:53:50 -0400

Modifications :
  1. Download patch ironicclient/osc/v1/baremetal_allocation.py

    --- 2.7.0-3/ironicclient/osc/v1/baremetal_allocation.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/osc/v1/baremetal_allocation.py 2019-06-06 18:22:11.000000000 +0000 @@ -34,7 +34,6 @@ class CreateBaremetalAllocation(command. parser.add_argument( '--resource-class', dest='resource_class', - required=True, help=_('Resource class to request.')) parser.add_argument( '--trait', @@ -75,6 +74,11 @@ class CreateBaremetalAllocation(command. "is returned if allocation fails and --wait is used. " "Optionally takes a timeout value (in seconds). The " "default value is 0, meaning it will wait indefinitely.")) + parser.add_argument( + '--node', + help=_("Backfill this allocation from the provided node that has " + "already been deployed. Bypasses the normal allocation " + "process.")) return parser @@ -82,8 +86,12 @@ class CreateBaremetalAllocation(command. self.log.debug("take_action(%s)", parsed_args) baremetal_client = self.app.client_manager.baremetal + if not parsed_args.node and not parsed_args.resource_class: + raise exc.ClientException( + _('--resource-class is required except when --node is used')) + field_list = ['name', 'uuid', 'extra', 'resource_class', 'traits', - 'candidate_nodes'] + 'candidate_nodes', 'node'] fields = dict((k, v) for (k, v) in vars(parsed_args).items() if k in field_list and v is not None) @@ -267,3 +275,99 @@ class DeleteBaremetalAllocation(command. if failures: raise exc.ClientException("\n".join(failures)) + + +class SetBaremetalAllocation(command.Command): + """Set baremetal allocation properties.""" + + log = logging.getLogger(__name__ + ".SetBaremetalAllocation") + + def get_parser(self, prog_name): + parser = super(SetBaremetalAllocation, self).get_parser(prog_name) + + parser.add_argument( + "allocation", + metavar="<allocation>", + help=_("Name or UUID of the allocation") + ) + parser.add_argument( + "--name", + metavar="<name>", + help=_("Set the name of the allocation") + ) + parser.add_argument( + "--extra", + metavar="<key=value>", + action="append", + help=_("Extra property to set on this allocation " + "(repeat option to set multiple extra properties)") + ) + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)", parsed_args) + + baremetal_client = self.app.client_manager.baremetal + + properties = [] + if parsed_args.name: + properties.extend(utils.args_array_to_patch( + 'add', ["name=%s" % parsed_args.name])) + if parsed_args.extra: + properties.extend(utils.args_array_to_patch( + 'add', ["extra/" + x for x in parsed_args.extra])) + + if properties: + baremetal_client.allocation.update( + parsed_args.allocation, properties) + else: + self.log.warning("Please specify what to set.") + + +class UnsetBaremetalAllocation(command.Command): + """Unset baremetal allocation properties.""" + log = logging.getLogger(__name__ + ".UnsetBaremetalAllocation") + + def get_parser(self, prog_name): + parser = super(UnsetBaremetalAllocation, self).get_parser( + prog_name) + + parser.add_argument( + "allocation", + metavar="<allocation>", + help=_("Name or UUID of the allocation") + ) + parser.add_argument( + "--name", + action="store_true", + default=False, + help=_("Unset the name of the allocation") + ) + parser.add_argument( + "--extra", + metavar="<key>", + action='append', + help=_('Extra property to unset on this baremetal allocation ' + '(repeat option to unset multiple extra property).'), + ) + + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)", parsed_args) + + baremetal_client = self.app.client_manager.baremetal + + properties = [] + if parsed_args.name: + properties.extend(utils.args_array_to_patch('remove', + ['name'])) + if parsed_args.extra: + properties.extend(utils.args_array_to_patch('remove', + ['extra/' + x for x in parsed_args.extra])) + + if properties: + baremetal_client.allocation.update(parsed_args.allocation, + properties) + else: + self.log.warning("Please specify what to unset.")
  2. Download patch playbooks/functional/run.yaml

    --- 2.7.0-3/playbooks/functional/run.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/playbooks/functional/run.yaml 2019-06-06 18:22:08.000000000 +0000 @@ -0,0 +1,55 @@ +- hosts: all + tasks: + - shell: + cmd: | + set -e + set -x + export BASE='/opt/stack' + export IRONICCLIENT_DIR="$BASE/python-ironicclient" + sudo chmod -R a+rw /opt/stack/ + cd $IRONICCLIENT_DIR + set +e + echo "Running ironicclient functional test suite" + + # Only admin credentials needed for ironic api + source $BASE/devstack/openrc admin admin + + FUNC_TEST_DIR=$IRONICCLIENT_DIR/ironicclient/tests/functional + CONFIG_FILE=$IRONICCLIENT_DIR/test.conf + echo 'Generating configuration file for functional tests' + + if [[ -n "$IRONIC_URL" ]]; then + cat <<END >$CONFIG_FILE + [functional] + api_version = 1 + auth_strategy=noauth + ironic_url=$IRONIC_URL + END + else + cat <<END >$CONFIG_FILE + [functional] + api_version = 1 + os_auth_url=$OS_AUTH_URL + os_identity_api_version=$OS_IDENTITY_API_VERSION + os_username=$OS_USERNAME + os_password=$OS_PASSWORD + os_project_name=$OS_PROJECT_NAME + os_user_domain_id=$OS_USER_DOMAIN_ID + os_project_domain_id=$OS_PROJECT_DOMAIN_ID + os_service_type=baremetal + os_endpoint_type=public + END + fi + echo 'Configuration file is in '$CONFIG_FILE'' + export IRONICCLIENT_TEST_CONFIG=$CONFIG_FILE + + cd $IRONICCLIENT_DIR + if [[ $USE_PYTHON3 == "True" ]]; then + echo 'Running Functional Tests under Python3' + tox -e functionalpy3 + else + echo 'Running Functional Tests under Python2' + tox -e functional + fi + executable: /bin/bash + chdir: '/opt/stack/python-ironicclient'
  3. Download patch ironicclient/tests/unit/osc/v1/test_baremetal_allocation.py

    --- 2.7.0-3/ironicclient/tests/unit/osc/v1/test_baremetal_allocation.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/unit/osc/v1/test_baremetal_allocation.py 2019-06-06 18:22:11.000000000 +0000 @@ -16,6 +16,7 @@ import copy import mock from osc_lib.tests import utils as osctestutils +from ironicclient import exc from ironicclient.osc.v1 import baremetal_allocation from ironicclient.tests.unit.osc.v1 import fakes as baremetal_fakes @@ -177,9 +178,29 @@ class TestCreateBaremetalAllocation(Test arglist = [] verifylist = [] - self.assertRaises(osctestutils.ParserException, - self.check_parser, - self.cmd, arglist, verifylist) + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.assertRaises(exc.ClientException, + self.cmd.take_action, + parsed_args) + + def test_baremetal_allocation_backfill(self): + arglist = [ + '--node', baremetal_fakes.baremetal_uuid, + ] + + verifylist = [ + ('node', baremetal_fakes.baremetal_uuid), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + + args = { + 'node': baremetal_fakes.baremetal_uuid, + } + + self.baremetal_mock.allocation.create.assert_called_once_with(**args) class TestShowBaremetalAllocation(TestBaremetalAllocation): @@ -469,3 +490,130 @@ class TestBaremetalAllocationDelete(Test self.assertRaises(osctestutils.ParserException, self.check_parser, self.cmd, arglist, verifylist) + + +class TestBaremetalAllocationSet(TestBaremetalAllocation): + def setUp(self): + super(TestBaremetalAllocationSet, self).setUp() + + self.baremetal_mock.allocation.update.return_value = ( + baremetal_fakes.FakeBaremetalResource( + None, + copy.deepcopy(baremetal_fakes.ALLOCATION), + loaded=True)) + + self.cmd = baremetal_allocation.SetBaremetalAllocation( + self.app, None) + + def test_baremetal_allocation_set_name(self): + new_name = 'foo' + arglist = [ + baremetal_fakes.baremetal_uuid, + '--name', new_name] + verifylist = [ + ('allocation', baremetal_fakes.baremetal_uuid), + ('name', new_name)] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + self.baremetal_mock.allocation.update.assert_called_once_with( + baremetal_fakes.baremetal_uuid, + [{'path': '/name', 'value': new_name, 'op': 'add'}]) + + def test_baremetal_allocation_set_extra(self): + extra_value = 'foo=bar' + arglist = [ + baremetal_fakes.baremetal_uuid, + '--extra', extra_value] + verifylist = [ + ('allocation', baremetal_fakes.baremetal_uuid), + ('extra', [extra_value])] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + self.baremetal_mock.allocation.update.assert_called_once_with( + baremetal_fakes.baremetal_uuid, + [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}]) + + def test_baremetal_allocation_set_no_options(self): + arglist = [] + verifylist = [] + self.assertRaises(osctestutils.ParserException, + self.check_parser, + self.cmd, arglist, verifylist) + + +class TestBaremetalAllocationUnset(TestBaremetalAllocation): + def setUp(self): + super(TestBaremetalAllocationUnset, self).setUp() + + self.baremetal_mock.allocation.update.return_value = ( + baremetal_fakes.FakeBaremetalResource( + None, + copy.deepcopy(baremetal_fakes.ALLOCATION), + loaded=True)) + + self.cmd = baremetal_allocation.UnsetBaremetalAllocation( + self.app, None) + + def test_baremetal_allocation_unset_name(self): + arglist = [ + baremetal_fakes.baremetal_uuid, '--name'] + verifylist = [('allocation', + baremetal_fakes.baremetal_uuid), + ('name', True)] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + self.baremetal_mock.allocation.update.assert_called_once_with( + baremetal_fakes.baremetal_uuid, + [{'path': '/name', 'op': 'remove'}]) + + def test_baremetal_allocation_unset_extra(self): + arglist = [ + baremetal_fakes.baremetal_uuid, '--extra', 'key1'] + verifylist = [('allocation', + baremetal_fakes.baremetal_uuid), + ('extra', ['key1'])] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + self.baremetal_mock.allocation.update.assert_called_once_with( + baremetal_fakes.baremetal_uuid, + [{'path': '/extra/key1', 'op': 'remove'}]) + + def test_baremetal_allocation_unset_multiple_extras(self): + arglist = [ + baremetal_fakes.baremetal_uuid, + '--extra', 'key1', '--extra', 'key2'] + verifylist = [('allocation', + baremetal_fakes.baremetal_uuid), + ('extra', ['key1', 'key2'])] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.cmd.take_action(parsed_args) + self.baremetal_mock.allocation.update.assert_called_once_with( + baremetal_fakes.baremetal_uuid, + [{'path': '/extra/key1', 'op': 'remove'}, + {'path': '/extra/key2', 'op': 'remove'}]) + + def test_baremetal_allocation_unset_no_options(self): + arglist = [] + verifylist = [] + self.assertRaises(osctestutils.ParserException, + self.check_parser, + self.cmd, arglist, verifylist) + + def test_baremetal_allocation_unset_no_property(self): + uuid = baremetal_fakes.baremetal_uuid + arglist = [uuid] + verifylist = [('allocation', uuid)] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.cmd.take_action(parsed_args) + self.assertFalse(self.baremetal_mock.allocation.update.called)
  4. Download patch ironicclient/tests/functional/test_chassis.py

    --- 2.7.0-3/ironicclient/tests/functional/test_chassis.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/functional/test_chassis.py 2019-06-06 18:22:07.000000000 +0000 @@ -132,7 +132,7 @@ class ChassisNegativeTestsIronicClient(b 1) check that chassis-delete command without arguments triggers an exception """ - ex_text = r'chassis-delete: error: too few arguments' + ex_text = r'chassis-delete: error:' six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text, @@ -159,7 +159,7 @@ class ChassisNegativeTestsIronicClient(b 1) check that chassis-show command without arguments triggers an exception """ - ex_text = r'chassis-show: error: too few arguments' + ex_text = r'chassis-show: error:' six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text, @@ -187,7 +187,7 @@ class ChassisNegativeTestsIronicClient(b 2) check that chassis-update command without arguments triggers an exception """ - ex_text = r'chassis-update: error: too few arguments' + ex_text = r'chassis-update: error:' six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text, @@ -203,7 +203,7 @@ class ChassisNegativeTestsIronicClient(b triggers an exception """ uuid = data_utils.rand_uuid() - ex_text = r'chassis-update: error: too few arguments' + ex_text = r'chassis-update: error:' six.assertRaisesRegex(self, exceptions.CommandFailed,
  5. Download patch PKG-INFO

    --- 2.7.0-3/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/PKG-INFO 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1,152 @@ +Metadata-Version: 2.1 +Name: python-ironicclient +Version: 2.8.0 +Summary: OpenStack Bare Metal Provisioning API Client Library +Home-page: https://docs.openstack.org/python-ironicclient/latest/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Description: ================================== + Python bindings for the Ironic API + ================================== + + Team and repository tags + ------------------------ + + .. image:: https://governance.openstack.org/tc/badges/python-ironicclient.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + + Overview + -------- + + This is a client for the OpenStack `Bare Metal API + <https://developer.openstack.org/api-ref/baremetal/>`_. 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 <https://docs.openstack.org/infra/manual/developers.html>`_. + The master repository is on `opendev.org + <https://opendev.org/openstack/python-ironicclient/>`_. + + ``python-ironicclient`` is licensed under the Apache License, Version 2.0, + like the rest of OpenStack. + + .. contents:: Contents: + :local: + + Project resources + ----------------- + + * Documentation: https://docs.openstack.org/python-ironicclient/latest/ + * Source: https://opendev.org/openstack/python-ironicclient + * Bugs: https://storyboard.openstack.org/#!/project/959 + * Release notes: https://docs.openstack.org/releasenotes/python-ironicclient/ + + 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 + <https://docs.openstack.org/python-openstackclient/latest/>`_. + + 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 + + +Platform: UNKNOWN +Classifier: Environment :: OpenStack +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX :: Linux +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Provides-Extra: cli +Provides-Extra: test
  6. Download patch README.rst

    --- 2.7.0-3/README.rst 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/README.rst 2019-06-06 18:22:07.000000000 +0000 @@ -20,8 +20,8 @@ This is a client for the OpenStack `Bare Development takes place via the usual OpenStack processes as outlined in the `developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. -The master repository is on `git.openstack.org -<https://git.openstack.org/cgit/openstack/python-ironicclient>`_. +The master repository is on `opendev.org +<https://opendev.org/openstack/python-ironicclient/>`_. ``python-ironicclient`` is licensed under the Apache License, Version 2.0, like the rest of OpenStack. @@ -33,7 +33,7 @@ Project resources ----------------- * Documentation: https://docs.openstack.org/python-ironicclient/latest/ -* Source: https://git.openstack.org/cgit/openstack/python-ironicclient +* Source: https://opendev.org/openstack/python-ironicclient * Bugs: https://storyboard.openstack.org/#!/project/959 * Release notes: https://docs.openstack.org/releasenotes/python-ironicclient/
  7. Download patch python_ironicclient.egg-info/entry_points.txt

    --- 2.7.0-3/python_ironicclient.egg-info/entry_points.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/entry_points.txt 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1,98 @@ +[console_scripts] +ironic = ironicclient.shell:main + +[openstack.baremetal.v1] +baremetal_allocation_create = ironicclient.osc.v1.baremetal_allocation:CreateBaremetalAllocation +baremetal_allocation_delete = ironicclient.osc.v1.baremetal_allocation:DeleteBaremetalAllocation +baremetal_allocation_list = ironicclient.osc.v1.baremetal_allocation:ListBaremetalAllocation +baremetal_allocation_set = ironicclient.osc.v1.baremetal_allocation:SetBaremetalAllocation +baremetal_allocation_show = ironicclient.osc.v1.baremetal_allocation:ShowBaremetalAllocation +baremetal_allocation_unset = ironicclient.osc.v1.baremetal_allocation:UnsetBaremetalAllocation +baremetal_chassis_create = ironicclient.osc.v1.baremetal_chassis:CreateBaremetalChassis +baremetal_chassis_delete = ironicclient.osc.v1.baremetal_chassis:DeleteBaremetalChassis +baremetal_chassis_list = ironicclient.osc.v1.baremetal_chassis:ListBaremetalChassis +baremetal_chassis_set = ironicclient.osc.v1.baremetal_chassis:SetBaremetalChassis +baremetal_chassis_show = ironicclient.osc.v1.baremetal_chassis:ShowBaremetalChassis +baremetal_chassis_unset = ironicclient.osc.v1.baremetal_chassis:UnsetBaremetalChassis +baremetal_conductor_list = ironicclient.osc.v1.baremetal_conductor:ListBaremetalConductor +baremetal_conductor_show = ironicclient.osc.v1.baremetal_conductor:ShowBaremetalConductor +baremetal_create = ironicclient.osc.v1.baremetal_create:CreateBaremetal +baremetal_deploy_template_create = ironicclient.osc.v1.baremetal_deploy_template:CreateBaremetalDeployTemplate +baremetal_deploy_template_delete = ironicclient.osc.v1.baremetal_deploy_template:DeleteBaremetalDeployTemplate +baremetal_deploy_template_list = ironicclient.osc.v1.baremetal_deploy_template:ListBaremetalDeployTemplate +baremetal_deploy_template_set = ironicclient.osc.v1.baremetal_deploy_template:SetBaremetalDeployTemplate +baremetal_deploy_template_show = ironicclient.osc.v1.baremetal_deploy_template:ShowBaremetalDeployTemplate +baremetal_deploy_template_unset = ironicclient.osc.v1.baremetal_deploy_template:UnsetBaremetalDeployTemplate +baremetal_driver_list = ironicclient.osc.v1.baremetal_driver:ListBaremetalDriver +baremetal_driver_passthru_call = ironicclient.osc.v1.baremetal_driver:PassthruCallBaremetalDriver +baremetal_driver_passthru_list = ironicclient.osc.v1.baremetal_driver:PassthruListBaremetalDriver +baremetal_driver_property_list = ironicclient.osc.v1.baremetal_driver:ListBaremetalDriverProperty +baremetal_driver_raid_property_list = ironicclient.osc.v1.baremetal_driver:ListBaremetalDriverRaidProperty +baremetal_driver_show = ironicclient.osc.v1.baremetal_driver:ShowBaremetalDriver +baremetal_node_abort = ironicclient.osc.v1.baremetal_node:AbortBaremetalNode +baremetal_node_add_trait = ironicclient.osc.v1.baremetal_node:AddTraitBaremetalNode +baremetal_node_adopt = ironicclient.osc.v1.baremetal_node:AdoptBaremetalNode +baremetal_node_bios_setting_list = ironicclient.osc.v1.baremetal_node:ListBIOSSettingBaremetalNode +baremetal_node_bios_setting_show = ironicclient.osc.v1.baremetal_node:BIOSSettingShowBaremetalNode +baremetal_node_boot_device_set = ironicclient.osc.v1.baremetal_node:BootdeviceSetBaremetalNode +baremetal_node_boot_device_show = ironicclient.osc.v1.baremetal_node:BootdeviceShowBaremetalNode +baremetal_node_clean = ironicclient.osc.v1.baremetal_node:CleanBaremetalNode +baremetal_node_console_disable = ironicclient.osc.v1.baremetal_node:ConsoleDisableBaremetalNode +baremetal_node_console_enable = ironicclient.osc.v1.baremetal_node:ConsoleEnableBaremetalNode +baremetal_node_console_show = ironicclient.osc.v1.baremetal_node:ConsoleShowBaremetalNode +baremetal_node_create = ironicclient.osc.v1.baremetal_node:CreateBaremetalNode +baremetal_node_delete = ironicclient.osc.v1.baremetal_node:DeleteBaremetalNode +baremetal_node_deploy = ironicclient.osc.v1.baremetal_node:DeployBaremetalNode +baremetal_node_inject_nmi = ironicclient.osc.v1.baremetal_node:InjectNmiBaremetalNode +baremetal_node_inspect = ironicclient.osc.v1.baremetal_node:InspectBaremetalNode +baremetal_node_list = ironicclient.osc.v1.baremetal_node:ListBaremetalNode +baremetal_node_maintenance_set = ironicclient.osc.v1.baremetal_node:MaintenanceSetBaremetalNode +baremetal_node_maintenance_unset = ironicclient.osc.v1.baremetal_node:MaintenanceUnsetBaremetalNode +baremetal_node_manage = ironicclient.osc.v1.baremetal_node:ManageBaremetalNode +baremetal_node_passthru_call = ironicclient.osc.v1.baremetal_node:PassthruCallBaremetalNode +baremetal_node_passthru_list = ironicclient.osc.v1.baremetal_node:PassthruListBaremetalNode +baremetal_node_power_off = ironicclient.osc.v1.baremetal_node:PowerOffBaremetalNode +baremetal_node_power_on = ironicclient.osc.v1.baremetal_node:PowerOnBaremetalNode +baremetal_node_provide = ironicclient.osc.v1.baremetal_node:ProvideBaremetalNode +baremetal_node_reboot = ironicclient.osc.v1.baremetal_node:RebootBaremetalNode +baremetal_node_rebuild = ironicclient.osc.v1.baremetal_node:RebuildBaremetalNode +baremetal_node_remove_trait = ironicclient.osc.v1.baremetal_node:RemoveTraitBaremetalNode +baremetal_node_rescue = ironicclient.osc.v1.baremetal_node:RescueBaremetalNode +baremetal_node_set = ironicclient.osc.v1.baremetal_node:SetBaremetalNode +baremetal_node_show = ironicclient.osc.v1.baremetal_node:ShowBaremetalNode +baremetal_node_trait_list = ironicclient.osc.v1.baremetal_node:ListTraitsBaremetalNode +baremetal_node_undeploy = ironicclient.osc.v1.baremetal_node:UndeployBaremetalNode +baremetal_node_unrescue = ironicclient.osc.v1.baremetal_node:UnrescueBaremetalNode +baremetal_node_unset = ironicclient.osc.v1.baremetal_node:UnsetBaremetalNode +baremetal_node_validate = ironicclient.osc.v1.baremetal_node:ValidateBaremetalNode +baremetal_node_vif_attach = ironicclient.osc.v1.baremetal_node:VifAttachBaremetalNode +baremetal_node_vif_detach = ironicclient.osc.v1.baremetal_node:VifDetachBaremetalNode +baremetal_node_vif_list = ironicclient.osc.v1.baremetal_node:VifListBaremetalNode +baremetal_port_create = ironicclient.osc.v1.baremetal_port:CreateBaremetalPort +baremetal_port_delete = ironicclient.osc.v1.baremetal_port:DeleteBaremetalPort +baremetal_port_group_create = ironicclient.osc.v1.baremetal_portgroup:CreateBaremetalPortGroup +baremetal_port_group_delete = ironicclient.osc.v1.baremetal_portgroup:DeleteBaremetalPortGroup +baremetal_port_group_list = ironicclient.osc.v1.baremetal_portgroup:ListBaremetalPortGroup +baremetal_port_group_set = ironicclient.osc.v1.baremetal_portgroup:SetBaremetalPortGroup +baremetal_port_group_show = ironicclient.osc.v1.baremetal_portgroup:ShowBaremetalPortGroup +baremetal_port_group_unset = ironicclient.osc.v1.baremetal_portgroup:UnsetBaremetalPortGroup +baremetal_port_list = ironicclient.osc.v1.baremetal_port:ListBaremetalPort +baremetal_port_set = ironicclient.osc.v1.baremetal_port:SetBaremetalPort +baremetal_port_show = ironicclient.osc.v1.baremetal_port:ShowBaremetalPort +baremetal_port_unset = ironicclient.osc.v1.baremetal_port:UnsetBaremetalPort +baremetal_volume_connector_create = ironicclient.osc.v1.baremetal_volume_connector:CreateBaremetalVolumeConnector +baremetal_volume_connector_delete = ironicclient.osc.v1.baremetal_volume_connector:DeleteBaremetalVolumeConnector +baremetal_volume_connector_list = ironicclient.osc.v1.baremetal_volume_connector:ListBaremetalVolumeConnector +baremetal_volume_connector_set = ironicclient.osc.v1.baremetal_volume_connector:SetBaremetalVolumeConnector +baremetal_volume_connector_show = ironicclient.osc.v1.baremetal_volume_connector:ShowBaremetalVolumeConnector +baremetal_volume_connector_unset = ironicclient.osc.v1.baremetal_volume_connector:UnsetBaremetalVolumeConnector +baremetal_volume_target_create = ironicclient.osc.v1.baremetal_volume_target:CreateBaremetalVolumeTarget +baremetal_volume_target_delete = ironicclient.osc.v1.baremetal_volume_target:DeleteBaremetalVolumeTarget +baremetal_volume_target_list = ironicclient.osc.v1.baremetal_volume_target:ListBaremetalVolumeTarget +baremetal_volume_target_set = ironicclient.osc.v1.baremetal_volume_target:SetBaremetalVolumeTarget +baremetal_volume_target_show = ironicclient.osc.v1.baremetal_volume_target:ShowBaremetalVolumeTarget +baremetal_volume_target_unset = ironicclient.osc.v1.baremetal_volume_target:UnsetBaremetalVolumeTarget + +[openstack.cli.extension] +baremetal = ironicclient.osc.plugin +
  8. Download patch python_ironicclient.egg-info/dependency_links.txt

    --- 2.7.0-3/python_ironicclient.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/dependency_links.txt 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1 @@ +
  9. Download patch doc/source/cli/ironic_client.rst

    --- 2.7.0-3/doc/source/cli/ironic_client.rst 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/doc/source/cli/ironic_client.rst 2019-06-06 18:22:07.000000000 +0000 @@ -59,7 +59,7 @@ environment variable. (It defaults to th Ironic CLI supports bash completion. The command-line tool can automatically fill partially typed commands. To use this feature, source the below file (available at -https://git.openstack.org/cgit/openstack/python-ironicclient/tree/tools/ironic.bash_completion) +https://opendev.org/openstack/python-ironicclient/src/branch/master/tools/ironic.bash_completion) to your terminal and then bash completion should work:: $ . ironic.bash_completion
  10. Download patch .gitreview

    --- 2.7.0-3/.gitreview 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/.gitreview 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -[gerrit] -host=review.openstack.org -port=29418 -project=openstack/python-ironicclient.git
  11. Download patch releasenotes/notes/endpoint-strip-dea59ccb05628a35.yaml

    --- 2.7.0-3/releasenotes/notes/endpoint-strip-dea59ccb05628a35.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/releasenotes/notes/endpoint-strip-dea59ccb05628a35.yaml 2019-06-06 18:22:08.000000000 +0000 @@ -0,0 +1,5 @@ +--- +fixes: + - | + Prevent trying to access endpoints with ``/v1/v1`` when using endpoint + overrides containing ``/v1``.
  12. Download patch playbooks/legacy/ironicclient-dsvm-functional/run.yaml

    --- 2.7.0-3/playbooks/legacy/ironicclient-dsvm-functional/run.yaml 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/playbooks/legacy/ironicclient-dsvm-functional/run.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-ironicclient-dsvm-functional from old job gate-ironicclient-dsvm-functional-ubuntu-xenial - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack-infra/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - git://git.openstack.org \ - openstack-infra/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - cat << 'EOF' >>"/tmp/dg-local.conf" - [[local|localrc]] - enable_plugin ironic git://git.openstack.org/openstack/ironic - IRONIC_DEPLOY_DRIVER=fake - # neutron is not enabled here - IRONIC_ENABLED_NETWORK_INTERFACES=noop - IRONIC_DHCP_PROVIDER=none - - EOF - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PYTHONUNBUFFERED=true - export DEVSTACK_GATE_TEMPEST=0 - export DEVSTACK_PROJECT_FROM_GIT=python-ironicclient - export OVERRIDE_ENABLED_SERVICES=key,mysql,rabbit,ir-api,ir-cond - export BRANCH_OVERRIDE=default - if [ "$BRANCH_OVERRIDE" != "default" ] ; then - export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE - fi - export PROJECTS="openstack/ironic $PROJECTS" - - function post_test_hook { - # Configure and run functional tests - $BASE/new/python-ironicclient/ironicclient/tests/functional/hooks/post_test_hook.sh - } - - export -f post_test_hook - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}'
  13. Download patch debian/control

    --- 2.7.0-3/debian/control 2019-07-17 03:13:37.000000000 +0000 +++ 2.8.0-0ubuntu1/debian/control 2019-07-30 19:30:22.000000000 +0000 @@ -1,7 +1,8 @@ Source: python-ironicclient Section: python Priority: optional -Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> Uploaders: Thomas Goirand <zigo@debian.org>, Corey Bryant <corey.bryant@canonical.com>, @@ -11,41 +12,46 @@ Build-Depends: dh-python, openstack-pkg-tools, python3-all, - python3-pbr, + python3-pbr (>= 2.0.0), python3-setuptools, - python3-sphinx, + python3-sphinx (>= 1.6.2), Build-Depends-Indep: - python3-appdirs, - python3-babel, + python3-appdirs (>= 1.3.0), + python3-babel (>= 2.3.4), python3-cliff (>= 2.14.1), - python3-ddt, - python3-dogpile.cache, - python3-fixtures, - python3-jsonschema, - python3-keystoneauth1, - python3-mock, - python3-openstackclient, - python3-openstackdocstheme, - python3-osc-lib, - python3-oslo.i18n, - python3-oslo.serialization, - python3-oslo.utils, - python3-oslotest, - python3-prettytable, - python3-requests, - python3-requests-mock, - python3-six, - python3-sphinxcontrib.apidoc, - python3-stestr, + python3-coverage (>= 4.0), + python3-ddt (>= 1.0.1), + python3-doc8 (>= 0.6.0), + python3-dogpile.cache (>= 0.6.2), + python3-fixtures (>= 3.0.0), + python3-jsonschema (>= 2.6.0), + python3-hacking (>= 1.0.0), + python3-keystoneauth1 (>= 3.4.0), + python3-mock (>= 2.0.0), + python3-openstackclient (>= 3.12.0), + python3-openstackdocstheme (>= 1.18.1), + python3-osc-lib (>= 1.10.0), + python3-oslo.i18n (>= 3.15.3), + python3-oslo.serialization (>= 2.18.0), + python3-oslo.utils (>= 3.33.0), + python3-oslotest (>= 1:3.2.0), + python3-prettytable (>= 0.7.1), + python3-reno (>= 2.5.0), + python3-requests (>= 2.14.2), + python3-requests-mock (>= 1.2.0), + python3-six (>= 1.10.0), + python3-sphinxcontrib.apidoc (>= 0.2.0), + python3-stestr (>= 1.0.0), python3-subunit, - python3-tempest, - python3-testtools, - python3-yaml, + python3-tempest (>= 1:17.1.0), + python3-testtools (>= 2.2.0), + python3-yaml (>= 3.12), subunit, -Standards-Version: 4.1.3 -Vcs-Browser: https://salsa.debian.org/openstack-team/clients/python-ironicclient -Vcs-Git: https://salsa.debian.org/openstack-team/clients/python-ironicclient.git -Homepage: http://www.openstack.org +Standards-Version: 4.1.4 +Vcs-Browser: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/python-ironicclient +Vcs-Git: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/python-ironicclient +Homepage: https://www.openstack.org +Testsuite: autopkgtest-pkg-python Package: python-ironicclient-doc Section: doc @@ -73,21 +79,21 @@ Description: Client for OpenStack bare m Package: python3-ironicclient Architecture: all Depends: - python3-appdirs, + python3-appdirs (>= 1.3.0), python3-cliff (>= 2.14.1), - python3-dogpile.cache, - python3-jsonschema, - python3-keystoneauth1, + python3-dogpile.cache (>= 0.6.2), + python3-jsonschema (>= 2.6.0), + python3-keystoneauth1 (>= 3.4.0), python3-openstackclient, - python3-osc-lib, - python3-oslo.i18n, - python3-oslo.serialization, - python3-oslo.utils, - python3-pbr, - python3-prettytable, - python3-requests, - python3-six, - python3-yaml, + python3-osc-lib (>= 1.10.0), + python3-oslo.i18n (>= 3.15.3), + python3-oslo.serialization (>= 2.18.0), + python3-oslo.utils (>= 3.33.0), + python3-pbr (>= 2.0.0), + python3-prettytable (>= 0.7.1), + python3-requests (>= 2.14.2), + python3-six (>= 1.10.0), + python3-yaml (>= 3.12), ${misc:Depends}, ${python3:Depends}, Breaks: python-ironicclient
  14. Download patch zuul.d/ironicclient-jobs.yaml

    --- 2.7.0-3/zuul.d/ironicclient-jobs.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/zuul.d/ironicclient-jobs.yaml 2019-06-06 18:22:08.000000000 +0000 @@ -0,0 +1,63 @@ +- job: + name: ironicclient-functional + parent: devstack-minimal + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^ironicclient/locale/.*$ + - ^ironicclient/tests/.*$ + - ^releasenotes/.*$ + - ^setup.cfg$ + - ^tools/.*$ + - ^tox.ini$ + required-projects: + - openstack/ironic + - openstack/python-ironicclient + - openstack/keystone + - openstack/tempest + timeout: 4800 + post-run: playbooks/functional/run.yaml + vars: + tox_environment: + PYTHONUNBUFFERED: 'true' + tox_envlist: functionalpy3 + devstack_plugins: + ironic: https://opendev.org/openstack/ironic + devstack_localrc: + USE_PYTHON3: True + EBTABLES_RACE_FIX: True + IRONIC_ENABLED_NETWORK_INTERFACES: noop + IRONIC_DHCP_PROVIDER: none + IRONIC_DEPLOY_DRIVER: fake + INSTALL_TEMPEST: False + devstack_services: + key: True + mysql: True + rabbit: True + +- job: + name: ironicclient-functional-python2 + parent: ironicclient-functional + post-run: playbooks/functional/run.yaml + vars: + tox_envlist: functional + devstack_localrc: + USE_PYTHON3: False + +- job: + name: ironicclient-tempest + parent: ironic-base + required-projects: + - openstack/python-ironicclient + timeout: 10800 + vars: + devstack_localrc: + USE_PYTHON3: True + EBTABLES_RACE_FIX: True + +- job: + name: ironicclient-tempest-python2 + parent: ironicclient-tempest + vars: + devstack_localrc: + USE_PYTHON3: False
  15. Download patch python_ironicclient.egg-info/not-zip-safe

    --- 2.7.0-3/python_ironicclient.egg-info/not-zip-safe 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/not-zip-safe 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1 @@ +
  16. Download patch ironicclient/tests/functional/base.py

    --- 2.7.0-3/ironicclient/tests/functional/base.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/functional/base.py 2019-06-06 18:22:07.000000000 +0000 @@ -37,7 +37,8 @@ class FunctionalTestBase(base.ClientTest def _get_clients(self): # NOTE(aarefiev): {toxinidir} is a current working directory, so # the tox env path is {toxinidir}/.tox - cli_dir = os.path.join(os.path.abspath('.'), '.tox/functional/bin') + venv_name = os.environ.get('OS_TESTENV_NAME', 'functional') + cli_dir = os.path.join(os.path.abspath('.'), '.tox/%s/bin' % venv_name) config = self._get_config() if config.get('os_auth_url'):
  17. Download patch ironicclient/tests/functional/osc/v1/test_baremetal_deploy_template_basic.py

    --- 2.7.0-3/ironicclient/tests/functional/osc/v1/test_baremetal_deploy_template_basic.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/functional/osc/v1/test_baremetal_deploy_template_basic.py 2019-06-06 18:22:07.000000000 +0000 @@ -13,6 +13,7 @@ import json import ddt +import six from tempest.lib.common.utils import data_utils from tempest.lib import exceptions @@ -159,7 +160,9 @@ class BaremetalDeployTemplateTests(base. @ddt.data( ('--uuid', '', 'expected one argument'), ('--uuid', '!@#$^*&%^', 'Expected a UUID'), - ('', '', 'too few arguments'), + ('', '', + 'too few arguments' if six.PY2 + else 'the following arguments are required'), ('', 'not/a/name', 'Deploy template name must be a valid trait'), ('', 'foo', 'Deploy template name must be a valid trait'), ('--steps', '', 'expected one argument'),
  18. Download patch ironicclient/v1/allocation.py

    --- 2.7.0-3/ironicclient/v1/allocation.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/v1/allocation.py 2019-06-06 18:22:11.000000000 +0000 @@ -30,7 +30,7 @@ class AllocationManager(base.CreateManag resource_class = Allocation _resource_name = 'allocations' _creation_attributes = ['extra', 'name', 'resource_class', 'uuid', - 'traits', 'candidate_nodes'] + 'traits', 'candidate_nodes', 'node'] def list(self, resource_class=None, state=None, node=None, limit=None, marker=None, sort_key=None, sort_dir=None, fields=None): @@ -139,3 +139,11 @@ class AllocationManager(base.CreateManag 'active, the current state is %(actual)s', {'allocation': allocation_id, 'actual': allocation.state}) + + def update(self, allocation_id, patch): + """Updates the Allocation. Only 'name' and 'extra' field are allowed. + + :param allocation_id: The UUID or name of an allocation. + :param patch: a json PATCH document to apply to this allocation. + """ + return self._update(resource_id=allocation_id, patch=patch)
  19. Download patch doc/source/cli/osc_plugin_cli.rst

    --- 2.7.0-3/doc/source/cli/osc_plugin_cli.rst 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/doc/source/cli/osc_plugin_cli.rst 2019-06-06 18:22:07.000000000 +0000 @@ -46,8 +46,8 @@ or set the corresponding environment var This CLI is provided by python-openstackclient and osc-lib projects: -* https://git.openstack.org/openstack/python-openstackclient -* https://git.openstack.org/openstack/osc-lib +* https://opendev.org/openstack/python-openstackclient +* https://opendev.org/openstack/osc-lib Getting help
  20. Download patch python_ironicclient.egg-info/PKG-INFO

    --- 2.7.0-3/python_ironicclient.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/PKG-INFO 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1,152 @@ +Metadata-Version: 2.1 +Name: python-ironicclient +Version: 2.8.0 +Summary: OpenStack Bare Metal Provisioning API Client Library +Home-page: https://docs.openstack.org/python-ironicclient/latest/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Description: ================================== + Python bindings for the Ironic API + ================================== + + Team and repository tags + ------------------------ + + .. image:: https://governance.openstack.org/tc/badges/python-ironicclient.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + + Overview + -------- + + This is a client for the OpenStack `Bare Metal API + <https://developer.openstack.org/api-ref/baremetal/>`_. 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 <https://docs.openstack.org/infra/manual/developers.html>`_. + The master repository is on `opendev.org + <https://opendev.org/openstack/python-ironicclient/>`_. + + ``python-ironicclient`` is licensed under the Apache License, Version 2.0, + like the rest of OpenStack. + + .. contents:: Contents: + :local: + + Project resources + ----------------- + + * Documentation: https://docs.openstack.org/python-ironicclient/latest/ + * Source: https://opendev.org/openstack/python-ironicclient + * Bugs: https://storyboard.openstack.org/#!/project/959 + * Release notes: https://docs.openstack.org/releasenotes/python-ironicclient/ + + 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 + <https://docs.openstack.org/python-openstackclient/latest/>`_. + + 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 + + +Platform: UNKNOWN +Classifier: Environment :: OpenStack +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX :: Linux +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Provides-Extra: cli +Provides-Extra: test
  21. Download patch ChangeLog
  22. Download patch tox.ini

    --- 2.7.0-3/tox.ini 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/tox.ini 2019-06-06 18:22:08.000000000 +0000 @@ -1,6 +1,6 @@ [tox] minversion = 2.0 -envlist = py36,py35,py27,pep8,pypy +envlist = py36,py27,pep8,pypy skipsdist = True [testenv] @@ -12,7 +12,7 @@ setenv = VIRTUAL_ENV={envdir} usedevelop = True install_command = pip install {opts} {packages} deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = @@ -21,7 +21,7 @@ commands = [testenv:releasenotes] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html @@ -46,20 +46,29 @@ commands = [testenv:venv] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = {posargs} [testenv:functional] +passenv = * setenv = TESTS_DIR=./ironicclient/tests/functional LANGUAGE=en_US + OS_TESTENV_NAME = {envname} + +[testenv:functionalpy3] +basepython = python3 +passenv = * +setenv = TESTS_DIR=./ironicclient/tests/functional + LANGUAGE=en_US + OS_TESTENV_NAME = {envname} [testenv:docs] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands =
  23. Download patch tools/run_functional.sh

    --- 2.7.0-3/tools/run_functional.sh 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/tools/run_functional.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -#!/bin/bash - -FUNC_TEST_DIR=$(dirname $0)/../ironicclient/tests/functional/ -CONFIG_FILE=$FUNC_TEST_DIR/test.conf - -if [[ -n "$IRONIC_URL" ]]; then -cat <<END >$CONFIG_FILE -[functional] -api_version = 1 -auth_strategy=noauth -ironic_url=$IRONIC_URL -END -else -cat <<END >$CONFIG_FILE -[functional] -api_version = 1 -os_auth_url=$OS_AUTH_URL -os_identity_api_version=$OS_IDENTITY_API_VERSION -os_username=$OS_USERNAME -os_password=$OS_PASSWORD -os_project_name=$OS_PROJECT_NAME -os_user_domain_id=$OS_USER_DOMAIN_ID -os_project_domain_id=$OS_PROJECT_DOMAIN_ID -os_service_type=baremetal -os_endpoint_type=public -END -fi -tox -e functional
  24. Download patch ironicclient/tests/functional/osc/v1/test_baremetal_allocation.py

    --- 2.7.0-3/ironicclient/tests/functional/osc/v1/test_baremetal_allocation.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/functional/osc/v1/test_baremetal_allocation.py 2019-06-06 18:22:11.000000000 +0000 @@ -140,7 +140,7 @@ class BaremetalAllocationTests(base.Test ('--trait', 'foo', 'A custom trait must start with the prefix CUSTOM_'), ('--candidate-node', '', 'expected one argument'), - ('--candidate-node', 'banana?', 'Expected a logical name or UUID'), + ('--candidate-node', 'banana?', 'Nodes cannot be found'), ('--wait', 'meow', 'invalid int value')) @ddt.unpack def test_create_negative(self, argument, value, ex_text): @@ -156,5 +156,34 @@ class BaremetalAllocationTests(base.Test """Check errors on missing resource class.""" base_cmd = 'baremetal allocation create' self.assertRaisesRegex(exceptions.CommandFailed, - '--resource-class is required', + '--resource-class', self.openstack, base_cmd) + + def test_set_unset(self): + """Check baremetal allocation set and unset commands. + + Test steps: + 1) Create baremetal allocation in setUp. + 2) Set extra data for allocation. + 3) Check that baremetal allocation extra data was set. + 4) Unset extra data for allocation. + 5) Check that baremetal allocation extra data was unset. + """ + name = data_utils.rand_name('baremetal-allocation') + allocation = self.allocation_create(params='--name {}'.format(name)) + extra_key = 'ext' + extra_value = 'testdata' + self.openstack( + 'baremetal allocation set --extra {0}={1} {2}' + .format(extra_key, extra_value, allocation['uuid'])) + + show_prop = self.allocation_show(allocation['uuid'], + fields=['extra']) + self.assertEqual(extra_value, show_prop['extra'][extra_key]) + + self.openstack('baremetal allocation unset --extra {0} {1}' + .format(extra_key, allocation['uuid'])) + + show_prop = self.allocation_show(allocation['uuid'], + fields=['extra']) + self.assertNotIn(extra_key, show_prop['extra'])
  25. Download patch python_ironicclient.egg-info/top_level.txt

    --- 2.7.0-3/python_ironicclient.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/top_level.txt 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1 @@ +ironicclient
  26. Download patch ironicclient/tests/unit/common/test_http.py

    --- 2.7.0-3/ironicclient/tests/unit/common/test_http.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/unit/common/test_http.py 2019-06-06 18:22:07.000000000 +0000 @@ -741,6 +741,7 @@ class SessionClientTest(utils.BaseTestCa 'service_type': 'baremetal', 'region_name': '' }, + endpoint_override='http://127.0.0.1', user_agent=http.USER_AGENT) self.assertEqual(res, session.request.return_value)
  27. Download patch doc/requirements.txt

    --- 2.7.0-3/doc/requirements.txt 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/doc/requirements.txt 2019-06-06 18:22:07.000000000 +0000 @@ -3,5 +3,6 @@ # process, which may cause wedges in the gate later. openstackdocstheme>=1.18.1 # Apache-2.0 reno>=2.5.0 # Apache-2.0 -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD +sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD +sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD sphinxcontrib-apidoc>=0.2.0 # BSD
  28. Download patch zuul.d/project.yaml

    --- 2.7.0-3/zuul.d/project.yaml 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/zuul.d/project.yaml 2019-06-06 18:22:08.000000000 +0000 @@ -4,7 +4,6 @@ - openstack-cover-jobs - openstack-lower-constraints-jobs - openstack-python-jobs - - openstack-python35-jobs - openstack-python36-jobs - openstack-python37-jobs - openstackclient-plugin-jobs @@ -12,10 +11,14 @@ - release-notes-jobs-python3 check: jobs: - - ironicclient-dsvm-functional - - ironicclient-tempest-dsvm-src + - ironicclient-functional + - ironicclient-functional-python2 + - ironicclient-tempest + - ironicclient-tempest-python2 gate: queue: ironic jobs: - - ironicclient-dsvm-functional - - ironicclient-tempest-dsvm-src + - ironicclient-functional + - ironicclient-functional-python2 + - ironicclient-tempest + - ironicclient-tempest-python2
  29. Download patch releasenotes/notes/allocation-backfill-4d4e51af2f787a72.yaml

    --- 2.7.0-3/releasenotes/notes/allocation-backfill-4d4e51af2f787a72.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/releasenotes/notes/allocation-backfill-4d4e51af2f787a72.yaml 2019-06-06 18:22:11.000000000 +0000 @@ -0,0 +1,5 @@ +--- +features: + - | + Adds the ``--node`` argument to ``baremetal allocation create`` to support + allocation backfilling.
  30. Download patch ironicclient/tests/functional/hooks/post_test_hook.sh

    --- 2.7.0-3/ironicclient/tests/functional/hooks/post_test_hook.sh 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/functional/hooks/post_test_hook.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -#!/bin/bash -xe - -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# This script is executed inside post_test_hook function in devstack gate. - -function generate_testr_results { - if [ -f .testrepository/0 ]; then - sudo .tox/functional/bin/testr last --subunit > $WORKSPACE/testrepository.subunit - sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit - sudo /usr/os-testr-env/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html - sudo gzip -9 $BASE/logs/testrepository.subunit - sudo gzip -9 $BASE/logs/testr_results.html - sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz - sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz - fi -} - -export IRONICCLIENT_DIR="$BASE/new/python-ironicclient" - -sudo chown -R $USER:stack $IRONICCLIENT_DIR - -cd $IRONICCLIENT_DIR - -# Run tests -echo "Running ironicclient functional test suite" -set +e - -# Only admin credentials needed for ironic api -source $BASE/new/devstack/openrc admin admin - -# Preserve env for OS_ credentials -sudo -E -H -u $USER ./tools/run_functional.sh -EXIT_CODE=$? -set -e - -# Collect and parse result -generate_testr_results -exit $EXIT_CODE
  31. Download patch .gitignore

    --- 2.7.0-3/.gitignore 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -# Compiled files -*.py[co] -*.a -*.o -*.so - -# Sphinx -_build -doc/source/api/ - -# Release notes -releasenotes/build - -# Packages/installer info -*.egg -*.egg-info -dist -build -.eggs -eggs -parts -var -sdist -develop-eggs -.installed.cfg - -# Other -*.DS_Store -.stestr -.tox -.idea -.venv -.*.swp -.coverage -cover -AUTHORS -ChangeLog -*.sqlite -test.conf
  32. Download patch releasenotes/source/stein.rst

    --- 2.7.0-3/releasenotes/source/stein.rst 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/releasenotes/source/stein.rst 2019-06-06 18:22:08.000000000 +0000 @@ -0,0 +1,6 @@ +=================================== + Stein Series Release Notes +=================================== + +.. release-notes:: + :branch: stable/stein
  33. Download patch playbooks/legacy/ironicclient-dsvm-functional/post.yaml

    --- 2.7.0-3/playbooks/legacy/ironicclient-dsvm-functional/post.yaml 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/playbooks/legacy/ironicclient-dsvm-functional/post.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs
  34. Download patch ironicclient/common/http.py

    --- 2.7.0-3/ironicclient/common/http.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/common/http.py 2019-06-06 18:22:11.000000000 +0000 @@ -18,6 +18,7 @@ from distutils.version import StrictVers import hashlib import logging import os +import re import socket import ssl import textwrap @@ -43,14 +44,15 @@ from ironicclient import exc # http://specs.openstack.org/openstack/ironic-specs/specs/kilo/api-microversions.html # noqa # for full details. DEFAULT_VER = '1.9' -LAST_KNOWN_API_VERSION = 56 +LAST_KNOWN_API_VERSION = 58 LATEST_VERSION = '1.{}'.format(LAST_KNOWN_API_VERSION) LOG = logging.getLogger(__name__) USER_AGENT = 'python-ironicclient' CHUNKSIZE = 1024 * 64 # 64kB -API_VERSION = '/v1' +_MAJOR_VERSION = 1 +API_VERSION = '/v%d' % _MAJOR_VERSION API_VERSION_SELECTED_STATES = ('user', 'negotiated', 'cached', 'default') @@ -61,10 +63,12 @@ SENSITIVE_HEADERS = ('X-Auth-Token',) SUPPORTED_ENDPOINT_SCHEME = ('http', 'https') +_API_VERSION_RE = re.compile(r'/+(v%d)?/*$' % _MAJOR_VERSION) + def _trim_endpoint_api_version(url): """Trim API version and trailing slash from endpoint.""" - return url.rstrip('/').rstrip(API_VERSION).rstrip('/') + return re.sub(_API_VERSION_RE, '', url) def _extract_error_json(body): @@ -604,6 +608,9 @@ class SessionClient(VersionNegotiationMi 'removed in Stein. Please use "endpoint_override" ' 'instead.') self.endpoint = endpoint + if isinstance(kwargs.get('endpoint_override'), six.string_types): + kwargs['endpoint_override'] = _trim_endpoint_api_version( + kwargs['endpoint_override']) super(SessionClient, self).__init__(**kwargs) @@ -620,7 +627,8 @@ class SessionClient(VersionNegotiationMi # NOTE: conn is self.session for this class return conn.request(url, method, raise_exc=False, user_agent=USER_AGENT, - endpoint_filter=endpoint_filter) + endpoint_filter=endpoint_filter, + endpoint_override=self.endpoint_override) @with_retries def _http_request(self, url, method, **kwargs): @@ -633,10 +641,7 @@ class SessionClient(VersionNegotiationMi kwargs.setdefault('user_agent', USER_AGENT) kwargs.setdefault('auth', self.auth) if isinstance(self.endpoint_override, six.string_types): - kwargs.setdefault( - 'endpoint_override', - _trim_endpoint_api_version(self.endpoint_override) - ) + kwargs.setdefault('endpoint_override', self.endpoint_override) if getattr(self, 'os_ironic_api_version', None): kwargs['headers'].setdefault('X-OpenStack-Ironic-API-Version',
  35. Download patch releasenotes/source/index.rst

    --- 2.7.0-3/releasenotes/source/index.rst 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/releasenotes/source/index.rst 2019-06-06 18:22:08.000000000 +0000 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + stein rocky queens pike
  36. Download patch debian/watch

    --- 2.7.0-3/debian/watch 2019-07-17 03:13:37.000000000 +0000 +++ 2.8.0-0ubuntu1/debian/watch 2019-07-30 19:30:22.000000000 +0000 @@ -1,2 +1,3 @@ version=3 -https://github.com/openstack/python-ironicclient/tags .*/(\d[\d\.]+)\.tar\.gz +opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ +https://pypi.debian.net/python-ironicclient/python-ironicclient-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
  37. Download patch setup.cfg
  38. Download patch python_ironicclient.egg-info/SOURCES.txt
  39. Download patch requirements.txt

    --- 2.7.0-3/requirements.txt 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/requirements.txt 2019-06-06 18:22:08.000000000 +0000 @@ -4,7 +4,7 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 appdirs>=1.3.0 # MIT License dogpile.cache>=0.6.2 # BSD -jsonschema<3.0.0,>=2.6.0 # MIT +jsonschema>=2.6.0 # MIT keystoneauth1>=3.4.0 # Apache-2.0 osc-lib>=1.10.0 # Apache-2.0 oslo.i18n>=3.15.3 # Apache-2.0
  40. Download patch python_ironicclient.egg-info/pbr.json

    --- 2.7.0-3/python_ironicclient.egg-info/pbr.json 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/pbr.json 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1 @@ +{"git_version": "a22874b", "is_release": true} \ No newline at end of file
  41. Download patch doc/source/contributor/contributing.rst

    --- 2.7.0-3/doc/source/contributor/contributing.rst 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/doc/source/contributor/contributing.rst 2019-06-06 18:22:07.000000000 +0000 @@ -40,7 +40,7 @@ Mailing list (prefix subjects with ``[ir http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss Code Hosting - https://git.openstack.org/cgit/openstack/python-ironicclient + https://opendev.org/openstack/python-ironicclient Code Review https://review.openstack.org/#/q/status:open+project:openstack/python-ironicclient,n,z
  42. Download patch python_ironicclient.egg-info/requires.txt

    --- 2.7.0-3/python_ironicclient.egg-info/requires.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/python_ironicclient.egg-info/requires.txt 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1,31 @@ +pbr!=2.1.0,>=2.0.0 +appdirs>=1.3.0 +dogpile.cache>=0.6.2 +jsonschema>=2.6.0 +keystoneauth1>=3.4.0 +osc-lib>=1.10.0 +oslo.i18n>=3.15.3 +oslo.serialization!=2.19.1,>=2.18.0 +oslo.utils>=3.33.0 +PrettyTable<0.8,>=0.7.1 +PyYAML>=3.12 +requests>=2.14.2 +six>=1.10.0 + +[cli] +python-openstackclient>=3.12.0 + +[test] +hacking<1.1.0,>=1.0.0 +coverage!=4.4,>=4.0 +doc8>=0.6.0 +fixtures>=3.0.0 +requests-mock>=1.2.0 +mock>=2.0.0 +Babel!=2.4.0,>=2.3.4 +oslotest>=3.2.0 +testtools>=2.2.0 +tempest>=17.1.0 +stestr>=1.0.0 +ddt>=1.0.1 +python-openstackclient>=3.12.0
  43. Download patch ironicclient/tests/functional/osc/v1/test_baremetal_node_negative.py

    --- 2.7.0-3/ironicclient/tests/functional/osc/v1/test_baremetal_node_negative.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/functional/osc/v1/test_baremetal_node_negative.py 2019-06-06 18:22:07.000000000 +0000 @@ -28,7 +28,9 @@ class BaremetalNodeNegativeTests(base.Te self.node = self.node_create() @ddt.data( - ('', '', 'error: argument --driver is required'), + ('', '', + 'error: argument --driver is required' if six.PY2 + else 'error: the following arguments are required: --driver'), ('--driver', 'wrongdriver', 'No valid host was found. Reason: No conductor service ' 'registered which supports driver wrongdriver.') @@ -45,6 +47,8 @@ class BaremetalNodeNegativeTests(base.Te """Test for baremetal node delete without node specified.""" command = 'baremetal node delete' ex_text = 'error: too few arguments' + if six.PY3: + ex_text = '' six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text, self.openstack, command) @@ -56,7 +60,9 @@ class BaremetalNodeNegativeTests(base.Te self.openstack, command) @ddt.data( - ('--property', '', 'error: too few arguments'), + ('--property', '', + 'error: too few arguments' if six.PY2 + else 'error: the following arguments are required: <node>'), ('--property', 'prop', 'Attributes must be a list of PATH=VALUE') ) @ddt.unpack @@ -69,7 +75,9 @@ class BaremetalNodeNegativeTests(base.Te self.openstack, command) @ddt.data( - ('--property', '', 'error: too few arguments'), + ('--property', '', + 'error: too few arguments' if six.PY2 + else 'error: the following arguments are required: <node>'), ('--property', 'prop', "Reason: can't remove non-existent object") ) @ddt.unpack
  44. Download patch AUTHORS

    --- 2.7.0-3/AUTHORS 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/AUTHORS 2019-06-06 18:24:01.000000000 +0000 @@ -0,0 +1,165 @@ +Adam Gandelman <adamg@ubuntu.com> +Alexey Galkin <agalkin@mirantis.com> +Aline Bousquet <albousque@gmail.com> +Andreas Jaeger <aj@suse.com> +Andreas Jaeger <aj@suse.de> +Andrey Kurilin <akurilin@mirantis.com> +Anh Tran <anhtt@vn.fujitsu.com> +Anton Arefiev <aarefiev@mirantis.com> +Arun S A G <saga@yahoo-inc.com> +Ben Nemec <bnemec@redhat.com> +Brad P. Crochet <brad@redhat.com> +ChangBo Guo(gcb) <eric.guo@easystack.cn> +Chaozhe.Chen <chaozhe.chen@easystack.cn> +Charles Short <zulcss@gmail.com> +ChenZheng <chen.zheng@easystack.cn> +Chris Krelle <nobodycam@gmail.com> +Christian Berendt <berendt@b1-systems.de> +Chuck Short <chucks@redhat.com> +Clark Boylan <clark.boylan@gmail.com> +Clif Houck <me@clifhouck.com> +Corey Bryant <corey.bryant@canonical.com> +Dao Cong Tien <tiendc@vn.fujitsu.com> +Davanum Srinivas <davanum@gmail.com> +David Hu <david.hu@hp.com> +David Shrewsbury <shrewsbury.dave@gmail.com> +Devananda van der Veen <devananda.vdv@gmail.com> +Diego de Lima Pereira <diegolp@lsd.ufcg.edu.br> +Dirk Mueller <dirk@dmllr.de> +Dmitry Tantsur <divius.inside@gmail.com> +Dmitry Tantsur <dtantsur@redhat.com> +Doug Hellmann <doug@doughellmann.com> +Eric Fried <efried@us.ibm.com> +Eric Fried <openstack@fried.cc> +Flavio Percoco <flaper87@gmail.com> +Florian Fuchs <flfuchs@redhat.com> +Galyna Zholtkevych <gzholtkevych@mirantis.com> +Ghanshyam Mann <gmann@ghanshyammann.com> +Ghe Rivero <ghe.rivero@hp.com> +Guang Yee <guang.yee@suse.com> +Gábor Antal <antal@inf.u-szeged.hu> +Hamdy Khader <hamdyk@mellanox.com> +Hangdong Zhang <hdzhang@fiberhome.com> +HaoZhi, Cui <haozhi.cui@gmail.com> +Haomeng, Wang <whaom@cn.ibm.com> +He Yongli <yongli.he@intel.com> +Himanshu Kumar <singh05himanshu@yahoo.com> +Hironori Shiina <shiina.hironori@jp.fujitsu.com> +Ian Wienand <iwienand@redhat.com> +Iury Gregory Melo Ferreira <imelofer@redhat.com> +James E. Blair <jeblair@redhat.com> +Jamie Lennox <jamielennox@gmail.com> +Jamie Lennox <jamielennox@redhat.com> +Jason <jasonanderson@uchicago.edu> +Jeremy Stanley <fungi@yuggoth.org> +Jim Rollenhagen <jim@jimrollenhagen.com> +John L. Villalovos <john.l.villalovos@intel.com> +John L. Villalovos <openstack.org@sodarock.com> +John Trowbridge <trown@redhat.com> +JuPing <jup.fnst@cn.fujitsu.com> +Julia Kreger <juliaashleykreger@gmail.com> +KATO Tomoyuki <kato.tomoyuki@jp.fujitsu.com> +KaiFeng Wang <wang.kaifeng2@zte.com.cn> +Kaifeng Wang <kaifeng.w@gmail.com> +Kan <kansks@cn.ibm.com> +Kevin McDonald <k3vinmcdonald@gmail.com> +Kui Shi <skuicloud@gmail.com> +Kyrylo Romanenko <kromanenko@mirantis.com> +Lin Tan <lin.tan@intel.com> +Lin Tan <tan.lin.good@gmail.com> +LiuNanke <nanke.liu@easystack.cn> +Lokesh S <lokesh.s@hp.com> +Lucas Alvares Gomes <lucasagomes@gmail.com> +Luong Anh Tuan <tuanla@vn.fujitsu.com> +M V P Nitesh <m.nitesh@nectechnologies.in> +Madhuri Kumari <madhuri.kumari@intel.com> +Marc Aubry <maubry@internap.com> +Mario Villaplana <mario.villaplana@gmail.com> +Mark Goddard <mark@stackhpc.com> +Martin Geisler <martin@geisler.net> +Mathieu Gagné <mgagne@iweb.com> +Matt Keenan <matt.keenan@gmail.com> +Maxime Belanger <mbelanger@iweb.com> +Michael Davies <michael@the-davies.net> +Michael Johnson <johnsomor@gmail.com> +Michael Turek <mjturek@linux.vnet.ibm.com> +Mikhail Durnosvistov <mdurnosvistov@mirantis.com> +Miles Gould <mgould@redhat.com> +Monty Taylor <mordred@inaugust.com> +Motohiro OTSUKA <ootsuka@mxs.nes.nec.co.jp> +Nam Nguyen Hoai <namnh@vn.fujitsu.com> +Naohiro Tamura <naohirot@jp.fujitsu.com> +Nguyen Hai <nguyentrihai93@gmail.com> +Nisha Agarwal <agarwalnisha1980@gmail.com> +Ondřej Nový <ondrej.novy@firma.seznam.cz> +OpenStack Release Bot <infra-root@openstack.org> +Pavlo Shchelokovskyy <pshchelokovskyy@mirantis.com> +Pavlo Shchelokovskyy <shchelokovskyy@gmail.com> +Rakesh H S <rh-s@hp.com> +Ramakrishnan G <rameshg87@gmail.com> +Riccardo Pittau <elfosardo@gmail.com> +Rodion Promyshlennikov <rpromyshlennikov@mirantis.com> +Ruby Loo <rloo@oath.com> +Ruby Loo <rloo@verizonmedia.com> +Ruby Loo <rloo@yahoo-inc.com> +Ruby Loo <ruby.loo@intel.com> +Rui Chen <chenrui.momo@gmail.com> +Sam Betts <sam@code-smash.net> +Sascha Peilicke <speilicke@suse.com> +Sergey Lupersolsky <slupers1@yahoo.com> +Sergey Turivnyi <sturivnyi@mirantis.com> +Sergii Turivnyi <sturivnyi@mirantis.com> +Shuquan Huang <huang.shuquan@99cloud.net> +Sinval Vieira <sinvalneto01@gmail.com> +SofiiaAndriichenko <sandriichenko@mirantis.com> +Steve Martinelli <stevemar@ca.ibm.com> +Tang Chen <chen.tang@easystack.cn> +Tang Chen <tangchen@cn.fujitsu.com> +Tao Li <litao3721@126.com> +TienDC <tiendc@vn.fujitsu.com> +Tony Breeds <tony@bakeyournoodle.com> +Tuan Do Anh <tuanda@vn.fujitsu.com> +Ukesh Kumar Vasudevan <ukeshkumar@gmail.com> +Vadim Hmyrov <vhmyrov@mirantis.com> +Vasyl Saienko <vsaienko@mirantis.com> +Victor Sergeyev <vsergeyev@mirantis.com> +Vladyslav Drok <vdrok@mirantis.com> +Vu Cong Tuan <tuanvc@vn.fujitsu.com> +William Stevenson <will.stevenson@sap.com> +Yang Hongyang <hongyang.yang@easystack.cn> +Yolanda Robla <yroblamo@redhat.com> +Yuiko Takada <takada-yuiko@mxn.nes.nec.co.jp> +YuikoTakada <takada-yuiko@mxn.nes.nec.co.jp> +Yuriy Zveryanskyy <yzveryanskyy@mirantis.com> +Yushiro FURUKAWA <y.furukawa_2@jp.fujitsu.com> +Zenghui Shi <zshi@redhat.com> +Zhenguo Niu <niuzhenguo@huawei.com> +deepakmourya <deepak.mourya@nectechnologies.in> +dnuka <csx@tuta.io> +ericxiett <eric_xiett@163.com> +fpxie <fpxie@fiberhome.com> +ghanshyam <gmann@ghanshyammann.com> +huang.zhiping <huang.zhiping@99cloud.net> +jiang wei <wei.jiang@easystack.cn> +jiangfei <jiangfei0622@huawei.com> +linbing <hawkerous@gmail.com> +linggao <linggao@us.ibm.com> +lingyongxu <lyxu@fiberhome.com> +liuqing <jing.liuqing@99cloud.net> +llg8212 <lilinguo@huawei.com> +max_lobur <mlobur@mirantis.com> +melissaml <ma.lei@99cloud.net> +qinchunhua <qin.chunhua@zte.com.cn> +qingszhao <zhao.daqing@99cloud.net> +ricolin <rico.lin@easystack.cn> +sandriichenko <sandriichenko@mirantis.com> +shu-mutou <shu-mutou@rf.jp.nec.com> +sonu.kumar <sonu.kumar@nectechnologies.in> +sunjia <sunjia@inspur.com> +venkatamahesh <venkatamaheshkotha@gmail.com> +vishal mahajan <vishal.mahajan@nectechnologies.in> +wu.chunyang <wu.chunyang@99cloud.net> +xiexs <xiexs@cn.fujitsu.com> +ya.wang <wang.ya@99cloud.net> +zhengchuan hu <zhengchuan.hu@easystack.cn> +zhulingjie <easyzlj@gmail.com>
  45. Download patch playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml

    --- 2.7.0-3/playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-tempest-dsvm-python-ironicclient-src from old job - gate-tempest-dsvm-python-ironicclient-src-ubuntu-xenial - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack-infra/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - git://git.openstack.org \ - openstack-infra/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-extra-vars - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa" - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-extra-vars - export DEVSTACK_GATE_TEMPEST_REGEX="ironic_tempest_plugin.tests.scenario" - - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-extra-vars - export DEVSTACK_PROJECT_FROM_GIT="python-ironicclient,$DEVSTACK_PROJECT_FROM_GIT" - - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-vars-early - # use tempest plugin - export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-tempest-plugin'" - export TEMPEST_CONCURRENCY=1 - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PROJECTS="openstack/ironic $PROJECTS" - export PROJECTS="openstack/ironic-lib $PROJECTS" - export PROJECTS="openstack/ironic-python-agent $PROJECTS" - export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS" - export PROJECTS="openstack/python-ironicclient $PROJECTS" - export PROJECTS="openstack/pyghmi $PROJECTS" - export PROJECTS="openstack/virtualbmc $PROJECTS" - export PYTHONUNBUFFERED=true - export DEVSTACK_GATE_TEMPEST=1 - export DEVSTACK_GATE_IRONIC=1 - export DEVSTACK_GATE_NEUTRON=1 - export DEVSTACK_GATE_VIRT_DRIVER=ironic - export DEVSTACK_GATE_CONFIGDRIVE=1 - export DEVSTACK_GATE_IRONIC_DRIVER=ipmi - export BRANCH_OVERRIDE=default - if [ "$BRANCH_OVERRIDE" != "default" ] ; then - export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE - fi - - if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then - export DEVSTACK_GATE_TLSPROXY=1 - fi - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=1" - export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0 - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1" - - # Ensure the ironic-vars-EARLY file exists - touch ironic-vars-early - # Pull in the EARLY variables injected by the optional builders - source ironic-vars-early - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic" - - # Ensure the ironic-EXTRA-vars file exists - touch ironic-extra-vars - # Pull in the EXTRA variables injected by the optional builders - source ironic-extra-vars - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}'
  46. Download patch playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml

    --- 2.7.0-3/playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs
  47. Download patch debian/gbp.conf

    --- 2.7.0-3/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/debian/gbp.conf 2019-07-30 19:30:22.000000000 +0000 @@ -0,0 +1,7 @@ +[DEFAULT] +debian-branch = master +upstream-tag = %(version)s +pristine-tar = True + +[buildpackage] +export-dir = ../build-area
  48. Download patch zuul.d/legacy-ironicclient-jobs.yaml

    --- 2.7.0-3/zuul.d/legacy-ironicclient-jobs.yaml 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/zuul.d/legacy-ironicclient-jobs.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -- job: - name: ironicclient-dsvm-functional - parent: legacy-dsvm-base - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ - required-projects: - - openstack-infra/devstack-gate - - openstack/ironic - - openstack/python-ironicclient - run: playbooks/legacy/ironicclient-dsvm-functional/run.yaml - post-run: playbooks/legacy/ironicclient-dsvm-functional/post.yaml - timeout: 4800 - -- job: - name: ironicclient-tempest-dsvm-src - # NOTE: We do not use 'legacy-ironic-dsvm-base' as it is simpler and - # less confusing to define it all here and use 'legacy-dsvm-base'. - parent: legacy-dsvm-base - irrelevant-files: - - ^test-requirements.txt$ - - ^.*\.rst$ - - ^doc/.*$ - - ^ironicclient/tests/.*$ - - ^releasenotes/.*$ - - ^setup.cfg$ - - ^tools/.*$ - - ^tox.ini$ - required-projects: - - openstack-infra/devstack-gate - - openstack/ironic - - openstack/ironic-lib - - openstack/ironic-python-agent - - openstack/ironic-tempest-plugin - - openstack/pyghmi - - openstack/python-ironicclient - - openstack/tempest - - openstack/virtualbmc - run: playbooks/legacy/ironicclient-tempest-dsvm-src/run.yaml - post-run: playbooks/legacy/ironicclient-tempest-dsvm-src/post.yaml - timeout: 10800
  49. Download patch ironicclient/tests/unit/test_client.py

    --- 2.7.0-3/ironicclient/tests/unit/test_client.py 2019-03-07 17:00:58.000000000 +0000 +++ 2.8.0-0ubuntu1/ironicclient/tests/unit/test_client.py 2019-06-06 18:22:07.000000000 +0000 @@ -93,14 +93,14 @@ class ClientTest(utils.BaseTestCase): client = self._test_get_client(auth='none', warn_mock_call_count=1, **kwargs) self.assertIsInstance(client.http_client, http.SessionClient) - self.assertEqual('http://localhost:6385/v1', + self.assertEqual('http://localhost:6385', client.http_client.endpoint_override) def test_get_client_only_endpoint(self): kwargs = {'endpoint': 'http://localhost:6385/v1'} client = self._test_get_client(auth='none', **kwargs) self.assertIsInstance(client.http_client, http.SessionClient) - self.assertEqual('http://localhost:6385/v1', + self.assertEqual('http://localhost:6385', client.http_client.endpoint_override) def test_get_client_with_auth_token_ironic_url(self): @@ -113,7 +113,7 @@ class ClientTest(utils.BaseTestCase): warn_mock_call_count=2, **kwargs) self.assertIsInstance(client.http_client, http.SessionClient) - self.assertEqual('http://localhost:6385/v1', + self.assertEqual('http://localhost:6385', client.http_client.endpoint_override) def test_get_client_no_auth_token(self):
  50. Download patch releasenotes/notes/allow-allocation-update-b4fb715045ab40a2.yaml

    --- 2.7.0-3/releasenotes/notes/allow-allocation-update-b4fb715045ab40a2.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 2.8.0-0ubuntu1/releasenotes/notes/allow-allocation-update-b4fb715045ab40a2.yaml 2019-06-06 18:22:11.000000000 +0000 @@ -0,0 +1,8 @@ +--- +features: + - | + Adds support for the allocation update API introduced in API + version 1.57. Adds new commands: + + * ``openstack baremetal allocation set`` + * ``openstack baremetal allocation unset``
  1. python-ironicclient