)]}'
{"tempest/api/network/test_security_groups.py":[{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"7ae2ac59e92244514a3e8a7cadeb8976864461e3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        ex \u003d self.assertRaises(exceptions.BadRequest,"},{"line_number":96,"context_line":"                               self.client.create_security_group_rule,"},{"line_number":97,"context_line":"                               group_create_body[\u0027security_group\u0027][\u0027id\u0027],"},{"line_number":98,"context_line":"                               protocol\u003dpname)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        #Create rule with invalid ports"},{"line_number":101,"context_line":"        states \u003d [(-16, 80, \u0027Invalid value for port -16\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FrlE%3D","line":98,"updated":"2013-10-11 09:48:30.000000000","message":"We had better use new \"def test_...\" for it.\n\"def test_create_show_delete_security_group_and_rule(self)\"\nis already too complexity.","commit_id":"6083e4116cf25c3d1f20ac54f121795da79a6507"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"4d7ede309439a0672b7ed2f04d3f2040064071d6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        ex \u003d self.assertRaises(exceptions.BadRequest,"},{"line_number":96,"context_line":"                               self.client.create_security_group_rule,"},{"line_number":97,"context_line":"                               group_create_body[\u0027security_group\u0027][\u0027id\u0027],"},{"line_number":98,"context_line":"                               protocol\u003dpname)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        #Create rule with invalid ports"},{"line_number":101,"context_line":"        states \u003d [(-16, 80, \u0027Invalid value for port -16\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FrDo%3D","line":98,"in_reply_to":"AAAATH%2F%2FrlE%3D","updated":"2013-10-11 12:31:50.000000000","message":"Done","commit_id":"6083e4116cf25c3d1f20ac54f121795da79a6507"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"7ae2ac59e92244514a3e8a7cadeb8976864461e3","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                                   protocol\u003d\u0027tcp\u0027,"},{"line_number":109,"context_line":"                                   port_range_min\u003dpmin,"},{"line_number":110,"context_line":"                                   port_range_max\u003dpmax)"},{"line_number":111,"context_line":"            self.assertIn(msg, str(ex))"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # Create rules for each protocol"},{"line_number":114,"context_line":"        protocols \u003d [\u0027tcp\u0027, \u0027udp\u0027, \u0027icmp\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FrlM%3D","line":111,"updated":"2013-10-11 09:48:30.000000000","message":"We had better use new \"def test_...\" for it.\n\"def test_create_show_delete_security_group_and_rule(self)\"\nis already too complexity.","commit_id":"6083e4116cf25c3d1f20ac54f121795da79a6507"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"4d7ede309439a0672b7ed2f04d3f2040064071d6","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                                   protocol\u003d\u0027tcp\u0027,"},{"line_number":109,"context_line":"                                   port_range_min\u003dpmin,"},{"line_number":110,"context_line":"                                   port_range_max\u003dpmax)"},{"line_number":111,"context_line":"            self.assertIn(msg, str(ex))"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # Create rules for each protocol"},{"line_number":114,"context_line":"        protocols \u003d [\u0027tcp\u0027, \u0027udp\u0027, \u0027icmp\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FrDw%3D","line":111,"in_reply_to":"AAAATH%2F%2FrlM%3D","updated":"2013-10-11 12:31:50.000000000","message":"Done","commit_id":"6083e4116cf25c3d1f20ac54f121795da79a6507"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"7ae2ac59e92244514a3e8a7cadeb8976864461e3","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        ex \u003d self.assertRaises(exceptions.NotFound,"},{"line_number":141,"context_line":"                               self.client.delete_security_group,"},{"line_number":142,"context_line":"                               secgroup_id"},{"line_number":143,"context_line":"                               )"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":146,"context_line":"    def test_show_non_existent_security_group(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FrlQ%3D","line":143,"updated":"2013-10-11 09:48:30.000000000","message":"We had better use new \"def test_...\" for it.\n\"def test_create_show_delete_security_group_and_rule(self)\"\nis already too complexity.","commit_id":"6083e4116cf25c3d1f20ac54f121795da79a6507"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"4d7ede309439a0672b7ed2f04d3f2040064071d6","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        ex \u003d self.assertRaises(exceptions.NotFound,"},{"line_number":141,"context_line":"                               self.client.delete_security_group,"},{"line_number":142,"context_line":"                               secgroup_id"},{"line_number":143,"context_line":"                               )"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":146,"context_line":"    def test_show_non_existent_security_group(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FrDs%3D","line":143,"in_reply_to":"AAAATH%2F%2FrlQ%3D","updated":"2013-10-11 12:31:50.000000000","message":"Done","commit_id":"6083e4116cf25c3d1f20ac54f121795da79a6507"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"6495ac2cea25bedc0072ce881676b9db4c5a9dcd","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Create a security group"},{"line_number":95,"context_line":"        name \u003d rand_name(\u0027secgroup-\u0027)"},{"line_number":96,"context_line":"        resp, group_create_body \u003d self.client.create_security_group(name)"},{"line_number":97,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.addCleanup(self._delete_security_group,"},{"line_number":99,"context_line":"                        group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":100,"context_line":"        self.assertEqual(group_create_body[\u0027security_group\u0027][\u0027name\u0027], name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FrBY%3D","line":97,"updated":"2013-10-11 12:43:08.000000000","message":"I think we should not wait for the status. Before this use Cleanup and then check the status.","commit_id":"abb30e7b9e32b907e09d33969886256a3ac55ffd"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"7d62d5ebdd0e4a56d60511cd263aca321d148da9","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Create a security group"},{"line_number":95,"context_line":"        name \u003d rand_name(\u0027secgroup-\u0027)"},{"line_number":96,"context_line":"        resp, group_create_body \u003d self.client.create_security_group(name)"},{"line_number":97,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.addCleanup(self._delete_security_group,"},{"line_number":99,"context_line":"                        group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":100,"context_line":"        self.assertEqual(group_create_body[\u0027security_group\u0027][\u0027name\u0027], name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fq9g%3D","line":97,"in_reply_to":"AAAATH%2F%2FrBY%3D","updated":"2013-10-11 13:03:31.000000000","message":"Cleanup is called in tearDown, and also, if creation failed, cleanup could cause problems","commit_id":"abb30e7b9e32b907e09d33969886256a3ac55ffd"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"6495ac2cea25bedc0072ce881676b9db4c5a9dcd","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        resp, group_create_body \u003d self.client.create_security_group(name)"},{"line_number":153,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":154,"context_line":"        self.addCleanup(self._delete_security_group,"},{"line_number":155,"context_line":"                        group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":156,"context_line":"        self.assertEqual(group_create_body[\u0027security_group\u0027][\u0027name\u0027], name)"},{"line_number":157,"context_line":"        "},{"line_number":158,"context_line":"        #Create rule with bad protocol name"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FrBI%3D","line":155,"updated":"2013-10-11 12:43:08.000000000","message":"same here","commit_id":"abb30e7b9e32b907e09d33969886256a3ac55ffd"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"7d62d5ebdd0e4a56d60511cd263aca321d148da9","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        resp, group_create_body \u003d self.client.create_security_group(name)"},{"line_number":153,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":154,"context_line":"        self.addCleanup(self._delete_security_group,"},{"line_number":155,"context_line":"                        group_create_body[\u0027security_group\u0027][\u0027id\u0027])"},{"line_number":156,"context_line":"        self.assertEqual(group_create_body[\u0027security_group\u0027][\u0027name\u0027], name)"},{"line_number":157,"context_line":"        "},{"line_number":158,"context_line":"        #Create rule with bad protocol name"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fq9U%3D","line":155,"in_reply_to":"AAAATH%2F%2FrBI%3D","updated":"2013-10-11 13:03:31.000000000","message":"same answer here","commit_id":"abb30e7b9e32b907e09d33969886256a3ac55ffd"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"5803186d907274b845d74a4b15f90526466f7f9c","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        self.assertEqual(group_create_body[\u0027security_group\u0027][\u0027name\u0027], name)"},{"line_number":157,"context_line":"        "},{"line_number":158,"context_line":"        #Create rule with bad protocol name"},{"line_number":159,"context_line":"        pname \u003d \u0027bad_protocol_name\u0027"},{"line_number":160,"context_line":"        ex \u003d self.assertRaises(exceptions.BadRequest,"},{"line_number":161,"context_line":"                               self.client.create_security_group_rule,"},{"line_number":162,"context_line":"                               group_create_body[\u0027security_group\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FrCo%3D","line":159,"updated":"2013-10-11 12:38:02.000000000","message":"can we use a random value for pname?","commit_id":"abb30e7b9e32b907e09d33969886256a3ac55ffd"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"7d62d5ebdd0e4a56d60511cd263aca321d148da9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        self.assertEqual(group_create_body[\u0027security_group\u0027][\u0027name\u0027], name)"},{"line_number":157,"context_line":"        "},{"line_number":158,"context_line":"        #Create rule with bad protocol name"},{"line_number":159,"context_line":"        pname \u003d \u0027bad_protocol_name\u0027"},{"line_number":160,"context_line":"        ex \u003d self.assertRaises(exceptions.BadRequest,"},{"line_number":161,"context_line":"                               self.client.create_security_group_rule,"},{"line_number":162,"context_line":"                               group_create_body[\u0027security_group\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fq%2Fk%3D","line":159,"in_reply_to":"AAAATH%2F%2FrCo%3D","updated":"2013-10-11 13:03:31.000000000","message":"you could, but the point here is to use a name that isn\u0027t [tcp,udp,icmp]\na constant works fine","commit_id":"abb30e7b9e32b907e09d33969886256a3ac55ffd"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"d0d0f4f7ad39a033f09419da6d70355a9bcfd285","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                          self.client.show_security_group_rule,"},{"line_number":146,"context_line":"                          non_exist_id)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":149,"context_line":"    def test_create_security_group_rule_with_bad_protocol(self):"},{"line_number":150,"context_line":"        # Create a security group"},{"line_number":151,"context_line":"        name \u003d rand_name(\u0027secgroup-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Fn%2B8%3D","line":148,"updated":"2013-10-12 07:36:52.000000000","message":"As discussed in the last QA meeting: Negative tests must be separated in a new file. See http://eavesdrop.openstack.org/meetings/qa/2013/qa.2013-10-10-17.00.log.txt. The hacking file will be updated soon.\nI am also unsure with negative tests flagged as \"smoke\". Why is it needed for all those cases?","commit_id":"e0587180f2d5ca34393fa6c4ac60cce2ea6b8e5f"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"1ef798961cf984612d1594650446044575bd0f53","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                          self.client.show_security_group_rule,"},{"line_number":146,"context_line":"                          non_exist_id)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":149,"context_line":"    def test_create_security_group_rule_with_bad_protocol(self):"},{"line_number":150,"context_line":"        # Create a security group"},{"line_number":151,"context_line":"        name \u003d rand_name(\u0027secgroup-\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FmnU%3D","line":148,"in_reply_to":"AAAATH%2F%2Fn%2B8%3D","updated":"2013-10-13 13:09:31.000000000","message":"Done","commit_id":"e0587180f2d5ca34393fa6c4ac60cce2ea6b8e5f"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"5bba460e3eeb59f4e1e46c901572958b128c3891","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":93,"context_line":"    def test_create_show_delete_security_group_rule(self):"},{"line_number":94,"context_line":"        # Create a security group"},{"line_number":95,"context_line":"        name \u003d rand_name(\u0027secgroup-\u0027)"},{"line_number":96,"context_line":"        resp, group_create_body \u003d self.client.create_security_group(name)"},{"line_number":97,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.addCleanup(self._delete_security_group,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2Flms%3D","line":95,"updated":"2013-10-14 07:16:09.000000000","message":"hii , we are changing the way of importing packages, you can correct  it :\nfrom tempest.common.utils.data_utils import rand_name\nto\nfrom tempest.common.utils import data_utils.\n\nand you can use  data_utils.rand_name(\u0027secgroup-\u0027)\n\nfollow this one:\nhttps://review.openstack.org/#/c/46886/10/","commit_id":"113aaf1b6eac0cdc38f8db87d8ccd876da165f50"}]}
