)]}'
{"nova/api/openstack/compute/contrib/floating_ips.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0cc2f414d137c3970563c598c2f566eb7108c1c8","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            msg \u003d _(\u0027floating ip not found\u0027)"},{"line_number":262,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":263,"context_line":"        except exception.Forbidden as e:"},{"line_number":264,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.format_message())"},{"line_number":265,"context_line":"        except Exception:"},{"line_number":266,"context_line":"            msg \u003d _(\u0027Error. Unable to associate floating ip\u0027)"},{"line_number":267,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BFIg%3D","line":264,"updated":"2014-03-31 00:21:50.000000000","message":"I much prefer to most part of this patch. That is very reasonable.\n\nThe scope of this part(raise webob.exc.HTTPForbidden) is a little different from the other part. If merging here together, we need to consider this kind of change for the other parts also. So I feel it is better to separate this part from current patch for easy review and merging it fast.","commit_id":"3304728b42e22ff3c76571c8b4474b40030b7a4c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"53f820319566e829f693ac5d1ff3c54250edce1d","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            msg \u003d _(\u0027floating ip not found\u0027)"},{"line_number":262,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":263,"context_line":"        except exception.Forbidden as e:"},{"line_number":264,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.format_message())"},{"line_number":265,"context_line":"        except Exception:"},{"line_number":266,"context_line":"            msg \u003d _(\u0027Error. Unable to associate floating ip\u0027)"},{"line_number":267,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BFGI%3D","line":264,"in_reply_to":"AAAAWH%2F%2BFGQ%3D","updated":"2014-03-31 00:52:37.000000000","message":"Thanks for your explanation and nice investigation, that is enough for me:-)","commit_id":"3304728b42e22ff3c76571c8b4474b40030b7a4c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5f36e424ed11730f269577f9a295524a4682684d","unresolved":false,"context_lines":[{"line_number":261,"context_line":"            msg \u003d _(\u0027floating ip not found\u0027)"},{"line_number":262,"context_line":"            raise webob.exc.HTTPNotFound(explanation\u003dmsg)"},{"line_number":263,"context_line":"        except exception.Forbidden as e:"},{"line_number":264,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003de.format_message())"},{"line_number":265,"context_line":"        except Exception:"},{"line_number":266,"context_line":"            msg \u003d _(\u0027Error. Unable to associate floating ip\u0027)"},{"line_number":267,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BFGQ%3D","line":264,"in_reply_to":"AAAAWH%2F%2BFIg%3D","updated":"2014-03-31 00:50:10.000000000","message":"The reason I added this in was because all other uses of nova.exception.NotAuthorized were translated to HTTPForbidden in the API layer except for this one, so I separated it at the same time and added it to the commit message.  If it\u0027s really a sticky point I can separate it out and make it part of a series.","commit_id":"3304728b42e22ff3c76571c8b4474b40030b7a4c"}],"nova/exception.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"a285cbd6fc2a9d2ccb56bbd3b706b6bf8e6cd82f","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class Forbidden(NovaException):"},{"line_number":165,"context_line":"    ec2_code \u003d \u0027AuthFailure\u0027"},{"line_number":166,"context_line":"    msg_fmt \u003d _(\"Not authorized.\")"},{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FjR8%3D","line":166,"updated":"2014-04-19 15:57:24.000000000","message":"I see that you are also creating a patch which added a new exception whose msg_fmt is also \"Not authorized\"\n\nhttps://review.openstack.org/#/c/83282/4/nova/exception.py\n\nSo shall we update the msg_fmt here to make sure not two exceptions using same msg_fmt?","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a96c611fb8c265dc69a885e0a144e34a32796669","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class Forbidden(NovaException):"},{"line_number":165,"context_line":"    ec2_code \u003d \u0027AuthFailure\u0027"},{"line_number":166,"context_line":"    msg_fmt \u003d _(\"Not authorized.\")"},{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FhYE%3D","line":166,"in_reply_to":"AAAAXH%2F%2FjR8%3D","updated":"2014-04-20 16:01:43.000000000","message":"No, I intentionally left the message here so I don\u0027t break any compatibility with this exception, i.e. the code or the message.  The only change is the internal name of the exception.","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"2b0cf56714682d699ac3d6a1d5e01742fd60ddf2","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class AdminRequired(Forbidden):"},{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2Fauc%3D","line":170,"updated":"2014-04-21 23:31:24.000000000","message":"Not sure if we need to change this one to \u0027AdminPrivilegeForbidden\u0027","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"002e85e0743208c0fef12d6e4fefd4f12a1504d9","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class AdminRequired(Forbidden):"},{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FUec%3D","line":170,"in_reply_to":"AAAAXH%2F%2Fauc%3D","updated":"2014-04-22 14:31:09.000000000","message":"I don\u0027t think so.  I really don\u0027t want to turn this into going through all exception names and seeing if we need to rename them all to be more appropriate.  I can agree with PolicyNotAuthorized, but unless it has NotAuthorized in the name, I don\u0027t think I\u0027m going to be changing it here.","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"4e993806bdb1f39880d2354cca3953000aa1aa76","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class PolicyNotAuthorized(Forbidden):"},{"line_number":175,"context_line":"    msg_fmt \u003d _(\"Policy doesn\u0027t allow %(action)s to be performed.\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FjSo%3D","line":174,"updated":"2014-04-19 15:50:25.000000000","message":"What about this? Do we also need update this one to PolicyOpForbidden just like Line 628?","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e3d579f36b99aba3b5253da34a91fd5f286afb0","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class PolicyNotAuthorized(Forbidden):"},{"line_number":175,"context_line":"    msg_fmt \u003d _(\"Policy doesn\u0027t allow %(action)s to be performed.\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FeAs%3D","line":174,"in_reply_to":"AAAAXH%2F%2FeF4%3D","updated":"2014-04-21 14:50:40.000000000","message":"OK, I see your point now.  There are 94 cases where that shows up in the code.  I\u0027m not sure if I want to change it on this patch or a dependent one, I\u0027m thinking a dependent patch to do that rename.","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"054e8263778db884414d01937c53fa830ea715fc","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class PolicyNotAuthorized(Forbidden):"},{"line_number":175,"context_line":"    msg_fmt \u003d _(\"Policy doesn\u0027t allow %(action)s to be performed.\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FeF4%3D","line":174,"in_reply_to":"AAAAXH%2F%2FhYA%3D","updated":"2014-04-21 14:40:15.000000000","message":"I mean that PolicyNotAuthorized was inherited from Forbidden, so perhaps it is better that we also change this class to a name which can reflect \"Forbidden\" such as \"PolicyOpForbidden\"?","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a96c611fb8c265dc69a885e0a144e34a32796669","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class PolicyNotAuthorized(Forbidden):"},{"line_number":175,"context_line":"    msg_fmt \u003d _(\"Policy doesn\u0027t allow %(action)s to be performed.\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAXH%2F%2FhYA%3D","line":174,"in_reply_to":"AAAAXH%2F%2FjSo%3D","updated":"2014-04-20 16:01:43.000000000","message":"I don\u0027t understand the question, the changes here are just renaming NotAuthorized to Forbidden and what was using it before.","commit_id":"ffb3c4ac16656d6b9db637542066d97db4ae8a1c"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"7e13cd5e417466eb57e114b05e2722b8b255be38","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class AdminRequired(Forbidden):"},{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad9bd40_e54ab254","line":170,"updated":"2014-04-29 23:36:28.000000000","message":"Hope we can handle this in other patches.","commit_id":"c75a15a48981628e77d4178476c121693a656814"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"2752be1cc434da76d087556231305cda38382f0e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class AdminRequired(Forbidden):"},{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad9bd40_79fe476d","line":170,"in_reply_to":"9ad9bd40_19d8db1c","updated":"2014-04-30 04:57:24.000000000","message":"nvm read up to here : https://review.openstack.org/#/c/84035/5/nova/exception.py","commit_id":"c75a15a48981628e77d4178476c121693a656814"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"06e0fa045a784d3cd058d1ae57efa34a28f02f35","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class AdminRequired(Forbidden):"},{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad9bd40_0edb1cee","line":170,"in_reply_to":"9ad9bd40_79fe476d","updated":"2014-04-30 18:28:22.000000000","message":"As I pointed out before, I\u0027m not planning on renaming AdminRequired.","commit_id":"c75a15a48981628e77d4178476c121693a656814"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"c94d795e8e7142464403bbb156867acfc4162d78","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    code \u003d 403"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"class AdminRequired(Forbidden):"},{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad9bd40_19d8db1c","line":170,"in_reply_to":"9ad9bd40_e54ab254","updated":"2014-04-30 04:56:26.000000000","message":"Handle it how so?","commit_id":"c75a15a48981628e77d4178476c121693a656814"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"7e13cd5e417466eb57e114b05e2722b8b255be38","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class PolicyNotAuthorized(Forbidden):"},{"line_number":175,"context_line":"    msg_fmt \u003d _(\"Policy doesn\u0027t allow %(action)s to be performed.\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad9bd40_c53daebd","line":174,"updated":"2014-04-29 23:36:28.000000000","message":"ditto","commit_id":"c75a15a48981628e77d4178476c121693a656814"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"06e0fa045a784d3cd058d1ae57efa34a28f02f35","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    msg_fmt \u003d _(\"User does not have admin privileges\")"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class PolicyNotAuthorized(Forbidden):"},{"line_number":175,"context_line":"    msg_fmt \u003d _(\"Policy doesn\u0027t allow %(action)s to be performed.\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad9bd40_aef31072","line":174,"in_reply_to":"9ad9bd40_c53daebd","updated":"2014-04-30 18:28:22.000000000","message":"As pointed out before, I can push another patch to rename this to PolicyForbidden since I agree with that change, just not in this patch set right now.","commit_id":"c75a15a48981628e77d4178476c121693a656814"}],"nova/keymgr/mock_key_mgr.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f0036d785f3210c7bf698486a27b1ab73f8e3cdc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        \"\"\"Creates a key."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        This implementation returns a UUID for the created key. A"},{"line_number":75,"context_line":"        NotAuthorized exception is raised if the specified context is None."},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        if ctxt is None:"},{"line_number":78,"context_line":"            raise exception.Forbidden()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhYo%3D","line":75,"updated":"2014-04-14 00:49:27.000000000","message":"s/NotAuthorized/Forbidden/","commit_id":"d6e13cf18030d34a1513af5e62fe943a8e7fcca9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7c347ab06df7833639be869532b6278362556cb0","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        \"\"\"Creates a key."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        This implementation returns a UUID for the created key. A"},{"line_number":75,"context_line":"        NotAuthorized exception is raised if the specified context is None."},{"line_number":76,"context_line":"        \"\"\""},{"line_number":77,"context_line":"        if ctxt is None:"},{"line_number":78,"context_line":"            raise exception.Forbidden()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fct8%3D","line":75,"in_reply_to":"AAAAW3%2F%2FhYo%3D","updated":"2014-04-14 14:41:31.000000000","message":"Done","commit_id":"d6e13cf18030d34a1513af5e62fe943a8e7fcca9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f0036d785f3210c7bf698486a27b1ab73f8e3cdc","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        \"\"\"Retrieves the key identified by the specified id."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        This implementation returns the key that is associated with the"},{"line_number":113,"context_line":"        specified UUID. A NotAuthorized exception is raised if the specified"},{"line_number":114,"context_line":"        context is None; a KeyError is raised if the UUID is invalid."},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        if ctxt is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhYc%3D","line":113,"updated":"2014-04-14 00:49:27.000000000","message":"ditto","commit_id":"d6e13cf18030d34a1513af5e62fe943a8e7fcca9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7c347ab06df7833639be869532b6278362556cb0","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        \"\"\"Retrieves the key identified by the specified id."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        This implementation returns the key that is associated with the"},{"line_number":113,"context_line":"        specified UUID. A NotAuthorized exception is raised if the specified"},{"line_number":114,"context_line":"        context is None; a KeyError is raised if the UUID is invalid."},{"line_number":115,"context_line":"        \"\"\""},{"line_number":116,"context_line":"        if ctxt is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fct4%3D","line":113,"in_reply_to":"AAAAW3%2F%2FhYc%3D","updated":"2014-04-14 14:41:31.000000000","message":"Done","commit_id":"d6e13cf18030d34a1513af5e62fe943a8e7fcca9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f0036d785f3210c7bf698486a27b1ab73f8e3cdc","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    def delete_key(self, ctxt, key_id, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"Deletes the key identified by the specified id."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        A NotAuthorized exception is raised if the context is None and a"},{"line_number":125,"context_line":"        KeyError is raised if the UUID is invalid."},{"line_number":126,"context_line":"        \"\"\""},{"line_number":127,"context_line":"        if ctxt is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FhYY%3D","line":124,"updated":"2014-04-14 00:49:27.000000000","message":"ditto","commit_id":"d6e13cf18030d34a1513af5e62fe943a8e7fcca9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7c347ab06df7833639be869532b6278362556cb0","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    def delete_key(self, ctxt, key_id, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"Deletes the key identified by the specified id."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        A NotAuthorized exception is raised if the context is None and a"},{"line_number":125,"context_line":"        KeyError is raised if the UUID is invalid."},{"line_number":126,"context_line":"        \"\"\""},{"line_number":127,"context_line":"        if ctxt is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fct0%3D","line":124,"in_reply_to":"AAAAW3%2F%2FhYY%3D","updated":"2014-04-14 14:41:31.000000000","message":"Done","commit_id":"d6e13cf18030d34a1513af5e62fe943a8e7fcca9"}]}
