)]}'
{"ironic_tempest_plugin/tests/scenario/baremetal_manager.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"905278027c321d299a43659996762d8b1bae6d86","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        node_id \u003d None"},{"line_number":194,"context_line":"        if CONF.baremetal.driver_enabled:"},{"line_number":195,"context_line":"            try:"},{"line_number":196,"context_line":"                node_id \u003d self.get_bm_node(instance_id\u003dserver_id)[\u0027uuid\u0027]"},{"line_number":197,"context_line":"            except Exception:"},{"line_number":198,"context_line":"                pass"},{"line_number":199,"context_line":"        servers_client.delete_server(server_id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"da0c15f0_04c1e5e4","line":196,"range":{"start_line":196,"start_character":31,"end_line":196,"end_character":42},"updated":"2016-03-25 09:00:35.000000000","message":"get_node?","commit_id":"e043f978e5a567461d7a061426db1cbc6d0b19b6"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"905278027c321d299a43659996762d8b1bae6d86","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                pass"},{"line_number":199,"context_line":"        servers_client.delete_server(server_id)"},{"line_number":200,"context_line":"        if node_id:"},{"line_number":201,"context_line":"            self._bm_node_state_timeout("},{"line_number":202,"context_line":"                node_id\u003dnode_id, state_attr\u003d\u0027provision_state\u0027,"},{"line_number":203,"context_line":"                target_states\u003dNone, timeout\u003dCONF.baremetal.unprovision_timeout"},{"line_number":204,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":18,"id":"da0c15f0_2463491c","line":201,"range":{"start_line":201,"start_character":17,"end_line":201,"end_character":39},"updated":"2016-03-25 09:00:35.000000000","message":"_node_state_timeout?","commit_id":"e043f978e5a567461d7a061426db1cbc6d0b19b6"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"414a527f01073d2e945e91f8d1f8f2055c298c13","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        self.wait_power_state(self.node[\u0027uuid\u0027],"},{"line_number":198,"context_line":"                              BaremetalPowerStates.POWER_OFF)"},{"line_number":199,"context_line":"        self.wait_provisioning_state("},{"line_number":200,"context_line":"            self.node[\u0027uuid\u0027],"},{"line_number":201,"context_line":"            BaremetalProvisionStates.NOSTATE,"},{"line_number":202,"context_line":"            timeout\u003dCONF.baremetal.unprovision_timeout)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba0121b8_a1cbe41d","line":200,"updated":"2016-03-28 16:23:35.000000000","message":"this waits for self.node state change, while in multitenancy test it is not used, node1 and node2 are created.","commit_id":"bbcdcc130e21f5da8c804decb885a8ffcfb42e18"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6ab92e9f5de607c4a1fd70f3a4ab5fd37f19d928","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            servers_client \u003d self.servers_client"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        servers_client.delete_server(instance[\u0027id\u0027])"},{"line_number":197,"context_line":"        node \u003d self.get_node(instance_id\u003dinstance[\u0027id\u0027])"},{"line_number":198,"context_line":"        self.wait_power_state(node[\u0027uuid\u0027],"},{"line_number":199,"context_line":"                              BaremetalPowerStates.POWER_OFF)"},{"line_number":200,"context_line":"        self.wait_provisioning_state("}],"source_content_type":"text/x-python","patch_set":24,"id":"ba0121b8_b203300d","line":197,"updated":"2016-03-28 17:06:02.000000000","message":"It may happen that instance was already disassociated from node between L196 and 197 and nothing will be returned. Maybe pass it as an argumetn instead?","commit_id":"38c18757b760277dcb486514814a6d4c2a5cb7b8"}],"ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"75a74ac044ec0627bfc19a585c75505d542a2f8a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    * Verify there is no L2 connectivity between instances of different tenants"},{"line_number":43,"context_line":"    * Delete both instances"},{"line_number":44,"context_line":"    \"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027, \u0027admin\u0027]"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def create_tenant_network(self, clients, tenant_cidr):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9aed3d3a_15f0e08f","line":45,"updated":"2016-02-26 07:42:55.000000000","message":"We should skip this test if provision_network is not configured, please have look how it done https://github.com/openstack/ironic/blob/master/ironic_tempest_plugin/tests/scenario/baremetal_manager.py#L57\nhttps://github.com/openstack-dev/devstack/blob/6c888d2c49613f94c3325f2474bfa71a1de3061a/lib/tempest#L503","commit_id":"76f20b1bed8b1bbfe665415b0b0f8b9397896301"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"905278027c321d299a43659996762d8b1bae6d86","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            networks_client\u003dclients.networks_client,"},{"line_number":59,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":60,"context_line":"        router \u003d self._get_router("},{"line_number":61,"context_line":"            client\u003dclients.network_client,"},{"line_number":62,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        result \u003d clients.subnets_client.create_subnet("}],"source_content_type":"text/x-python","patch_set":18,"id":"da0c15f0_d0b68f3c","line":61,"range":{"start_line":61,"start_character":27,"end_line":61,"end_character":41},"updated":"2016-03-25 09:00:35.000000000","message":"It should be routers_client.","commit_id":"e043f978e5a567461d7a061426db1cbc6d0b19b6"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"905278027c321d299a43659996762d8b1bae6d86","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            cidr\u003dtenant_cidr)"},{"line_number":70,"context_line":"        subnet \u003d net_resources.DeletableSubnet("},{"line_number":71,"context_line":"            network_client\u003dclients.network_client,"},{"line_number":72,"context_line":"            subnets_client\u003dclients.subnets_client,"},{"line_number":73,"context_line":"            **result[\u0027subnet\u0027])"},{"line_number":74,"context_line":"        self.addCleanup(self.delete_wrapper, subnet.delete)"},{"line_number":75,"context_line":"        subnet.add_to_router(router.id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"da0c15f0_901d3712","line":72,"updated":"2016-03-25 09:00:35.000000000","message":"It is necessary to add \"routers_client\u003dclients.routers_client\" for line 75.","commit_id":"e043f978e5a567461d7a061426db1cbc6d0b19b6"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"c7738f253cdf24995de2d1c56a33854ed31bf27e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            servers_client\u003dself.alt_manager.servers_client)"},{"line_number":160,"context_line":"        self.terminate_instance("},{"line_number":161,"context_line":"            instance\u003dinstance1,"},{"line_number":162,"context_line":"            servers_client\u003dself.alt_manager.servers_client)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba0121b8_816ce09d","line":162,"updated":"2016-03-28 16:19:04.000000000","message":"Should be self.manager I think","commit_id":"bbcdcc130e21f5da8c804decb885a8ffcfb42e18"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"bc78ce51e62d221ba81fe23a98455d675bd907bf","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    def create_tenant_network(self, clients, tenant_cidr):"},{"line_number":52,"context_line":"        network \u003d self._create_network("},{"line_number":53,"context_line":"            client\u003dclients.network_client,"},{"line_number":54,"context_line":"            networks_client\u003dclients.networks_client,"},{"line_number":55,"context_line":"            tenant_id\u003dclients.credentials.tenant_id)"},{"line_number":56,"context_line":"        router \u003d self._get_router("},{"line_number":57,"context_line":"            client\u003dclients.routers_client,"}],"source_content_type":"text/x-python","patch_set":38,"id":"5a18252c_62d08854","line":54,"updated":"2016-04-12 13:59:04.000000000","message":"seems that networks_client was dropped from tempest recently.","commit_id":"59a4ba050d4a1dcbcf6d31a3cf17c975624c5ade"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d517ab97dd3ded7294558bb727624b9214614f86","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ironic_tempest_plugin.tests.scenario import baremetal_manager"},{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.scenario import manager"},{"line_number":21,"context_line":"from tempest.services.network import resources as net_resources"},{"line_number":22,"context_line":"from tempest import test"},{"line_number":23,"context_line":"from tempest_lib.common.utils import data_utils"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"dab17558_70a39bb2","line":21,"updated":"2016-05-17 11:51:25.000000000","message":"tempest.services.network was renamed to tempest.scenario.network_resources by a patch[1].\n\n[1] https://review.openstack.org/#/c/311221/","commit_id":"1c968c9a449156ff7f82c3496927944f368f60dd"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"fc9051fd1ca0e37fc6f4cb9e953dade6df698e42","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import config"},{"line_number":20,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest.scenario import manager"},{"line_number":22,"context_line":"from tempest.scenario import network_resources"},{"line_number":23,"context_line":"from tempest import test"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":54,"id":"3aaa91ec_35f8b27c","line":22,"updated":"2016-06-21 17:06:12.000000000","message":"Tempest changed yet again:\n\n 2016-06-21 16:57:19.175027 |   File \"/opt/stack/new/tempest/.tox/tempest/local/lib/python2.7/site-packages/ironic_tempest_plugin/tests/scenario/test_baremetal_multitenancy.py\", line 22, in \u003cmodule\u003e\n 2016-06-21 16:57:19.175058 |     from tempest.scenario import network_resources\n 2016-06-21 16:57:19.175109 | ImportError: cannot import name network_resources","commit_id":"4d218335f2465535b1661e3317806f9df1a2de23"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"528311a81fc9fde748fae69c5951b3738d8b86e7","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        subnet \u003d result[\u0027subnet\u0027]"},{"line_number":65,"context_line":"        clients.routers_client.add_router_interface(router[\u0027id\u0027],"},{"line_number":66,"context_line":"                                                    subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":67,"context_line":"        self.addCleanup(clients.subnets_client.delete_subnet, subnet[\u0027id\u0027])"},{"line_number":68,"context_line":"        self.addCleanup(clients.routers_client.remove_router_interface,"},{"line_number":69,"context_line":"                        router[\u0027id\u0027], subnet_id\u003dsubnet[\u0027id\u0027])"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":63,"id":"dada55a8_54d0b653","line":67,"updated":"2016-07-18 15:03:30.000000000","message":"nit: this should go right after creating the subnet, otherwise it might not get deleted","commit_id":"9084c647a95d71aabce89377ae56bdfca9ba3116"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"528311a81fc9fde748fae69c5951b3738d8b86e7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            self.manager, tenant_cidr)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # Boot 2 instances in the primary tenant network"},{"line_number":98,"context_line":"        # and check L2 connectivity between them"},{"line_number":99,"context_line":"        instance1, node1 \u003d self.boot_instance("},{"line_number":100,"context_line":"            clients\u003dself.manager,"},{"line_number":101,"context_line":"            keypair\u003dkeypair,"}],"source_content_type":"text/x-python","patch_set":63,"id":"dada55a8_34d54243","line":98,"updated":"2016-07-18 15:03:30.000000000","message":"mmm, maybe I misunderstand something, but it reads like you\u0027re creating 3 instances totally. I only see this one and the alt one.","commit_id":"9084c647a95d71aabce89377ae56bdfca9ba3116"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"528311a81fc9fde748fae69c5951b3738d8b86e7","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        self.check_vm_connectivity(ip_address\u003dalt_floating_ip,"},{"line_number":129,"context_line":"                                   private_key\u003dalt_keypair[\u0027private_key\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        self.verify_l3_connectivity("},{"line_number":132,"context_line":"            alt_floating_ip,"},{"line_number":133,"context_line":"            alt_keypair[\u0027private_key\u0027],"}],"source_content_type":"text/x-python","patch_set":63,"id":"dada55a8_94ca2ea0","line":130,"updated":"2016-07-18 15:03:30.000000000","message":"I\u0027d prefer explanation comments go before every action, not once in the beginning","commit_id":"9084c647a95d71aabce89377ae56bdfca9ba3116"}]}
