)]}'
{"nova/console/websocketproxy.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"425f12c48ebb73c65bdfd5eb1fd526b2ee7eab13","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"},{"line_number":50,"context_line":"        parse \u003d urlparse.urlparse(access_url)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        return parse.scheme \u003d\u003d origin_proto"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def new_websocket_client(self):"},{"line_number":55,"context_line":"        \"\"\"Called after a new WebSocket connection has been established.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_101b0474","line":52,"updated":"2015-04-07 13:22:00.000000000","message":"You\u0027ll see it when you rebase, but you\u0027ll need to incorporate the fix from https://review.openstack.org/#/c/169384/.","commit_id":"c74825287df1c13fa84677dcfd7eaf321c9a1427"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3823a87a15e80b0d6955af95fe8e5624baece7d9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def verify_origin_proto(self, connection_info, origin_proto):"},{"line_number":45,"context_line":"        access_url \u003d connection_info.get(\u0027access_url\u0027)"},{"line_number":46,"context_line":"        if not access_url:"},{"line_number":47,"context_line":"            detail \u003d _(\"No access_url in connection_info. \""},{"line_number":48,"context_line":"                        \"Cannot validate protocol\")"},{"line_number":49,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"},{"line_number":50,"context_line":"        expected_protos \u003d [urlparse.urlparse(access_url).scheme]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_ecbcf207","line":47,"updated":"2015-04-09 09:39:14.000000000","message":"This means no consoles available during an upgrade from juno to kilo right?\n\nWe could leave the config based check for this case, but that doesn\u0027t seem great either.\n\nHmm...","commit_id":"1e109fbefc33157fee0c503e4b574a4bb5f9902a"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"a3a6fb14e349c705b4851360a928d33716be1ea2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def verify_origin_proto(self, connection_info, origin_proto):"},{"line_number":45,"context_line":"        access_url \u003d connection_info.get(\u0027access_url\u0027)"},{"line_number":46,"context_line":"        if not access_url:"},{"line_number":47,"context_line":"            detail \u003d _(\"No access_url in connection_info. \""},{"line_number":48,"context_line":"                        \"Cannot validate protocol\")"},{"line_number":49,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"},{"line_number":50,"context_line":"        expected_protos \u003d [urlparse.urlparse(access_url).scheme]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_223d43c4","line":47,"in_reply_to":"9aa53dc9_ecbcf207","updated":"2015-04-09 10:22:44.000000000","message":"As discussed on IRC - this only limits us to having to upgrade API\u0027s and consoles in a lockstep. Adding that to the commit message as an Upgrade-impact flag","commit_id":"1e109fbefc33157fee0c503e4b574a4bb5f9902a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"3c8d31478d0ff39f99295fc0dd2c36755be5df13","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            if expected_origin_hostname !\u003d origin_hostname:"},{"line_number":114,"context_line":"                detail \u003d _(\"Origin header does not match this host.\")"},{"line_number":115,"context_line":"                raise exception.ValidationError(detail\u003ddetail)"},{"line_number":116,"context_line":"            if not self.verify_origin_proto(connect_info, origin_scheme):"},{"line_number":117,"context_line":"                detail \u003d _(\"Origin header protocol does not match this host.\")"},{"line_number":118,"context_line":"                raise exception.ValidationError(detail\u003ddetail)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_8a7c7873","line":116,"updated":"2015-04-07 16:19:31.000000000","message":"This should probably just pass in connect_info.get(\u0027access_url\u0027).","commit_id":"1e109fbefc33157fee0c503e4b574a4bb5f9902a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3823a87a15e80b0d6955af95fe8e5624baece7d9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            if expected_origin_hostname !\u003d origin_hostname:"},{"line_number":114,"context_line":"                detail \u003d _(\"Origin header does not match this host.\")"},{"line_number":115,"context_line":"                raise exception.ValidationError(detail\u003ddetail)"},{"line_number":116,"context_line":"            if not self.verify_origin_proto(connect_info, origin_scheme):"},{"line_number":117,"context_line":"                detail \u003d _(\"Origin header protocol does not match this host.\")"},{"line_number":118,"context_line":"                raise exception.ValidationError(detail\u003ddetail)"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_ec53d2e0","line":116,"in_reply_to":"9aa53dc9_8a7c7873","updated":"2015-04-09 09:39:14.000000000","message":"+1","commit_id":"1e109fbefc33157fee0c503e4b574a4bb5f9902a"}],"nova/tests/unit/console/test_websocketproxy.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c65bc7c831740e21863fb323fe80b25b26e5bea4","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        check_token.assert_called_with(mock.ANY, token\u003d\"123-456-789\")"},{"line_number":166,"context_line":"        self.wh.socket.assert_called_with(\u0027node1\u0027, 10000, connect\u003dTrue)"},{"line_number":167,"context_line":"        self.wh.do_proxy.assert_called_with(\u0027\u003csocket\u003e\u0027)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @mock.patch(\u0027nova.consoleauth.rpcapi.ConsoleAuthAPI.check_token\u0027)"},{"line_number":170,"context_line":"    def test_new_websocket_client_novnc_token_invalid(self, check_token):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_afc97c7a","side":"PARENT","line":167,"updated":"2015-04-07 23:29:07.000000000","message":"Shouldn\u0027t we keep a positive test for the serial console, for example one that should pass when ws matches http or wss matches https?","commit_id":"2ffcf18d00eff6fb0777769469c4aa5ac7bbb6c9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c65bc7c831740e21863fb323fe80b25b26e5bea4","unresolved":false,"context_lines":[{"line_number":286,"context_line":"                          self.wh.new_websocket_client)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @mock.patch(\u0027nova.consoleauth.rpcapi.ConsoleAuthAPI.check_token\u0027)"},{"line_number":289,"context_line":"    def test_new_websocket_client_novnc_https_origin_proto_ws(self,"},{"line_number":290,"context_line":"                                                              check_token):"},{"line_number":291,"context_line":"        check_token.return_value \u003d {"},{"line_number":292,"context_line":"            \u0027host\u0027: \u0027node1\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_afa05ca0","line":289,"updated":"2015-04-07 23:29:07.000000000","message":"Not this patch\u0027s doing, but this test has a wrong name \"novnc\"","commit_id":"1e109fbefc33157fee0c503e4b574a4bb5f9902a"}]}
