)]}'
{"nova/api/openstack/compute/console_auth_tokens.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f20c099643714f0a34658688699bc350fccfe04","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            \u0027host\u0027: connect_info.host,"},{"line_number":68,"context_line":"            \u0027port\u0027: connect_info.port,"},{"line_number":69,"context_line":"            \u0027internal_access_path\u0027: connect_info.internal_access_path,"},{"line_number":70,"context_line":"        }}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @wsgi.Controller.api_version(\"2.1\", \"2.30\")"},{"line_number":73,"context_line":"    @wsgi.expected_errors((400, 401, 404))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_f720f14b","line":70,"updated":"2019-07-26 17:36:45.000000000","message":"Note to self: removed the iterating stuff and include each field separately, looks OK.","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"}],"nova/console/websocketproxy.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2e4d4ee2f1a5f9b820c2434139acd6366d4dadcf","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        return str(self.client_address[0])"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def verify_origin_proto(self, connect_info, origin_proto):"},{"line_number":99,"context_line":"        if \u0027access_url_base\u0027 not in connect_info:"},{"line_number":100,"context_line":"            detail \u003d _(\"No access_url_base in connect_info. \""},{"line_number":101,"context_line":"                       \"Cannot validate protocol\")"},{"line_number":102,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_dcef63e7","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"updated":"2019-09-06 16:03:15.000000000","message":"why is this s/access_url/access_url_base/?","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ab703e0bb56f37d26c8c273f09add4a6e56a96b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        return str(self.client_address[0])"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def verify_origin_proto(self, connect_info, origin_proto):"},{"line_number":99,"context_line":"        if \u0027access_url_base\u0027 not in connect_info:"},{"line_number":100,"context_line":"            detail \u003d _(\"No access_url_base in connect_info. \""},{"line_number":101,"context_line":"                       \"Cannot validate protocol\")"},{"line_number":102,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_1cf97b7f","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"in_reply_to":"5faad753_dcef63e7","updated":"2019-09-06 16:10:58.000000000","message":"\u0027access_url_base\u0027 is the object field. \u0027access_url\u0027 is a property that \"[adds] the unhashed token as a parameter in a query string [to make] it specific to this authorization.\" We don\u0027t need those modifications and calling the \u0027access_url\u0027 property when the \u0027access_url_base\u0027 field is unset will be an error since that doesn\u0027t do this check.\n\nThe way this worked before, it was doing the exact same thing [1]\n\n[1] https://review.opendev.org/#/c/652970/11/nova/objects/console_auth_token.py@a94","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"643ec77dbc98a04368af7c09914ef9eea4ca4522","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        return str(self.client_address[0])"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def verify_origin_proto(self, connect_info, origin_proto):"},{"line_number":99,"context_line":"        if \u0027access_url_base\u0027 not in connect_info:"},{"line_number":100,"context_line":"            detail \u003d _(\"No access_url_base in connect_info. \""},{"line_number":101,"context_line":"                       \"Cannot validate protocol\")"},{"line_number":102,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_dcf2039b","line":99,"range":{"start_line":99,"start_character":12,"end_line":99,"end_character":27},"in_reply_to":"5faad753_dcef63e7","updated":"2019-09-06 16:09:38.000000000","message":"actually this one makes sense...","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"643ec77dbc98a04368af7c09914ef9eea4ca4522","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        expected_protos \u003d ["},{"line_number":105,"context_line":"            urlparse.urlparse(connect_info.access_url_base).scheme]"},{"line_number":106,"context_line":"        # NOTE: For serial consoles the expected protocol could be ws or"},{"line_number":107,"context_line":"        # wss which correspond to http and https respectively in terms of"},{"line_number":108,"context_line":"        # security."}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_5c34d34a","line":105,"range":{"start_line":105,"start_character":43,"end_line":105,"end_character":58},"updated":"2019-09-06 16:09:38.000000000","message":"...but I think this one should be .access_url","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"340713ab6b7f2ab83de14d71c121330b12a5c9f9","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        expected_protos \u003d ["},{"line_number":105,"context_line":"            urlparse.urlparse(connect_info.access_url_base).scheme]"},{"line_number":106,"context_line":"        # NOTE: For serial consoles the expected protocol could be ws or"},{"line_number":107,"context_line":"        # wss which correspond to http and https respectively in terms of"},{"line_number":108,"context_line":"        # security."}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_9cc6cb16","line":105,"range":{"start_line":105,"start_character":43,"end_line":105,"end_character":58},"in_reply_to":"5faad753_3c24770d","updated":"2019-09-06 16:13:53.000000000","message":"ah, that makes sense, I wasn\u0027t paying attention to what we were doing with the result, just that it was different than before.","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ab703e0bb56f37d26c8c273f09add4a6e56a96b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            raise exception.ValidationError(detail\u003ddetail)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        expected_protos \u003d ["},{"line_number":105,"context_line":"            urlparse.urlparse(connect_info.access_url_base).scheme]"},{"line_number":106,"context_line":"        # NOTE: For serial consoles the expected protocol could be ws or"},{"line_number":107,"context_line":"        # wss which correspond to http and https respectively in terms of"},{"line_number":108,"context_line":"        # security."}],"source_content_type":"text/x-python","patch_set":11,"id":"5faad753_3c24770d","line":105,"range":{"start_line":105,"start_character":43,"end_line":105,"end_character":58},"in_reply_to":"5faad753_5c34d34a","updated":"2019-09-06 16:10:58.000000000","message":"It shouldn\u0027t matter. As noted above, \u0027access_url\u0027 adds a querystring. We can pull the scheme from either","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f20c099643714f0a34658688699bc350fccfe04","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        self.msg(_(\u0027connect info: %s\u0027), str(connect_info))"},{"line_number":220,"context_line":"        host \u003d connect_info.host"},{"line_number":221,"context_line":"        port \u003d connect_info.port"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        # Connect to the target"},{"line_number":224,"context_line":"        self.msg(_(\"connecting to: %(host)s:%(port)s\") % {\u0027host\u0027: host,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_37dc4945","line":221,"updated":"2019-07-26 17:36:45.000000000","message":"Note to self: removed int() cast from port, should be OK because ConsoleAuthToken.port is an IntegerField.","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"}],"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":"693b4892ebe139ab3d265fb42630d486c826089d","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            \u0027instance_uuid\u0027: uuids.instance,"},{"line_number":582,"context_line":"            \u0027host\u0027: \u0027node1\u0027,"},{"line_number":583,"context_line":"            \u0027port\u0027: \u002710000\u0027,"},{"line_number":584,"context_line":"            \u0027console_type\u0027: \u0027bad-console-type\u0027,"},{"line_number":585,"context_line":"        }"},{"line_number":586,"context_line":"        validate.return_value \u003d objects.ConsoleAuthToken(**params)"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_184c0075","line":584,"updated":"2019-07-24 19:38:05.000000000","message":"unrelated change","commit_id":"724c515c82f4fd8f6c46f9a86de17a0d11badfaf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"30376b2351165e05076f856856bb2a80f29e61f0","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            \u0027instance_uuid\u0027: uuids.instance,"},{"line_number":582,"context_line":"            \u0027host\u0027: \u0027node1\u0027,"},{"line_number":583,"context_line":"            \u0027port\u0027: \u002710000\u0027,"},{"line_number":584,"context_line":"            \u0027console_type\u0027: \u0027bad-console-type\u0027,"},{"line_number":585,"context_line":"        }"},{"line_number":586,"context_line":"        validate.return_value \u003d objects.ConsoleAuthToken(**params)"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_025ec211","line":584,"in_reply_to":"7faddb67_184c0075","updated":"2019-07-25 11:08:51.000000000","message":"Done","commit_id":"724c515c82f4fd8f6c46f9a86de17a0d11badfaf"}],"nova/vnc/xvp_proxy.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"693b4892ebe139ab3d265fb42630d486c826089d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                               [(\u0027content-type\u0027, \u0027text/html\u0027)])"},{"line_number":140,"context_line":"                return \"Not Authorized\""},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            return self.proxy_connection(req, connect_info, start_response)"},{"line_number":143,"context_line":"        except Exception as e:"},{"line_number":144,"context_line":"            LOG.info(\"Unexpected error: %s\", e)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_d86e68c8","line":142,"range":{"start_line":142,"start_character":46,"end_line":142,"end_character":58},"updated":"2019-07-24 19:38:05.000000000","message":"Note to self: proxy_connection calls handshake() with connect_info and this change is handling connect_info as an object.","commit_id":"724c515c82f4fd8f6c46f9a86de17a0d11badfaf"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f20c099643714f0a34658688699bc350fccfe04","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def handshake(self, req, connect_info, sockets):"},{"line_number":66,"context_line":"        \"\"\"Execute hypervisor-specific vnc auth handshaking (if needed).\"\"\""},{"line_number":67,"context_line":"        host \u003d connect_info.host"},{"line_number":68,"context_line":"        port \u003d connect_info.port"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        server \u003d eventlet.connect((host, port))"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_57df8539","line":68,"updated":"2019-07-26 17:36:45.000000000","message":"Same as earlier comment.","commit_id":"0c7262cce408d2bc36ecd6962f3a3e6b18e8724f"}]}
