)]}'
{"nova/api/openstack/placement/errors.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c3418c46c2730c2646436ae8fe8e220d4ac4e9bf","unresolved":false,"context_lines":[{"line_number":41,"context_line":"DEFAULT \u003d \u0027placement.undefined_code\u0027"},{"line_number":42,"context_line":"INVENTORY_INUSE \u003d \u0027placement.inventory.inuse\u0027"},{"line_number":43,"context_line":"CONCURRENT_UPDATE \u003d \u0027placement.concurrent_update\u0027"},{"line_number":44,"context_line":"DUPLICATE_NAME \u003d \u0027placement.resource_provider.duplicate_name\u0027"},{"line_number":45,"context_line":"RESOURCE_IN_USE \u003d \u0027placement.resource_provider.delete_conflict\u0027"},{"line_number":46,"context_line":"DELETE_PARENT \u003d \u0027placement.resource_provider.parent_delete_conflict\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6d5982fb","line":44,"range":{"start_line":44,"start_character":28,"end_line":44,"end_character":46},"updated":"2018-07-02 12:44:47.000000000","message":"I don\u0027t actually believe we need different namespaced error codes for this one. I think placement.duplicate_name is just as descriptive as having it namespaced under \"resource_provider\", and that way we can make use of it in other handlers modules without adding another error code (see how placement.concurrent_update is not namespaced above.","commit_id":"e6e193015bae076a5524b3ff30a933dbe62f92f4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c3418c46c2730c2646436ae8fe8e220d4ac4e9bf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"INVENTORY_INUSE \u003d \u0027placement.inventory.inuse\u0027"},{"line_number":43,"context_line":"CONCURRENT_UPDATE \u003d \u0027placement.concurrent_update\u0027"},{"line_number":44,"context_line":"DUPLICATE_NAME \u003d \u0027placement.resource_provider.duplicate_name\u0027"},{"line_number":45,"context_line":"RESOURCE_IN_USE \u003d \u0027placement.resource_provider.delete_conflict\u0027"},{"line_number":46,"context_line":"DELETE_PARENT \u003d \u0027placement.resource_provider.parent_delete_conflict\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_6d0e62e5","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":15},"updated":"2018-07-02 12:44:47.000000000","message":"Can we make this PROVIDER_INUSE and placement.resource_provider.inuse to match the similar code on line 42?","commit_id":"e6e193015bae076a5524b3ff30a933dbe62f92f4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c3418c46c2730c2646436ae8fe8e220d4ac4e9bf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"CONCURRENT_UPDATE \u003d \u0027placement.concurrent_update\u0027"},{"line_number":44,"context_line":"DUPLICATE_NAME \u003d \u0027placement.resource_provider.duplicate_name\u0027"},{"line_number":45,"context_line":"RESOURCE_IN_USE \u003d \u0027placement.resource_provider.delete_conflict\u0027"},{"line_number":46,"context_line":"DELETE_PARENT \u003d \u0027placement.resource_provider.parent_delete_conflict\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_cdfe96ae","line":46,"range":{"start_line":46,"start_character":45,"end_line":46,"end_character":67},"updated":"2018-07-02 12:44:47.000000000","message":"how about naming this cannot_delete_parent and changing the name of the error code variable to PROVIDER_CANNOT_DELETE_PARENT?","commit_id":"e6e193015bae076a5524b3ff30a933dbe62f92f4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f2763e57bfeecc0d247f7ed1152956c298847734","unresolved":false,"context_lines":[{"line_number":43,"context_line":"CONCURRENT_UPDATE \u003d \u0027placement.concurrent_update\u0027"},{"line_number":44,"context_line":"DUPLICATE_NAME \u003d \u0027placement.duplicate_name\u0027"},{"line_number":45,"context_line":"PROVIDER_IN_USE \u003d \u0027placement.resource_provider.inuse\u0027"},{"line_number":46,"context_line":"PROVIDER_CANNOT_DELETE_PARENT \u003d \\"},{"line_number":47,"context_line":"    \u0027placement.resource_provider.cannot_delete_parent\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_a361eb3a","line":47,"range":{"start_line":46,"start_character":32,"end_line":47,"end_character":54},"updated":"2018-07-02 14:25:52.000000000","message":"prefer parens over backslash","commit_id":"405977537bb0788a0d03c9f1213273036b8b688b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fa89c050f621cfa463573bed27e3faebc9ad3e3f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"CONCURRENT_UPDATE \u003d \u0027placement.concurrent_update\u0027"},{"line_number":44,"context_line":"DUPLICATE_NAME \u003d \u0027placement.duplicate_name\u0027"},{"line_number":45,"context_line":"PROVIDER_IN_USE \u003d \u0027placement.resource_provider.inuse\u0027"},{"line_number":46,"context_line":"PROVIDER_CANNOT_DELETE_PARENT\\"},{"line_number":47,"context_line":"    \u003d \u0027placement.resource_provider.cannot_delete_parent\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_dbff1464","line":47,"range":{"start_line":46,"start_character":0,"end_line":47,"end_character":56},"updated":"2018-07-03 14:39:28.000000000","message":"I meant:\n\n PROVIDER_CANNOT_DELETE_PARENT \u003d (\n     \u0027placement.resource_provider.cannot_delete_parent\u0027)","commit_id":"3b1836ca0c1afddff88b8fb12cfc1eaa19e3c6b2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d2bc313ff3f1b20fe2fb3351a1d0769cfde8a01e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"DEFAULT \u003d \u0027placement.undefined_code\u0027"},{"line_number":42,"context_line":"INVENTORY_INUSE \u003d \u0027placement.inventory.inuse\u0027"},{"line_number":43,"context_line":"CONCURRENT_UPDATE \u003d \u0027placement.concurrent_update\u0027"},{"line_number":44,"context_line":"DUPLICATE_NAME \u003d \u0027placement.duplicate_name\u0027"},{"line_number":45,"context_line":"PROVIDER_IN_USE \u003d \u0027placement.resource_provider.inuse\u0027"},{"line_number":46,"context_line":"PROVIDER_CANNOT_DELETE_PARENT \u003d ("},{"line_number":47,"context_line":"    \u0027placement.resource_provider.cannot_delete_parent\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_c7f95c82","line":44,"updated":"2018-07-04 16:44:12.000000000","message":"This doesn\u0027t feel very future proof to me. I recognize that jay already said that he doesn\u0027t think we need to make it more specific, but I\u0027m not certain. However, in the previous discussion about concurrent_update, we decided we could safely address that in the future if we needed to, so the same is true here.","commit_id":"f1e1c9ce256401ff754ebc692fe1716e0d71c098"}],"nova/api/openstack/placement/handlers/resource_provider.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fa89c050f621cfa463573bed27e3faebc9ad3e3f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        raise webob.exc.HTTPConflict("},{"line_number":101,"context_line":"            _(\u0027Conflicting resource provider %(duplicate)s already exists.\u0027) %"},{"line_number":102,"context_line":"            {\u0027duplicate\u0027: duplicate},"},{"line_number":103,"context_line":"            comment\u003derrors.DUPLICATE_NAME)"},{"line_number":104,"context_line":"    except exception.ObjectActionError as exc:"},{"line_number":105,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":106,"context_line":"            _(\u0027Unable to create resource provider \"%(name)s\", %(rp_uuid)s: \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_5beb04a3","line":103,"updated":"2018-07-03 14:39:28.000000000","message":"this","commit_id":"3b1836ca0c1afddff88b8fb12cfc1eaa19e3c6b2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fa89c050f621cfa463573bed27e3faebc9ad3e3f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        raise webob.exc.HTTPConflict("},{"line_number":141,"context_line":"            _(\u0027Unable to delete resource provider %(rp_uuid)s: %(error)s\u0027) %"},{"line_number":142,"context_line":"            {\u0027rp_uuid\u0027: uuid, \u0027error\u0027: exc},"},{"line_number":143,"context_line":"            comment\u003derrors.PROVIDER_IN_USE)"},{"line_number":144,"context_line":"    except exception.NotFound as exc:"},{"line_number":145,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":146,"context_line":"            _(\"No resource provider with uuid %s found for delete\") % uuid)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_fb27701d","line":143,"updated":"2018-07-03 14:39:28.000000000","message":"and this","commit_id":"3b1836ca0c1afddff88b8fb12cfc1eaa19e3c6b2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fa89c050f621cfa463573bed27e3faebc9ad3e3f","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        raise webob.exc.HTTPConflict("},{"line_number":281,"context_line":"            _(\u0027Conflicting resource provider %(name)s already exists.\u0027) %"},{"line_number":282,"context_line":"            {\u0027name\u0027: data[\u0027name\u0027]},"},{"line_number":283,"context_line":"            comment\u003derrors.DUPLICATE_NAME)"},{"line_number":284,"context_line":"    except exception.ObjectActionError as exc:"},{"line_number":285,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":286,"context_line":"            _(\u0027Unable to save resource provider %(rp_uuid)s: %(error)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_fb10d0ad","line":283,"updated":"2018-07-03 14:39:28.000000000","message":"and this\n\nstill need test coverage.","commit_id":"3b1836ca0c1afddff88b8fb12cfc1eaa19e3c6b2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d2bc313ff3f1b20fe2fb3351a1d0769cfde8a01e","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        raise webob.exc.HTTPConflict("},{"line_number":141,"context_line":"            _(\u0027Unable to delete resource provider %(rp_uuid)s: %(error)s\u0027) %"},{"line_number":142,"context_line":"            {\u0027rp_uuid\u0027: uuid, \u0027error\u0027: exc},"},{"line_number":143,"context_line":"            comment\u003derrors.PROVIDER_IN_USE)"},{"line_number":144,"context_line":"    except exception.NotFound as exc:"},{"line_number":145,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":146,"context_line":"            _(\"No resource provider with uuid %s found for delete\") % uuid)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_a7c6a048","line":143,"updated":"2018-07-04 16:44:12.000000000","message":"Looks like a test is still needed for this one.","commit_id":"f1e1c9ce256401ff754ebc692fe1716e0d71c098"}],"nova/tests/functional/api/openstack/placement/gabbits/allocations.yaml":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d10e5dc2d0d3b4a411becba6ac69c3def5516886","unresolved":false,"context_lines":[{"line_number":155,"context_line":"      - \"Unable to delete resource provider $ENVIRON[\u0027RP_UUID\u0027]\""},{"line_number":156,"context_line":"  response_json_paths:"},{"line_number":157,"context_line":"      errors[0].code: placement.resource_provider.inuse"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"- name: put an allocation different consumer"},{"line_number":161,"context_line":"  PUT: /allocations/39715579-2167-4c63-8247-301311cc6703"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5f7c97a3_ef97b338","line":158,"updated":"2018-07-16 12:09:19.000000000","message":"femto-nit... too many newlines here :)","commit_id":"a6411afbfa1e27009b5beb085b67df39a155fb11"}]}
