)]}'
{"nova/api/ec2/ec2utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                py_re +\u003d \u0027\\\\\\\\\u0027 + next_char"},{"line_number":463,"context_line":"        else:"},{"line_number":464,"context_line":"            py_re +\u003d re.escape(char)"},{"line_number":465,"context_line":"    return r\u0027\\A%s\\Z(?s)\u0027 % py_re"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_41cac8a0","line":465,"range":{"start_line":465,"start_character":19,"end_line":465,"end_character":23},"updated":"2019-06-14 19:41:22.000000000","message":"this should be moved to the front (see https://review.opendev.org/#/c/665065/)","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                py_re +\u003d \u0027\\\\\\\\\u0027 + next_char"},{"line_number":463,"context_line":"        else:"},{"line_number":464,"context_line":"            py_re +\u003d re.escape(char)"},{"line_number":465,"context_line":"    return r\u0027\\A%s\\Z(?s)\u0027 % py_re"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_fff6dad8","line":465,"range":{"start_line":465,"start_character":19,"end_line":465,"end_character":23},"in_reply_to":"9fb8cfa7_41cac8a0","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/api/openstack/__init__.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        # NOTE(sdague): project_id parameter is only valid if its hex"},{"line_number":167,"context_line":"        # or hex + dashes (note, integers are a subset of this). This"},{"line_number":168,"context_line":"        # is required to hand our overlaping routes issues."},{"line_number":169,"context_line":"        project_id_regex \u003d r\u0027[0-9a-f\\-]+\u0027"},{"line_number":170,"context_line":"        if CONF.osapi_v21.project_id_regex:"},{"line_number":171,"context_line":"            project_id_regex \u003d CONF.osapi_v21.project_id_regex"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_61f4acf1","line":169,"range":{"start_line":169,"start_character":36,"end_line":169,"end_character":37},"updated":"2019-06-14 19:41:22.000000000","message":"redundant (not needed when - is the last char in a bracketed class)","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        # NOTE(sdague): project_id parameter is only valid if its hex"},{"line_number":167,"context_line":"        # or hex + dashes (note, integers are a subset of this). This"},{"line_number":168,"context_line":"        # is required to hand our overlaping routes issues."},{"line_number":169,"context_line":"        project_id_regex \u003d r\u0027[0-9a-f\\-]+\u0027"},{"line_number":170,"context_line":"        if CONF.osapi_v21.project_id_regex:"},{"line_number":171,"context_line":"            project_id_regex \u003d CONF.osapi_v21.project_id_regex"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_9f31dea5","line":169,"range":{"start_line":169,"start_character":36,"end_line":169,"end_character":37},"in_reply_to":"9fb8cfa7_61f4acf1","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/api/openstack/compute/schemas/servers.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        \u0027build_near_host_ip\u0027: parameter_types.ip_address,"},{"line_number":137,"context_line":"        \u0027cidr\u0027: {"},{"line_number":138,"context_line":"            \u0027type\u0027: \u0027string\u0027,"},{"line_number":139,"context_line":"            \u0027pattern\u0027: r\u0027^\\/[0-9a-f.:]+$\u0027"},{"line_number":140,"context_line":"        },"},{"line_number":141,"context_line":"    },"},{"line_number":142,"context_line":"    # NOTE: As this Mail:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_e18adc61","line":139,"range":{"start_line":139,"start_character":26,"end_line":139,"end_character":27},"updated":"2019-06-14 19:41:22.000000000","message":"redundant (/ isn\u0027t a special character in python re)","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        \u0027build_near_host_ip\u0027: parameter_types.ip_address,"},{"line_number":137,"context_line":"        \u0027cidr\u0027: {"},{"line_number":138,"context_line":"            \u0027type\u0027: \u0027string\u0027,"},{"line_number":139,"context_line":"            \u0027pattern\u0027: r\u0027^\\/[0-9a-f.:]+$\u0027"},{"line_number":140,"context_line":"        },"},{"line_number":141,"context_line":"    },"},{"line_number":142,"context_line":"    # NOTE: As this Mail:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_ff1fba06","line":139,"range":{"start_line":139,"start_character":26,"end_line":139,"end_character":27},"in_reply_to":"9fb8cfa7_e18adc61","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/conf/hyperv.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":166,"context_line":"* Name of the qemu-img executable, in case it is in the same"},{"line_number":167,"context_line":"  directory as the nova-compute service or its path is in the"},{"line_number":168,"context_line":"  PATH environment variable (Default)."},{"line_number":169,"context_line":"* Path of qemu-img command (DRIVELETTER:\\\\PATH\\\\TO\\\\QEMU-IMG\\\\COMMAND)."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Related options:"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_415888f8","line":169,"updated":"2019-06-14 19:41:22.000000000","message":"or r\"\"\" on L152 (loathe lts)","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"* Name of the qemu-img executable, in case it is in the same"},{"line_number":167,"context_line":"  directory as the nova-compute service or its path is in the"},{"line_number":168,"context_line":"  PATH environment variable (Default)."},{"line_number":169,"context_line":"* Path of qemu-img command (DRIVELETTER:\\\\PATH\\\\TO\\\\QEMU-IMG\\\\COMMAND)."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Related options:"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_df1676f2","line":169,"in_reply_to":"9fb8cfa7_415888f8","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/conf/serial_console.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Possible values:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Each string which passes the regex ``^\\\\d+:\\\\d+$`` For example"},{"line_number":49,"context_line":"  ``10000:20000``. Be sure that the first port number is lower than the second"},{"line_number":50,"context_line":"  port number and that both are in range from 0 to 65535."},{"line_number":51,"context_line":"\"\"\"),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_01761071","line":48,"updated":"2019-06-14 19:41:22.000000000","message":"r\"\"\" on L39","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Possible values:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Each string which passes the regex ``^\\\\d+:\\\\d+$`` For example"},{"line_number":49,"context_line":"  ``10000:20000``. Be sure that the first port number is lower than the second"},{"line_number":50,"context_line":"  port number and that both are in range from 0 to 65535."},{"line_number":51,"context_line":"\"\"\"),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_9fd6be27","line":48,"in_reply_to":"9fb8cfa7_01761071","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/hacking/checks.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":47,"context_line":"virt_config_re \u003d re.compile("},{"line_number":48,"context_line":"    r\"CONF\\.import_opt\\(\u0027.*?\u0027, \u0027nova\\.virt\\.(\\w+)(\u0027|.)\")"},{"line_number":49,"context_line":"asse_trueinst_re \u003d re.compile("},{"line_number":50,"context_line":"                     r\"(.)*assertTrue\\(isinstance\\((\\w|\\.|\\\u0027|\\\"|\\[|\\])+, \""},{"line_number":51,"context_line":"                     r\"(\\w|\\.|\\\u0027|\\\"|\\[|\\])+\\)\\)\")"},{"line_number":52,"context_line":"asse_equal_type_re \u003d re.compile("},{"line_number":53,"context_line":"                       r\"(.)*assertEqual\\(type\\((\\w|\\.|\\\u0027|\\\"|\\[|\\])+\\), \""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_81d5201e","line":50,"range":{"start_line":50,"start_character":52,"end_line":50,"end_character":69},"updated":"2019-06-14 19:41:22.000000000","message":"ew\n\n r\"\"\"  ...   [][\\w\\.\u0027\"]  ... \"\"\"\n\nor if you just can\u0027t stand the square bracket confusion\n\n [\\[\\]\\w\\.\u0027\"]\n\nLikewise below","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2266bdb71aafc19c9e9f8338ef181cc03d5537a4","unresolved":false,"context_lines":[{"line_number":47,"context_line":"virt_config_re \u003d re.compile("},{"line_number":48,"context_line":"    r\"CONF\\.import_opt\\(\u0027.*?\u0027, \u0027nova\\.virt\\.(\\w+)(\u0027|.)\")"},{"line_number":49,"context_line":"asse_trueinst_re \u003d re.compile("},{"line_number":50,"context_line":"                     r\"(.)*assertTrue\\(isinstance\\((\\w|\\.|\\\u0027|\\\"|\\[|\\])+, \""},{"line_number":51,"context_line":"                     r\"(\\w|\\.|\\\u0027|\\\"|\\[|\\])+\\)\\)\")"},{"line_number":52,"context_line":"asse_equal_type_re \u003d re.compile("},{"line_number":53,"context_line":"                       r\"(.)*assertEqual\\(type\\((\\w|\\.|\\\u0027|\\\"|\\[|\\])+\\), \""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_e2e4fe3e","line":50,"range":{"start_line":50,"start_character":52,"end_line":50,"end_character":69},"in_reply_to":"9fb8cfa7_5fb926e7","updated":"2019-06-17 20:54:57.000000000","message":"I\u0027ll submit a fup. It\u0027s not wrong, it\u0027s just ugly (IMHO). There\u0027s a perfectly good regex syntax for \n\n a|b|c\n\nIt looks like \n\n [abc]\n\nThat\u0027s all I was getting at.","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"virt_config_re \u003d re.compile("},{"line_number":48,"context_line":"    r\"CONF\\.import_opt\\(\u0027.*?\u0027, \u0027nova\\.virt\\.(\\w+)(\u0027|.)\")"},{"line_number":49,"context_line":"asse_trueinst_re \u003d re.compile("},{"line_number":50,"context_line":"                     r\"(.)*assertTrue\\(isinstance\\((\\w|\\.|\\\u0027|\\\"|\\[|\\])+, \""},{"line_number":51,"context_line":"                     r\"(\\w|\\.|\\\u0027|\\\"|\\[|\\])+\\)\\)\")"},{"line_number":52,"context_line":"asse_equal_type_re \u003d re.compile("},{"line_number":53,"context_line":"                       r\"(.)*assertEqual\\(type\\((\\w|\\.|\\\u0027|\\\"|\\[|\\])+\\), \""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_5fb926e7","line":50,"range":{"start_line":50,"start_character":52,"end_line":50,"end_character":69},"in_reply_to":"9fb8cfa7_81d5201e","updated":"2019-06-17 16:05:29.000000000","message":"Any chance you could tackle this one? I\u0027m struggling to decode this","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/tests/functional/api_sample_tests/test_remote_consoles.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                                 \u0027get-vnc-console-post-req\u0027,"},{"line_number":35,"context_line":"                                {\u0027action\u0027: \u0027os-getVNCConsole\u0027})"},{"line_number":36,"context_line":"        subs \u003d {\"url\":"},{"line_number":37,"context_line":"            r\"((https?):((//)|(\\\\\\\\))+([\\w\\d:#@%/;$()~_?\\+-\u003d\\\\\\.\u0026](#!)?)*)\"}"},{"line_number":38,"context_line":"        self._verify_response(\u0027get-vnc-console-post-resp\u0027, subs, response, 200)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def test_get_spice_console(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_61b7ccf6","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":75},"updated":"2019-06-14 19:41:22.000000000","message":"these aren\u0027t right, need to undouble the backslashes.\n\n In [30]: \"((https?):((//)|(\\\\\\\\))+([\\w\\d:#@%/;$()~_?\\+-\u003d\\\\\\.\u0026](#!)?)*)\"\n     ...:     \n Out[30]: \u0027((https?):((//)|(\\\\\\\\))+([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\.\u0026](#!)?)*)\u0027\n \n In [31]: r\"((https?):((//)|(\\\\\\\\))+([\\w\\d:#@%/;$()~_?\\+-\u003d\\\\\\.\u0026](#!)?)*)\"\n     ...:     \n Out[31]: \u0027((https?):((//)|(\\\\\\\\\\\\\\\\))+([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\\\\\.\u0026](#!)?)*)\u0027","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                                 \u0027get-vnc-console-post-req\u0027,"},{"line_number":35,"context_line":"                                {\u0027action\u0027: \u0027os-getVNCConsole\u0027})"},{"line_number":36,"context_line":"        subs \u003d {\"url\":"},{"line_number":37,"context_line":"            r\"((https?):((//)|(\\\\\\\\))+([\\w\\d:#@%/;$()~_?\\+-\u003d\\\\\\.\u0026](#!)?)*)\"}"},{"line_number":38,"context_line":"        self._verify_response(\u0027get-vnc-console-post-resp\u0027, subs, response, 200)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def test_get_spice_console(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_ff5d7a48","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":75},"in_reply_to":"9fb8cfa7_61b7ccf6","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2266bdb71aafc19c9e9f8338ef181cc03d5537a4","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.tests.functional.api_sample_tests import test_servers"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"HTTP_RE \u003d \u0027(https?://)([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\.\u0026](#!)?)*\u0027"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ConsolesSampleJsonTests(test_servers.ServersSampleBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_c2d69a28","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":7},"updated":"2019-06-17 20:54:57.000000000","message":"I like the DRYing, but this isn\u0027t the same regex as before. If we\u0027re going to change it, it should be in a separate change that explains why that\u0027s okay.","commit_id":"8d59c7e2ef7dc3a87606a5242984b1291a7be211"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a67f54cfad41702df99065ea00d22f8451668761","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.tests.functional.api_sample_tests import test_servers"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"HTTP_RE \u003d \u0027(https?://)([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\.\u0026](#!)?)*\u0027"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ConsolesSampleJsonTests(test_servers.ServersSampleBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_ecbdc802","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":7},"in_reply_to":"9fb8cfa7_c2d69a28","updated":"2019-06-19 10:19:04.000000000","message":"Done","commit_id":"8d59c7e2ef7dc3a87606a5242984b1291a7be211"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb72a579672a124835e60f7e53ee1b3bae1abbbb","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                                 \u0027get-vnc-console-post-req\u0027,"},{"line_number":35,"context_line":"                                {\u0027action\u0027: \u0027os-getVNCConsole\u0027})"},{"line_number":36,"context_line":"        subs \u003d {\"url\":"},{"line_number":37,"context_line":"            \"((https?):((//)|(\\\\\\\\))+([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\.\u0026](#!)?)*)\"}"},{"line_number":38,"context_line":"        self._verify_response(\u0027get-vnc-console-post-resp\u0027, subs, response, 200)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def test_get_spice_console(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_8282cbff","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":78},"updated":"2019-06-18 20:57:45.000000000","message":"In [3]: \"((https?):((//)|(\\\\\\\\))+([\\w\\d:#@%/;$()~_?\\+-\u003d\\\\\\.\u0026](#!)?)*)\" \u003d\u003d \"((https?):((//)|(\\\\\\\\))+([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\.\u0026](#!)?)*)\"\n   ...:     \n Out[3]: True\n\nbut also\n\n r\"((https?):((//)|(\\\\))+([\\w\\d:#@%/;$()~_?\\+-\u003d\\\\.\u0026](#!)?)*)\"","commit_id":"8dc5fc9287c7af95c2e5acecf42e3da33c8f7e0b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a67f54cfad41702df99065ea00d22f8451668761","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                                 \u0027get-vnc-console-post-req\u0027,"},{"line_number":35,"context_line":"                                {\u0027action\u0027: \u0027os-getVNCConsole\u0027})"},{"line_number":36,"context_line":"        subs \u003d {\"url\":"},{"line_number":37,"context_line":"            \"((https?):((//)|(\\\\\\\\))+([\\\\w\\\\d:#@%/;$()~_?\\\\+-\u003d\\\\\\\\.\u0026](#!)?)*)\"}"},{"line_number":38,"context_line":"        self._verify_response(\u0027get-vnc-console-post-resp\u0027, subs, response, 200)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def test_get_spice_console(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_a97c8b20","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":78},"in_reply_to":"9fb8cfa7_8282cbff","updated":"2019-06-19 10:19:04.000000000","message":"Yeah, I kept it simple. We clean it up in the next patch so it\u0027s a non-issue, really","commit_id":"8dc5fc9287c7af95c2e5acecf42e3da33c8f7e0b"}],"nova/tests/unit/conf_fixture.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        # We should fix the tests to use real"},{"line_number":47,"context_line":"        # UUIDs then drop this work around."},{"line_number":48,"context_line":"        self.conf.set_default(\u0027project_id_regex\u0027,"},{"line_number":49,"context_line":"                              r\u0027[0-9a-fk\\-]+\u0027, \u0027osapi_v21\u0027)"},{"line_number":50,"context_line":"        self.conf.set_default(\u0027use_ipv6\u0027, True)"},{"line_number":51,"context_line":"        self.conf.set_default(\u0027vlan_interface\u0027, \u0027eth0\u0027)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_818c4036","line":49,"range":{"start_line":49,"start_character":40,"end_line":49,"end_character":41},"updated":"2019-06-14 19:41:22.000000000","message":"redundant","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        # We should fix the tests to use real"},{"line_number":47,"context_line":"        # UUIDs then drop this work around."},{"line_number":48,"context_line":"        self.conf.set_default(\u0027project_id_regex\u0027,"},{"line_number":49,"context_line":"                              r\u0027[0-9a-fk\\-]+\u0027, \u0027osapi_v21\u0027)"},{"line_number":50,"context_line":"        self.conf.set_default(\u0027use_ipv6\u0027, True)"},{"line_number":51,"context_line":"        self.conf.set_default(\u0027vlan_interface\u0027, \u0027eth0\u0027)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_3f823202","line":49,"range":{"start_line":49,"start_character":40,"end_line":49,"end_character":41},"in_reply_to":"9fb8cfa7_818c4036","updated":"2019-06-17 16:05:29.000000000","message":"Done","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c0ae24bd7282fa81048264446305722e39a833","unresolved":false,"context_lines":[{"line_number":15765,"context_line":"            self.assertRaisesRegex("},{"line_number":15766,"context_line":"                exception.InvalidNetworkNUMAAffinity,"},{"line_number":15767,"context_line":"                \"Invalid NUMA network affinity configured: the physnet \u0027bar\u0027 \""},{"line_number":15768,"context_line":"                r\"was listed in \u0027\\[neutron\\] physnets\u0027 but no corresponding \""},{"line_number":15769,"context_line":"                r\"\u0027\\[neutron_physnet_bar\\] numa_nodes\u0027 option was defined.\","},{"line_number":15770,"context_line":"                drvr._get_host_numa_topology)"},{"line_number":15771,"context_line":""},{"line_number":15772,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_619a6c62","line":15769,"range":{"start_line":15768,"start_character":15,"end_line":15769,"end_character":43},"updated":"2019-06-14 19:41:22.000000000","message":"these backslashes shouldn\u0027t be in this message","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b901e0c1bae6719226db78b218d66d4c9bce5de6","unresolved":false,"context_lines":[{"line_number":15765,"context_line":"            self.assertRaisesRegex("},{"line_number":15766,"context_line":"                exception.InvalidNetworkNUMAAffinity,"},{"line_number":15767,"context_line":"                \"Invalid NUMA network affinity configured: the physnet \u0027bar\u0027 \""},{"line_number":15768,"context_line":"                r\"was listed in \u0027\\[neutron\\] physnets\u0027 but no corresponding \""},{"line_number":15769,"context_line":"                r\"\u0027\\[neutron_physnet_bar\\] numa_nodes\u0027 option was defined.\","},{"line_number":15770,"context_line":"                drvr._get_host_numa_topology)"},{"line_number":15771,"context_line":""},{"line_number":15772,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_bfaaa26e","line":15769,"range":{"start_line":15768,"start_character":15,"end_line":15769,"end_character":43},"in_reply_to":"9fb8cfa7_619a6c62","updated":"2019-06-17 16:05:29.000000000","message":"No idea how they got there. Maybe I was escaping single quotes at some point","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a67f54cfad41702df99065ea00d22f8451668761","unresolved":false,"context_lines":[{"line_number":15765,"context_line":"            self.assertRaisesRegex("},{"line_number":15766,"context_line":"                exception.InvalidNetworkNUMAAffinity,"},{"line_number":15767,"context_line":"                \"Invalid NUMA network affinity configured: the physnet \u0027bar\u0027 \""},{"line_number":15768,"context_line":"                r\"was listed in \u0027\\[neutron\\] physnets\u0027 but no corresponding \""},{"line_number":15769,"context_line":"                r\"\u0027\\[neutron_physnet_bar\\] numa_nodes\u0027 option was defined.\","},{"line_number":15770,"context_line":"                drvr._get_host_numa_topology)"},{"line_number":15771,"context_line":""},{"line_number":15772,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fb8cfa7_4caad4d2","line":15769,"range":{"start_line":15768,"start_character":15,"end_line":15769,"end_character":43},"in_reply_to":"9fb8cfa7_bfaaa26e","updated":"2019-06-19 10:19:04.000000000","message":"Wait, this is a regex string. They\u0027re needed to escape things.","commit_id":"dad606de2990780fc43a640268666dbfb4b334c0"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb72a579672a124835e60f7e53ee1b3bae1abbbb","unresolved":false,"context_lines":[{"line_number":15765,"context_line":"            self.assertRaisesRegex("},{"line_number":15766,"context_line":"                exception.InvalidNetworkNUMAAffinity,"},{"line_number":15767,"context_line":"                \"Invalid NUMA network affinity configured: the physnet \u0027bar\u0027 \""},{"line_number":15768,"context_line":"                \"was listed in \u0027\\\\[neutron\\\\] physnets\u0027 but no corresponding \""},{"line_number":15769,"context_line":"                \"\u0027\\\\[neutron_physnet_bar\\\\] numa_nodes\u0027 option was defined.\","},{"line_number":15770,"context_line":"                drvr._get_host_numa_topology)"},{"line_number":15771,"context_line":""},{"line_number":15772,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":15773,"context_line":"    def _test_get_host_numa_topology_invalid_network_affinity(self,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_229aff6d","line":15770,"range":{"start_line":15768,"start_character":0,"end_line":15770,"end_character":1},"updated":"2019-06-18 20:57:45.000000000","message":"why not r\"\" this guy? (also, I thought you decided these backslashes were bogus in the first place)","commit_id":"8dc5fc9287c7af95c2e5acecf42e3da33c8f7e0b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a67f54cfad41702df99065ea00d22f8451668761","unresolved":false,"context_lines":[{"line_number":15765,"context_line":"            self.assertRaisesRegex("},{"line_number":15766,"context_line":"                exception.InvalidNetworkNUMAAffinity,"},{"line_number":15767,"context_line":"                \"Invalid NUMA network affinity configured: the physnet \u0027bar\u0027 \""},{"line_number":15768,"context_line":"                \"was listed in \u0027\\\\[neutron\\\\] physnets\u0027 but no corresponding \""},{"line_number":15769,"context_line":"                \"\u0027\\\\[neutron_physnet_bar\\\\] numa_nodes\u0027 option was defined.\","},{"line_number":15770,"context_line":"                drvr._get_host_numa_topology)"},{"line_number":15771,"context_line":""},{"line_number":15772,"context_line":"    @mock.patch.object(host.Host, \u0027has_min_version\u0027, return_value\u003dTrue)"},{"line_number":15773,"context_line":"    def _test_get_host_numa_topology_invalid_network_affinity(self,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fb8cfa7_c979bf2f","line":15770,"range":{"start_line":15768,"start_character":0,"end_line":15770,"end_character":1},"in_reply_to":"9fb8cfa7_229aff6d","updated":"2019-06-19 10:19:04.000000000","message":"They\u0027re not - this is a regex (assertRaisesRegex), which I missed first go round, so I need to escape them. Escaping the backslashes seemed cleaner in this case.","commit_id":"8dc5fc9287c7af95c2e5acecf42e3da33c8f7e0b"}]}
