)]}'
{"tempest/api/compute/base.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"a6e5c302af8f4fe7c71bca0cc0b586bf469f5dc4","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        return resp, body"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @classmethod"},{"line_number":170,"context_line":"    def create_new_security_group(cls, name\u003dNone, description\u003dNone):"},{"line_number":171,"context_line":"        if name is None:"},{"line_number":172,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-securitygroup\")"},{"line_number":173,"context_line":"        if description is None:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2BMVk%3D","line":170,"updated":"2014-01-29 08:23:15.000000000","message":"Can\u0027t we change this name to create_security_group() or a better name?\n\nI actually don\u0027t like the name of xx_new_xx. Because if we make new wrapper method, the name will be xx_new2_xx something.","commit_id":"f834deb4e9a8ad196620ad277a2cc633892c726a"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"a586a838809e9e27e3fa655e89ae08652265292b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        return resp, body"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @classmethod"},{"line_number":170,"context_line":"    def create_new_security_group(cls, name\u003dNone, description\u003dNone):"},{"line_number":171,"context_line":"        if name is None:"},{"line_number":172,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-securitygroup\")"},{"line_number":173,"context_line":"        if description is None:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FjDY%3D","line":170,"in_reply_to":"AAAAUH%2F%2BMVk%3D","updated":"2014-02-12 12:59:59.000000000","message":"sure, Thank you!","commit_id":"f834deb4e9a8ad196620ad277a2cc633892c726a"}],"tempest/api/compute/security_groups/test_security_group_rules_negative.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"0be04f23d480415f2761a9c54401ea02093201bd","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":"from tempest import test"},{"line_number":25,"context_line":"from tempest.test import skip_because"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d config.CONF"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F6nM%3D","line":25,"updated":"2013-12-27 07:55:42.000000000","message":"Same as test_security_groups.py","commit_id":"93c40fbbb32aab62edcbd1cf075e9b53202895c4"}],"tempest/api/compute/security_groups/test_security_groups.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"0be04f23d480415f2761a9c54401ea02093201bd","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":"from tempest import test"},{"line_number":25,"context_line":"from tempest.test import skip_because"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d config.CONF"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F6nU%3D","line":25,"updated":"2013-12-27 07:55:42.000000000","message":"I think this should be removed and use @test.skip_because() instead.","commit_id":"93c40fbbb32aab62edcbd1cf075e9b53202895c4"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"cc821320f95014a11211f91b5e7f484926561384","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest import config"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":"from tempest import test"},{"line_number":25,"context_line":"from tempest.test import skip_because"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d config.CONF"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAT3%2F%2F6lQ%3D","line":25,"in_reply_to":"AAAAT3%2F%2F6nU%3D","updated":"2013-12-27 08:21:39.000000000","message":"will correct it in next patch set. thank you!","commit_id":"93c40fbbb32aab62edcbd1cf075e9b53202895c4"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"6ba9565587948720265901a7af16e7b65af07a98","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        for sg in self.security_groups:"},{"line_number":50,"context_line":"            resp, _ \u003d self.client.delete_security_group(sg[\u0027id\u0027])"},{"line_number":51,"context_line":"            self.assertEqual(202, resp.status)"},{"line_number":52,"context_line":"            self.client.wait_for_resource_deletion(sg[\u0027id\u0027])"},{"line_number":53,"context_line":"        # Now check if all the created Security Groups are deleted"},{"line_number":54,"context_line":"        resp, fetched_list \u003d self.client.list_security_groups()"},{"line_number":55,"context_line":"        deleted_sgs \u003d \\"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUX%2F%2Fg%2BQ%3D","line":52,"updated":"2014-02-12 16:55:17.000000000","message":"Do we really need to wait for a security group deletion ?\n\nAFAIK it is instant.\nThe deletion can be prevented if a VM still using the group,\nbut in the case the delete request itself will be denied immediately.\n\nHowever after a 202 response, the wait seams logical.","commit_id":"02e7a7bcb5c465ffb1fc0dcc3f2edf481d9c2c99"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"5d8f140a84a2b9fac48073c0b34fcbf22a17ca6e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        for sg in self.security_groups:"},{"line_number":50,"context_line":"            resp, _ \u003d self.client.delete_security_group(sg[\u0027id\u0027])"},{"line_number":51,"context_line":"            self.assertEqual(202, resp.status)"},{"line_number":52,"context_line":"            self.client.wait_for_resource_deletion(sg[\u0027id\u0027])"},{"line_number":53,"context_line":"        # Now check if all the created Security Groups are deleted"},{"line_number":54,"context_line":"        resp, fetched_list \u003d self.client.list_security_groups()"},{"line_number":55,"context_line":"        deleted_sgs \u003d \\"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAAUX%2F%2FdnE%3D","line":52,"in_reply_to":"AAAAUX%2F%2Fg%2BQ%3D","updated":"2014-02-13 01:41:02.000000000","message":"afazekas, thanks for your review! \n\nThe deletion is not instant. Sometimes, the following \u0027list_security_groups\u0027 can still get secgroups if removing waiting deletion. So I add it here.","commit_id":"02e7a7bcb5c465ffb1fc0dcc3f2edf481d9c2c99"}],"tempest/services/compute/xml/security_groups_client.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5bc516ec99817f8c9af365a8b25248d4ed066e41","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                rules \u003d [xml_to_json(x) for x in node.getchildren()]"},{"line_number":159,"context_line":"                return resp, rules"},{"line_number":160,"context_line":"        raise exceptions.NotFound(\u0027No such Security Group\u0027)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def is_resource_deleted(self, id):"},{"line_number":163,"context_line":"        try:"},{"line_number":164,"context_line":"            self.get_security_group(id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUH%2F%2FNGw%3D","line":161,"updated":"2014-01-16 12:20:04.000000000","message":"I thinks it is reasonable not to copy this block of code in  xml/security_groups_client.py and json/security_groups_client.py. May be it is better to do some deeper refactor and create base_securiry_groups_client?","commit_id":"f834deb4e9a8ad196620ad277a2cc633892c726a"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"a10f63f74536c54d388638080637d65ee42ee6c4","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                rules \u003d [xml_to_json(x) for x in node.getchildren()]"},{"line_number":159,"context_line":"                return resp, rules"},{"line_number":160,"context_line":"        raise exceptions.NotFound(\u0027No such Security Group\u0027)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def is_resource_deleted(self, id):"},{"line_number":163,"context_line":"        try:"},{"line_number":164,"context_line":"            self.get_security_group(id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FjCc%3D","line":161,"in_reply_to":"AAAAUH%2F%2FNGw%3D","updated":"2014-02-12 13:02:29.000000000","message":"@Ann, thank you! refactor works are great. But I think it\u0027s out of this patch\u0027s scope. :-)","commit_id":"f834deb4e9a8ad196620ad277a2cc633892c726a"}]}
