openstack volume type set stack dumps

Bug #1766295 reported by Thomas Goirand on 2018-04-23
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-cinderclient
Undecided
Unassigned

Bug Description

It looks like "openstack volume type set" is failing. Here is a dump of what's going on using Queens and puppet-openstack under Debian Stretch. Note that Debian is fully Python 3 as you can see in the dump here.

# openstack --debug volume type set --property volume_backend_name=BACKEND_1 BACKEND_1
[...]
REQ: curl -g -i -X GET http://127.0.0.1:8776/v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types/BACKEND_1 -H "Accept: application/json" -H "User-Agent: python-cinderclient" -H "X-Auth-Token: {SHA1}b78363b46dcaf9a9d5c4f5746090d88035ad4b59"
Starting new HTTP connection (1): 127.0.0.1
http://127.0.0.1:8776 "GET /v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types/BACKEND_1 HTTP/1.1" 404 87
RESP: [404] Content-Length: 87 Content-Type: application/json x-compute-request-id: req-bdf2493c-155c-4689-b0af-b3e1de8081a7 x-openstack-request-id: req-bdf2493c-155c-4689-b0af-b3e1de8081a7
RESP BODY: {"itemNotFound": {"message": "Volume type BACKEND_1 could not be found.", "code": 404}}

GET call to volumev2 for http://127.0.0.1:8776/v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types/BACKEND_1 used request id req-bdf2493c-155c-4689-b0af-b3e1de8081a7
REQ: curl -g -i -X GET http://127.0.0.1:8776/v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types?is_public=None -H "Accept: application/json" -H "User-Agent: python-cinderclient" -H "X-Auth-Token: {SHA1}b78363b46dcaf9a9d5c4f5746090d88035ad4b59"
REQ: curl -g -i -X GET http://127.0.0.1:8776/v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types?is_public=None -H "Accept: application/json" -H "User-Agent: python-cinderclient" -H "X-Auth-Token: {SHA1}b78363b46dcaf9a9d5c4f5746090d88035ad4b59"
Starting new HTTP connection (2): 127.0.0.1
http://127.0.0.1:8776 "GET /v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types?is_public=None HTTP/1.1" 200 209
RESP: [200] Content-Type: application/json x-compute-request-id: req-a337a547-19ed-480c-99a1-dc08f30e423a Content-Length: 209 x-openstack-request-id: req-a337a547-19ed-480c-99a1-dc08f30e423a
RESP BODY: {"volume_types": [{"description": null, "is_public": true, "name": "BACKEND_1", "extra_specs": {}, "qos_specs_id": null, "id": "1d8667bc-d0cd-461f-aa66-8448d1747e1a", "os-volume-type-access:is_public": true}]}

GET call to volumev2 for http://127.0.0.1:8776/v2/d175cfa3c2ea4c14927723bcd9ab9f7f/types?is_public=None used request id req-a337a547-19ed-480c-99a1-dc08f30e423a
get() takes 1 positional argument but 2 were given
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/cliff/app.py", line 400, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python3/dist-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python3/dist-packages/cliff/command.py", line 184, in run
    return_code = self.take_action(parsed_args) or 0
  File "/usr/lib/python3/dist-packages/openstackclient/volume/v2/volume_type.py", line 414, in take_action
    volume_client.volume_types, parsed_args.volume_type)
  File "/usr/lib/python3/dist-packages/osc_lib/utils/__init__.py", line 273, in find_resource
    if (resource.get('id') == name_or_id or
TypeError: get() takes 1 positional argument but 2 were given
clean_up SetVolumeType: get() takes 1 positional argument but 2 were given
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/osc_lib/shell.py", line 134, in run
    ret_val = super(OpenStackShell, self).run(argv)
  File "/usr/lib/python3/dist-packages/cliff/app.py", line 279, in run
    result = self.run_subcommand(remainder)
  File "/usr/lib/python3/dist-packages/osc_lib/shell.py", line 169, in run_subcommand
    ret_value = super(OpenStackShell, self).run_subcommand(argv)
  File "/usr/lib/python3/dist-packages/cliff/app.py", line 400, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python3/dist-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python3/dist-packages/cliff/command.py", line 184, in run
    return_code = self.take_action(parsed_args) or 0
  File "/usr/lib/python3/dist-packages/openstackclient/volume/v2/volume_type.py", line 414, in take_action
    volume_client.volume_types, parsed_args.volume_type)
  File "/usr/lib/python3/dist-packages/osc_lib/utils/__init__.py", line 273, in find_resource
    if (resource.get('id') == name_or_id or
TypeError: get() takes 1 positional argument but 2 were given

END return value: 1

Thomas Goirand (thomas-goirand) wrote :

It is to be noted that this doesn't happen if I use cinder-api (ie: eventlet), it only happens if I am using uwsgi. So, likely, the client is behaving differently.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers