)]}'
{"tempest/scenario/network/test_network_vpn.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"a5ea41298414cb58576e4b262b8ced4d3f2e2add","unresolved":false,"context_lines":[{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        # check whether the servers can ping each another"},{"line_number":357,"context_line":"        self._check_connectivity(ssh_handle_west, self.east_server.private_ip)"},{"line_number":358,"context_line":"        self._check_connectivity(ssh_handle_east, self.west_server.private_ip)"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"    @services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":361,"context_line":"    def test_basic_vpnaas_scenario(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FCVM%3D","line":358,"updated":"2014-01-18 05:09:48.000000000","message":"This is good, but I would also like to see a test before the vpn connection is made that the servers cannot ping each other.","commit_id":"77f758b0690ac3b7edf222a8edb692d75fc1ed61"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"43d7f7d95ed51a347b11e72f3dd600e5c519ba2b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F95to%3D","line":1,"updated":"2014-02-02 02:33:54.000000000","message":"This vim header should be removed.","commit_id":"77703a135cb042a48d58c3216a29020113793133"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"57dfbb9aab3c80ff1e6b69dc4ed15df0475234ef","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                return not should_succeed"},{"line_number":111,"context_line":"            return should_succeed"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        timeout \u003d self.config.compute.ping_timeout"},{"line_number":114,"context_line":"        return call_until_true(ping_remote, timeout, 1)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _assign_floating_ips(self, server):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2BzA8%3D","line":113,"updated":"2014-01-22 02:20:39.000000000","message":"This is a new file so I say you should leave the legacy config stuff behind. Use CONF instead of \u0027self.config\u0027 everywhere.","commit_id":"77703a135cb042a48d58c3216a29020113793133"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"43d7f7d95ed51a347b11e72f3dd600e5c519ba2b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"                return not should_succeed"},{"line_number":111,"context_line":"            return should_succeed"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        timeout \u003d self.config.compute.ping_timeout"},{"line_number":114,"context_line":"        return call_until_true(ping_remote, timeout, 1)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _assign_floating_ips(self, server):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F95tk%3D","line":113,"in_reply_to":"AAAAUH%2F%2BzA8%3D","updated":"2014-02-02 02:33:54.000000000","message":"+1","commit_id":"77703a135cb042a48d58c3216a29020113793133"}],"tempest/scenario/test_network_vpn.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"b1d8899aa5a9a67830f3e0caf15f8cc4b3e1aa69","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        ssh_handle_west \u003d self._ssh_to_server(self.west_server.floating_ip,"},{"line_number":316,"context_line":"                                              private_key\u003dself.west_server."},{"line_number":317,"context_line":"                                              keypair.private_key)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        # check whether the servers can ping each another"},{"line_number":320,"context_line":"        self._check_connectivity(ssh_handle_west, self.east_server.private_ip)"},{"line_number":321,"context_line":"        self._check_connectivity(ssh_handle_east, self.west_server.private_ip)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FcK8%3D","line":318,"updated":"2014-01-13 21:37:26.000000000","message":"We should make sure the ipsec connection is ACTIVE before check connectivility","commit_id":"fbf5ce86c3cb9d13aed61372227410e7c696514c"},{"author":{"_account_id":8861,"name":"Joris Roovers","email":"jroovers@cisco.com","username":"joris.roovers"},"change_message_id":"1e8b26dd8ba899a47c5bca3d3d27ae964a0b30fb","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        ssh_handle_west \u003d self._ssh_to_server(self.west_server.floating_ip,"},{"line_number":316,"context_line":"                                              private_key\u003dself.west_server."},{"line_number":317,"context_line":"                                              keypair.private_key)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        # check whether the servers can ping each another"},{"line_number":320,"context_line":"        self._check_connectivity(ssh_handle_west, self.east_server.private_ip)"},{"line_number":321,"context_line":"        self._check_connectivity(ssh_handle_east, self.west_server.private_ip)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FaWU%3D","line":318,"in_reply_to":"AAAAUH%2F%2FcK8%3D","updated":"2014-01-14 01:07:07.000000000","message":"Agreed. I\u0027m going to make a couple of other changes as well, didn\u0027t have time over the weekend, will take care of it tomorrow.","commit_id":"fbf5ce86c3cb9d13aed61372227410e7c696514c"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        cls.east_server \u003d None"},{"line_number":88,"context_line":"        cls.west_server \u003d None"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    # TODO(jroovers) the following methods are copied from"},{"line_number":91,"context_line":"    # test_cross_tentant_connectivity maybe we should push this down to"},{"line_number":92,"context_line":"    # NetworkScenarioTest"},{"line_number":93,"context_line":"    ###########################################################################"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrW4%3D","line":90,"updated":"2014-02-11 16:07:02.000000000","message":"please do.","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        }"},{"line_number":124,"context_line":"        floating_ip \u003d self.network_client.create_floatingip(body)"},{"line_number":125,"context_line":"        floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":126,"context_line":"        self.addCleanup(self.network_client.delete_floatingip, floating_ip["},{"line_number":127,"context_line":"            \u0027id\u0027])"},{"line_number":128,"context_line":"        self.floating_ips.setdefault(server, floating_ip)"},{"line_number":129,"context_line":"        return floating_ip"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrBs%3D","line":126,"updated":"2014-02-11 16:07:02.000000000","message":"addCleanup is only needed if you are using setUp() and tearDown()\nscenario tests currently use setUpClass() and tearDownClass() so what you need is self.set_resource(name, object) where object has object.delete()","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"0ea4e94379db7aefc213473b38351c762215d228","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def _setup_vpn_site(self, site_name, site_cidr):"},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        Sets up a VPN Site:"},{"line_number":152,"context_line":"            1. Create a network"},{"line_number":153,"context_line":"            2. Create a subnet"},{"line_number":154,"context_line":"            3. Create a router"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2F0VM%3D","line":151,"updated":"2014-02-10 16:30:36.000000000","message":"Are these resources released at the end of the test?","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            5. Get the external IP of the created router"},{"line_number":157,"context_line":"            6. Return a VPNSite object containing the site\u0027s name, network,"},{"line_number":158,"context_line":"            subnet, router and vpnservice resources."},{"line_number":159,"context_line":"        \"\"\""},{"line_number":160,"context_line":"        network_name_prefix \u003d \u0027vpn-%s-net-\u0027 % site_name"},{"line_number":161,"context_line":"        network \u003d self._create_network(self.tenant_id,"},{"line_number":162,"context_line":"                                       namestart\u003dnetwork_name_prefix)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrBE%3D","line":159,"updated":"2014-02-11 16:07:02.000000000","message":"why not use self._create_networks() to create network, router and subnet - it also takes care of cleanup","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        vpnservice \u003d self.network_client.create_vpnservice(body)"},{"line_number":187,"context_line":"        vpnservice \u003d vpnservice[\u0027vpnservice\u0027]"},{"line_number":188,"context_line":"        self.addCleanup(self.network_client.delete_vpnservice,"},{"line_number":189,"context_line":"                        vpnservice[\u0027id\u0027])"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        external_ip \u003d self._get_external_ip(router)"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2Fq%2BU%3D","line":189,"updated":"2014-02-11 16:07:02.000000000","message":"please look at tempest/api/network/common.py and consider createing DeletableVPNService","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        ports, selecting the first port that is owned by the given router and"},{"line_number":200,"context_line":"        returning the IP address associated to that port."},{"line_number":201,"context_line":"        \"\"\""},{"line_number":202,"context_line":"        ports \u003d self.network_client.list_ports()"},{"line_number":203,"context_line":"        ports \u003d ports[\u0027ports\u0027]"},{"line_number":204,"context_line":"        relevant_port \u003d [port for port in ports"},{"line_number":205,"context_line":"                         if port[\u0027device_owner\u0027] \u003d\u003d \u0027network:router_gateway\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrMY%3D","line":202,"updated":"2014-02-11 16:07:02.000000000","message":"there\u0027s already a list_ports() method in manager. just add **kwargs to it, and you can use self.list_ports(device_id\u003dXXX)\n\neven if you don\u0027t - network_client.list_ports(device_id\u003dXXX) will filter the results on the server side.","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        ports \u003d self.network_client.list_ports()"},{"line_number":203,"context_line":"        ports \u003d ports[\u0027ports\u0027]"},{"line_number":204,"context_line":"        relevant_port \u003d [port for port in ports"},{"line_number":205,"context_line":"                         if port[\u0027device_owner\u0027] \u003d\u003d \u0027network:router_gateway\u0027"},{"line_number":206,"context_line":"                         and port[\u0027device_id\u0027] \u003d\u003d router[\u0027id\u0027]][0]"},{"line_number":207,"context_line":"        return relevant_port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]"},{"line_number":208,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrGo%3D","line":205,"updated":"2014-02-11 16:07:02.000000000","message":"IMO device_owner is redundant if you are using device id.\n\nthe whole list filtering is unnecessary if you follow the above suggestion","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        self.east_server \u003d self._create_server_on_site(self.keypair, self.east)"},{"line_number":320,"context_line":"        self.west_server \u003d self._create_server_on_site(self.keypair, self.west)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def _run_before_checks(self):"},{"line_number":323,"context_line":"        \"\"\""},{"line_number":324,"context_line":"        Asserts the following check:"},{"line_number":325,"context_line":"            1. Servers in sites east and west cannot ping each other on their"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrNc%3D","line":322,"updated":"2014-02-11 16:07:02.000000000","message":"please rename to something more informative, like _verify_no_connectivity()","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            1. Servers in sites east and west cannot ping each other on their"},{"line_number":326,"context_line":"            private IPs."},{"line_number":327,"context_line":"        \"\"\""},{"line_number":328,"context_line":"        self.assertFalse(self._test_remote_connectivity("},{"line_number":329,"context_line":"            self.east_server.ssh_handle, self.west_server.private_ip))"},{"line_number":330,"context_line":"        self.assertFalse(self._test_remote_connectivity("},{"line_number":331,"context_line":"            self.west_server.ssh_handle, self.east_server.private_ip))"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrUo%3D","line":328,"updated":"2014-02-11 16:07:02.000000000","message":"since you are using _test_remote_connectivity() from cross_tenant scenario, please use should_succeed flag instead of assert true/false","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        self.assertFalse(self._test_remote_connectivity("},{"line_number":331,"context_line":"            self.west_server.ssh_handle, self.east_server.private_ip))"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def _run_after_checks(self):"},{"line_number":334,"context_line":"        \"\"\""},{"line_number":335,"context_line":"        Asserts the following checks:"},{"line_number":336,"context_line":"            1. The status of the ipsec site connection is ACTIVE for both"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrNI%3D","line":333,"updated":"2014-02-11 16:07:02.000000000","message":"same issue - please rename method","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df16708770596f404b36d5886a399f2ee5618ff3","unresolved":false,"context_lines":[{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        # check whether the servers can ping each another"},{"line_number":351,"context_line":"        self.assertTrue(self._test_remote_connectivity("},{"line_number":352,"context_line":"            self.east_server.ssh_handle, self.west_server.private_ip))"},{"line_number":353,"context_line":"        self.assertTrue(self._test_remote_connectivity("},{"line_number":354,"context_line":"            self.west_server.ssh_handle, self.east_server.private_ip))"},{"line_number":355,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2FrS4%3D","line":352,"updated":"2014-02-11 16:07:02.000000000","message":"see above","commit_id":"fb34086625a110a5887fabf6beafda8ef0d9a83d"}]}
