)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"da1578e860bb7b5c968de3450f4419322608ce90","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This includes project id verification for flavor access calls."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Depends-On: I825b14addbe7687a4b943acf929284b72a8f9ac0"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Implements bp:validate-project-with-keystone"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I2620c3ebc2a6dc131946602f8aa36ec0b6e782e0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3f044301_83abe4d4","line":12,"updated":"2017-05-04 16:17:06.000000000","message":"Can we also mark this as Closes-Bug: #1544989 ?","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"}],"api-ref/source/os-flavor-access.inc":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b9c00ed66517cb513a9997400840aff56fdd3465","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403),"},{"line_number":58,"context_line":"itemNotFound(404), conflict(409)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- 400 - BadRequest - if the `tenant_id` is not found in your OpenStack"},{"line_number":61,"context_line":"  deployment, a 400 is returned to prevent typos on the API call."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Request"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"da36d5c6_b7684a89","line":60,"range":{"start_line":60,"start_character":29,"end_line":60,"end_character":38},"updated":"2017-02-27 19:14:49.000000000","message":"here should be \u0027tenant\u0027 because of the attribute name of line 53.\n\nI was a little confused because the reno says \"project_id\" instead.","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403),"},{"line_number":58,"context_line":"itemNotFound(404), conflict(409)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- 400 - BadRequest - if the `tenant_id` is not found in your OpenStack"},{"line_number":61,"context_line":"  deployment, a 400 is returned to prevent typos on the API call."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Request"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"3f044301_1bddf013","line":60,"range":{"start_line":60,"start_character":29,"end_line":60,"end_character":38},"in_reply_to":"da36d5c6_b7684a89","updated":"2017-05-04 22:13:28.000000000","message":"Done","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b9c00ed66517cb513a9997400840aff56fdd3465","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403),"},{"line_number":104,"context_line":"itemNotFound(404), conflict(409)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- 400 - BadRequest - if the `tenant_id` is not found in your OpenStack"},{"line_number":107,"context_line":"  deployment, a 400 is returned to prevent typos on the API call."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Request"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"da36d5c6_37137a0f","line":106,"range":{"start_line":106,"start_character":29,"end_line":106,"end_character":38},"updated":"2017-02-27 19:14:49.000000000","message":"ditto","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Error response codes: badRequest(400), unauthorized(401), forbidden(403),"},{"line_number":104,"context_line":"itemNotFound(404), conflict(409)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- 400 - BadRequest - if the `tenant_id` is not found in your OpenStack"},{"line_number":107,"context_line":"  deployment, a 400 is returned to prevent typos on the API call."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Request"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"3f044301_fbe124d2","line":106,"range":{"start_line":106,"start_character":29,"end_line":106,"end_character":38},"in_reply_to":"da36d5c6_37137a0f","updated":"2017-05-04 22:13:28.000000000","message":"Done","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"}],"nova/api/openstack/compute/flavor_access.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        vals \u003d body[\u0027addTenantAccess\u0027]"},{"line_number":101,"context_line":"        tenant \u003d vals[\u0027tenant\u0027]"},{"line_number":102,"context_line":"        identity.verify_project_id(context, tenant)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        flavor \u003d common.get_flavor(context, id)"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3f044301_5bda5817","line":102,"updated":"2017-05-04 22:13:28.000000000","message":"should probably have a simple unit test for these","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"}],"releasenotes/notes/project_id_validation-568d31c13c3ef735.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0ef84eb646618a9749f7a116e5b7830b9a2ce493","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"da36d5c6_c08c1282","line":4,"range":{"start_line":4,"start_character":51,"end_line":4,"end_character":52},"updated":"2017-02-27 20:49:50.000000000","message":"strike spurious comma (or add one before \u0027and\u0027)","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_5bc93876","line":4,"range":{"start_line":4,"start_character":51,"end_line":4,"end_character":52},"in_reply_to":"da36d5c6_c08c1282","updated":"2017-05-04 22:13:28.000000000","message":"Done","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"97cbe65a45a73fa246a5cc3bb51b1fa763c9eeed","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"},{"line_number":8,"context_line":"    data from being put in the Nova database. This fixes an effective"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_fb03640c","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":46},"updated":"2017-05-04 21:45:07.000000000","message":"operated","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"},{"line_number":8,"context_line":"    data from being put in the Nova database. This fixes an effective"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_3bc66c69","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":46},"in_reply_to":"3f044301_fb03640c","updated":"2017-05-04 22:13:28.000000000","message":"Done","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"},{"line_number":8,"context_line":"    data from being put in the Nova database. This fixes an effective"},{"line_number":9,"context_line":"    silent error where this would be stored even if this was not a"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_7b919452","line":6,"range":{"start_line":6,"start_character":36,"end_line":6,"end_character":43},"updated":"2017-05-04 22:13:28.000000000","message":"What does this mean, in user? In the user role?","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"},{"line_number":8,"context_line":"    data from being put in the Nova database. This fixes an effective"},{"line_number":9,"context_line":"    silent error where this would be stored even if this was not a"},{"line_number":10,"context_line":"    valid project_id in the system."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_7b9f5450","line":7,"range":{"start_line":7,"start_character":54,"end_line":7,"end_character":64},"updated":"2017-05-04 22:13:28.000000000","message":"invalid","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    API calls to /os-quota-sets/* and flavor access, will now attempt"},{"line_number":5,"context_line":"    to validate the project_id being opperated on with keystone. If"},{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"},{"line_number":8,"context_line":"    data from being put in the Nova database. This fixes an effective"},{"line_number":9,"context_line":"    silent error where this would be stored even if this was not a"},{"line_number":10,"context_line":"    valid project_id in the system."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_5bac988b","line":7,"range":{"start_line":7,"start_character":65,"end_line":7,"end_character":70},"updated":"2017-05-04 22:13:28.000000000","message":"remove \u0027quota\u0027 or say \u0027quota and/or flavor access\u0027.","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcac5ec24391446478e38330174d14e9bbe09e15","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    the user has enough permissions in user, and the keystone project"},{"line_number":7,"context_line":"    does not exist, a 400 will be returned to prevent invalidate quota"},{"line_number":8,"context_line":"    data from being put in the Nova database. This fixes an effective"},{"line_number":9,"context_line":"    silent error where this would be stored even if this was not a"},{"line_number":10,"context_line":"    valid project_id in the system."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3f044301_bbb6fcd8","line":9,"range":{"start_line":9,"start_character":23,"end_line":9,"end_character":57},"updated":"2017-05-04 22:13:28.000000000","message":"too many \u0027this\u0027s here.","commit_id":"ed75d078b7f0eeb04f5109851ed97177ce30aee5"}]}
