)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"63450869da3fd1586016bd7c81a3e6870926c996","unresolved":false,"context_lines":[{"line_number":902,"context_line":""},{"line_number":903,"context_line":"    def _get_network_by_name(self, network_name):"},{"line_number":904,"context_line":"        net \u003d self._list_networks(name\u003dnetwork_name)"},{"line_number":905,"context_line":"        return net_common.AttributeDict(net[0])"},{"line_number":906,"context_line":""},{"line_number":907,"context_line":"    def _create_floating_ip(self, thing, external_network_id, port_id\u003dNone):"},{"line_number":908,"context_line":"        if not port_id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_b80e0333","line":905,"updated":"2014-08-14 09:03:00.000000000","message":"what if you have more than one network of the same name? is this allowed? should it raise an exception?","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"14c596462f38aa4406bdd5a47a2cbd28b5861f0b","unresolved":false,"context_lines":[{"line_number":902,"context_line":""},{"line_number":903,"context_line":"    def _get_network_by_name(self, network_name):"},{"line_number":904,"context_line":"        net \u003d self._list_networks(name\u003dnetwork_name)"},{"line_number":905,"context_line":"        return net_common.AttributeDict(net[0])"},{"line_number":906,"context_line":""},{"line_number":907,"context_line":"    def _create_floating_ip(self, thing, external_network_id, port_id\u003dNone):"},{"line_number":908,"context_line":"        if not port_id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_1037c3e4","line":905,"in_reply_to":"7ac7a964_b80e0333","updated":"2014-08-14 12:45:04.000000000","message":"I\u0027m not sure if one can create multiple networks with the same name, but the name passed in to this method comes from the value in CONF.compute.fixed_network_name (which doesn\u0027t support multiple values). So even if it\u0027s possible, it would seem like an operator error to have it setup that way.","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"f49112bbf06bbafd3f86fa6199375890fe29e234","unresolved":false,"context_lines":[{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        :returns: network, subnet, router"},{"line_number":1335,"context_line":"        \"\"\""},{"line_number":1336,"context_line":"        if CONF.baremetal.driver_enabled:"},{"line_number":1337,"context_line":"            network \u003d self._get_network_by_name("},{"line_number":1338,"context_line":"                CONF.compute.fixed_network_name)"},{"line_number":1339,"context_line":"            router \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_2baa8dd4","line":1336,"updated":"2014-08-25 19:48:30.000000000","message":"Is this always the case for every ironic deployment? This seems like a devstack gating thing, and I\u0027m wondering if there should be a more generic way to specify this.","commit_id":"3e2e8bfa955bf35b530e96356290bea15dd9330d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e339fac40eb564471456dc49360662b77515ee9d","unresolved":false,"context_lines":[{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        :returns: network, subnet, router"},{"line_number":1335,"context_line":"        \"\"\""},{"line_number":1336,"context_line":"        if CONF.baremetal.driver_enabled:"},{"line_number":1337,"context_line":"            network \u003d self._get_network_by_name("},{"line_number":1338,"context_line":"                CONF.compute.fixed_network_name)"},{"line_number":1339,"context_line":"            router \u003d None"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_ed807f8d","line":1336,"in_reply_to":"1abeadc6_2baa8dd4","updated":"2014-08-26 18:46:57.000000000","message":"[Covered in IRC] Summary: This goes back to needing the ironic nodes all on the same network (otherwise some may not be able to speak to the tftp server). As for other scenarios, per adam_g:\n\n\"it would be an environment where tenant credential isolation is available, but network separation is not\"\n\nI will add a comment here to explain this circumstance.","commit_id":"3e2e8bfa955bf35b530e96356290bea15dd9330d"}],"tempest/scenario/test_network_advanced_server_ops.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"63450869da3fd1586016bd7c81a3e6870926c996","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            cls.enabled \u003d False"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _setup_network_and_servers(self):"},{"line_number":54,"context_line":"        key_name \u003d data_utils.rand_name(\u0027keypair-smoke-\u0027)"},{"line_number":55,"context_line":"        self.keypair \u003d self.create_keypair(name\u003dkey_name)"},{"line_number":56,"context_line":"        security_group \u003d\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_3874b3fc","line":53,"updated":"2014-08-14 09:03:00.000000000","message":"setUp is a special method. you can\u0027t change it!!!\nthe whole point of it is to be called once before each test.","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"14c596462f38aa4406bdd5a47a2cbd28b5861f0b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            cls.enabled \u003d False"},{"line_number":51,"context_line":"            raise cls.skipException(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _setup_network_and_servers(self):"},{"line_number":54,"context_line":"        key_name \u003d data_utils.rand_name(\u0027keypair-smoke-\u0027)"},{"line_number":55,"context_line":"        self.keypair \u003d self.create_keypair(name\u003dkey_name)"},{"line_number":56,"context_line":"        security_group \u003d\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_953ca595","line":53,"in_reply_to":"7ac7a964_3874b3fc","updated":"2014-08-14 12:45:04.000000000","message":"Wow, that\u0027s a lot of unnecessary exclamation points that could easily lead to misinterpretation of tone.\n\nSo, yes, this needs to be changed because a setUp() will be called and executed even if a test is skipped. Because this bit of code creates a server, this significantly increases execution time when those tests that can be skipped ARE skipped (which they are in the case of baremetal).\n\ntl;dr  This is a significant improvement in execution time for environments that skip any of these tests.","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"63450869da3fd1586016bd7c81a3e6870926c996","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":91,"context_line":"    def test_server_connectivity_stop_start(self):"},{"line_number":92,"context_line":"        self._setup_network_and_servers()"},{"line_number":93,"context_line":"        self.server.stop()"},{"line_number":94,"context_line":"        self.status_timeout(self.compute_client.servers, self.server.id,"},{"line_number":95,"context_line":"                            \u0027SHUTOFF\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_389033ec","line":92,"updated":"2014-08-14 09:03:00.000000000","message":"that\u0027s why we use \"setUp\" method to be called automatically before the test","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"2b63062007fe44e9d8b3d496fb7a6cfbc955a6c5","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027key_name\u0027: self.keypair.name,"},{"line_number":66,"context_line":"            \u0027security_groups\u0027: [security_group.name],"},{"line_number":67,"context_line":"        }"},{"line_number":68,"context_line":"        server_name \u003d data_utils.rand_name(\u0027server-smoke\u0027)"},{"line_number":69,"context_line":"        self.server \u003d self.create_server(name\u003dserver_name,"},{"line_number":70,"context_line":"                                         create_kwargs\u003dcreate_kwargs)"},{"line_number":71,"context_line":"        self.floating_ip \u003d self._create_floating_ip(self.server,"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa98f980_8a2c0604","line":68,"updated":"2014-09-02 21:40:48.000000000","message":"This looks like an unrelated change, but it\u0027s not worth another rebase.","commit_id":"9bac366163371000235714e02970b3686a150d3e"}],"tempest/scenario/test_network_basic_ops.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"16d2101ff85c162fed58b83812d621ea1fcb66c4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                raise cls.skipException(msg)"},{"line_number":97,"context_line":"        cls.check_preconditions()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _setup_network_and_servers(self):"},{"line_number":100,"context_line":"        self.security_group \u003d \\"},{"line_number":101,"context_line":"            self._create_security_group_neutron(tenant_id\u003dself.tenant_id)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_53d07053","line":99,"updated":"2014-08-14 09:13:45.000000000","message":"Do not change this name!","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"14c596462f38aa4406bdd5a47a2cbd28b5861f0b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                raise cls.skipException(msg)"},{"line_number":97,"context_line":"        cls.check_preconditions()"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _setup_network_and_servers(self):"},{"line_number":100,"context_line":"        self.security_group \u003d \\"},{"line_number":101,"context_line":"            self._create_security_group_neutron(tenant_id\u003dself.tenant_id)"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_30be7f00","line":99,"in_reply_to":"7ac7a964_53d07053","updated":"2014-08-14 12:45:04.000000000","message":"This suffers from the same situation I described in test_network_advanced_server_ops.py. What doesn\u0027t show here is that one of these tests is now skipped due to a recent merge (which means I should probably rebase this):\n\nhttps://review.openstack.org/#/c/108995/5/tempest/scenario/test_network_basic_ops.py","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"16d2101ff85c162fed58b83812d621ea1fcb66c4","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        \"\"\""},{"line_number":340,"context_line":"        self._setup_network_and_servers()"},{"line_number":341,"context_line":"        self._check_public_network_connectivity(should_connect\u003dTrue)"},{"line_number":342,"context_line":"        self._check_network_internal_connectivity(network\u003dself.network)"},{"line_number":343,"context_line":"        self._check_network_external_connectivity()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_73d56c42","line":340,"updated":"2014-08-14 09:13:45.000000000","message":"not needed. don\u0027t change setUp name","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"16d2101ff85c162fed58b83812d621ea1fcb66c4","unresolved":false,"context_lines":[{"line_number":361,"context_line":"        4. check VM can ping new network dhcp port"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        \"\"\""},{"line_number":364,"context_line":"        self._setup_network_and_servers()"},{"line_number":365,"context_line":"        self._check_public_network_connectivity(should_connect\u003dTrue)"},{"line_number":366,"context_line":"        self._create_new_network()"},{"line_number":367,"context_line":"        self._hotplug_server()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ac7a964_b3cf04b0","line":364,"updated":"2014-08-14 09:13:45.000000000","message":"ditto","commit_id":"0b99b6683e5265bb5c75667c1e47ff1e0c81b79d"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7047589cd59baa953f479bb330a2ccad9624ef64","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    def _setup_network_and_servers(self):"},{"line_number":102,"context_line":"        self.security_group \u003d \\"},{"line_number":103,"context_line":"            self._create_security_group_neutron(tenant_id\u003dself.tenant_id)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        self.network, self.subnet, self.router \u003d self.create_networks()"},{"line_number":106,"context_line":"        self.check_networks()"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1abeadc6_58d2785c","line":104,"updated":"2014-08-29 18:45:42.000000000","message":"These 3 whitespace changes seem unrelated.","commit_id":"6f72625d423943df4dcc02c2b2cdd599840e95fd"}],"tempest/scenario/test_security_groups_basic_ops.py":[{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"5ed3a4d754297cd3c4bb9b615fbed8fe82676a46","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            subnet_id \u003d tenant.subnet.id"},{"line_number":428,"context_line":"            self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)"},{"line_number":429,"context_line":"        else:"},{"line_number":430,"context_line":"            # If baremetal is enabled, there won\u0027t be a subnet."},{"line_number":431,"context_line":"            port_detail_list \u003d ["},{"line_number":432,"context_line":"                (port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027],"},{"line_number":433,"context_line":"                 port[\u0027mac_address\u0027].lower())"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_a9139b57","line":430,"updated":"2014-08-08 17:38:11.000000000","message":"Is this accurate? There will be a subnet associated with the port, but it is not one that was created as part of test setup here (its the shared tenant network created by devstack).  I\u0027m okay with not asserting on that but maybe the comment should be clarified?","commit_id":"31faef7ae7a2d75c61cacadfeb71a4156e622676"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"bfb08da916c1850613f0d172fda3555fb6f709c2","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            subnet_id \u003d tenant.subnet.id"},{"line_number":428,"context_line":"            self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)"},{"line_number":429,"context_line":"        else:"},{"line_number":430,"context_line":"            # If baremetal is enabled, there won\u0027t be a subnet."},{"line_number":431,"context_line":"            port_detail_list \u003d ["},{"line_number":432,"context_line":"                (port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027],"},{"line_number":433,"context_line":"                 port[\u0027mac_address\u0027].lower())"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_7476b640","line":430,"in_reply_to":"baada198_a9139b57","updated":"2014-08-08 18:22:03.000000000","message":"Done","commit_id":"31faef7ae7a2d75c61cacadfeb71a4156e622676"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"f49112bbf06bbafd3f86fa6199375890fe29e234","unresolved":false,"context_lines":[{"line_number":432,"context_line":"            ]"},{"line_number":433,"context_line":"            subnet_id \u003d tenant.subnet.id"},{"line_number":434,"context_line":"            self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)"},{"line_number":435,"context_line":"        else:"},{"line_number":436,"context_line":"            # If baremetal is enabled, we rely on a pre-created network"},{"line_number":437,"context_line":"            # and subnet, not one created by the test."},{"line_number":438,"context_line":"            port_detail_list \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_2bcfedb1","line":435,"updated":"2014-08-25 19:48:30.000000000","message":"I\u0027m fine with doing it this way, but I wonder if there is a way to do this with less duplication","commit_id":"3e2e8bfa955bf35b530e96356290bea15dd9330d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e339fac40eb564471456dc49360662b77515ee9d","unresolved":false,"context_lines":[{"line_number":432,"context_line":"            ]"},{"line_number":433,"context_line":"            subnet_id \u003d tenant.subnet.id"},{"line_number":434,"context_line":"            self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)"},{"line_number":435,"context_line":"        else:"},{"line_number":436,"context_line":"            # If baremetal is enabled, we rely on a pre-created network"},{"line_number":437,"context_line":"            # and subnet, not one created by the test."},{"line_number":438,"context_line":"            port_detail_list \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_0d505bd3","line":435,"in_reply_to":"1abeadc6_2bcfedb1","updated":"2014-08-26 18:46:57.000000000","message":"I would have liked that too, but I\u0027m failing to come up with a better way since there will be no subnet defined for the tenant in the bm case.","commit_id":"3e2e8bfa955bf35b530e96356290bea15dd9330d"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"f49112bbf06bbafd3f86fa6199375890fe29e234","unresolved":false,"context_lines":[{"line_number":442,"context_line":"            ]"},{"line_number":443,"context_line":"            self.assertIn((server_ip, mac_addr), port_detail_list)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @testtools.skipIf(CONF.baremetal.driver_enabled,"},{"line_number":446,"context_line":"                      \"Not supported by baremetal.\")"},{"line_number":447,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":448,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_8b02c1b2","line":445,"updated":"2014-08-25 19:48:30.000000000","message":"Umm, am I missing something but you add all of this hard coded stuff to make the test compatible with the shared network from config and then skip it for the one gating use case we have with that configuration. It should really be one or the other, because we need to verify all of these changes work.","commit_id":"3e2e8bfa955bf35b530e96356290bea15dd9330d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"e339fac40eb564471456dc49360662b77515ee9d","unresolved":false,"context_lines":[{"line_number":442,"context_line":"            ]"},{"line_number":443,"context_line":"            self.assertIn((server_ip, mac_addr), port_detail_list)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @testtools.skipIf(CONF.baremetal.driver_enabled,"},{"line_number":446,"context_line":"                      \"Not supported by baremetal.\")"},{"line_number":447,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":448,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_0d15bbe4","line":445,"in_reply_to":"1abeadc6_8b02c1b2","updated":"2014-08-26 18:46:57.000000000","message":"It\u0027s specifically _because_ of the changes to use a shared network (to be able to boot ironic nodes) that this test fails. Since they are all on the same network, they will be able to speak to each other (which causes this test to fail).","commit_id":"3e2e8bfa955bf35b530e96356290bea15dd9330d"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"ed5682dd49e7ff0846d41a3de1d7b7995207aa9d","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @testtools.skipIf(CONF.baremetal.driver_enabled,"},{"line_number":432,"context_line":"                      \"Not supported by baremetal.\")"},{"line_number":433,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":434,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":435,"context_line":"    def test_cross_tenant_traffic(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_a60af887","line":432,"updated":"2014-08-27 17:35:41.000000000","message":"This should raise skip from setUp, otherwise it\u0027ll end up calling _deploy_tenant() every skip and needlessly booting a server","commit_id":"33566e0fe45fc9e983bc7a028f64e58111a129a4"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"03941e676ddbe46b254f4a0ea2e1fc78bd0df2c7","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    @testtools.skipIf(CONF.baremetal.driver_enabled,"},{"line_number":432,"context_line":"                      \"Not supported by baremetal.\")"},{"line_number":433,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":434,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":435,"context_line":"    def test_cross_tenant_traffic(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_e646b07a","line":432,"in_reply_to":"1abeadc6_a60af887","updated":"2014-08-27 17:46:53.000000000","message":"or better, from check_preconditions()","commit_id":"33566e0fe45fc9e983bc7a028f64e58111a129a4"}]}
