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 (3.1.0-0ubuntu1) focal; urgency=low * Merge from Debian unstable. Remaining changes: - d/gbp.conf: Retain for pristine-tar. - d/watch: Get tarball from pypi.debian.net. - d/control: Enable autopkgtest-pkg-python testsuite. * New upstream release for OpenStack Ussuri. * d/control: Align (Build-)Depends with upstream -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com> Tue, 10 Dec 2019 09:26:26 +0100

Modifications :
  1. Download patch releasenotes/notes/missing-session-cc11e62dc966b4e0.yaml

    --- 3.0.0-2/releasenotes/notes/missing-session-cc11e62dc966b4e0.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/releasenotes/notes/missing-session-cc11e62dc966b4e0.yaml 2019-09-25 14:52:20.000000000 +0000 @@ -0,0 +1,10 @@ +--- +fixes: + - | + Fixes a confusing error message when a session is not provided for + ``ironicclient.v1.client.Client``. + - | + With the removal of the ``HTTPClient`` class in the release 3.0.0, it is + now mandatory to pass a session into ``ironicclient.v1.client.Client``. + The helper call ``ironicclient.client.get_client`` can also be used to + construct a session implicitly.
  2. Download patch releasenotes/notes/endpoint-plus-version-4248f4f229dbc7dd.yaml

    --- 3.0.0-2/releasenotes/notes/endpoint-plus-version-4248f4f229dbc7dd.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/releasenotes/notes/endpoint-plus-version-4248f4f229dbc7dd.yaml 2019-09-25 14:52:20.000000000 +0000 @@ -0,0 +1,6 @@ +--- +fixes: + - | + Removes the requirement on passing either ``endpoint_override`` or + ``os_ironic_api_version`` to ``get_client``. This is only required for + efficient caching of API versions and shouldn't be a hard requirement.
  3. Download patch PKG-INFO

    --- 3.0.0-2/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/PKG-INFO 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1,108 @@ +Metadata-Version: 2.1 +Name: python-ironicclient +Version: 3.1.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://docs.openstack.org/api-ref/baremetal/>`_. It provides: + + * a Python API: the ``ironicclient`` module, and + * a command-line interfaces: ``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 + + +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 +Classifier: Programming Language :: Python :: 3.7 +Provides-Extra: cli +Provides-Extra: test
  4. Download patch ironicclient/tests/unit/v1/test_node.py

    --- 3.0.0-2/ironicclient/tests/unit/v1/test_node.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/tests/unit/v1/test_node.py 2019-09-25 14:52:20.000000000 +0000 @@ -51,7 +51,8 @@ NODE2 = {'uuid': '66666666-7777-8888-999 'driver_info': {'user': 'foo', 'password': 'bar'}, 'properties': {'num_cpu': 4}, 'resource_class': 'bar', - 'extra': {}} + 'extra': {}, + 'owner': '33333333-2222-1111-0000-111111111111'} PORT = {'uuid': '11111111-2222-3333-4444-555555555555', 'node_uuid': '66666666-7777-8888-9999-000000000000', 'address': 'AA:AA:AA:AA:AA:AA', @@ -187,6 +188,13 @@ fake_responses = { {"nodes": [NODE1]}, ) }, + '/v1/nodes/?owner=%s' % NODE2['owner']: + { + 'GET': ( + {}, + {"nodes": [NODE2]}, + ) + }, '/v1/nodes/?driver=fake': { 'GET': ( @@ -803,6 +811,15 @@ class NodeManagerTest(testtools.TestCase self.assertThat(nodes, HasLength(1)) self.assertEqual(NODE1['uuid'], getattr(nodes[0], 'uuid')) + def test_node_list_owner(self): + nodes = self.mgr.list(owner=NODE2['owner']) + expect = [ + ('GET', '/v1/nodes/?owner=%s' % NODE2['owner'], {}, None), + ] + self.assertEqual(expect, self.api.calls) + self.assertThat(nodes, HasLength(1)) + self.assertEqual(NODE2['owner'], getattr(nodes[0], 'owner')) + def test_node_list_provision_state_fail(self): self.assertRaises(KeyError, self.mgr.list, provision_state="test")
  5. Download patch python_ironicclient.egg-info/entry_points.txt

    --- 3.0.0-2/python_ironicclient.egg-info/entry_points.txt 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/entry_points.txt 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1,95 @@ +[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 +
  6. Download patch python_ironicclient.egg-info/dependency_links.txt

    --- 3.0.0-2/python_ironicclient.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/dependency_links.txt 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1 @@ +
  7. Download patch .gitreview

    --- 3.0.0-2/.gitreview 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/.gitreview 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -[gerrit] -host=review.opendev.org -port=29418 -project=openstack/python-ironicclient.git
  8. Download patch debian/control

    --- 3.0.0-2/debian/control 2019-10-20 23:23:56.000000000 +0000 +++ 3.1.0-0ubuntu1/debian/control 2019-12-10 08:26:26.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,40 +12,41 @@ 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-requests, - python3-requests-mock, - python3-six, - python3-sphinxcontrib.apidoc, - python3-stestr, + python3-ddt (>= 1.0.1), + python3-dogpile.cache (>= 0.6.2), + python3-fixtures (>= 3.0.0), + python3-jsonschema (>= 2.6.0), + python3-keystoneauth1 (>= 3.4.0), + python3-mock (>= 2.0.0), + python3-openstackclient (>= 3.12.0), + python3-openstackdocstheme (>= 1.20.0), + 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-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 @@ -72,20 +74,20 @@ 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-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-requests (>= 2.14.2), + python3-six (>= 1.10.0), + python3-yaml (>= 3.12), ${misc:Depends}, ${python3:Depends}, Breaks:
  9. Download patch python_ironicclient.egg-info/not-zip-safe

    --- 3.0.0-2/python_ironicclient.egg-info/not-zip-safe 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/not-zip-safe 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1 @@ +
  10. Download patch python_ironicclient.egg-info/PKG-INFO

    --- 3.0.0-2/python_ironicclient.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/PKG-INFO 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1,108 @@ +Metadata-Version: 2.1 +Name: python-ironicclient +Version: 3.1.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://docs.openstack.org/api-ref/baremetal/>`_. It provides: + + * a Python API: the ``ironicclient`` module, and + * a command-line interfaces: ``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 + + +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 +Classifier: Programming Language :: Python :: 3.7 +Provides-Extra: cli +Provides-Extra: test
  11. Download patch ChangeLog
  12. Download patch tox.ini

    --- 3.0.0-2/tox.ini 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/tox.ini 2019-09-25 14:52:29.000000000 +0000 @@ -12,7 +12,7 @@ setenv = VIRTUAL_ENV={envdir} usedevelop = True install_command = pip install {opts} {packages} deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train} -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://releases.openstack.org/constraints/upper/master} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train} -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,7 +46,7 @@ commands = [testenv:venv] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt @@ -68,7 +68,7 @@ setenv = TESTS_DIR=./ironicclient/tests/ [testenv:docs] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/train} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands =
  13. Download patch python_ironicclient.egg-info/top_level.txt

    --- 3.0.0-2/python_ironicclient.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/top_level.txt 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1 @@ +ironicclient
  14. Download patch ironicclient/tests/unit/common/test_http.py

    --- 3.0.0-2/ironicclient/tests/unit/common/test_http.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/tests/unit/common/test_http.py 2019-09-25 14:52:20.000000000 +0000 @@ -403,6 +403,13 @@ class SessionClientTest(utils.BaseTestCa user_agent=http.USER_AGENT) self.assertEqual(res, session.request.return_value) + @mock.patch.object(http.SessionClient, 'get_endpoint', autospec=True) + def test_endpoint_not_found(self, mock_get_endpoint): + mock_get_endpoint.return_value = None + + self.assertRaises(exc.EndpointNotFound, _session_client, + session=utils.mockSession({})) + @mock.patch.object(time, 'sleep', lambda *_: None) class RetriesTestCase(utils.BaseTestCase):
  15. Download patch releasenotes/notes/typerror-132801fe4541fdb4.yaml

    --- 3.0.0-2/releasenotes/notes/typerror-132801fe4541fdb4.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/releasenotes/notes/typerror-132801fe4541fdb4.yaml 2019-09-25 14:52:20.000000000 +0000 @@ -0,0 +1,7 @@ +--- +fixes: + - | + Fixes ``TypeError`` when the bare metal endpoint cannot be detected from + a session. A proper ``EndpointNotFound`` exception is raised now. + - | + Fixes using ``endpoint_override`` with the ``SessionClient``.
  16. Download patch .gitignore

    --- 3.0.0-2/.gitignore 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.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
  17. Download patch ironicclient/common/http.py

    --- 3.0.0-2/ironicclient/common/http.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/common/http.py 2019-09-25 14:52:20.000000000 +0000 @@ -383,7 +383,11 @@ class SessionClient(VersionNegotiationMi super(SessionClient, self).__init__(**kwargs) endpoint_filter = self._get_endpoint_filter() - endpoint = self.session.get_endpoint(**endpoint_filter) + endpoint = self.get_endpoint(**endpoint_filter) + if endpoint is None: + raise exc.EndpointNotFound( + _('The Bare Metal API endpoint cannot be detected and was ' + 'not provided explicitly')) self.endpoint_trimmed = _trim_endpoint_api_version(endpoint) def _parse_version_headers(self, resp): @@ -477,7 +481,7 @@ class SessionClient(VersionNegotiationMi return self._http_request(url, method, **kwargs) -def _construct_http_client(session=None, +def _construct_http_client(session, token=None, auth_ref=None, os_ironic_api_version=DEFAULT_VER,
  18. Download patch ironicclient/v1/client.py

    --- 3.0.0-2/ironicclient/v1/client.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/v1/client.py 2019-09-25 14:52:20.000000000 +0000 @@ -18,8 +18,6 @@ import logging from ironicclient.common import filecache from ironicclient.common import http from ironicclient.common.http import DEFAULT_VER -from ironicclient.common.i18n import _ -from ironicclient import exc from ironicclient.v1 import allocation from ironicclient.v1 import chassis from ironicclient.v1 import conductor @@ -40,9 +38,8 @@ class Client(object): :param string endpoint_override: A user-supplied endpoint URL for the ironic service. - :param function token: Provides token for authentication. - :param integer timeout: Allows customization of the timeout for client - http requests. (optional) + :param session: A keystoneauth Session object (must be provided as + a keyword argument). """ def __init__(self, endpoint_override=None, *args, **kwargs): @@ -66,23 +63,26 @@ class Client(object): else: kwargs['api_version_select_state'] = "user" else: - if not endpoint_override: - raise exc.EndpointException( - _("Must provide 'endpoint_override' if " - "'os_ironic_api_version' isn't specified")) - - # If the user didn't specify a version, use a cached version if - # one has been stored - host, netport = http.get_server(endpoint_override) - saved_version = filecache.retrieve_data(host=host, port=netport) - if saved_version: - kwargs['api_version_select_state'] = "cached" - kwargs['os_ironic_api_version'] = saved_version + if endpoint_override: + # If the user didn't specify a version, use a cached version if + # one has been stored + host, netport = http.get_server(endpoint_override) + saved_version = filecache.retrieve_data(host=host, + port=netport) + if saved_version: + kwargs['api_version_select_state'] = "cached" + kwargs['os_ironic_api_version'] = saved_version + else: + kwargs['api_version_select_state'] = "default" + kwargs['os_ironic_api_version'] = DEFAULT_VER else: + LOG.debug('Cannot use cached API version since endpoint ' + 'override is not provided. Will negotiate again.') kwargs['api_version_select_state'] = "default" kwargs['os_ironic_api_version'] = DEFAULT_VER - kwargs['endpoint_override'] = endpoint_override + if endpoint_override: + kwargs['endpoint_override'] = endpoint_override self.http_client = http._construct_http_client(*args, **kwargs) self.chassis = chassis.ChassisManager(self.http_client)
  19. Download patch debian/watch

    --- 3.0.0-2/debian/watch 2019-10-20 23:23:56.000000000 +0000 +++ 3.1.0-0ubuntu1/debian/watch 2019-12-10 08:26:26.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)))
  20. Download patch setup.cfg
  21. Download patch python_ironicclient.egg-info/SOURCES.txt
  22. Download patch requirements.txt

    --- 3.0.0-2/requirements.txt 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/requirements.txt 2019-09-25 14:52:20.000000000 +0000 @@ -7,6 +7,7 @@ dogpile.cache>=0.6.2 # BSD jsonschema>=2.6.0 # MIT keystoneauth1>=3.4.0 # Apache-2.0 osc-lib>=1.10.0 # Apache-2.0 +oslo.config>=5.2.0 # Apache-2.0 oslo.i18n>=3.15.3 # Apache-2.0 oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0
  23. Download patch releasenotes/notes/oslo.config-f67bf37ea35dd7fe.yaml

    --- 3.0.0-2/releasenotes/notes/oslo.config-f67bf37ea35dd7fe.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/releasenotes/notes/oslo.config-f67bf37ea35dd7fe.yaml 2019-09-25 14:52:20.000000000 +0000 @@ -0,0 +1,4 @@ +--- +upgrade: + - | + An implicit dependency on ``oslo.config`` is now explicit.
  24. Download patch python_ironicclient.egg-info/pbr.json

    --- 3.0.0-2/python_ironicclient.egg-info/pbr.json 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/pbr.json 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1 @@ +{"git_version": "04ef2d7", "is_release": true} \ No newline at end of file
  25. Download patch python_ironicclient.egg-info/requires.txt

    --- 3.0.0-2/python_ironicclient.egg-info/requires.txt 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/python_ironicclient.egg-info/requires.txt 2019-09-25 14:53:50.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.config>=5.2.0 +oslo.i18n>=3.15.3 +oslo.serialization!=2.19.1,>=2.18.0 +oslo.utils>=3.33.0 +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
  26. Download patch AUTHORS

    --- 3.0.0-2/AUTHORS 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/AUTHORS 2019-09-25 14:53:50.000000000 +0000 @@ -0,0 +1,168 @@ +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@protonmail.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> +Gaëtan Trellu <gaetan.trellu@incloudus.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> +chenke <chen.ke14@zte.com.cn> +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>
  27. Download patch releasenotes/notes/fix-owner-feature-2f3f0163ff307727.yaml

    --- 3.0.0-2/releasenotes/notes/fix-owner-feature-2f3f0163ff307727.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/releasenotes/notes/fix-owner-feature-2f3f0163ff307727.yaml 2019-09-25 14:52:20.000000000 +0000 @@ -0,0 +1,9 @@ +--- +fixes: + - | + ``openstack baremetal node list --owner`` was returning an error + instead of a list of nodes for the specified owner. It has been + fixed. + + See `story 2006563 + <https://storyboard.openstack.org/#!/story/2006563>`__ for details.
  28. Download patch ironicclient/v1/node.py

    --- 3.0.0-2/ironicclient/v1/node.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/v1/node.py 2019-09-25 14:52:20.000000000 +0000 @@ -60,7 +60,7 @@ class NodeManager(base.CreateManager): detail=False, sort_key=None, sort_dir=None, fields=None, provision_state=None, driver=None, resource_class=None, chassis=None, fault=None, os_ironic_api_version=None, - conductor_group=None, conductor=None): + conductor_group=None, conductor=None, owner=None): """Retrieve a list of nodes. :param associated: Optional. Either a Boolean or a string @@ -116,6 +116,8 @@ class NodeManager(base.CreateManager): with the given conductor group set. :param conductor: Optional. String value to get only nodes mapped to the given conductor. + :param owner: Optional. String value to get only nodes + mapped to a specific owner. :returns: A list of nodes. @@ -147,6 +149,8 @@ class NodeManager(base.CreateManager): filters.append('conductor_group=%s' % conductor_group) if conductor is not None: filters.append('conductor=%s' % conductor) + if owner is not None: + filters.append('owner=%s' % owner) path = '' if detail:
  29. Download patch debian/gbp.conf

    --- 3.0.0-2/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000 +++ 3.1.0-0ubuntu1/debian/gbp.conf 2019-12-10 08:26:26.000000000 +0000 @@ -0,0 +1,7 @@ +[DEFAULT] +debian-branch = master +upstream-tag = %(version)s +pristine-tar = True + +[buildpackage] +export-dir = ../build-area
  30. Download patch ironicclient/tests/unit/v1/test_client.py

    --- 3.0.0-2/ironicclient/tests/unit/v1/test_client.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/tests/unit/v1/test_client.py 2019-09-25 14:52:20.000000000 +0000 @@ -14,7 +14,6 @@ import mock from ironicclient.common import filecache from ironicclient.common import http -from ironicclient import exc from ironicclient.tests.unit import utils from ironicclient.v1 import client @@ -22,80 +21,79 @@ from ironicclient.v1 import client @mock.patch.object(http, '_construct_http_client', autospec=True) class ClientTest(utils.BaseTestCase): + session = mock.sentinel.session + def test_client_user_api_version(self, http_client_mock): endpoint = 'http://ironic:6385' - token = 'safe_token' os_ironic_api_version = '1.15' - client.Client(endpoint, token=token, + client.Client(endpoint, session=self.session, os_ironic_api_version=os_ironic_api_version) http_client_mock.assert_called_once_with( - endpoint_override=endpoint, token=token, + endpoint_override=endpoint, session=self.session, os_ironic_api_version=os_ironic_api_version, api_version_select_state='user') def test_client_user_api_version_with_downgrade(self, http_client_mock): endpoint = 'http://ironic:6385' - token = 'safe_token' os_ironic_api_version = '1.15' - client.Client(endpoint, token=token, + client.Client(endpoint, session=self.session, os_ironic_api_version=os_ironic_api_version, allow_api_version_downgrade=True) http_client_mock.assert_called_once_with( - token=token, endpoint_override=endpoint, + endpoint_override=endpoint, session=self.session, os_ironic_api_version=os_ironic_api_version, api_version_select_state='default') def test_client_user_api_version_latest_with_downgrade(self, http_client_mock): endpoint = 'http://ironic:6385' - token = 'safe_token' os_ironic_api_version = 'latest' self.assertRaises(ValueError, client.Client, endpoint, - token=token, allow_api_version_downgrade=True, + session=self.session, + allow_api_version_downgrade=True, os_ironic_api_version=os_ironic_api_version) @mock.patch.object(filecache, 'retrieve_data', autospec=True) def test_client_cache_api_version(self, cache_mock, http_client_mock): endpoint = 'http://ironic:6385' - token = 'safe_token' os_ironic_api_version = '1.15' cache_mock.return_value = os_ironic_api_version - client.Client(endpoint, token=token) + client.Client(endpoint, session=self.session) cache_mock.assert_called_once_with(host='ironic', port='6385') http_client_mock.assert_called_once_with( - endpoint_override=endpoint, token=token, + endpoint_override=endpoint, session=self.session, os_ironic_api_version=os_ironic_api_version, api_version_select_state='cached') @mock.patch.object(filecache, 'retrieve_data', autospec=True) def test_client_default_api_version(self, cache_mock, http_client_mock): endpoint = 'http://ironic:6385' - token = 'safe_token' cache_mock.return_value = None - client.Client(endpoint, token=token) + client.Client(endpoint, session=self.session) cache_mock.assert_called_once_with(host='ironic', port='6385') http_client_mock.assert_called_once_with( - endpoint_override=endpoint, token=token, + endpoint_override=endpoint, session=self.session, os_ironic_api_version=client.DEFAULT_VER, api_version_select_state='default') def test_client_cache_version_no_endpoint_as_arg(self, http_client_mock): - self.assertRaises(exc.EndpointException, - client.Client, - session='fake_session', - insecure=True) + client.Client(session='fake_session', insecure=True) + http_client_mock.assert_called_once_with( + session='fake_session', insecure=True, + os_ironic_api_version=client.DEFAULT_VER, + api_version_select_state='default') def test_client_initialized_managers(self, http_client_mock): - cl = client.Client('http://ironic:6385', token='safe_token', + cl = client.Client('http://ironic:6385', session=self.session, os_ironic_api_version='1.15') self.assertIsInstance(cl.node, client.node.NodeManager) @@ -105,15 +103,14 @@ class ClientTest(utils.BaseTestCase): def test_negotiate_api_version(self, http_client_mock): endpoint = 'http://ironic:6385' - token = 'safe_token' os_ironic_api_version = 'latest' - cl = client.Client(endpoint, token=token, + cl = client.Client(endpoint, session=self.session, os_ironic_api_version=os_ironic_api_version) cl.negotiate_api_version() http_client_mock.assert_called_once_with( api_version_select_state='user', endpoint_override=endpoint, - os_ironic_api_version='latest', token=token) + os_ironic_api_version='latest', session=self.session) # TODO(TheJulia): We should verify that negotiate_version # is being called in the client and returns a version, # although mocking might need to be restrutured to
  31. Download patch ironicclient/tests/unit/test_client.py

    --- 3.0.0-2/ironicclient/tests/unit/test_client.py 2019-09-05 10:43:33.000000000 +0000 +++ 3.1.0-0ubuntu1/ironicclient/tests/unit/test_client.py 2019-09-25 14:52:20.000000000 +0000 @@ -57,14 +57,11 @@ class ClientTest(utils.BaseTestCase): interface=expected_interface, region_name=kwargs.get('region_name')) if not {'endpoint'}.intersection(kwargs): - calls = [get_endpoint_call, - mock.call(interface=client.http_client.interface, - service_type=client.http_client.service_type, - region_name=client.http_client.region_name)] - self.assertEqual(calls, session.get_endpoint.call_args_list) - else: self.assertEqual([get_endpoint_call], session.get_endpoint.call_args_list) + else: + # we use adaper.get_endpoint instead of session.get_endpoint + self.assertFalse(session.get_endpoint.called) if 'os_ironic_api_version' in kwargs: # NOTE(TheJulia): This does not test the negotiation logic # as a request must be triggered in order for any version @@ -256,10 +253,9 @@ class ClientTest(utils.BaseTestCase): 'session': session, } iroclient.get_client('1', **kwargs) - endpoint_calls = 2 * [mock.call(service_type='baremetal', - interface=None, - region_name=None)] - self.assertEqual(endpoint_calls, session.get_endpoint.call_args_list) + session.get_endpoint.assert_called_once_with(service_type='baremetal', + interface=None, + region_name=None) def test_get_client_incorrect_session_passed(self): session = mock.Mock()
  1. python-ironicclient