)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"313c7cb9aaaedb890a41f1075cf7664a453e9df2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"nova-status: add basic placement status checking"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds validation of the placement api is in working order, and"},{"line_number":10,"context_line":"handles all the errors we\u0027re currently aware of an can anticipate."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Part of blueprint resource-providers-scheduler-db-filters"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_ac1629a5","line":9,"range":{"start_line":9,"start_character":21,"end_line":9,"end_character":23},"updated":"2016-12-19 17:20:48.000000000","message":"that","commit_id":"48da4d8acb57080897b1bf1ae01e6f4f0aa78377"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"313c7cb9aaaedb890a41f1075cf7664a453e9df2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"nova-status: add basic placement status checking"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds validation of the placement api is in working order, and"},{"line_number":10,"context_line":"handles all the errors we\u0027re currently aware of an can anticipate."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Part of blueprint resource-providers-scheduler-db-filters"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_ec1021ab","line":10,"range":{"start_line":10,"start_character":48,"end_line":10,"end_character":50},"updated":"2016-12-19 17:20:48.000000000","message":"and","commit_id":"48da4d8acb57080897b1bf1ae01e6f4f0aa78377"}],"nova/cmd/status.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"15fb8dbafc26388cae8898762e89f94fa9b9d981","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            # TODO(sdague): provide some real test of what should be"},{"line_number":173,"context_line":"            # in the root document here."},{"line_number":174,"context_line":"            versions \u003d root.json()"},{"line_number":175,"context_line":"            max_version \u003d float(versions[\"versions\"][0][\"max_version\"])"},{"line_number":176,"context_line":"            # The required version is a bit tricky but we know that we at least"},{"line_number":177,"context_line":"            # need 1.0 for Newton computes. This minimum might change in the"},{"line_number":178,"context_line":"            # future."}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_b3631841","line":175,"updated":"2016-12-17 22:44:57.000000000","message":"This is what I get for an authenticated request to placement root:\n\n(venv) stack@filters:~$ curl -s -H \"X-Auth-Token: $OS_TOKEN\" http://9.5.126.8/placement | json_pp\n{\n   \"versions\" : [\n      {\n         \"min_version\" : \"1.0\",\n         \"max_version\" : \"1.2\",\n         \"id\" : \"v1.0\"\n      }\n   ]\n}\n\n\nSo looks OK for what we\u0027re checking.","commit_id":"fb455cf8cfa18e93bc080bb0082e807b0097ff07"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f297a8740d459b7f4883cfc5c439af5933ccd151","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            # TODO(sdague): provide some real test of what should be"},{"line_number":173,"context_line":"            # in the root document here."},{"line_number":174,"context_line":"            versions \u003d root.json()"},{"line_number":175,"context_line":"            max_version \u003d float(versions[\"versions\"][0][\"max_version\"])"},{"line_number":176,"context_line":"            # The required version is a bit tricky but we know that we at least"},{"line_number":177,"context_line":"            # need 1.0 for Newton computes. This minimum might change in the"},{"line_number":178,"context_line":"            # future."}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_ecfe6b37","line":175,"in_reply_to":"1a6eadb0_b3631841","updated":"2016-12-19 14:07:50.000000000","message":"There\u0027s been discussion of making this have some rel links in it (to point to the available resources), but thus far there\u0027s been no pressing need.","commit_id":"fb455cf8cfa18e93bc080bb0082e807b0097ff07"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"f297a8740d459b7f4883cfc5c439af5933ccd151","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            max_version \u003d float(versions[\"versions\"][0][\"max_version\"])"},{"line_number":176,"context_line":"            # The required version is a bit tricky but we know that we at least"},{"line_number":177,"context_line":"            # need 1.0 for Newton computes. This minimum might change in the"},{"line_number":178,"context_line":"            # future."},{"line_number":179,"context_line":"            needs_version \u003d 1.0"},{"line_number":180,"context_line":"            if max_version \u003c needs_version:"},{"line_number":181,"context_line":"                msg \u003d (_(\u0027Placement API version %(needed)s needed, \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_2c74e3fb","line":178,"updated":"2016-12-19 14:07:50.000000000","message":"1.0 should be right for the start. It provides us with reading and writing resource providers, inventories and allocations, all of which were present at the end of newton for nova-compute.","commit_id":"fb455cf8cfa18e93bc080bb0082e807b0097ff07"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"313c7cb9aaaedb890a41f1075cf7664a453e9df2","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        return client.get(path, endpoint_filter\u003dks_filter).json()"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def _check_placement(self):"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        \"\"\"Checks to see if the placement API is ready for scheduling."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        Checks to see that the placement API service is registered in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_ec8741d5","line":171,"updated":"2016-12-19 17:20:48.000000000","message":"Remove this blank line.","commit_id":"48da4d8acb57080897b1bf1ae01e6f4f0aa78377"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24617a7bbdc55fc6d4d36b80a8bd5eb6a3caea73","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                         \u0027you have %(current)s.\u0027) %"},{"line_number":189,"context_line":"                       {\u0027needed\u0027: needs_version, \u0027current\u0027: max_version})"},{"line_number":190,"context_line":"                return UpgradeCheckResult(UpgradeCheckCode.FAILURE, msg)"},{"line_number":191,"context_line":"        except ks_exc.MissingAuthPlugin:"},{"line_number":192,"context_line":"            msg \u003d _(\u0027No credentials specified for placement API in nova.conf.\u0027)"},{"line_number":193,"context_line":"            return UpgradeCheckResult(UpgradeCheckCode.FAILURE, msg)"},{"line_number":194,"context_line":"        except ks_exc.Unauthorized:"},{"line_number":195,"context_line":"            msg \u003d _(\u0027Placement service credentials do not work.\u0027)"},{"line_number":196,"context_line":"            return UpgradeCheckResult(UpgradeCheckCode.FAILURE, msg)"},{"line_number":197,"context_line":"        except ks_exc.EndpointNotFound:"},{"line_number":198,"context_line":"            msg \u003d _(\u0027Placement API endpoint not found.\u0027)"},{"line_number":199,"context_line":"            return UpgradeCheckResult(UpgradeCheckCode.FAILURE, msg)"},{"line_number":200,"context_line":"        except ks_exc.NotFound:"},{"line_number":201,"context_line":"            msg \u003d _(\u0027Placement API does not seem to be running.\u0027)"},{"line_number":202,"context_line":"            return UpgradeCheckResult(UpgradeCheckCode.FAILURE, msg)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # TODO(mriedem): The placement service is running, fun! Now let\u0027s query"},{"line_number":205,"context_line":"        # the API DB to count the number of resource providers and compare that"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_459b68c9","line":202,"range":{"start_line":191,"start_character":8,"end_line":202,"end_character":68},"updated":"2016-12-20 19:55:54.000000000","message":"Hmm, should we work this into the errors?\n\nhttp://docs.openstack.org/developer/nova/placement.html","commit_id":"b0778ff0f9daa85828ed5df7073c23fbaebcd2e7"}],"nova/tests/unit/cmd/test_status.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"313c7cb9aaaedb890a41f1075cf7664a453e9df2","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        \"\"\"Test failure when no endpoint exists."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        Replicate in devstack: start devstack without placement"},{"line_number":142,"context_line":"        engine, but create valid placement service uses and specify it"},{"line_number":143,"context_line":"        in auth section of [placement] in nova.conf."},{"line_number":144,"context_line":"        \"\"\""},{"line_number":145,"context_line":"        get.side_effect \u003d ks_exc.EndpointNotFound()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_2f920b58","line":142,"range":{"start_line":142,"start_character":51,"end_line":142,"end_character":55},"updated":"2016-12-19 17:20:48.000000000","message":"user?","commit_id":"48da4d8acb57080897b1bf1ae01e6f4f0aa78377"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"cc68f749f75ce15743921f11a91cf0b67a3cc414","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import fixtures"},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from six.moves import StringIO"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from keystoneauth1 import exceptions as ks_exc"},{"line_number":24,"context_line":"from keystoneauth1 import loading as keystone"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_c92693cd","line":22,"updated":"2016-12-21 12:22:17.000000000","message":"This blank line(line 22) should be removed.\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"5978013ca2feb89ff073fbc33f4125025bbe8b15"}]}
