404 instead of 405 when secret metadatum method not allowed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Barbican |
Fix Released
|
Low
|
Fernando Diaz |
Bug Description
When anything except a GET, PUT, or DELETE is done on the Secret Metadatum Controller is performed a 404 is given when a 405 should be given.
Example:
vagrant@
}
}' http://
{"metadata_ref": "http://
vagrant@
{"key": "description", "value": "contains the AES key"}
-------
Now when performing a HEAD:
vagrant@
curl: (18) transfer closed with 56 bytes remaining to read
Server:
2016-03-08 05:42:02.158 INFO barbican.
Now when performing a POST:
vagrant@
{"code": 404, "description": null, "title": "Not Found"}
Changed in barbican: | |
importance: | Undecided → Medium |
Changed in barbican: | |
importance: | Medium → Low |
Changed in barbican: | |
assignee: | nobody → Fernando Diaz (diazjf) |
Changed in barbican: | |
milestone: | none → mitaka-3 |
Debugging:
vagrant@ vagrant- ubuntu- trusty- 64:~$ telnet localhost 4444 barbican/ barbican/ api/controllers /secretmeta. py(115) __init_ _() Controller ===') barbican/ barbican/ api/controllers /secretmeta. py(116) __init_ _() secret_ user_meta_ repository( ) barbican/ barbican/ api/controllers /secretmeta. py(117) __init_ _() barbican/ barbican/ api/controllers /secretmeta. py(118) __init_ _() validator = validators. NewSecretMetada tumValidator( ) model.models. Secret object at 0x7f25cb292750> barbican/ barbican/ api/controllers /secretmeta. py(118) __init_ _()->None validator = validators. NewSecretMetada tumValidator( ) validator' is not defined metadatum_ validator validator common. validators. NewSecretMetada tumValidator object at 0x7f25cb236ed0> barbican/ barbican/ api/controllers /secrets. py(82)_ lookup( ) barbican/ barbican/ api/controllers /secrets. py(82)_ lookup( )->(<barbica. ..cb279f10> , (u'description',)) lib/python2. 7/dist- packages/ pecan/routing. py(173) handle_ lookup_ traversal( ) lib/python2. 7/dist- packages/ pecan/routing. py(174) handle_ lookup_ traversal( ) lib/python2. 7/dist- packages/ pecan/routing. py(175) handle_ lookup_ traversal( ) lib/python2. 7/dist- packages/ pecan/routing. py(177) handle_ lookup_ traversal( ) prev_obj, obj) lib/python2. 7/dist- packages/ pecan/routing. py(178) handle_ lookup_ traversal( ) lib/python2. 7/dist- packages/ pecan/routing. py(178) handle_ lookup_ traversal( )->(<barbica. ..cb279f10> , (u'description',)) lib/python2. 7/dist- packages/ pecan/routing. py(156) lookup_ controller( ) lib/python2. 7/dist- packages/ pecan/routing. py(160) lookup_ controller( ) lib/python2. 7/dist- packages/ pecan/routing. py(164) lookup_ controller( ) lib/python2. 7/dist- packages/ pecan/routing. py(165) lookup_ controller( ) controller( obj_, remainder_, request)
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
> /opt/stack/
-> LOG.debug('=== Creating SecretMetadatum
(Pdb) n
> /opt/stack/
-> self.user_meta_repo = repo.get_
(Pdb) n
> /opt/stack/
-> self.secret = secret
(Pdb) n
> /opt/stack/
-> self.metadatum_
(Pdb) print secret
<barbican.
(Pdb) n
--Return--
> /opt/stack/
-> self.metadatum_
(Pdb) print metdatum_validator
*** NameError: name 'metdatum_
(Pdb) printself.
*** NameError: name 'printself' is not defined
(Pdb) print self.metadatum_
<barbican.
(Pdb) n
> /opt/stack/
-> remainder
(Pdb) n
--Return--
> /opt/stack/
-> remainder
(Pdb) print remainder
(u'description',)
(Pdb) n
> /usr/local/
-> if result:
(Pdb) n
> /usr/local/
-> prev_obj = obj
(Pdb) n
> /usr/local/
-> obj, remainder = result
(Pdb) n
> /usr/local/
-> cross_boundary(
(Pdb) n
> /usr/local/
-> return result
(Pdb) n
--Return--
> /usr/local/
-> return result
(Pdb) n
> /usr/local/
-> if result:
(Pdb) n
> /usr/local/
-> remainder == [''] and
(Pdb) n
> /usr/local/
-> obj_, remainder_ = result
(Pdb) n
> /usr/local/
-> return lookup_
(Pdb) n
HTTPNotFound: <HTTPNot...ot Found>
The exception that is hit is: api.controllers .secrets [req-f6af22ad- 4a5b-468d- a45b-484ca47f11 71 ad913a352dee451 1a1cc2238c9a980 4c 1e24e761bf2b4f0 58f45e813af3553 4e] <pecan. core.ObjectProx y object at 0x7fa28072fd50> api.controllers .secrets Traceback (most recent call last): api.controllers .secrets ...
2016-03-08 06:17:59.932 ERROR barbican.
2016-03-08 06:17:59.932 TRACE barbican.
2016-03-08 06:17:59.932 TRACE barbican.