)]}'
{"neutron_tempest_plugin/config.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"72598226495bd4e29945dcadfc04b23b70989633","unresolved":false,"context_lines":[{"line_number":119,"context_line":"               help\u003d\u0027Name of ssh user to use with advanced image in tests. \u0027"},{"line_number":120,"context_line":"                    \u0027This is required if advanced image has to be used in \u0027"},{"line_number":121,"context_line":"                    \u0027tests.\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027advanced_image_ipv6_metadata_interface\u0027,"},{"line_number":123,"context_line":"               default\u003d\u0027ens2\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027The network interface in the guest OS over which \u0027"},{"line_number":125,"context_line":"                    \u0027the link-local IPv6 metadata service is available.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_3d0993dc","line":122,"range":{"start_line":122,"start_character":16,"end_line":122,"end_character":54},"updated":"2020-09-08 18:22:35.000000000","message":"maybe just \u0027advanced_image_interface\u0027 ?  It\u0027s just the default network interface and not specific to metadata it seems?","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"4be3a6a977d0de7e4360eeb6ba75aa0874fe798b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"               help\u003d\u0027Name of ssh user to use with advanced image in tests. \u0027"},{"line_number":120,"context_line":"                    \u0027This is required if advanced image has to be used in \u0027"},{"line_number":121,"context_line":"                    \u0027tests.\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027advanced_image_ipv6_metadata_interface\u0027,"},{"line_number":123,"context_line":"               default\u003d\u0027ens2\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027The network interface in the guest OS over which \u0027"},{"line_number":125,"context_line":"                    \u0027the link-local IPv6 metadata service is available.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_11e113d1","line":122,"range":{"start_line":122,"start_character":16,"end_line":122,"end_character":54},"in_reply_to":"9f560f44_3d0993dc","updated":"2020-09-09 07:12:09.000000000","message":"+1","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"6f8e8fbd0ef5bb579cc84a6d9aa8586e56922538","unresolved":false,"context_lines":[{"line_number":119,"context_line":"               help\u003d\u0027Name of ssh user to use with advanced image in tests. \u0027"},{"line_number":120,"context_line":"                    \u0027This is required if advanced image has to be used in \u0027"},{"line_number":121,"context_line":"                    \u0027tests.\u0027),"},{"line_number":122,"context_line":"    cfg.StrOpt(\u0027advanced_image_ipv6_metadata_interface\u0027,"},{"line_number":123,"context_line":"               default\u003d\u0027ens2\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027The network interface in the guest OS over which \u0027"},{"line_number":125,"context_line":"                    \u0027the link-local IPv6 metadata service is available.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_5803ab10","line":122,"range":{"start_line":122,"start_character":16,"end_line":122,"end_character":54},"in_reply_to":"9f560f44_3d0993dc","updated":"2020-09-09 09:40:55.000000000","message":"Done","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bcbcfa3d8de7988453743f4ebd9623d09eb84a8b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    # does not have an API extension, but at the time of first implementation"},{"line_number":125,"context_line":"    # it works only on victoria+ deployments with dhcp- and/or l3-agents"},{"line_number":126,"context_line":"    # (which in the gate is the same as non-ovn jobs)."},{"line_number":127,"context_line":"    cfg.BoolOpt(\u0027ipv6_metadata\u0027,"},{"line_number":128,"context_line":"                default\u003dTrue,"},{"line_number":129,"context_line":"                help\u003d\u0027Enable metadata over IPv6 tests where the feature is \u0027"},{"line_number":130,"context_line":"                     \u0027implemented, disable where it is not. Use this instead \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_d9d73dee","line":127,"range":{"start_line":127,"start_character":17,"end_line":127,"end_character":29},"updated":"2020-09-16 13:06:34.000000000","message":"yeah, this can be a workaround for branchless tempest","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d4d8f5d76d0cc5c1880da0d8a45b69b7b188d481","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                default\u003dTrue,"},{"line_number":129,"context_line":"                help\u003d\u0027Enable metadata over IPv6 tests where the feature is \u0027"},{"line_number":130,"context_line":"                     \u0027implemented, disable where it is not. Use this instead \u0027"},{"line_number":131,"context_line":"                     \u0027of network-featurer-enabled.api_extensions, since API \u0027"},{"line_number":132,"context_line":"                     \u0027extensions do not make sense for a feature not \u0027"},{"line_number":133,"context_line":"                     \u0027exposed on the API.\u0027),"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_d91e1dba","line":131,"range":{"start_line":131,"start_character":33,"end_line":131,"end_character":41},"updated":"2020-09-16 13:17:19.000000000","message":"s/feature","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                default\u003dTrue,"},{"line_number":129,"context_line":"                help\u003d\u0027Enable metadata over IPv6 tests where the feature is \u0027"},{"line_number":130,"context_line":"                     \u0027implemented, disable where it is not. Use this instead \u0027"},{"line_number":131,"context_line":"                     \u0027of network-featurer-enabled.api_extensions, since API \u0027"},{"line_number":132,"context_line":"                     \u0027extensions do not make sense for a feature not \u0027"},{"line_number":133,"context_line":"                     \u0027exposed on the API.\u0027),"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_6e79f7f9","line":131,"range":{"start_line":131,"start_character":33,"end_line":131,"end_character":41},"in_reply_to":"9f560f44_d91e1dba","updated":"2020-09-17 08:41:37.000000000","message":"Done","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"}],"neutron_tempest_plugin/scenario/test_metadata.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"4be3a6a977d0de7e4360eeb6ba75aa0874fe798b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        \u0027Advanced image is required to run this test.\u0027)"},{"line_number":103,"context_line":"    @decorators.idempotent_id(\u0027e680949a-f1cc-11ea-b49a-cba39bbbe5ad\u0027)"},{"line_number":104,"context_line":"    def test_metadata_routed(self):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        use_advanced_image \u003d ("},{"line_number":107,"context_line":"            not CONF.neutron_plugin_options.default_image_is_advanced)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_51e70be4","line":105,"updated":"2020-09-09 07:12:09.000000000","message":"nit: extra new line","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"6f8e8fbd0ef5bb579cc84a6d9aa8586e56922538","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        \u0027Advanced image is required to run this test.\u0027)"},{"line_number":103,"context_line":"    @decorators.idempotent_id(\u0027e680949a-f1cc-11ea-b49a-cba39bbbe5ad\u0027)"},{"line_number":104,"context_line":"    def test_metadata_routed(self):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        use_advanced_image \u003d ("},{"line_number":107,"context_line":"            not CONF.neutron_plugin_options.default_image_is_advanced)"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_bb09212c","line":105,"in_reply_to":"9f560f44_51e70be4","updated":"2020-09-09 09:40:55.000000000","message":"Done","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"72598226495bd4e29945dcadfc04b23b70989633","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self._assert_has_ssh_connectivity(vm.ssh_client)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        out \u003d vm.ssh_client.exec_command("},{"line_number":115,"context_line":"            \u0027curl http://[fe80::a9fe:a9fe%%25%s]/\u0027 %"},{"line_number":116,"context_line":"            CONF.neutron_plugin_options.advanced_image_ipv6_metadata_interface"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":"        self.assertIn(\u0027latest\u0027, out)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_7d5aebf1","line":115,"range":{"start_line":115,"start_character":26,"end_line":115,"end_character":41},"updated":"2020-09-08 18:22:35.000000000","message":"nit: use constant?  same below","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"6f8e8fbd0ef5bb579cc84a6d9aa8586e56922538","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        self._assert_has_ssh_connectivity(vm.ssh_client)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        out \u003d vm.ssh_client.exec_command("},{"line_number":115,"context_line":"            \u0027curl http://[fe80::a9fe:a9fe%%25%s]/\u0027 %"},{"line_number":116,"context_line":"            CONF.neutron_plugin_options.advanced_image_ipv6_metadata_interface"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":"        self.assertIn(\u0027latest\u0027, out)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_fbd8b97f","line":115,"range":{"start_line":115,"start_character":26,"end_line":115,"end_character":41},"in_reply_to":"9f560f44_7d5aebf1","updated":"2020-09-09 09:40:55.000000000","message":"Done","commit_id":"89586e81a0e16ba1807d9e85b5a3b6d8e140e4f0"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"a1c6108840cbfe27fc0d42aaf2087bfa010ab207","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def _assert_has_ssh_connectivity(self, ssh_client):"},{"line_number":106,"context_line":"        ssh_client.exec_command(\u0027true\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_primary_interface(self, ssh_client):"},{"line_number":109,"context_line":"        out \u003d ssh_client.exec_command("},{"line_number":110,"context_line":"            \"ip -o address | awk \u0027/ fe80:/ { print $2 }\u0027 | head -1\")"},{"line_number":111,"context_line":"        interface \u003d out.strip()"},{"line_number":112,"context_line":"        if not interface:"},{"line_number":113,"context_line":"            self.fail("},{"line_number":114,"context_line":"                \u0027Could not find a single interface \u0027"},{"line_number":115,"context_line":"                \u0027with an IPv6 link-local address.\u0027)"},{"line_number":116,"context_line":"        return interface"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @testtools.skipUnless("},{"line_number":119,"context_line":"        (CONF.neutron_plugin_options.advanced_image_ref or"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_2c2c6700","line":116,"range":{"start_line":108,"start_character":0,"end_line":116,"end_character":24},"updated":"2020-09-14 12:21:46.000000000","message":"After a few days, I think I found the reason why this test was failing in the gate while passing locally. I believe the name of the primary network interface is different in the two environments. Don\u0027t know the reason for this yet. But replaced the interface config option with this little discovery.","commit_id":"28a74fa3175cfc694a5ed3d16f9149fae0c6c934"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"c70c1d2bad57420cd04d6ecb477643534c2b3b76","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    def _assert_has_ssh_connectivity(self, ssh_client):"},{"line_number":106,"context_line":"        ssh_client.exec_command(\u0027true\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_primary_interface(self, ssh_client):"},{"line_number":109,"context_line":"        out \u003d ssh_client.exec_command("},{"line_number":110,"context_line":"            \"ip -o address | awk \u0027/ fe80:/ { print $2 }\u0027 | head -1\")"},{"line_number":111,"context_line":"        interface \u003d out.strip()"},{"line_number":112,"context_line":"        if not interface:"},{"line_number":113,"context_line":"            self.fail("},{"line_number":114,"context_line":"                \u0027Could not find a single interface \u0027"},{"line_number":115,"context_line":"                \u0027with an IPv6 link-local address.\u0027)"},{"line_number":116,"context_line":"        return interface"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    @testtools.skipUnless("},{"line_number":119,"context_line":"        (CONF.neutron_plugin_options.advanced_image_ref or"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_8b072f1e","line":116,"range":{"start_line":108,"start_character":0,"end_line":116,"end_character":24},"in_reply_to":"9f560f44_2c2c6700","updated":"2020-09-16 11:38:00.000000000","message":"For the curious:\n\nIn the gate the vm has this additional PCI device:\n\n00:02.0 VGA compatible controller: Cirrus Logic GD 5446\n\nSo I guess the difference must be that the gate\u0027s devstack config enabled vnc-proxy while my local config did not. That\u0027s why we had different PCI device lists and therefore different names for the primary interface in the gate and locally.","commit_id":"28a74fa3175cfc694a5ed3d16f9149fae0c6c934"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bcbcfa3d8de7988453743f4ebd9623d09eb84a8b","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    \"\"\"Test metadata access over IPv6 tenant subnet."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    Please note that there is metadata test coverage in tempest also:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    tempest.scenario.test_server_basic_ops\\"},{"line_number":41,"context_line":"        .TestServerBasicOps.test_server_basic_ops"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_590ccdeb","line":38,"range":{"start_line":38,"start_character":30,"end_line":38,"end_character":38},"updated":"2020-09-16 13:06:34.000000000","message":"nit: metadata over Ipv4","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    \"\"\"Test metadata access over IPv6 tenant subnet."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    Please note that there is metadata test coverage in tempest also:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    tempest.scenario.test_server_basic_ops\\"},{"line_number":41,"context_line":"        .TestServerBasicOps.test_server_basic_ops"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_8e5f2b74","line":38,"range":{"start_line":38,"start_character":30,"end_line":38,"end_character":38},"in_reply_to":"9f560f44_590ccdeb","updated":"2020-09-17 08:41:37.000000000","message":"Done","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bcbcfa3d8de7988453743f4ebd9623d09eb84a8b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":45,"context_line":"    force_tenant_isolation \u003d False"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_99c82557","line":45,"range":{"start_line":45,"start_character":4,"end_line":45,"end_character":34},"updated":"2020-09-16 13:06:34.000000000","message":"this is necessary to avoid predefined network with subnets, am I right?","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    \"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":45,"context_line":"    force_tenant_isolation \u003d False"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @classmethod"},{"line_number":48,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_4e051314","line":45,"range":{"start_line":45,"start_character":4,"end_line":45,"end_character":34},"in_reply_to":"9f560f44_99c82557","updated":"2020-09-17 08:41:37.000000000","message":"I don\u0027t think this is necessary, but when it\u0027s false we don\u0027t need admin rights.","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bcbcfa3d8de7988453743f4ebd9623d09eb84a8b","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def setUp(self):"},{"line_number":63,"context_line":"        super(MetadataTest, self).setUp()"},{"line_number":64,"context_line":"        self.security_group \u003d self.create_security_group(name\u003dself.rand_name)"},{"line_number":65,"context_line":"        self.create_loginable_secgroup_rule(self.security_group[\u0027id\u0027])"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _create_server_with_network(self, network, use_advanced_image\u003dFalse):"},{"line_number":68,"context_line":"        port \u003d self._create_server_port(network\u003dnetwork)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_19da551c","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":70},"updated":"2020-09-16 13:06:34.000000000","message":"why is this in setUp and not in resource_setup ?","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def setUp(self):"},{"line_number":63,"context_line":"        super(MetadataTest, self).setUp()"},{"line_number":64,"context_line":"        self.security_group \u003d self.create_security_group(name\u003dself.rand_name)"},{"line_number":65,"context_line":"        self.create_loginable_secgroup_rule(self.security_group[\u0027id\u0027])"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _create_server_with_network(self, network, use_advanced_image\u003dFalse):"},{"line_number":68,"context_line":"        port \u003d self._create_server_port(network\u003dnetwork)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_b9ccf7bb","line":65,"range":{"start_line":64,"start_character":8,"end_line":65,"end_character":70},"in_reply_to":"9f560f44_19da551c","updated":"2020-09-17 08:41:37.000000000","message":"Done","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d4d8f5d76d0cc5c1880da0d8a45b69b7b188d481","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        network \u003d network or self.network"},{"line_number":79,"context_line":"        return self.create_port(network\u003dnetwork, name\u003dself.rand_name,"},{"line_number":80,"context_line":"                                security_groups\u003d[self.security_group[\u0027id\u0027]],"},{"line_number":81,"context_line":"                                **params)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def _create_server(self, port, use_advanced_image\u003dFalse, **params):"},{"line_number":84,"context_line":"        if use_advanced_image:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_596a0ded","line":81,"updated":"2020-09-16 13:17:19.000000000","message":"This and two methods below are duplicated in the trunk tests, maybe a future change can consolidate them into a parent class.","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d4d8f5d76d0cc5c1880da0d8a45b69b7b188d481","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                                  image_ref\u003dimage_ref,"},{"line_number":92,"context_line":"                                  key_name\u003dself.keypair[\u0027name\u0027],"},{"line_number":93,"context_line":"                                  networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}],"},{"line_number":94,"context_line":"                                  **params)[\u0027server\u0027]"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _create_ssh_client(self, floating_ip, use_advanced_image\u003dFalse):"},{"line_number":97,"context_line":"        if use_advanced_image:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_59e7adad","line":94,"updated":"2020-09-16 13:17:19.000000000","message":"Should this be doing a wait_for_server_status() to make sure it\u0027s active?  Just found similar code at neutron_tempest_plugin/scenario/test_floatingip.py","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                                  image_ref\u003dimage_ref,"},{"line_number":92,"context_line":"                                  key_name\u003dself.keypair[\u0027name\u0027],"},{"line_number":93,"context_line":"                                  networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}],"},{"line_number":94,"context_line":"                                  **params)[\u0027server\u0027]"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _create_ssh_client(self, floating_ip, use_advanced_image\u003dFalse):"},{"line_number":97,"context_line":"        if use_advanced_image:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_1971a378","line":94,"in_reply_to":"9f560f44_59e7adad","updated":"2020-09-17 08:41:37.000000000","message":"We do that in line 131.","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d4d8f5d76d0cc5c1880da0d8a45b69b7b188d481","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_primary_interface(self, ssh_client):"},{"line_number":109,"context_line":"        out \u003d ssh_client.exec_command("},{"line_number":110,"context_line":"            \"ip -o address | awk \u0027/ fe80:/ { print $2 }\u0027 | head -1\")"},{"line_number":111,"context_line":"        interface \u003d out.strip()"},{"line_number":112,"context_line":"        if not interface:"},{"line_number":113,"context_line":"            self.fail("}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_59596d8c","line":110,"updated":"2020-09-16 13:17:19.000000000","message":"nit: don\u0027t know if this is better to skip the awk:\n\nip -6 -o address show scope link","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_primary_interface(self, ssh_client):"},{"line_number":109,"context_line":"        out \u003d ssh_client.exec_command("},{"line_number":110,"context_line":"            \"ip -o address | awk \u0027/ fe80:/ { print $2 }\u0027 | head -1\")"},{"line_number":111,"context_line":"        interface \u003d out.strip()"},{"line_number":112,"context_line":"        if not interface:"},{"line_number":113,"context_line":"            self.fail("}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_b999976e","line":110,"in_reply_to":"9f560f44_59596d8c","updated":"2020-09-17 08:41:37.000000000","message":"Good idea. I can\u0027t not parse the output. But your suggestion is correct unlike the original. Grepping for \"fe80:\" is equivalent to fe80::/16 while everything in fe80::/10 is actually link-local.","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bcbcfa3d8de7988453743f4ebd9623d09eb84a8b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        \u0027is required to run this test.\u0027)"},{"line_number":124,"context_line":"    @decorators.idempotent_id(\u0027e680949a-f1cc-11ea-b49a-cba39bbbe5ad\u0027)"},{"line_number":125,"context_line":"    def test_metadata_routed(self):"},{"line_number":126,"context_line":"        use_advanced_image \u003d ("},{"line_number":127,"context_line":"            not CONF.neutron_plugin_options.default_image_is_advanced)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        vm \u003d self._create_server_with_network("},{"line_number":130,"context_line":"            self.network, use_advanced_image\u003duse_advanced_image)"},{"line_number":131,"context_line":"        self.wait_for_server_active(server\u003dvm.server)"},{"line_number":132,"context_line":"        self._assert_has_ssh_connectivity(vm.ssh_client)"},{"line_number":133,"context_line":"        interface \u003d self._get_primary_interface(vm.ssh_client)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_f92cc102","line":130,"range":{"start_line":126,"start_character":8,"end_line":130,"end_character":64},"updated":"2020-09-16 13:06:34.000000000","message":"nit: the test is skipped if use_advance_image\u003dFalse, so why not just _create_server_with_network(.... , use_advanced_image\u003dTrue) ?","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fecca472d63176ca7c37771eff6f84348681b951","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        \u0027is required to run this test.\u0027)"},{"line_number":124,"context_line":"    @decorators.idempotent_id(\u0027e680949a-f1cc-11ea-b49a-cba39bbbe5ad\u0027)"},{"line_number":125,"context_line":"    def test_metadata_routed(self):"},{"line_number":126,"context_line":"        use_advanced_image \u003d ("},{"line_number":127,"context_line":"            not CONF.neutron_plugin_options.default_image_is_advanced)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        vm \u003d self._create_server_with_network("},{"line_number":130,"context_line":"            self.network, use_advanced_image\u003duse_advanced_image)"},{"line_number":131,"context_line":"        self.wait_for_server_active(server\u003dvm.server)"},{"line_number":132,"context_line":"        self._assert_has_ssh_connectivity(vm.ssh_client)"},{"line_number":133,"context_line":"        interface \u003d self._get_primary_interface(vm.ssh_client)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_39d3c703","line":130,"range":{"start_line":126,"start_character":8,"end_line":130,"end_character":64},"in_reply_to":"9f560f44_f92cc102","updated":"2020-09-17 08:41:37.000000000","message":"This serves a somewhat different purpose: It selects between the default image being already advanced or the default image not being advanced but having and using an explicitly configured advanced image.","commit_id":"23715756aca3da2236394c5a99a79e6ecfbe5467"}]}
