)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"5098bb6d8b489c6e4b6bc7a36d3506e08e4adc50","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Port  API Tests Enhancements"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add function to update port with security groups"},{"line_number":10,"context_line":"   -Function take list of security groups name"},{"line_number":11,"context_line":"    as parameter"},{"line_number":12,"context_line":"   -Create security group based on the names in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa98f980_295b4588","line":9,"updated":"2014-09-10 07:29:57.000000000","message":"nit: since you\u0027ve written this already, maybe paste it to function docstring as well?","commit_id":"533c3275b32af1eb07f68a4b135c4ae488a8a387"}],"tempest/api/network/test_ports.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":263,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":264,"context_line":"        self.create_subnet(self.network)"},{"line_number":265,"context_line":"        resp, body \u003d self.admin_client.create_port(**post_body)"},{"line_number":266,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_0f8f6476","line":265,"updated":"2014-07-17 12:41:51.000000000","message":"Why do you need the admin_client here ? self.create_port or self.client.create_port should work here.\n\nIn general, I think it\u0027s best practice to use admin clients only when admin priviledge is required.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"65e5d12a0f674aa8ed736f8f2939d7d11cb10312","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":263,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":264,"context_line":"        self.create_subnet(self.network)"},{"line_number":265,"context_line":"        resp, body \u003d self.admin_client.create_port(**post_body)"},{"line_number":266,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_4f307c07","line":265,"in_reply_to":"baada198_0f8f6476","updated":"2014-07-17 12:56:38.000000000","message":"+1 Updating security group does not require admin user. I\u0027d suggest moving these tests to PortsTest class","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":263,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":264,"context_line":"        self.create_subnet(self.network)"},{"line_number":265,"context_line":"        resp, body \u003d self.admin_client.create_port(**post_body)"},{"line_number":266,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_a861fcd4","line":265,"in_reply_to":"baada198_0f8f6476","updated":"2014-07-17 20:31:00.000000000","message":"Thanks for the review :\nI have update the test and moved the test from admin to\nclass PortsTestJSON(base.BaseNetworkTest)\nUpdated all the operation from admin priviledges to non admin\nresp, body \u003d self.client.create_port(**post_body)","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":263,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":264,"context_line":"        self.create_subnet(self.network)"},{"line_number":265,"context_line":"        resp, body \u003d self.admin_client.create_port(**post_body)"},{"line_number":266,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_08858858","line":265,"in_reply_to":"baada198_4f307c07","updated":"2014-07-17 20:31:00.000000000","message":"Thanks for the review :\nI have update the test and moved the test from admin to\nclass PortsTestJSON(base.BaseNetworkTest)\nUpdated all the operation from admin priviledges to non admin\nself.client.create_port(**post_body)\nself.client.create_security_group(name\u003dname)","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"},{"line_number":269,"context_line":"        name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":270,"context_line":"        resp, group_create_body \u003d self.admin_client.create_security_group("},{"line_number":271,"context_line":"            name\u003dname)"},{"line_number":272,"context_line":"        security_group \u003d group_create_body[\u0027security_group\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_8f40d408","line":269,"updated":"2014-07-17 12:41:51.000000000","message":"Useless trailing \u0027-\u0027. See the implementation of rand_name()","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"},{"line_number":269,"context_line":"        name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":270,"context_line":"        resp, group_create_body \u003d self.admin_client.create_security_group("},{"line_number":271,"context_line":"            name\u003dname)"},{"line_number":272,"context_line":"        security_group \u003d group_create_body[\u0027security_group\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_e8e85418","line":269,"in_reply_to":"baada198_8f40d408","updated":"2014-07-17 20:31:00.000000000","message":"Update the  name","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"},{"line_number":269,"context_line":"        name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":270,"context_line":"        resp, group_create_body \u003d self.admin_client.create_security_group("},{"line_number":271,"context_line":"            name\u003dname)"},{"line_number":272,"context_line":"        security_group \u003d group_create_body[\u0027security_group\u0027]"},{"line_number":273,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_efd6b052","line":270,"updated":"2014-07-17 12:41:51.000000000","message":"Why do you need the admin_client here ?","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":268,"context_line":"        # Create a security group"},{"line_number":269,"context_line":"        name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":270,"context_line":"        resp, group_create_body \u003d self.admin_client.create_security_group("},{"line_number":271,"context_line":"            name\u003dname)"},{"line_number":272,"context_line":"        security_group \u003d group_create_body[\u0027security_group\u0027]"},{"line_number":273,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_88d7d84e","line":270,"in_reply_to":"baada198_efd6b052","updated":"2014-07-17 20:31:00.000000000","message":"Updated the call :\nself.client.create_security_group(name\u003dname)","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        resp, body \u003d self.admin_client.update_port("},{"line_number":279,"context_line":"            port[\u0027id\u0027], **update_body)"},{"line_number":280,"context_line":"        # Verify the security group updated to port"},{"line_number":281,"context_line":"        self.addCleanup(self.admin_client.delete_security_group,"},{"line_number":282,"context_line":"            security_group[\u0027id\u0027])"},{"line_number":283,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":284,"context_line":"        resp, body \u003d self.admin_client.show_port(port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_af5af8ef","line":281,"updated":"2014-07-17 12:41:51.000000000","message":"This should be put higher. Right after line 273.\n\nIn general, we need to add a cleanup mechanism *just after * the resource has been created.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        resp, body \u003d self.admin_client.update_port("},{"line_number":279,"context_line":"            port[\u0027id\u0027], **update_body)"},{"line_number":280,"context_line":"        # Verify the security group updated to port"},{"line_number":281,"context_line":"        self.addCleanup(self.admin_client.delete_security_group,"},{"line_number":282,"context_line":"            security_group[\u0027id\u0027])"},{"line_number":283,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":284,"context_line":"        resp, body \u003d self.admin_client.show_port(port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_28ca4ca1","line":281,"in_reply_to":"baada198_af5af8ef","updated":"2014-07-17 20:31:00.000000000","message":"Updated the same:\nresp, group_create_body \u003d self.client.create_security_group(name\u003dname)\nself.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])\nself.addCleanup(self.client.delete_security_group,\n       group_create_body[\u0027security_group\u0027][\u0027id\u0027])","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"ef505ecf27e318b05c7acf21ca49895908977c58","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":287,"context_line":"        self.assertEqual(port_show[\u0027security_groups\u0027],"},{"line_number":288,"context_line":"                         security_group_list)"},{"line_number":289,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_ef9cf05d","line":289,"updated":"2014-07-17 12:43:26.000000000","message":"Please, add self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027]) and self.addCleanup(self.admin_client.delete_security_group, security_group[\u0027id\u0027]) after checking status after creation.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":287,"context_line":"        self.assertEqual(port_show[\u0027security_groups\u0027],"},{"line_number":288,"context_line":"                         security_group_list)"},{"line_number":289,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_2f1428e8","line":289,"updated":"2014-07-17 12:41:51.000000000","message":"This should be put higher. Right after line 266.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":287,"context_line":"        self.assertEqual(port_show[\u0027security_groups\u0027],"},{"line_number":288,"context_line":"                         security_group_list)"},{"line_number":289,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_a8bd7c04","line":289,"in_reply_to":"baada198_2f1428e8","updated":"2014-07-17 20:31:00.000000000","message":"Updated the same:\nself.client.create_port(**post_body)\nself.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])\n        port \u003d body[\u0027port\u0027]\nself.addCleanup(self.client.delete_port, port[\u0027id\u0027])","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":287,"context_line":"        self.assertEqual(port_show[\u0027security_groups\u0027],"},{"line_number":288,"context_line":"                         security_group_list)"},{"line_number":289,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_a86bbc83","line":289,"in_reply_to":"baada198_ef9cf05d","updated":"2014-07-17 20:31:00.000000000","message":"Thanks for the review\n\nUpdated the same:\nFor security group:\nself.client.create_security_group(name\u003dname)\nself.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])\nself.addCleanup(self.client.delete_security_group,\n            group_create_body[\u0027security_group\u0027][\u0027id\u0027])\nFor port :\nself.client.create_port(**post_body)\nself.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])\n       port \u003d body[\u0027port\u0027]\nself.addCleanup(self.client.delete_port, port[\u0027id\u0027])","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        self.assertEqual(port_show[\u0027security_groups\u0027],"},{"line_number":288,"context_line":"                         security_group_list)"},{"line_number":289,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":293,"context_line":"    def test_update_port_with_second_security_group(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_6fbc60dc","line":290,"updated":"2014-07-17 12:41:51.000000000","message":"You are already doing this check L285.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        self.assertEqual(port_show[\u0027security_groups\u0027],"},{"line_number":288,"context_line":"                         security_group_list)"},{"line_number":289,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":293,"context_line":"    def test_update_port_with_second_security_group(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_c86630bb","line":290,"in_reply_to":"baada198_6fbc60dc","updated":"2014-07-17 20:31:00.000000000","message":"yes","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dc30d8f7554f97cc3afb96fd6f5573c7138f6d29","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":293,"context_line":"    def test_update_port_with_second_security_group(self):"},{"line_number":294,"context_line":"        # Update port with two security group"},{"line_number":295,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":296,"context_line":"        self.create_subnet(self.network)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_ef75d033","line":293,"updated":"2014-07-17 12:41:51.000000000","message":"Please take into account all the comments in test_update_port_with_security_group and apply them also to this test.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":293,"context_line":"    def test_update_port_with_second_security_group(self):"},{"line_number":294,"context_line":"        # Update port with two security group"},{"line_number":295,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":296,"context_line":"        self.create_subnet(self.network)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_88f358e6","line":293,"in_reply_to":"baada198_ef75d033","updated":"2014-07-17 20:31:00.000000000","message":"Incorporated all the comment in this test also","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"65e5d12a0f674aa8ed736f8f2939d7d11cb10312","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        # Create a security group"},{"line_number":301,"context_line":"        i \u003d 0"},{"line_number":302,"context_line":"        security_group_list \u003d list()"},{"line_number":303,"context_line":"        # Create Two security Group"},{"line_number":304,"context_line":"        while i \u003c 2:"},{"line_number":305,"context_line":"            name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":306,"context_line":"            resp, group_create_body \u003d self.admin_client.create_security_group("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_b20b3b23","line":303,"updated":"2014-07-17 12:56:38.000000000","message":"Two -\u003e two; Group -\u003e groups","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        # Create a security group"},{"line_number":301,"context_line":"        i \u003d 0"},{"line_number":302,"context_line":"        security_group_list \u003d list()"},{"line_number":303,"context_line":"        # Create Two security Group"},{"line_number":304,"context_line":"        while i \u003c 2:"},{"line_number":305,"context_line":"            name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":306,"context_line":"            resp, group_create_body \u003d self.admin_client.create_security_group("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_082f483f","line":303,"in_reply_to":"baada198_b20b3b23","updated":"2014-07-17 20:31:00.000000000","message":"Updated:\nCreate two security groups","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"65e5d12a0f674aa8ed736f8f2939d7d11cb10312","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        i \u003d 0"},{"line_number":302,"context_line":"        security_group_list \u003d list()"},{"line_number":303,"context_line":"        # Create Two security Group"},{"line_number":304,"context_line":"        while i \u003c 2:"},{"line_number":305,"context_line":"            name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":306,"context_line":"            resp, group_create_body \u003d self.admin_client.create_security_group("},{"line_number":307,"context_line":"                name\u003dname)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_124a2755","line":304,"updated":"2014-07-17 12:56:38.000000000","message":"probably you could use a for loop instead to avoid manually incrementing the counter?","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        i \u003d 0"},{"line_number":302,"context_line":"        security_group_list \u003d list()"},{"line_number":303,"context_line":"        # Create Two security Group"},{"line_number":304,"context_line":"        while i \u003c 2:"},{"line_number":305,"context_line":"            name \u003d data_utils.rand_name(\u0027secgroup-\u0027)"},{"line_number":306,"context_line":"            resp, group_create_body \u003d self.admin_client.create_security_group("},{"line_number":307,"context_line":"                name\u003dname)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_48294036","line":304,"in_reply_to":"baada198_124a2755","updated":"2014-07-17 20:31:00.000000000","message":"Used for loop:\nfor name in [\u0027secgroup1\u0027, \u0027secgroup2\u0027]:","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"65e5d12a0f674aa8ed736f8f2939d7d11cb10312","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                [\u0027id\u0027])"},{"line_number":311,"context_line":"            i \u003d i + 1"},{"line_number":312,"context_line":"        update_body \u003d {\"security_groups\": security_group_list}"},{"line_number":313,"context_line":"        # Update the port with two security group"},{"line_number":314,"context_line":"        resp, body \u003d self.admin_client.update_port("},{"line_number":315,"context_line":"            port[\u0027id\u0027], **update_body)"},{"line_number":316,"context_line":"        # Verify the security group updated to port"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_126147d3","line":313,"updated":"2014-07-17 12:56:38.000000000","message":"group -\u003e groups","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                [\u0027id\u0027])"},{"line_number":311,"context_line":"            i \u003d i + 1"},{"line_number":312,"context_line":"        update_body \u003d {\"security_groups\": security_group_list}"},{"line_number":313,"context_line":"        # Update the port with two security group"},{"line_number":314,"context_line":"        resp, body \u003d self.admin_client.update_port("},{"line_number":315,"context_line":"            port[\u0027id\u0027], **update_body)"},{"line_number":316,"context_line":"        # Verify the security group updated to port"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_28ddec42","line":313,"in_reply_to":"baada198_126147d3","updated":"2014-07-17 20:31:00.000000000","message":"Updated:\ngroup -\u003e groups","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"65e5d12a0f674aa8ed736f8f2939d7d11cb10312","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        resp, body \u003d self.admin_client.show_port(port[\u0027id\u0027])"},{"line_number":318,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":319,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":320,"context_line":"        self.assertIn(port_show[\u0027security_groups\u0027][0], security_group_list)"},{"line_number":321,"context_line":"        self.addCleanup(self.admin_client.delete_security_group,"},{"line_number":322,"context_line":"            port_show[\u0027security_groups\u0027][0])"},{"line_number":323,"context_line":"        self.assertIn(port_show[\u0027security_groups\u0027][1], security_group_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_5281ff4b","line":320,"updated":"2014-07-17 12:56:38.000000000","message":"you could check presence of both security groups in a loop to avoid code duplication.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        resp, body \u003d self.admin_client.show_port(port[\u0027id\u0027])"},{"line_number":318,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":319,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":320,"context_line":"        self.assertIn(port_show[\u0027security_groups\u0027][0], security_group_list)"},{"line_number":321,"context_line":"        self.addCleanup(self.admin_client.delete_security_group,"},{"line_number":322,"context_line":"            port_show[\u0027security_groups\u0027][0])"},{"line_number":323,"context_line":"        self.assertIn(port_show[\u0027security_groups\u0027][1], security_group_list)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_28fecc6b","line":320,"in_reply_to":"baada198_5281ff4b","updated":"2014-07-17 20:31:00.000000000","message":"Updated the same:\nfor security_group in security_group_list :\n            self.assertIn(security_group, port_show[\u0027security_groups\u0027])","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"ef505ecf27e318b05c7acf21ca49895908977c58","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self.assertIn(port_show[\u0027security_groups\u0027][1], security_group_list)"},{"line_number":324,"context_line":"        self.addCleanup(self.admin_client.delete_security_group,"},{"line_number":325,"context_line":"            port_show[\u0027security_groups\u0027][1])"},{"line_number":326,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":327,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_afe918b9","line":326,"updated":"2014-07-17 12:43:26.000000000","message":"The same.","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"ffb748fd00bc280b31243cbb5b63710bd97a1b1f","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        self.assertIn(port_show[\u0027security_groups\u0027][1], security_group_list)"},{"line_number":324,"context_line":"        self.addCleanup(self.admin_client.delete_security_group,"},{"line_number":325,"context_line":"            port_show[\u0027security_groups\u0027][1])"},{"line_number":326,"context_line":"        self.addCleanup(self.admin_client.delete_port, port[\u0027id\u0027])"},{"line_number":327,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_48014069","line":326,"in_reply_to":"baada198_afe918b9","updated":"2014-07-17 20:31:00.000000000","message":"Updated the same:\nfor security_group in security_group_list :\n            self.assertIn(security_group, port_show[\u0027security_groups\u0027])","commit_id":"d4def014b050829e57099a17abb6150dfd4ea62a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d96c194cc5b99db2d2d79d56cf81246250fe0875","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":179,"context_line":"        self.addCleanup(self.client.delete_security_group,"},{"line_number":180,"context_line":"            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"        group_create_body[\u0027security_group\u0027]"},{"line_number":182,"context_line":"        # Create a port"},{"line_number":183,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":184,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a2df54d5","line":181,"updated":"2014-07-17 23:10:55.000000000","message":"What is the purpose of this line ?","commit_id":"4f8ef538cbcd975d352d9126c63a06b97fbf2983"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"8c1a923daada4e487b1ed3239f3a6b704a47e15c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":179,"context_line":"        self.addCleanup(self.client.delete_security_group,"},{"line_number":180,"context_line":"            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"        group_create_body[\u0027security_group\u0027]"},{"line_number":182,"context_line":"        # Create a port"},{"line_number":183,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":184,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_18706cdb","line":181,"in_reply_to":"baada198_a2df54d5","updated":"2014-07-19 05:07:38.000000000","message":"Thanks for the review.\nRemoved this line from the test","commit_id":"4f8ef538cbcd975d352d9126c63a06b97fbf2983"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d96c194cc5b99db2d2d79d56cf81246250fe0875","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":185,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":186,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":187,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":188,"context_line":"        security_group_list \u003d list()"},{"line_number":189,"context_line":"        security_group_list.append(group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":190,"context_line":"        update_body \u003d {\"security_groups\": security_group_list}"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a24834b4","line":187,"updated":"2014-07-17 23:10:55.000000000","message":"What\u0027s the difference between this line and line 184 ?","commit_id":"4f8ef538cbcd975d352d9126c63a06b97fbf2983"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"8c1a923daada4e487b1ed3239f3a6b704a47e15c","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":185,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":186,"context_line":"        self.addCleanup(self.client.delete_port, port[\u0027id\u0027])"},{"line_number":187,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":188,"context_line":"        security_group_list \u003d list()"},{"line_number":189,"context_line":"        security_group_list.append(group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":190,"context_line":"        update_body \u003d {\"security_groups\": security_group_list}"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_587104dd","line":187,"in_reply_to":"baada198_a24834b4","updated":"2014-07-19 05:07:38.000000000","message":"Removed this line since its same as line 184","commit_id":"4f8ef538cbcd975d352d9126c63a06b97fbf2983"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d8c7fd034c08373d7b1f7fe7961cfc458595fae0","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                         security_group_list)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":200,"context_line":"    def test_update_port_with_second_security_group(self):"},{"line_number":201,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":202,"context_line":"        self.create_subnet(self.network)"},{"line_number":203,"context_line":"        # Create two security groups"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_1aa21c9a","line":200,"updated":"2014-07-18 07:44:49.000000000","message":"both test case code almost same. please create a internal method like - \"_test_update_port_with_security_group\" \n- which can take list of sec grp name as param\n- create that many sec grp\n- update port for those sec grp\n- verify those sec grp in port list or not.\n\nThen these both test case can just call the above function with one and two sec grp names respectively.","commit_id":"6e0adb955ef9784febe3ad77eacbd91c7f1b64c4"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"b9c75509669fe9eeeabba04c2376cc0f7c28ec52","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                         security_group_list)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":200,"context_line":"    def test_update_port_with_second_security_group(self):"},{"line_number":201,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":202,"context_line":"        self.create_subnet(self.network)"},{"line_number":203,"context_line":"        # Create two security groups"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f8a8ed79","line":200,"in_reply_to":"baada198_1aa21c9a","updated":"2014-07-19 05:07:59.000000000","message":"Thanks for the review:\n\nI have updated the test:\nAdded a function to update port with security groups\n   -Function take list of security groups as parameter\n   -Create security group based on the names in the parameter\n   -Create a port without security group\n   -Update the port with the security group \n   -Verify that security groups are updated in the port         successfully\n\nAdd a test to update the port with one security group\n    -Call the update port with security group function \n     with one name of security group\n\nAdd a test to update the port with two security group\n   -Call the update port with security group function \n     with two names of security groups","commit_id":"6e0adb955ef9784febe3ad77eacbd91c7f1b64c4"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"8a86b2c9593d894749c61b3c94ad0f61d2bbb622","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        port \u003d self.update_port(port, fixed_ips\u003dfixed_ip_1)"},{"line_number":169,"context_line":"        self.assertEqual(1, len(port[\u0027fixed_ips\u0027]))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def _update_port_with_security_groups(self, security_group_name):"},{"line_number":172,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":173,"context_line":"        self.create_subnet(self.network)"},{"line_number":174,"context_line":"        self.create_subnet(self.network)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_d00684cd","line":171,"updated":"2014-07-21 09:31:14.000000000","message":"nit: as security_group_name list may contain multiple elements, I\u0027d suggest using a multiple form in its name, ie security_groups_names or just security_groups","commit_id":"4e761b639a1a2ccd05a5043e121ca2b9cbd96b06"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"bc3826d60d4d8567c95aa307543aa2fb35e73aa9","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        port \u003d self.update_port(port, fixed_ips\u003dfixed_ip_1)"},{"line_number":169,"context_line":"        self.assertEqual(1, len(port[\u0027fixed_ips\u0027]))"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def _update_port_with_security_groups(self, security_group_name):"},{"line_number":172,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":173,"context_line":"        self.create_subnet(self.network)"},{"line_number":174,"context_line":"        self.create_subnet(self.network)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_b312fafa","line":171,"in_reply_to":"baada198_d00684cd","updated":"2014-07-21 09:58:43.000000000","message":"Thanks for the review\nEdit the name:\nsecurity_groups_names","commit_id":"4e761b639a1a2ccd05a5043e121ca2b9cbd96b06"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"8a86b2c9593d894749c61b3c94ad0f61d2bbb622","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    def _update_port_with_security_groups(self, security_group_name):"},{"line_number":172,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":173,"context_line":"        self.create_subnet(self.network)"},{"line_number":174,"context_line":"        self.create_subnet(self.network)"},{"line_number":175,"context_line":"        security_group_list \u003d list()"},{"line_number":176,"context_line":"        for name in security_group_name:"},{"line_number":177,"context_line":"            resp, group_create_body \u003d self.client.create_security_group("}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_f0862864","line":174,"updated":"2014-07-21 09:31:14.000000000","message":"Why do you do it twice?","commit_id":"4e761b639a1a2ccd05a5043e121ca2b9cbd96b06"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"bc3826d60d4d8567c95aa307543aa2fb35e73aa9","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    def _update_port_with_security_groups(self, security_group_name):"},{"line_number":172,"context_line":"        post_body \u003d {\"network_id\": self.network[\u0027id\u0027]}"},{"line_number":173,"context_line":"        self.create_subnet(self.network)"},{"line_number":174,"context_line":"        self.create_subnet(self.network)"},{"line_number":175,"context_line":"        security_group_list \u003d list()"},{"line_number":176,"context_line":"        for name in security_group_name:"},{"line_number":177,"context_line":"            resp, group_create_body \u003d self.client.create_security_group("}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_b3e91ae5","line":174,"in_reply_to":"baada198_f0862864","updated":"2014-07-21 09:58:43.000000000","message":"Removed one of them.","commit_id":"4e761b639a1a2ccd05a5043e121ca2b9cbd96b06"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"8a86b2c9593d894749c61b3c94ad0f61d2bbb622","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":180,"context_line":"            self.addCleanup(self.client.delete_security_group,"},{"line_number":181,"context_line":"                group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":182,"context_line":"            security_group_list.append(group_create_body[\u0027security_group\u0027]"},{"line_number":183,"context_line":"                [\u0027id\u0027])"},{"line_number":184,"context_line":"        update_body \u003d {\"security_groups\": security_group_list}"},{"line_number":185,"context_line":"        # Create a port"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_5021944b","line":182,"updated":"2014-07-21 09:31:14.000000000","message":"nit: same as above - better name it security_groups_list","commit_id":"4e761b639a1a2ccd05a5043e121ca2b9cbd96b06"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"bc3826d60d4d8567c95aa307543aa2fb35e73aa9","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":180,"context_line":"            self.addCleanup(self.client.delete_security_group,"},{"line_number":181,"context_line":"                group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":182,"context_line":"            security_group_list.append(group_create_body[\u0027security_group\u0027]"},{"line_number":183,"context_line":"                [\u0027id\u0027])"},{"line_number":184,"context_line":"        update_body \u003d {\"security_groups\": security_group_list}"},{"line_number":185,"context_line":"        # Create a port"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_d3bbeee2","line":182,"in_reply_to":"baada198_5021944b","updated":"2014-07-21 09:58:43.000000000","message":"Edited as security_groups_list","commit_id":"4e761b639a1a2ccd05a5043e121ca2b9cbd96b06"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"efbc7189c08900620ddeec7acb128d58b25446fb","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":200,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":201,"context_line":"        self._update_port_with_security_groups([\u0027seggroup\u0027])"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":204,"context_line":"    def test_update_port_with_two_security_groups(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_e4ef4a85","line":201,"updated":"2014-07-21 11:33:53.000000000","message":"Could you randomize the secgroup names with data_utils.rand_name() please ? \n\nI fear that if this test fails once and is rerun after it would also fail because a conflict in the secgroup name.\n\nThanks","commit_id":"3049af43f561c420b58a9934df646a0da360efca"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"9943cbf5ee1878abf90fa6c17e9c4c0dccf9a717","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":200,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":201,"context_line":"        self._update_port_with_security_groups([\u0027seggroup\u0027])"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":204,"context_line":"    def test_update_port_with_two_security_groups(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_9a2182b6","line":201,"in_reply_to":"baada198_e4ef4a85","updated":"2014-07-21 13:55:13.000000000","message":"Thanks for the review :\nEdited the name :\n[\u0027data_utils.rand_name(\"secgroup-\")\u0027]","commit_id":"3049af43f561c420b58a9934df646a0da360efca"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"efbc7189c08900620ddeec7acb128d58b25446fb","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":204,"context_line":"    def test_update_port_with_two_security_groups(self):"},{"line_number":205,"context_line":"        self._update_port_with_security_groups([\u0027seggroup1\u0027, \u0027secgroup2\u0027])"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"class PortsTestXML(PortsTestJSON):"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_04f35e73","line":205,"updated":"2014-07-21 11:33:53.000000000","message":"Same","commit_id":"3049af43f561c420b58a9934df646a0da360efca"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"9943cbf5ee1878abf90fa6c17e9c4c0dccf9a717","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":204,"context_line":"    def test_update_port_with_two_security_groups(self):"},{"line_number":205,"context_line":"        self._update_port_with_security_groups([\u0027seggroup1\u0027, \u0027secgroup2\u0027])"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"class PortsTestXML(PortsTestJSON):"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_9a08a22e","line":205,"in_reply_to":"baada198_04f35e73","updated":"2014-07-21 13:55:13.000000000","message":"Edited the same:\n[\u0027data_utils.rand_name(\"secgroup-\")\u0027,\n            \u0027data_utils.rand_name(\"secgroup-\")\u0027]","commit_id":"3049af43f561c420b58a9934df646a0da360efca"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"48587098dc4da5e9a04e72cb241a855b460704e8","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":200,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":201,"context_line":"        self._update_port_with_security_groups("},{"line_number":202,"context_line":"            [\u0027data_utils.rand_name(\"secgroup-\")\u0027])"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":205,"context_line":"    def test_update_port_with_two_security_groups(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_0d17fea3","line":202,"updated":"2014-07-21 14:12:12.000000000","message":"Why do you enclose data_utils.rand_name(\"secgroup-\") in quotation marks when you need to call this function?\nBesides you don\u0027t need to pass \u0027-\u0027 to rand_name().","commit_id":"b404391076ebeef5a64e8807d2329ddabdec8eba"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"a2a440edc8df5123d8dc9d359950c6e39645ad04","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":200,"context_line":"    def test_update_port_with_security_group(self):"},{"line_number":201,"context_line":"        self._update_port_with_security_groups("},{"line_number":202,"context_line":"            [\u0027data_utils.rand_name(\"secgroup-\")\u0027])"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":205,"context_line":"    def test_update_port_with_two_security_groups(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_89bbf40d","line":202,"in_reply_to":"baada198_0d17fea3","updated":"2014-07-21 18:42:49.000000000","message":"Thanks\nUpdated the name:\ndata_utils.rand_name(\u0027secgroup\u0027)","commit_id":"b404391076ebeef5a64e8807d2329ddabdec8eba"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"48587098dc4da5e9a04e72cb241a855b460704e8","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def test_update_port_with_two_security_groups(self):"},{"line_number":206,"context_line":"        self._update_port_with_security_groups("},{"line_number":207,"context_line":"            [\u0027data_utils.rand_name(\"secgroup-\")\u0027,"},{"line_number":208,"context_line":"            \u0027data_utils.rand_name(\"secgroup-\")\u0027])"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"class PortsTestXML(PortsTestJSON):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_2d0a0279","line":208,"updated":"2014-07-21 14:12:12.000000000","message":"ditto","commit_id":"b404391076ebeef5a64e8807d2329ddabdec8eba"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"a2a440edc8df5123d8dc9d359950c6e39645ad04","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def test_update_port_with_two_security_groups(self):"},{"line_number":206,"context_line":"        self._update_port_with_security_groups("},{"line_number":207,"context_line":"            [\u0027data_utils.rand_name(\"secgroup-\")\u0027,"},{"line_number":208,"context_line":"            \u0027data_utils.rand_name(\"secgroup-\")\u0027])"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"class PortsTestXML(PortsTestJSON):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_494c7c42","line":208,"in_reply_to":"baada198_2d0a0279","updated":"2014-07-21 18:42:49.000000000","message":"Updated :\ndata_utils.rand_name(\u0027secgroup\u0027)","commit_id":"b404391076ebeef5a64e8807d2329ddabdec8eba"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6953a7a9419f4d9d283899ad42aba172807d7c64","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"            security_groups_list.append(group_create_body[\u0027security_group\u0027]"},{"line_number":182,"context_line":"                                        [\u0027id\u0027])"},{"line_number":183,"context_line":"        update_body \u003d {\"security_groups\": security_groups_list}"},{"line_number":184,"context_line":"        # Create a port"},{"line_number":185,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":186,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_e64fec90","line":183,"updated":"2014-08-18 15:49:09.000000000","message":"For code readability, you should define the variable update_body just before you use it (L190).\n\nMoreover, you don\u0027t really need a variable here because you are using it only once. You could inline the code.","commit_id":"5d8957c71eeb140bc68744426d98b31cfcf5f93e"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"fc4bcaaaafd2e134b6b00eac8719b3c10d17e2dd","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"            security_groups_list.append(group_create_body[\u0027security_group\u0027]"},{"line_number":182,"context_line":"                                        [\u0027id\u0027])"},{"line_number":183,"context_line":"        update_body \u003d {\"security_groups\": security_groups_list}"},{"line_number":184,"context_line":"        # Create a port"},{"line_number":185,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":186,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_420bf024","line":183,"in_reply_to":"1abeadc6_d310c703","updated":"2014-08-19 18:50:15.000000000","message":"Done","commit_id":"5d8957c71eeb140bc68744426d98b31cfcf5f93e"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"806cdf2cb7b034bbd8c66d14aaa174c8429a34b6","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"            security_groups_list.append(group_create_body[\u0027security_group\u0027]"},{"line_number":182,"context_line":"                                        [\u0027id\u0027])"},{"line_number":183,"context_line":"        update_body \u003d {\"security_groups\": security_groups_list}"},{"line_number":184,"context_line":"        # Create a port"},{"line_number":185,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":186,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_d310c703","line":183,"in_reply_to":"1abeadc6_e64fec90","updated":"2014-08-19 12:12:45.000000000","message":"+1","commit_id":"5d8957c71eeb140bc68744426d98b31cfcf5f93e"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"fc4bcaaaafd2e134b6b00eac8719b3c10d17e2dd","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"            security_groups_list.append(group_create_body[\u0027security_group\u0027]"},{"line_number":182,"context_line":"                                        [\u0027id\u0027])"},{"line_number":183,"context_line":"        update_body \u003d {\"security_groups\": security_groups_list}"},{"line_number":184,"context_line":"        # Create a port"},{"line_number":185,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":186,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1abeadc6_3f144b4d","line":183,"in_reply_to":"1abeadc6_e64fec90","updated":"2014-08-19 18:50:15.000000000","message":"Thanks for the review:\nUpdated the test defining the variable just before 190","commit_id":"5d8957c71eeb140bc68744426d98b31cfcf5f93e"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"67e1d5516122520c7dbb3baa3814a7212541d924","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        for name in security_groups_names:"},{"line_number":176,"context_line":"            resp, group_create_body \u003d self.client.create_security_group("},{"line_number":177,"context_line":"                name\u003dname)"},{"line_number":178,"context_line":"            self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":179,"context_line":"            self.addCleanup(self.client.delete_security_group,"},{"line_number":180,"context_line":"                            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"            security_groups_list.append(group_create_body[\u0027security_group\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_6e043cc0","line":178,"updated":"2014-08-20 11:15:53.000000000","message":"API response success validation should be moved to Neutron client. See https://review.openstack.org/#/c/114186/7 for reference","commit_id":"83b61807f24e80bde53bfeb4abdd89f73df72723"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"04ba334e08391b72dac6cc7edcb448103c5b0197","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        for name in security_groups_names:"},{"line_number":176,"context_line":"            resp, group_create_body \u003d self.client.create_security_group("},{"line_number":177,"context_line":"                name\u003dname)"},{"line_number":178,"context_line":"            self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":179,"context_line":"            self.addCleanup(self.client.delete_security_group,"},{"line_number":180,"context_line":"                            group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":181,"context_line":"            security_groups_list.append(group_create_body[\u0027security_group\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_6c443fb7","line":178,"in_reply_to":"1abeadc6_6e043cc0","updated":"2014-08-20 14:23:23.000000000","message":"Thanks for the review:\nEdited the test as per the reference","commit_id":"83b61807f24e80bde53bfeb4abdd89f73df72723"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"67e1d5516122520c7dbb3baa3814a7212541d924","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                                        [\u0027id\u0027])"},{"line_number":183,"context_line":"        # Create a port"},{"line_number":184,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":185,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        self.addCleanup(self.client.delete_port, body[\u0027port\u0027][\u0027id\u0027])"},{"line_number":187,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":188,"context_line":"        # Update the port with security groups"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_2e21644d","line":185,"updated":"2014-08-20 11:15:53.000000000","message":"ditto","commit_id":"83b61807f24e80bde53bfeb4abdd89f73df72723"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"04ba334e08391b72dac6cc7edcb448103c5b0197","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                                        [\u0027id\u0027])"},{"line_number":183,"context_line":"        # Create a port"},{"line_number":184,"context_line":"        resp, body \u003d self.client.create_port(**post_body)"},{"line_number":185,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        self.addCleanup(self.client.delete_port, body[\u0027port\u0027][\u0027id\u0027])"},{"line_number":187,"context_line":"        port \u003d body[\u0027port\u0027]"},{"line_number":188,"context_line":"        # Update the port with security groups"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_ac19f7d8","line":185,"in_reply_to":"1abeadc6_2e21644d","updated":"2014-08-20 14:23:23.000000000","message":"Done!","commit_id":"83b61807f24e80bde53bfeb4abdd89f73df72723"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"67e1d5516122520c7dbb3baa3814a7212541d924","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            port[\u0027id\u0027], **update_body)"},{"line_number":192,"context_line":"        # Verify the security groups updated to port"},{"line_number":193,"context_line":"        resp, body \u003d self.client.show_port(port[\u0027id\u0027])"},{"line_number":194,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":195,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":196,"context_line":"        for security_group in security_groups_list:"},{"line_number":197,"context_line":"            self.assertIn(security_group, port_show[\u0027security_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_aed49420","line":194,"updated":"2014-08-20 11:15:53.000000000","message":"ditto","commit_id":"83b61807f24e80bde53bfeb4abdd89f73df72723"},{"author":{"_account_id":11671,"name":"Ashish Kumar Gupta","email":"guptaas@vmware.com","username":"ashish-kumar-gupta"},"change_message_id":"04ba334e08391b72dac6cc7edcb448103c5b0197","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            port[\u0027id\u0027], **update_body)"},{"line_number":192,"context_line":"        # Verify the security groups updated to port"},{"line_number":193,"context_line":"        resp, body \u003d self.client.show_port(port[\u0027id\u0027])"},{"line_number":194,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":195,"context_line":"        port_show \u003d body[\u0027port\u0027]"},{"line_number":196,"context_line":"        for security_group in security_groups_list:"},{"line_number":197,"context_line":"            self.assertIn(security_group, port_show[\u0027security_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_ec0f6f86","line":194,"in_reply_to":"1abeadc6_aed49420","updated":"2014-08-20 14:23:23.000000000","message":"Done!","commit_id":"83b61807f24e80bde53bfeb4abdd89f73df72723"}]}
