)]}'
{"tempest/api/network/base.py":[{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"b8f424fdbf7ef8552dd1612be22c14694ee7559f","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":"    def create_ipsecpolicy(cls, name):"},{"line_number":337,"context_line":"        \"\"\"Wrapper utility that returns a test ipsec policy.\"\"\""},{"line_number":338,"context_line":"        resp, body \u003d cls.client.create_ipsecpolicy(name\u003dname)"},{"line_number":339,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":340,"context_line":"        cls.ipsecpolicies.append(ipsecpolicy)"},{"line_number":341,"context_line":"        return ipsecpolicy"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2FgMk%3D","line":338,"updated":"2014-04-21 06:27:40.000000000","message":"unused variable \"resp\"","commit_id":"771e26f938e0a3ba649d76a47c2a6505133667f8"}],"tempest/api/network/test_vpnaas_extensions.py":[{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            self.assertNotIn(ike_policy_id, ike_id_list)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _delete_ipsec_policy(self, ipsec_policy_id):"},{"line_number":73,"context_line":"        resp, body \u003d self.client.delete_ipsecpolicy(ipsec_policy_id)"},{"line_number":74,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":75,"context_line":"        resp, body \u003d self.client.list_ipsecpolicies()"},{"line_number":76,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNSg%3D","line":73,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"body\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.assertNotIn(ipsec_policy_id, ipsecpolicies)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def _delete_vpn_service(self, vpn_service_id):"},{"line_number":80,"context_line":"        resp, body \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":81,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":82,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":83,"context_line":"        resp, body \u003d self.client.list_vpnservices()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNSQ%3D","line":80,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"body\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        resp, body \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":81,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":82,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":83,"context_line":"        resp, body \u003d self.client.list_vpnservices()"},{"line_number":84,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":85,"context_line":"        self.assertNotIn(vpn_service_id, vpn_services)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNR8%3D","line":83,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"resp\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                        ipsecpolicy[\u0027id\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # Assert that created ipsec policy is found in API list call"},{"line_number":110,"context_line":"        resp, body \u003d self.client.list_ipsecpolicies()"},{"line_number":111,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"},{"line_number":112,"context_line":"        self.assertIsNotNone(ipsecpolicy[\u0027id\u0027])"},{"line_number":113,"context_line":"        self.assertIn(ipsecpolicy[\u0027id\u0027], ipsecpolicies)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNRM%3D","line":110,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"resp\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        self.addCleanup(self.admin_client.delete_vpnservice, vpnservice[\u0027id\u0027])"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        # Assert that created vpnservice is found in API list call"},{"line_number":131,"context_line":"        resp, body \u003d self.client.list_vpnservices()"},{"line_number":132,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":133,"context_line":"        self.assertIsNotNone(vpnservice[\u0027id\u0027])"},{"line_number":134,"context_line":"        self.assertIn(vpnservice[\u0027id\u0027], vpn_services)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNPk%3D","line":131,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"resp\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.addCleanup(self.admin_client.delete_ikepolicy, ikepolicy[\u0027id\u0027])"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        # Assert that created ike policy is found in API list call"},{"line_number":152,"context_line":"        resp, body \u003d self.client.list_ikepolicies()"},{"line_number":153,"context_line":"        ikepolicies \u003d [ikp[\u0027id\u0027] for ikp in body[\u0027ikepolicies\u0027]]"},{"line_number":154,"context_line":"        self.assertIsNotNone(ikepolicy[\u0027id\u0027])"},{"line_number":155,"context_line":"        self.assertIn(ikepolicy[\u0027id\u0027], ikepolicies)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNPE%3D","line":152,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"resp\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":236,"context_line":"                   \u0027ike_version\u0027: ike_version,"},{"line_number":237,"context_line":"                   \u0027pfs\u0027: pfs,"},{"line_number":238,"context_line":"                   \u0027lifetime\u0027: lifetime}"},{"line_number":239,"context_line":"        resp, body \u003d self.client.update_ikepolicy(ikepolicy[\u0027id\u0027], **new_ike)"},{"line_number":240,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":241,"context_line":"        # Confirm that update was successful by verifying using \u0027show\u0027"},{"line_number":242,"context_line":"        _, body \u003d self.client.show_ikepolicy(ikepolicy[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNOU%3D","line":239,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"body\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        self.assertEqual(ike_policy[\u0027lifetime\u0027], lifetime)"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        # Verification of ike policy delete"},{"line_number":253,"context_line":"        resp, body \u003d self.client.delete_ikepolicy(ikepolicy[\u0027id\u0027])"},{"line_number":254,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":255,"context_line":"        resp, body \u003d self.client.list_ikepolicies()"},{"line_number":256,"context_line":"        ikepolicies \u003d [ikp[\u0027id\u0027] for ikp in body[\u0027ikepolicies\u0027]]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNOE%3D","line":253,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"body\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        # Verification of ike policy delete"},{"line_number":253,"context_line":"        resp, body \u003d self.client.delete_ikepolicy(ikepolicy[\u0027id\u0027])"},{"line_number":254,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":255,"context_line":"        resp, body \u003d self.client.list_ikepolicies()"},{"line_number":256,"context_line":"        ikepolicies \u003d [ikp[\u0027id\u0027] for ikp in body[\u0027ikepolicies\u0027]]"},{"line_number":257,"context_line":"        self.assertNotIn(ike_policy[\u0027id\u0027], ikepolicies)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNNs%3D","line":255,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"resp\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"8ec910684cda5bb0d0e13b10d4cc36767d34ec91","unresolved":false,"context_lines":[{"line_number":316,"context_line":"            \u0027pfs\u0027: pfs,"},{"line_number":317,"context_line":"            \u0027lifetime\u0027: lifetime"},{"line_number":318,"context_line":"        }"},{"line_number":319,"context_line":"        resp, body \u003d self.client.update_ipsecpolicy(ipsecpolicy[\u0027id\u0027],"},{"line_number":320,"context_line":"                                                    **new_policy)"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BNNk%3D","line":319,"updated":"2014-03-28 12:28:57.000000000","message":"unused variable \"body\"","commit_id":"e48aeb2de88688d3b7bb40b93a9548665e107dda"},{"author":{"_account_id":8824,"name":"Sergey Murashov","email":"smurashov@mirantis.com","username":"SergeyMurashov"},"change_message_id":"b8f424fdbf7ef8552dd1612be22c14694ee7559f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _delete_ipsec_policy(self, ipsec_policy_id):"},{"line_number":74,"context_line":"        resp, _ \u003d self.client.delete_ipsecpolicy(ipsec_policy_id)"},{"line_number":75,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":76,"context_line":"        resp, body \u003d self.client.list_ipsecpolicies()"},{"line_number":77,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"},{"line_number":78,"context_line":"        self.assertNotIn(ipsec_policy_id, ipsecpolicies)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2FgMg%3D","line":76,"updated":"2014-04-21 06:27:40.000000000","message":"unused variable \"resp\"","commit_id":"771e26f938e0a3ba649d76a47c2a6505133667f8"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"34ba2a8fa43b35070ca05b242909c4aba6844602","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        # Confirm that update was successful by verifying using \u0027show\u0027"},{"line_number":243,"context_line":"        _, body \u003d self.client.show_ikepolicy(ikepolicy[\u0027id\u0027])"},{"line_number":244,"context_line":"        ike_policy \u003d body[\u0027ikepolicy\u0027]"},{"line_number":245,"context_line":"        self.assertEqual(ike_policy[\u0027name\u0027], name)"},{"line_number":246,"context_line":"        self.assertEqual(ike_policy[\u0027description\u0027], description)"},{"line_number":247,"context_line":"        self.assertEqual(ike_policy[\u0027encryption_algorithm\u0027],"},{"line_number":248,"context_line":"                         encryption_algorithm)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXX%2F%2FwlY%3D","line":245,"updated":"2014-04-28 07:37:53.000000000","message":"I think this could be checked in this way:\n\n      for key, value in new_ike.iteritems():\n           self.assertEqual(value, ike_policy[key])","commit_id":"6e9a2c69726cf8dffcb210ab63718cde3a6ac5a9"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"34ba2a8fa43b35070ca05b242909c4aba6844602","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                         encryption_algorithm)"},{"line_number":249,"context_line":"        self.assertEqual(ike_policy[\u0027ike_version\u0027], ike_version)"},{"line_number":250,"context_line":"        self.assertEqual(ike_policy[\u0027pfs\u0027], pfs)"},{"line_number":251,"context_line":"        self.assertEqual(ike_policy[\u0027lifetime\u0027], lifetime)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        # Verification of ike policy delete"},{"line_number":254,"context_line":"        resp, _ \u003d self.client.delete_ikepolicy(ikepolicy[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXX%2F%2Fwjw%3D","line":251,"updated":"2014-04-28 07:37:53.000000000","message":"Wrong order of arguments in assertEqual should be (expected, actual).","commit_id":"6e9a2c69726cf8dffcb210ab63718cde3a6ac5a9"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"34ba2a8fa43b35070ca05b242909c4aba6844602","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        self.assertEqual(ipsecpolicy[\u0027encryption_algorithm\u0027],"},{"line_number":333,"context_line":"                         encryption_algorithm)"},{"line_number":334,"context_line":"        self.assertEqual(ipsecpolicy[\u0027pfs\u0027], pfs)"},{"line_number":335,"context_line":"        self.assertEqual(ipsecpolicy[\u0027lifetime\u0027], lifetime)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":338,"context_line":"    def test_show_ipsec_policy(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXX%2F%2Fwjc%3D","line":335,"updated":"2014-04-28 07:37:53.000000000","message":"The same comments as for test_create_update_delete_ike_policy","commit_id":"6e9a2c69726cf8dffcb210ab63718cde3a6ac5a9"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"34ba2a8fa43b35070ca05b242909c4aba6844602","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        self.assertEqual(ipsecpolicy[\u0027name\u0027], self.ipsecpolicy[\u0027name\u0027])"},{"line_number":345,"context_line":"        self.assertEqual(ipsecpolicy[\u0027description\u0027],"},{"line_number":346,"context_line":"                         self.ipsecpolicy[\u0027description\u0027])"},{"line_number":347,"context_line":"        self.assertEqual(ipsecpolicy[\u0027transform_protocol\u0027], \"esp\")"},{"line_number":348,"context_line":"        self.assertEqual(ipsecpolicy[\u0027encapsulation_mode\u0027], \"tunnel\")"},{"line_number":349,"context_line":"        self.assertEqual(ipsecpolicy[\u0027auth_algorithm\u0027], \"sha1\")"},{"line_number":350,"context_line":"        self.assertEqual(ipsecpolicy[\u0027encryption_algorithm\u0027], \"aes-128\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXX%2F%2Fwig%3D","line":347,"updated":"2014-04-28 07:37:53.000000000","message":"Why here and further you don\u0027t check the same self.ipsecpolicy parameters?","commit_id":"6e9a2c69726cf8dffcb210ab63718cde3a6ac5a9"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"34ba2a8fa43b35070ca05b242909c4aba6844602","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        self.assertEqual(ipsecpolicy[\u0027pfs\u0027], \"group5\")"},{"line_number":352,"context_line":"        self.assertEqual(ipsecpolicy[\u0027lifetime\u0027], {\u0027units\u0027: \"seconds\","},{"line_number":353,"context_line":"                                                   \u0027value\u0027: 3600})"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"class VPNaaSTestXML(VPNaaSTestJSON):"},{"line_number":357,"context_line":"    _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXX%2F%2Fwi4%3D","line":354,"updated":"2014-04-28 07:37:53.000000000","message":"The same comments as for test_create_update_delete_ike_policy.","commit_id":"6e9a2c69726cf8dffcb210ab63718cde3a6ac5a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a20b1272277e7643e5ef0c999c2408bcbde40dee","unresolved":false,"context_lines":[{"line_number":21,"context_line":"CONF \u003d config.CONF"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class VPNaaSTestJSON(base.BaseAdminNetworkTest):"},{"line_number":25,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_603756b1","line":24,"updated":"2014-05-26 11:06:17.000000000","message":"Please elaborate this change.\nI think existing test should be tested with non admin .","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":21,"context_line":"CONF \u003d config.CONF"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class VPNaaSTestJSON(base.BaseAdminNetworkTest):"},{"line_number":25,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_c7659146","line":24,"in_reply_to":"5adbc538_603756b1","updated":"2014-05-28 00:18:47.000000000","message":"Ghanshyam,\n\nFirst of all, thanks for your comments. As you can see below in this patchset, I am creating vpn service, ipsec policy, etc., for a tenant other than the one running the test. That is why I the test needs admin privileges","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                                               cls.router[\u0027id\u0027])"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        cls.ikepolicy \u003d cls.create_ikepolicy("},{"line_number":52,"context_line":"            data_utils.rand_name(\"ike-policy-\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        cls.ipsecpolicy \u003d cls.create_ipsecpolicy("},{"line_number":55,"context_line":"            data_utils.rand_name(\"ipsec-policy-\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_77aabd71","line":52,"updated":"2014-05-26 12:34:44.000000000","message":"Trailing \u0027-\u0027 is useless. rand_name() already adds a \u0027-\u0027","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                                               cls.router[\u0027id\u0027])"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        cls.ikepolicy \u003d cls.create_ikepolicy("},{"line_number":52,"context_line":"            data_utils.rand_name(\"ike-policy-\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        cls.ipsecpolicy \u003d cls.create_ipsecpolicy("},{"line_number":55,"context_line":"            data_utils.rand_name(\"ipsec-policy-\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_0a0f8031","line":52,"in_reply_to":"5adbc538_77aabd71","updated":"2014-05-28 00:18:47.000000000","message":"Jordan,\n\nFirst of all, thanks for your comments. Agree on this","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            data_utils.rand_name(\"ike-policy-\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        cls.ipsecpolicy \u003d cls.create_ipsecpolicy("},{"line_number":55,"context_line":"            data_utils.rand_name(\"ipsec-policy-\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _delete_ike_policy(self, ike_policy_id):"},{"line_number":58,"context_line":"        # Deletes a ike policy and verifies if it is deleted or not"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_d7b0f1df","line":55,"updated":"2014-05-26 12:34:44.000000000","message":"Trailing \u0027-\u0027 is useless. rand_name() already adds a \u0027-\u0027","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            data_utils.rand_name(\"ike-policy-\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        cls.ipsecpolicy \u003d cls.create_ipsecpolicy("},{"line_number":55,"context_line":"            data_utils.rand_name(\"ipsec-policy-\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _delete_ike_policy(self, ike_policy_id):"},{"line_number":58,"context_line":"        # Deletes a ike policy and verifies if it is deleted or not"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_28c5073c","line":55,"in_reply_to":"3ae8d1ca_2a135c5d","updated":"2014-06-01 21:48:17.000000000","message":"I have removed this to not duplicate work in this patchset https://review.openstack.org/#/c/47816","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            data_utils.rand_name(\"ike-policy-\"))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        cls.ipsecpolicy \u003d cls.create_ipsecpolicy("},{"line_number":55,"context_line":"            data_utils.rand_name(\"ipsec-policy-\"))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _delete_ike_policy(self, ike_policy_id):"},{"line_number":58,"context_line":"        # Deletes a ike policy and verifies if it is deleted or not"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_2a135c5d","line":55,"in_reply_to":"5adbc538_d7b0f1df","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _delete_ipsec_policy(self, ipsec_policy_id):"},{"line_number":74,"context_line":"        resp, _ \u003d self.client.delete_ipsecpolicy(ipsec_policy_id)"},{"line_number":75,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":76,"context_line":"        _, body \u003d self.client.list_ipsecpolicies()"},{"line_number":77,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"},{"line_number":78,"context_line":"        self.assertNotIn(ipsec_policy_id, ipsecpolicies)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_97dd8917","line":76,"updated":"2014-05-26 12:34:44.000000000","message":"Instead of listing + filtering ipsecpolicies, you should try to delete again the policy and assertRaises(NotFoundException).","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _delete_ipsec_policy(self, ipsec_policy_id):"},{"line_number":74,"context_line":"        resp, _ \u003d self.client.delete_ipsecpolicy(ipsec_policy_id)"},{"line_number":75,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":76,"context_line":"        _, body \u003d self.client.list_ipsecpolicies()"},{"line_number":77,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"},{"line_number":78,"context_line":"        self.assertNotIn(ipsec_policy_id, ipsecpolicies)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_e8ca3f4e","line":76,"in_reply_to":"3ae8d1ca_0aeea088","updated":"2014-06-01 21:48:17.000000000","message":"I have removed this method to not duplicate work in this patchset https://review.openstack.org/#/c/47816","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _delete_ipsec_policy(self, ipsec_policy_id):"},{"line_number":74,"context_line":"        resp, _ \u003d self.client.delete_ipsecpolicy(ipsec_policy_id)"},{"line_number":75,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":76,"context_line":"        _, body \u003d self.client.list_ipsecpolicies()"},{"line_number":77,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"},{"line_number":78,"context_line":"        self.assertNotIn(ipsec_policy_id, ipsecpolicies)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_0aeea088","line":76,"in_reply_to":"5adbc538_97dd8917","updated":"2014-05-28 00:18:47.000000000","message":"mhhhh. The point of this type of test is to exercise the api, right? The list operation exercises the api. How is that not as good as deleting a non existing resource? Both options exercise the api","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, _ \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":82,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":83,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":84,"context_line":"        _, body \u003d self.client.list_vpnservices()"},{"line_number":85,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":86,"context_line":"        self.assertNotIn(vpn_service_id, vpn_services)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_57db011b","line":84,"updated":"2014-05-26 12:34:44.000000000","message":"Instead of listing + filtering vpnservices, you should try to delete again the policy and assertRaises(NotFoundException).","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, _ \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":82,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":83,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":84,"context_line":"        _, body \u003d self.client.list_vpnservices()"},{"line_number":85,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":86,"context_line":"        self.assertNotIn(vpn_service_id, vpn_services)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_08c68b49","line":84,"in_reply_to":"3ae8d1ca_6a93a4fa","updated":"2014-06-01 21:48:17.000000000","message":"I have removed this method to not duplicate work in this patchset https://review.openstack.org/#/c/47816","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, _ \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":82,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":83,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":84,"context_line":"        _, body \u003d self.client.list_vpnservices()"},{"line_number":85,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":86,"context_line":"        self.assertNotIn(vpn_service_id, vpn_services)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_6a93a4fa","line":84,"in_reply_to":"5adbc538_57db011b","updated":"2014-05-28 00:18:47.000000000","message":"mhhhh. The point of this type of test is to exercise the api, right? The list operation exercises the api. How is that not as good as deleting a non existing resource? Both options exercise the api","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a20b1272277e7643e5ef0c999c2408bcbde40dee","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                                                         tenant_id\u003dtenant_id)"},{"line_number":127,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":128,"context_line":"        vpnservice \u003d body[\u0027vpnservice\u0027]"},{"line_number":129,"context_line":"        self.addCleanup(self.admin_client.delete_vpnservice, vpnservice[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Assert that created vpnservice is found in API list call"},{"line_number":132,"context_line":"        _, body \u003d self.client.list_vpnservices()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_2062aed8","line":129,"updated":"2014-05-26 11:06:17.000000000","message":"Please move addCleanup just after create request to avoid any resource leakage if exception happens in assertEqual or getting attributes from body","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                                                         tenant_id\u003dtenant_id)"},{"line_number":127,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":128,"context_line":"        vpnservice \u003d body[\u0027vpnservice\u0027]"},{"line_number":129,"context_line":"        self.addCleanup(self.admin_client.delete_vpnservice, vpnservice[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        # Assert that created vpnservice is found in API list call"},{"line_number":132,"context_line":"        _, body \u003d self.client.list_vpnservices()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_ca4f5891","line":129,"in_reply_to":"5adbc538_2062aed8","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a20b1272277e7643e5ef0c999c2408bcbde40dee","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                                       tenant_id\u003dtenant_id))"},{"line_number":148,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":149,"context_line":"        ikepolicy \u003d body[\u0027ikepolicy\u0027]"},{"line_number":150,"context_line":"        self.addCleanup(self.admin_client.delete_ikepolicy, ikepolicy[\u0027id\u0027])"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Assert that created ike policy is found in API list call"},{"line_number":153,"context_line":"        _, body \u003d self.client.list_ikepolicies()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_80a0e2f5","line":150,"updated":"2014-05-26 11:06:17.000000000","message":"ditto","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                                       tenant_id\u003dtenant_id))"},{"line_number":148,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":149,"context_line":"        ikepolicy \u003d body[\u0027ikepolicy\u0027]"},{"line_number":150,"context_line":"        self.addCleanup(self.admin_client.delete_ikepolicy, ikepolicy[\u0027id\u0027])"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Assert that created ike policy is found in API list call"},{"line_number":153,"context_line":"        _, body \u003d self.client.list_ikepolicies()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_0a186080","line":150,"in_reply_to":"5adbc538_80a0e2f5","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a20b1272277e7643e5ef0c999c2408bcbde40dee","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                                                   admin_state_up\u003dTrue)"},{"line_number":174,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":175,"context_line":"        vpnservice \u003d body[\u0027vpnservice\u0027]"},{"line_number":176,"context_line":"        self.addCleanup(self._delete_vpn_service, vpnservice[\u0027id\u0027])"},{"line_number":177,"context_line":"        # Assert if created vpnservices are not found in vpnservices list"},{"line_number":178,"context_line":"        resp, body \u003d self.client.list_vpnservices()"},{"line_number":179,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_00acd2ec","line":176,"updated":"2014-05-26 11:06:17.000000000","message":"ditto","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                                                   admin_state_up\u003dTrue)"},{"line_number":174,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":175,"context_line":"        vpnservice \u003d body[\u0027vpnservice\u0027]"},{"line_number":176,"context_line":"        self.addCleanup(self._delete_vpn_service, vpnservice[\u0027id\u0027])"},{"line_number":177,"context_line":"        # Assert if created vpnservices are not found in vpnservices list"},{"line_number":178,"context_line":"        resp, body \u003d self.client.list_vpnservices()"},{"line_number":179,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_2a0c3c42","line":176,"in_reply_to":"5adbc538_00acd2ec","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a20b1272277e7643e5ef0c999c2408bcbde40dee","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertEqual(self.vpnservice[\u0027tenant_id\u0027], vpnservice[\u0027tenant_id\u0027])"},{"line_number":201,"context_line":"        valid_status \u003d [\"ACTIVE\", \"DOWN\", \"BUILD\", \"ERROR\", \"PENDING_CREATE\","},{"line_number":202,"context_line":"                        \"PENDING_UPDATE\", \"PENDING_DELETE\"]"},{"line_number":203,"context_line":"        self.assertIn(vpnservice[\u0027status\u0027], valid_status)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":206,"context_line":"    def test_list_ike_policies(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_6082f653","line":203,"updated":"2014-05-26 11:06:17.000000000","message":"Order can be reversed (valid_status, vpnservice[\u0027status\u0027])","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertEqual(self.vpnservice[\u0027tenant_id\u0027], vpnservice[\u0027tenant_id\u0027])"},{"line_number":201,"context_line":"        valid_status \u003d [\"ACTIVE\", \"DOWN\", \"BUILD\", \"ERROR\", \"PENDING_CREATE\","},{"line_number":202,"context_line":"                        \"PENDING_UPDATE\", \"PENDING_DELETE\"]"},{"line_number":203,"context_line":"        self.assertIn(vpnservice[\u0027status\u0027], valid_status)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":206,"context_line":"    def test_list_ike_policies(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_e4dd1516","line":203,"in_reply_to":"3ae8d1ca_4a098830","updated":"2014-06-01 21:48:17.000000000","message":"On second thought, I will leave like this. For this to work, the list has to be the second argument in this assert","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self.assertEqual(self.vpnservice[\u0027tenant_id\u0027], vpnservice[\u0027tenant_id\u0027])"},{"line_number":201,"context_line":"        valid_status \u003d [\"ACTIVE\", \"DOWN\", \"BUILD\", \"ERROR\", \"PENDING_CREATE\","},{"line_number":202,"context_line":"                        \"PENDING_UPDATE\", \"PENDING_DELETE\"]"},{"line_number":203,"context_line":"        self.assertIn(vpnservice[\u0027status\u0027], valid_status)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":206,"context_line":"    def test_list_ike_policies(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_4a098830","line":203,"in_reply_to":"5adbc538_6082f653","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        self.addCleanup(self._delete_ike_policy, ikepolicy[\u0027id\u0027])"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        # Update IKE Policy"},{"line_number":228,"context_line":"        name \u003d data_utils.rand_name(\"New-IKE-\")"},{"line_number":229,"context_line":"        description \u003d \"Updated ike policy\""},{"line_number":230,"context_line":"        encryption_algorithm \u003d \"aes-256\""},{"line_number":231,"context_line":"        ike_version \u003d \"v2\""}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_f7032d71","line":228,"updated":"2014-05-26 12:34:44.000000000","message":"Trailing \u0027-\u0027 is useless. rand_name() already adds a \u0027-\u0027","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        self.addCleanup(self._delete_ike_policy, ikepolicy[\u0027id\u0027])"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        # Update IKE Policy"},{"line_number":228,"context_line":"        name \u003d data_utils.rand_name(\"New-IKE-\")"},{"line_number":229,"context_line":"        description \u003d \"Updated ike policy\""},{"line_number":230,"context_line":"        encryption_algorithm \u003d \"aes-256\""},{"line_number":231,"context_line":"        ike_version \u003d \"v2\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_6a064422","line":228,"in_reply_to":"5adbc538_f7032d71","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        _, body \u003d self.client.show_ikepolicy(ikepolicy[\u0027id\u0027])"},{"line_number":244,"context_line":"        ike_policy \u003d body[\u0027ikepolicy\u0027]"},{"line_number":245,"context_line":"        for key, value in new_ike.iteritems():"},{"line_number":246,"context_line":"            self.assertEqual(value, ike_policy[key])"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        # Verification of ike policy delete"},{"line_number":249,"context_line":"        resp, _ \u003d self.client.delete_ikepolicy(ikepolicy[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_b730c557","line":246,"updated":"2014-05-26 12:34:44.000000000","message":"You should assert that \u0027key\u0027 is in \u0027ike_policy\u0027 before checking the value.","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        _, body \u003d self.client.show_ikepolicy(ikepolicy[\u0027id\u0027])"},{"line_number":244,"context_line":"        ike_policy \u003d body[\u0027ikepolicy\u0027]"},{"line_number":245,"context_line":"        for key, value in new_ike.iteritems():"},{"line_number":246,"context_line":"            self.assertEqual(value, ike_policy[key])"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        # Verification of ike policy delete"},{"line_number":249,"context_line":"        resp, _ \u003d self.client.delete_ikepolicy(ikepolicy[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_8a03900e","line":246,"in_reply_to":"5adbc538_b730c557","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_create_update_delete_ipsec_policy(self):"},{"line_number":288,"context_line":"        # Creates a IPSec policy and sets up deletion"},{"line_number":289,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"},{"line_number":290,"context_line":"        description \u003d data_utils.rand_name(\u0027desc_\u0027)"},{"line_number":291,"context_line":"        resp, body \u003d self.client.create_ipsecpolicy(name\u003dname,"},{"line_number":292,"context_line":"                                                    description\u003ddescription)"},{"line_number":293,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_2a3e08b9","line":290,"updated":"2014-05-26 12:34:44.000000000","message":"description is optionnal and you are not using the variable below. This line should be removed IMO.","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_create_update_delete_ipsec_policy(self):"},{"line_number":288,"context_line":"        # Creates a IPSec policy and sets up deletion"},{"line_number":289,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"},{"line_number":290,"context_line":"        description \u003d data_utils.rand_name(\u0027desc_\u0027)"},{"line_number":291,"context_line":"        resp, body \u003d self.client.create_ipsecpolicy(name\u003dname,"},{"line_number":292,"context_line":"                                                    description\u003ddescription)"},{"line_number":293,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_48a9737a","line":290,"in_reply_to":"3ae8d1ca_9dff5801","updated":"2014-06-01 21:48:17.000000000","message":"I have removed this method to not duplicate work in this patchset https://review.openstack.org/#/c/47816","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_create_update_delete_ipsec_policy(self):"},{"line_number":288,"context_line":"        # Creates a IPSec policy and sets up deletion"},{"line_number":289,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"},{"line_number":290,"context_line":"        description \u003d data_utils.rand_name(\u0027desc_\u0027)"},{"line_number":291,"context_line":"        resp, body \u003d self.client.create_ipsecpolicy(name\u003dname,"},{"line_number":292,"context_line":"                                                    description\u003ddescription)"},{"line_number":293,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_9dff5801","line":290,"in_reply_to":"5adbc538_2a3e08b9","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a20b1272277e7643e5ef0c999c2408bcbde40dee","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":294,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":295,"context_line":"        self.assertIsNotNone(ipsecpolicy[\u0027id\u0027])"},{"line_number":296,"context_line":"        self.addCleanup(self._delete_ipsec_policy, ipsecpolicy[\u0027id\u0027])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # Update IPSec Policy and verify updated values using show"},{"line_number":299,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_a07cfe73","line":296,"updated":"2014-05-26 11:06:17.000000000","message":"ditto","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":294,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":295,"context_line":"        self.assertIsNotNone(ipsecpolicy[\u0027id\u0027])"},{"line_number":296,"context_line":"        self.addCleanup(self._delete_ipsec_policy, ipsecpolicy[\u0027id\u0027])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # Update IPSec Policy and verify updated values using show"},{"line_number":299,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_68b70fd9","line":296,"in_reply_to":"3ae8d1ca_bd041416","updated":"2014-06-01 21:48:17.000000000","message":"I have removed this method to not duplicate work in this patchset https://review.openstack.org/#/c/47816","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":294,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":295,"context_line":"        self.assertIsNotNone(ipsecpolicy[\u0027id\u0027])"},{"line_number":296,"context_line":"        self.addCleanup(self._delete_ipsec_policy, ipsecpolicy[\u0027id\u0027])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # Update IPSec Policy and verify updated values using show"},{"line_number":299,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_bd041416","line":296,"in_reply_to":"5adbc538_a07cfe73","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"2b08f99d56b1768f2a505bb3c4afdf99a885eeaa","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":332,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":333,"context_line":"        for key, value in self.ipsecpolicy.iteritems():"},{"line_number":334,"context_line":"            self.assertEqual(value, ipsecpolicy[key])"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"class VPNaaSTestXML(VPNaaSTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5adbc538_8a747c9d","line":334,"updated":"2014-05-26 12:34:44.000000000","message":"You should assert that \u0027key\u0027 is in \u0027ipsec_policy\u0027 before checking the value.","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4473e47dee4202bae430752fc72dd53b7cf2e2ef","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":332,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":333,"context_line":"        for key, value in self.ipsecpolicy.iteritems():"},{"line_number":334,"context_line":"            self.assertEqual(value, ipsecpolicy[key])"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"class VPNaaSTestXML(VPNaaSTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_88ba9bbe","line":334,"in_reply_to":"3ae8d1ca_fd0e9c33","updated":"2014-06-01 21:48:17.000000000","message":"I have removed this method to not duplicate work in this patchset https://review.openstack.org/#/c/47816","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"fb86139beb5c902d7eb169d9a55f48bf6b8c9432","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":332,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":333,"context_line":"        for key, value in self.ipsecpolicy.iteritems():"},{"line_number":334,"context_line":"            self.assertEqual(value, ipsecpolicy[key])"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"class VPNaaSTestXML(VPNaaSTestJSON):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_fd0e9c33","line":334,"in_reply_to":"5adbc538_8a747c9d","updated":"2014-05-28 00:18:47.000000000","message":"Agree","commit_id":"f51e51d36332f58de62770943c711843f4d2120c"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_admin_create_ipsec_policy_for_tenant(self):"},{"line_number":90,"context_line":"        tenant_id \u003d self._get_tenant_id()"},{"line_number":91,"context_line":"        # Create IPSec policy for the newly created tenant"},{"line_number":92,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"},{"line_number":93,"context_line":"        resp, body \u003d (self.admin_client."},{"line_number":94,"context_line":"                      create_ipsecpolicy(name\u003dname, tenant_id\u003dtenant_id))"},{"line_number":95,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_da5537c7","line":92,"updated":"2014-06-02 12:28:15.000000000","message":"You have removed dash in line 52, but you keep it here and in other places. I don\u0027t understand :)","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        name \u003d data_utils.rand_name(\u0027ipsec-policy-\u0027)"},{"line_number":93,"context_line":"        resp, body \u003d (self.admin_client."},{"line_number":94,"context_line":"                      create_ipsecpolicy(name\u003dname, tenant_id\u003dtenant_id))"},{"line_number":95,"context_line":"        ipsecpolicy \u003d body[\u0027ipsecpolicy\u0027]"},{"line_number":96,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":97,"context_line":"        self.addCleanup(self.admin_client.delete_ipsecpolicy,"},{"line_number":98,"context_line":"                        ipsecpolicy[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_bfd69dc1","line":95,"updated":"2014-06-02 12:28:15.000000000","message":"First of all, you should check response status code. Put L96 in front of L95.","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        # Assert that created ipsec policy is found in API list call"},{"line_number":101,"context_line":"        _, body \u003d self.client.list_ipsecpolicies()"},{"line_number":102,"context_line":"        ipsecpolicies \u003d [policy[\u0027id\u0027] for policy in body[\u0027ipsecpolicies\u0027]]"},{"line_number":103,"context_line":"        self.assertIsNotNone(ipsecpolicy[\u0027id\u0027])"},{"line_number":104,"context_line":"        self.assertIn(ipsecpolicy[\u0027id\u0027], ipsecpolicies)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_ff2ae58e","line":103,"updated":"2014-06-02 12:28:15.000000000","message":"Maybe, put this check in front of self.addCleanup(...) (L97). You pass ipsecpolicy[\u0027id\u0027] to this method.","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            tenant_id\u003dtenant_id)"},{"line_number":118,"context_line":"        vpnservice \u003d body[\u0027vpnservice\u0027]"},{"line_number":119,"context_line":"        self.addCleanup(self.admin_client.delete_vpnservice, vpnservice[\u0027id\u0027])"},{"line_number":120,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # Assert that created vpnservice is found in API list call"},{"line_number":123,"context_line":"        _, body \u003d self.client.list_vpnservices()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_baaa2bd0","line":120,"updated":"2014-06-02 12:28:15.000000000","message":"ditto","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        # Assert that created vpnservice is found in API list call"},{"line_number":123,"context_line":"        _, body \u003d self.client.list_vpnservices()"},{"line_number":124,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":125,"context_line":"        self.assertIsNotNone(vpnservice[\u0027id\u0027])"},{"line_number":126,"context_line":"        self.assertIn(vpnservice[\u0027id\u0027], vpn_services)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_5a7da76d","line":125,"updated":"2014-06-02 12:28:15.000000000","message":"ditto","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                                       tenant_id\u003dtenant_id))"},{"line_number":139,"context_line":"        ikepolicy \u003d body[\u0027ikepolicy\u0027]"},{"line_number":140,"context_line":"        self.addCleanup(self.admin_client.delete_ikepolicy, ikepolicy[\u0027id\u0027])"},{"line_number":141,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        # Assert that created ike policy is found in API list call"},{"line_number":144,"context_line":"        _, body \u003d self.client.list_ikepolicies()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_da90d797","line":141,"updated":"2014-06-02 12:28:15.000000000","message":"ditto","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # Assert that created ike policy is found in API list call"},{"line_number":144,"context_line":"        _, body \u003d self.client.list_ikepolicies()"},{"line_number":145,"context_line":"        ikepolicies \u003d [ikp[\u0027id\u0027] for ikp in body[\u0027ikepolicies\u0027]]"},{"line_number":146,"context_line":"        self.assertIsNotNone(ikepolicy[\u0027id\u0027])"},{"line_number":147,"context_line":"        self.assertIn(ikepolicy[\u0027id\u0027], ikepolicies)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_1aea3f0f","line":146,"updated":"2014-06-02 12:28:15.000000000","message":"ditto","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"83a73ddb6f52886b6874bd0d8e9bf1fa6c623def","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                                                   admin_state_up\u003dTrue)"},{"line_number":165,"context_line":"        vpnservice \u003d body[\u0027vpnservice\u0027]"},{"line_number":166,"context_line":"        self.addCleanup(self._delete_vpn_service, vpnservice[\u0027id\u0027])"},{"line_number":167,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":168,"context_line":"        # Assert if created vpnservices are not found in vpnservices list"},{"line_number":169,"context_line":"        resp, body \u003d self.client.list_vpnservices()"},{"line_number":170,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_3aed3b26","line":167,"updated":"2014-06-02 12:28:15.000000000","message":"ditto","commit_id":"380a9b65ffb5762033e985bcb67aca5e7793ec72"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"c719bc581638c63cfd3781ed17eb7e05a1777ed0","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        resp, _ \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":72,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":73,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":74,"context_line":"        _, body \u003d self.client.list_vpnservices()"},{"line_number":75,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":76,"context_line":"        self.assertNotIn(vpn_service_id, vpn_services)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_50d5fee2","line":74,"updated":"2014-06-05 18:37:42.000000000","message":"Maybe, It will be better to use self.assertRaises(...) here.","commit_id":"22d9a0825e9c776697726c81d14e040d47c62d6f"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"855aa2e080d63c0fa9ac6d1a322cf529c00a4afe","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        resp, _ \u003d self.client.delete_vpnservice(vpn_service_id)"},{"line_number":72,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":73,"context_line":"        # Asserting if vpn service is found in the list after deletion"},{"line_number":74,"context_line":"        _, body \u003d self.client.list_vpnservices()"},{"line_number":75,"context_line":"        vpn_services \u003d [vs[\u0027id\u0027] for vs in body[\u0027vpnservices\u0027]]"},{"line_number":76,"context_line":"        self.assertNotIn(vpn_service_id, vpn_services)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_09b8ac28","line":74,"in_reply_to":"1ae5cdf2_50d5fee2","updated":"2014-06-05 23:04:09.000000000","message":"mhhhh. The point of this type of test is to exercise the api, right? The list operation exercises the api. How is that not as good as deleting a non existing resource? Both options exercise the api. Different approaches to the same end, IMO","commit_id":"22d9a0825e9c776697726c81d14e040d47c62d6f"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"c719bc581638c63cfd3781ed17eb7e05a1777ed0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        tenant_id \u003d self._get_tenant_id()"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        # Create vpn service for the newly created tenant"},{"line_number":111,"context_line":"        name \u003d data_utils.rand_name(\u0027vpn-service-\u0027)"},{"line_number":112,"context_line":"        resp, body \u003d self.admin_client.create_vpnservice("},{"line_number":113,"context_line":"            subnet_id\u003dself.subnet[\u0027id\u0027],"},{"line_number":114,"context_line":"            router_id\u003dself.router[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_1093765b","line":111,"updated":"2014-06-05 18:37:42.000000000","message":"You have removed dash in line 52 but you use it here :)","commit_id":"22d9a0825e9c776697726c81d14e040d47c62d6f"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"c719bc581638c63cfd3781ed17eb7e05a1777ed0","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        ike_version \u003d \"v2\""},{"line_number":223,"context_line":"        pfs \u003d \"group14\""},{"line_number":224,"context_line":"        lifetime \u003d {\u0027units\u0027: \"seconds\", \u0027value\u0027: 2000}"},{"line_number":225,"context_line":"        new_ike \u003d {\u0027name\u0027: name,"},{"line_number":226,"context_line":"                   \u0027description\u0027: description,"},{"line_number":227,"context_line":"                   \u0027encryption_algorithm\u0027: encryption_algorithm,"},{"line_number":228,"context_line":"                   \u0027ike_version\u0027: ike_version,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_302eb2a5","line":225,"updated":"2014-06-05 18:37:42.000000000","message":"I think there is no need to create new variables above. You can remove L219-224 and write it like this\n\n        new_ike \u003d {\n            \u0027name\u0027: data_utils.rand_name(\"New-IKE\"),\n            \u0027description\u0027: \"Updated ike policy\",\n            \u0027encryption_algorithm\u0027: \"aes-256\",\n            \u0027ike_version\u0027: \"v2\",\n            \u0027pfs\u0027: \"group14\",\n            \u0027lifetime\u0027: {\n                \u0027units\u0027: \"seconds\",\n                \u0027value\u0027: 2000\n            }\n        }","commit_id":"22d9a0825e9c776697726c81d14e040d47c62d6f"}]}
