)]}'
{"tempest/api/network/common.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"0fd522eb27e6763634b4b5525dc86d5c0b4974b4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self._router_ids \u003d set()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def add_to_router(self, router_id):"},{"line_number":64,"context_line":"        self._router_ids \u003d self._router_ids"},{"line_number":65,"context_line":"        self._router_ids.add(router_id)"},{"line_number":66,"context_line":"        body \u003d dict(subnet_id\u003dself.id)"},{"line_number":67,"context_line":"        self.client.add_interface_router(router_id, body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2F%2BK8%3D","line":64,"updated":"2013-10-24 13:06:51.000000000","message":"afazekas, I\u0027m not very clear why need this line..","commit_id":"d8038fdc718719a468b4554e1d8a57460de4e509"}],"tempest/scenario/manager.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0ba0fec3f6ae13f7d02de9638d90c04ae946e4ea","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            except exc.NeutronClientException as e:"},{"line_number":582,"context_line":"                is_overlapping_cidr \u003d \u0027overlaps with another subnet\u0027 in str(e)"},{"line_number":583,"context_line":"                if not is_overlapping_cidr:"},{"line_number":584,"context_line":"                    raise"},{"line_number":585,"context_line":"                self.cidr_in_use.add(str_cidr)  # cache"},{"line_number":586,"context_line":"        self.cidr_in_use.add(str_cidr)  # avoid"},{"line_number":587,"context_line":"        self.assertIsNotNone(result, \u0027Unable to allocate tenant network\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BOYg%3D","line":584,"updated":"2013-11-28 17:21:32.000000000","message":"I struggle to understand how this could have possibly worked before.","commit_id":"bd8b8813a2c8b6833a960da3aa28f389185dc7f9"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"eef41f8c00a95a57cefa78577753ed0b1bcb9006","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            except exc.NeutronClientException as e:"},{"line_number":582,"context_line":"                is_overlapping_cidr \u003d \u0027overlaps with another subnet\u0027 in str(e)"},{"line_number":583,"context_line":"                if not is_overlapping_cidr:"},{"line_number":584,"context_line":"                    raise"},{"line_number":585,"context_line":"                self.cidr_in_use.add(str_cidr)  # cache"},{"line_number":586,"context_line":"        self.cidr_in_use.add(str_cidr)  # avoid"},{"line_number":587,"context_line":"        self.assertIsNotNone(result, \u0027Unable to allocate tenant network\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BNck%3D","line":584,"in_reply_to":"AAAATn%2F%2BOYg%3D","updated":"2013-11-29 05:04:42.000000000","message":"If a class just creates one subnet the issue not visible.","commit_id":"bd8b8813a2c8b6833a960da3aa28f389185dc7f9"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"18a1cb2eac0ffc3b887aaffffb99e18b36ec4c48","unresolved":false,"context_lines":[{"line_number":647,"context_line":"                if not is_overlapping_cidr:"},{"line_number":648,"context_line":"                    raise"},{"line_number":649,"context_line":"                self.cidr_in_use.add(str_cidr)  # cache"},{"line_number":650,"context_line":"        self.cidr_in_use.add(str_cidr)  # avoid"},{"line_number":651,"context_line":"        self.assertIsNotNone(result, \u0027Unable to allocate tenant network\u0027)"},{"line_number":652,"context_line":"        subnet \u003d net_common.DeletableSubnet(client\u003dself.network_client,"},{"line_number":653,"context_line":"                                            **result[\u0027subnet\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9ywA%3D","line":650,"updated":"2014-02-03 21:38:12.000000000","message":"Already added in positive case inside for/if/except scenario? Should not it be in the try/break case? And let the except case jump out (already in use - so no need to \u0027if str_cidr in self.cidr_in_use check?).\n\nGenerally I think there is no need for multiple (and doubled in special case) cidr_in_use.add lines here.","commit_id":"b0479727c2830f4d48100fe42bb0429d139fc3c2"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"58b4c996e057bb83fec5d383a2e082fb9571f86b","unresolved":false,"context_lines":[{"line_number":647,"context_line":"                if not is_overlapping_cidr:"},{"line_number":648,"context_line":"                    raise"},{"line_number":649,"context_line":"                self.cidr_in_use.add(str_cidr)  # cache"},{"line_number":650,"context_line":"        self.cidr_in_use.add(str_cidr)  # avoid"},{"line_number":651,"context_line":"        self.assertIsNotNone(result, \u0027Unable to allocate tenant network\u0027)"},{"line_number":652,"context_line":"        subnet \u003d net_common.DeletableSubnet(client\u003dself.network_client,"},{"line_number":653,"context_line":"                                            **result[\u0027subnet\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9ilc%3D","line":650,"in_reply_to":"AAAAUH%2F9ywA%3D","updated":"2014-02-06 07:00:01.000000000","message":"This special Exception handling is really required if the overlapping IPs are disabled. The loop can find multiple cidr which allocated by a parallel test case or by an another user.\n\nThe # cache case helps to avoid to retry with cidr which was already allocated by someone else. \n\nThe # avoid is required to do not try to use our allocations,\nIt cloud be moved before the break, but I do not see why.","commit_id":"b0479727c2830f4d48100fe42bb0429d139fc3c2"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"53688beb23944e232720a3607739e196a5ad92db","unresolved":false,"context_lines":[{"line_number":543,"context_line":"    Base class for network scenario tests"},{"line_number":544,"context_line":"    \"\"\""},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"    cidr_in_use \u003d set()"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    @classmethod"},{"line_number":549,"context_line":"    def check_preconditions(cls):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FquA%3D","line":546,"updated":"2014-02-11 16:29:41.000000000","message":"won\u0027t this prevent overlapping IPs in different tenants as well?\n\nMaybe this should be handled by a TenantManager https://blueprints.launchpad.net/tempest/+spec/tenant-menager","commit_id":"e285c66f649ceb88598a63df4aad7d97fbe9debb"}],"tempest/scenario/test_router_connect.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"ec1ca39781ff8f80f97e3a49dee18e715fbebcda","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                                    self.ssh_login,"},{"line_number":94,"context_line":"                                    self.keypair.private_key)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _chech_remote_connectivity(self):"},{"line_number":97,"context_line":"        private_ip_b \u003d self.server_b.networks[self.network_b.name][0]"},{"line_number":98,"context_line":"        ip_address \u003d self.floating_ip.floating_ip_address"},{"line_number":99,"context_line":"        ssh \u003d self.get_remote_client(ip_address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FnKo%3D","line":96,"updated":"2013-10-31 12:58:41.000000000","message":"chech -\u003e check","commit_id":"be80bf91b9506c8e0a068b1656b2cbab05bc0824"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"6a3831aef6cc2b9e64623c71bb0e66742cdc1d7d","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        tempest.test.call_until_true(ping_remote,"},{"line_number":114,"context_line":"                                     self.config.compute.ping_timeout,"},{"line_number":115,"context_line":"                                     1)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @tempest.test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":118,"context_line":"    @tempest.test.services(\u0027compute\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FrE4%3D","line":115,"updated":"2013-10-30 15:42:12.000000000","message":"where is the assert? don\u0027t you need assertTrue() to test this?","commit_id":"be80bf91b9506c8e0a068b1656b2cbab05bc0824"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"dbc20acb745134d1838ab8e80a4435caad77b855","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        tempest.test.call_until_true(ping_remote,"},{"line_number":114,"context_line":"                                     self.config.compute.ping_timeout,"},{"line_number":115,"context_line":"                                     1)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @tempest.test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":118,"context_line":"    @tempest.test.services(\u0027compute\u0027, \u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FWeg%3D","line":115,"in_reply_to":"AAAATn%2F%2FrE4%3D","updated":"2013-11-08 14:46:20.000000000","message":"Good catch.","commit_id":"be80bf91b9506c8e0a068b1656b2cbab05bc0824"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"d9b27ec8181d3344d4eb9a6698bdd199a893e3ae","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from tempest.api.network import common as net_common"},{"line_number":16,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":17,"context_line":"from tempest import config"},{"line_number":18,"context_line":"from tempest import exceptions"},{"line_number":19,"context_line":"from tempest.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BiCU%3D","line":16,"updated":"2013-11-25 02:10:31.000000000","message":"Should this be changes to \"from tempest.common.utils import data_utils \"","commit_id":"99a2753d0f2f347f3857fb65afe7c1ac6c284be6"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0ba0fec3f6ae13f7d02de9638d90c04ae946e4ea","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        subnet_b.add_to_router(self.router.id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _create_keypair_security_group(self):"},{"line_number":66,"context_line":"        self.keypair \u003d self.create_keypair()"},{"line_number":67,"context_line":"        self.security_group \u003d self._create_security_group()"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def _create_servers(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BOZY%3D","line":66,"updated":"2013-11-28 17:21:32.000000000","message":"do we need somehow this keypair for the security group?\n\n(the comment is because another keypair is created when creating the server)","commit_id":"bd8b8813a2c8b6833a960da3aa28f389185dc7f9"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"eef41f8c00a95a57cefa78577753ed0b1bcb9006","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        subnet_b.add_to_router(self.router.id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _create_keypair_security_group(self):"},{"line_number":66,"context_line":"        self.keypair \u003d self.create_keypair()"},{"line_number":67,"context_line":"        self.security_group \u003d self._create_security_group()"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def _create_servers(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BNcY%3D","line":66,"in_reply_to":"AAAATn%2F%2BOZY%3D","updated":"2013-11-29 05:04:42.000000000","message":"The other keypair creation will be removed.","commit_id":"bd8b8813a2c8b6833a960da3aa28f389185dc7f9"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"0ba0fec3f6ae13f7d02de9638d90c04ae946e4ea","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        security_groups \u003d [self.security_group.name]"},{"line_number":72,"context_line":"        create_kwargs \u003d {"},{"line_number":73,"context_line":"            \u0027nics\u0027: ["},{"line_number":74,"context_line":"                {\u0027net-id\u0027: self.network_a.id},"},{"line_number":75,"context_line":"            ],"},{"line_number":76,"context_line":"            \u0027key_name\u0027: self.keypair.name,"},{"line_number":77,"context_line":"            \u0027security_groups\u0027: security_groups,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BOZA%3D","line":74,"updated":"2013-11-28 17:21:32.000000000","message":"why are you creating both servers on the same network?","commit_id":"bd8b8813a2c8b6833a960da3aa28f389185dc7f9"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"eef41f8c00a95a57cefa78577753ed0b1bcb9006","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        security_groups \u003d [self.security_group.name]"},{"line_number":72,"context_line":"        create_kwargs \u003d {"},{"line_number":73,"context_line":"            \u0027nics\u0027: ["},{"line_number":74,"context_line":"                {\u0027net-id\u0027: self.network_a.id},"},{"line_number":75,"context_line":"            ],"},{"line_number":76,"context_line":"            \u0027key_name\u0027: self.keypair.name,"},{"line_number":77,"context_line":"            \u0027security_groups\u0027: security_groups,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BNc8%3D","line":74,"in_reply_to":"AAAATn%2F%2BOZA%3D","updated":"2013-11-29 05:04:42.000000000","message":"Line 82, the net-id is updated.","commit_id":"bd8b8813a2c8b6833a960da3aa28f389185dc7f9"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"87bd65724843a92fd75f733fb0235842f0e5b246","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self.assertTrue(res, \"Failed to ping {dst} from {src}\".format("},{"line_number":118,"context_line":"            src\u003dip_address, dst\u003dprivate_ip_b))"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    @tempest.test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":121,"context_line":"    @tempest.test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":122,"context_line":"    def test_router_connect(self):"},{"line_number":123,"context_line":"        self._create_keypair_security_group()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9sJ8%3D","line":120,"updated":"2013-12-07 13:18:05.000000000","message":"scenario tests are all smoke, don\u0027t need that","commit_id":"37a7b774a4089d9f872859177d26c540646a688b"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"a0e161c693d4baef625645db2eda816a98304ce9","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        server_name_a \u003d data_utils.rand_name(\"server-a\")"},{"line_number":80,"context_line":"        self.server_a \u003d self.create_server(name\u003dserver_name_a,"},{"line_number":81,"context_line":"                                           create_kwargs\u003dcreate_kwargs)"},{"line_number":82,"context_line":"        create_kwargs[\u0027nics\u0027] \u003d [{\u0027net-id\u0027: self.network_b.id}]"},{"line_number":83,"context_line":"        server_name_b \u003d data_utils.rand_name(\"server-b\")"},{"line_number":84,"context_line":"        self.server_b \u003d self.create_server(name\u003dserver_name_b,"},{"line_number":85,"context_line":"                                           create_kwargs\u003dcreate_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F8%2Blc%3D","line":82,"updated":"2013-12-18 06:59:36.000000000","message":"is it possible to create the servers with a single command using num_instances\u003d2? could it be faster?","commit_id":"92c9dfce51ec697445c1605199a897fb0e65904a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"38e32173845b5081955c9ec5c12cb6608ad0d825","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        server_name_a \u003d data_utils.rand_name(\"server-a\")"},{"line_number":80,"context_line":"        self.server_a \u003d self.create_server(name\u003dserver_name_a,"},{"line_number":81,"context_line":"                                           create_kwargs\u003dcreate_kwargs)"},{"line_number":82,"context_line":"        create_kwargs[\u0027nics\u0027] \u003d [{\u0027net-id\u0027: self.network_b.id}]"},{"line_number":83,"context_line":"        server_name_b \u003d data_utils.rand_name(\"server-b\")"},{"line_number":84,"context_line":"        self.server_b \u003d self.create_server(name\u003dserver_name_b,"},{"line_number":85,"context_line":"                                           create_kwargs\u003dcreate_kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F86XI%3D","line":82,"in_reply_to":"AAAATn%2F8%2Blc%3D","updated":"2013-12-18 21:52:27.000000000","message":"Not.\n 1. not the api request is the bottle neck.\n 2. the compute v2 api does not returns will all newly created server https://bugs.launchpad.net/nova/+bug/1187679\n 3. I need different args for the two servers.","commit_id":"92c9dfce51ec697445c1605199a897fb0e65904a"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"a0e161c693d4baef625645db2eda816a98304ce9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.floating_ip \u003d self._create_floating_ip(self.server_a,"},{"line_number":90,"context_line":"                                                    public_network_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _check_basic_connectivity(self):"},{"line_number":93,"context_line":"        ip_address \u003d self.floating_ip.floating_ip_address"},{"line_number":94,"context_line":"        self._check_vm_connectivity(ip_address,"},{"line_number":95,"context_line":"                                    self.ssh_login,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F8%2Bks%3D","line":92,"updated":"2013-12-18 06:59:36.000000000","message":"Suggestion only:\nadd wait_for_floating_ip_association() from network_basic_ops before checking connectivity","commit_id":"92c9dfce51ec697445c1605199a897fb0e65904a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"38e32173845b5081955c9ec5c12cb6608ad0d825","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.floating_ip \u003d self._create_floating_ip(self.server_a,"},{"line_number":90,"context_line":"                                                    public_network_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _check_basic_connectivity(self):"},{"line_number":93,"context_line":"        ip_address \u003d self.floating_ip.floating_ip_address"},{"line_number":94,"context_line":"        self._check_vm_connectivity(ip_address,"},{"line_number":95,"context_line":"                                    self.ssh_login,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F86Wg%3D","line":92,"in_reply_to":"AAAATn%2F8%2Bks%3D","updated":"2013-12-18 21:52:27.000000000","message":"The floating ip expected to be associated sooner then the vm relay starts listening on the ssh port.\n\nIMHO The ssh connection wait is sufficient for all kind of waiting stuff.","commit_id":"92c9dfce51ec697445c1605199a897fb0e65904a"}]}
