)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"06154617978a40cd7f9ac65ccaac6dd2b7f3a52c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Some Version tests use the same port value for admin and public endpoints."},{"line_number":10,"context_line":"It makes public and admin endpoints indistinguishable. As results bugs like"},{"line_number":11,"context_line":"\"Keystone API GET 5000/v3 returns wrong endpoint URL in response body\""},{"line_number":12,"context_line":"(bug #1381961) can\u0027t be catched by tests."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This fix assigns uniques values to public_port and admin_port. It also"},{"line_number":15,"context_line":"skips test_admin_version_v3 and test_admin because of bug #1381961 which can\u0027t"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a50d1a3_c1043d16","line":12,"updated":"2015-07-29 02:30:34.000000000","message":"change \"catched\" to \"caught\"","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"06154617978a40cd7f9ac65ccaac6dd2b7f3a52c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"\"Keystone API GET 5000/v3 returns wrong endpoint URL in response body\""},{"line_number":12,"context_line":"(bug #1381961) can\u0027t be catched by tests."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This fix assigns uniques values to public_port and admin_port. It also"},{"line_number":15,"context_line":"skips test_admin_version_v3 and test_admin because of bug #1381961 which can\u0027t"},{"line_number":16,"context_line":"be tested properly without this fix. Tests will be re-enabled as part of"},{"line_number":17,"context_line":"bug #1381961 fix."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a50d1a3_810ab51e","line":14,"updated":"2015-07-29 02:30:34.000000000","message":"change \"uniques\" to \"unique\"","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"}],"keystone/tests/unit/test_versions.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"bd9be08e6f7d1465f463f0d91a45ded4a4d86ad7","unresolved":false,"context_lines":[{"line_number":943,"context_line":"            admin_endpoint\u003d\u0027http://localhost:%(admin_port)d\u0027)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def config_overrides(self):"},{"line_number":946,"context_line":"        super(VersionSingleAppTestCase, self).config_overrides()"},{"line_number":947,"context_line":"        port \u003d random.randint(10000, 30000)"},{"line_number":948,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027, public_port\u003dport,"},{"line_number":949,"context_line":"                                   admin_port\u003dport)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_a5fe59ac","line":946,"updated":"2015-07-26 09:16:21.000000000","message":"why this is not changed? is this intentional?","commit_id":"578aebe089adf1cc8a3cd1bf767a60675f998148"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"2254e30a2de4ec58db6f9add87e0837866447b03","unresolved":false,"context_lines":[{"line_number":943,"context_line":"            admin_endpoint\u003d\u0027http://localhost:%(admin_port)d\u0027)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def config_overrides(self):"},{"line_number":946,"context_line":"        super(VersionSingleAppTestCase, self).config_overrides()"},{"line_number":947,"context_line":"        port \u003d random.randint(10000, 30000)"},{"line_number":948,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027, public_port\u003dport,"},{"line_number":949,"context_line":"                                   admin_port\u003dport)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_255d6979","line":946,"in_reply_to":"3a50d1a3_a5fe59ac","updated":"2015-07-26 12:10:48.000000000","message":"Nice catch, thanks!","commit_id":"578aebe089adf1cc8a3cd1bf767a60675f998148"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"bd9be08e6f7d1465f463f0d91a45ded4a4d86ad7","unresolved":false,"context_lines":[{"line_number":990,"context_line":"            admin_endpoint\u003d\u0027http://localhost:%(admin_port)d\u0027)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def config_overrides(self):"},{"line_number":993,"context_line":"        super(VersionInheritEnabledTestCase, self).config_overrides()"},{"line_number":994,"context_line":"        port \u003d random.randint(10000, 30000)"},{"line_number":995,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027, public_port\u003dport,"},{"line_number":996,"context_line":"                                   admin_port\u003dport)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_452c354a","line":993,"updated":"2015-07-26 09:16:21.000000000","message":"And here, can we update all of them?","commit_id":"578aebe089adf1cc8a3cd1bf767a60675f998148"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"2254e30a2de4ec58db6f9add87e0837866447b03","unresolved":false,"context_lines":[{"line_number":990,"context_line":"            admin_endpoint\u003d\u0027http://localhost:%(admin_port)d\u0027)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    def config_overrides(self):"},{"line_number":993,"context_line":"        super(VersionInheritEnabledTestCase, self).config_overrides()"},{"line_number":994,"context_line":"        port \u003d random.randint(10000, 30000)"},{"line_number":995,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027, public_port\u003dport,"},{"line_number":996,"context_line":"                                   admin_port\u003dport)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_e54f81bc","line":993,"in_reply_to":"3a50d1a3_452c354a","updated":"2015-07-26 12:10:48.000000000","message":"Done","commit_id":"578aebe089adf1cc8a3cd1bf767a60675f998148"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"6dd08d082fe30c79fce8f8ac7537362b85f78dfa","unresolved":false,"context_lines":[{"line_number":646,"context_line":"    def config_overrides(self):"},{"line_number":647,"context_line":"        super(VersionTestCase, self).config_overrides()"},{"line_number":648,"context_line":"        admin_port \u003d random.randint(10000, 30000)"},{"line_number":649,"context_line":"        public_port \u003d random.randint(40000, 60000)"},{"line_number":650,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027,"},{"line_number":651,"context_line":"                                   public_port\u003dpublic_port,"},{"line_number":652,"context_line":"                                   admin_port\u003dadmin_port)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_734e9f70","line":649,"updated":"2015-07-27 21:41:15.000000000","message":"this actually had a chance to be transient failure before... and now that chance has been doubled.\n\ninstead, let the OS allocate ephemeral ports:\n\n  import socket\n  s \u003d socket.socket()\n  admin_port \u003d s.bind((\u0027\u0027, 0))[1]\n  public_port \u003d s.bind((\u0027\u0027, 0))[1]","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"8f6d4a6bf1592c757ae9d50e7eda84b439394ba1","unresolved":false,"context_lines":[{"line_number":646,"context_line":"    def config_overrides(self):"},{"line_number":647,"context_line":"        super(VersionTestCase, self).config_overrides()"},{"line_number":648,"context_line":"        admin_port \u003d random.randint(10000, 30000)"},{"line_number":649,"context_line":"        public_port \u003d random.randint(40000, 60000)"},{"line_number":650,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027,"},{"line_number":651,"context_line":"                                   public_port\u003dpublic_port,"},{"line_number":652,"context_line":"                                   admin_port\u003dadmin_port)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_73d45f1f","line":649,"in_reply_to":"3a50d1a3_33c7b799","updated":"2015-07-27 21:51:25.000000000","message":"or does none of this matter because i can\u0027t find where it\u0027s actually starting a server?!","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"20c5b489a4321d6d699026c415bb202239031c0f","unresolved":false,"context_lines":[{"line_number":646,"context_line":"    def config_overrides(self):"},{"line_number":647,"context_line":"        super(VersionTestCase, self).config_overrides()"},{"line_number":648,"context_line":"        admin_port \u003d random.randint(10000, 30000)"},{"line_number":649,"context_line":"        public_port \u003d random.randint(40000, 60000)"},{"line_number":650,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027,"},{"line_number":651,"context_line":"                                   public_port\u003dpublic_port,"},{"line_number":652,"context_line":"                                   admin_port\u003dadmin_port)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_33c7b799","line":649,"in_reply_to":"3a50d1a3_734e9f70","updated":"2015-07-27 21:46:29.000000000","message":"i just realized the above code won\u0027t run for two reasons: it\u0027s trying to bind a single socket twice, and it\u0027s also trying to pass a bound socket to be used in config...\n\nso, maybe i\u0027m overthinking this.\n\ninstead, can you just pass public_port\u003d0 and admin_port\u003d0 below?","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"32650368c436cf25c2c0f8ace76696e3fe3fedd1","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"    @utils.wip(\u0027waiting on bug #1381961\u0027)"},{"line_number":757,"context_line":"    def test_admin_version_v3(self):"},{"line_number":758,"context_line":"        client \u003d tests.TestClient(self.public_app)"},{"line_number":759,"context_line":"        resp \u003d client.get(\u0027/v3/\u0027)"},{"line_number":760,"context_line":"        self.assertEqual(200, resp.status_int)"},{"line_number":761,"context_line":"        data \u003d jsonutils.loads(resp.body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_e6178852","line":758,"updated":"2015-07-26 15:07:32.000000000","message":"shouldn\u0027t this be admin_app?","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"},{"author":{"_account_id":12215,"name":"Alexey Miroshkin","email":"alexey.miroshkin@ru.ibm.com","username":"amirosh"},"change_message_id":"c861b69ffae305e97721015ddc6a1bdb982c7db6","unresolved":false,"context_lines":[{"line_number":755,"context_line":""},{"line_number":756,"context_line":"    @utils.wip(\u0027waiting on bug #1381961\u0027)"},{"line_number":757,"context_line":"    def test_admin_version_v3(self):"},{"line_number":758,"context_line":"        client \u003d tests.TestClient(self.public_app)"},{"line_number":759,"context_line":"        resp \u003d client.get(\u0027/v3/\u0027)"},{"line_number":760,"context_line":"        self.assertEqual(200, resp.status_int)"},{"line_number":761,"context_line":"        data \u003d jsonutils.loads(resp.body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_de024109","line":758,"in_reply_to":"3a50d1a3_e6178852","updated":"2015-07-27 09:28:19.000000000","message":"I wrote a similar test like test_admin_version_v3_eventlet, because in case of eventlets there is only v3 public app. Then I found this test, checked that this line was changed this March by David and decided that it reflects the eventlets setup. Now I\u0027ve checked David\u0027s patch and found it was just refactoring. So I checked when this behavior was introduced and it was always there https://review.openstack.org/#/c/23642/5/tests/test_versions.py \nI\u0027m going to open a separate bug for this and introduce my test as part of #1381961","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"06154617978a40cd7f9ac65ccaac6dd2b7f3a52c","unresolved":false,"context_lines":[{"line_number":994,"context_line":""},{"line_number":995,"context_line":"    def config_overrides(self):"},{"line_number":996,"context_line":"        super(VersionInheritEnabledTestCase, self).config_overrides()"},{"line_number":997,"context_line":"        admin_port \u003d random.randint(10000, 30000)"},{"line_number":998,"context_line":"        public_port \u003d random.randint(40000, 60000)"},{"line_number":999,"context_line":"        self.config_fixture.config(group\u003d\u0027eventlet_server\u0027,"},{"line_number":1000,"context_line":"                                   public_port\u003dpublic_port,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_a14fb169","line":997,"updated":"2015-07-29 02:30:34.000000000","message":"why is this copy-pasted all over?","commit_id":"37b81c95ed5b02ca98001430f26d457d1077693a"}]}
