revert-to-snapshot fails w/ 400 when snapshot does not exist

Bug #1816792 reported by Eric Harney
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
New
Undecided
Unassigned

Bug Description

$ cinder --debug revert-to-snapshot asdf

where asdf doesn't exist, results in this error. This should probably just 404 rather than return a bad request.

DEBUG:keystoneauth:RESP BODY: {"badRequest": {"message": "Invalid filters all_tenants are found in query options.", "code": 400}}
DEBUG:keystoneauth:GET call to volumev3 for http://10.13.57.164/volume/v3/1de558d79c114461af956b6215893960/snapshots/detail?all_tenants=1&name=asdf used request id req-e1047a11-74b2-458c-93e0-ff33defa9e4f
DEBUG (shell:911) Invalid filters all_tenants are found in query options. (HTTP 400) (Request-ID: req-e1047a11-74b2-458c-93e0-ff33defa9e4f)
Traceback (most recent call last):
  File "/opt/stack/python-cinderclient/cinderclient/shell.py", line 906, in main
    for item in sys.argv[1:]])
  File "/opt/stack/python-cinderclient/cinderclient/shell.py", line 726, in main
    args.func(self.cs, args)
  File "/opt/stack/python-cinderclient/cinderclient/v3/shell.py", line 1815, in do_revert_to_snapshot
    snapshot = shell_utils.find_volume_snapshot(cs, args.snapshot)
  File "/opt/stack/python-cinderclient/cinderclient/shell_utils.py", line 69, in find_volume_snapshot
    return utils.find_resource(cs.volume_snapshots, snapshot)
  File "/opt/stack/python-cinderclient/cinderclient/utils.py", line 294, in find_resource
    return manager.find(**{name_attr: name_or_id})
  File "/opt/stack/python-cinderclient/cinderclient/base.py", line 378, in find
    matches = self.findall(**kwargs)
  File "/opt/stack/python-cinderclient/cinderclient/base.py", line 417, in findall
    listing = self.list(search_opts=search_opts)
  File "/opt/stack/python-cinderclient/cinderclient/v3/volume_snapshots.py", line 127, in list
    return self._list(url, resource_type, limit=limit)
  File "/opt/stack/python-cinderclient/cinderclient/base.py", line 80, in _list
    resp, body = self.api.client.get(url)
  File "/opt/stack/python-cinderclient/cinderclient/client.py", line 200, in get
    return self._cs_request(url, 'GET', **kwargs)
  File "/opt/stack/python-cinderclient/cinderclient/client.py", line 191, in _cs_request
    return self.request(url, method, **kwargs)
  File "/opt/stack/python-cinderclient/cinderclient/client.py", line 177, in request
    raise exceptions.from_response(resp, body)
BadRequest: Invalid filters all_tenants are found in query options. (HTTP 400) (Request-ID: req-e1047a11-74b2-458c-93e0-ff33defa9e4f)
DEBUG:cinderclient.shell:Invalid filters all_tenants are found in query options. (HTTP 400) (Request-ID: req-e1047a11-74b2-458c-93e0-ff33defa9e4f)
Traceback (most recent call last):
  File "/opt/stack/python-cinderclient/cinderclient/shell.py", line 906, in main
    for item in sys.argv[1:]])
  File "/opt/stack/python-cinderclient/cinderclient/shell.py", line 726, in main
    args.func(self.cs, args)
  File "/opt/stack/python-cinderclient/cinderclient/v3/shell.py", line 1815, in do_revert_to_snapshot
    snapshot = shell_utils.find_volume_snapshot(cs, args.snapshot)
  File "/opt/stack/python-cinderclient/cinderclient/shell_utils.py", line 69, in find_volume_snapshot
    return utils.find_resource(cs.volume_snapshots, snapshot)
  File "/opt/stack/python-cinderclient/cinderclient/utils.py", line 294, in find_resource
    return manager.find(**{name_attr: name_or_id})
  File "/opt/stack/python-cinderclient/cinderclient/base.py", line 378, in find
    matches = self.findall(**kwargs)
  File "/opt/stack/python-cinderclient/cinderclient/base.py", line 417, in findall
    listing = self.list(search_opts=search_opts)
  File "/opt/stack/python-cinderclient/cinderclient/v3/volume_snapshots.py", line 127, in list
    return self._list(url, resource_type, limit=limit)
  File "/opt/stack/python-cinderclient/cinderclient/base.py", line 80, in _list
    resp, body = self.api.client.get(url)
  File "/opt/stack/python-cinderclient/cinderclient/client.py", line 200, in get
    return self._cs_request(url, 'GET', **kwargs)
  File "/opt/stack/python-cinderclient/cinderclient/client.py", line 191, in _cs_request
    return self.request(url, method, **kwargs)
  File "/opt/stack/python-cinderclient/cinderclient/client.py", line 177, in request
    raise exceptions.from_response(resp, body)
BadRequest: Invalid filters all_tenants are found in query options. (HTTP 400) (Request-ID: req-e1047a11-74b2-458c-93e0-ff33defa9e4f)
ERROR: Invalid filters all_tenants are found in query options. (HTTP 400) (Request-ID: req-e1047a11-74b2-458c-93e0-ff33defa9e4f)

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.