)]}'
{"tempest/api/compute/admin/test_security_group_default_rules.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"540ed574e9af3fd2781280e105c378e22010963a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def setUpClass(cls):"},{"line_number":28,"context_line":"        # TODO(GMann): Once Bug# 1311500 is fixed. These test can run"},{"line_number":29,"context_line":"        # for Neutron also."},{"line_number":30,"context_line":"        if CONF.service_available.neutron:"},{"line_number":31,"context_line":"            raise cls.skipException(\"Skip as this functionality is not yet \""},{"line_number":32,"context_line":"                                    \"implemented in Neutron. Bug#1311500\")"},{"line_number":33,"context_line":"        # A network and a subnet will be created for these tests"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_d276c0a3","line":30,"updated":"2014-06-03 23:58:50.000000000","message":"Use skip because instead so we can track it with the skip_tracker tool. I think that\u0027s worth a few duplicated decorators and increased complications with cleanup.","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d4d573911c04efbc01951c8ba32fd0384a4a47a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def setUpClass(cls):"},{"line_number":28,"context_line":"        # TODO(GMann): Once Bug# 1311500 is fixed. These test can run"},{"line_number":29,"context_line":"        # for Neutron also."},{"line_number":30,"context_line":"        if CONF.service_available.neutron:"},{"line_number":31,"context_line":"            raise cls.skipException(\"Skip as this functionality is not yet \""},{"line_number":32,"context_line":"                                    \"implemented in Neutron. Bug#1311500\")"},{"line_number":33,"context_line":"        # A network and a subnet will be created for these tests"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_15e6fb43","line":30,"in_reply_to":"1ae5cdf2_d276c0a3","updated":"2014-06-06 04:26:52.000000000","message":"Done.","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"540ed574e9af3fd2781280e105c378e22010963a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.from_port \u003d 22"},{"line_number":39,"context_line":"        cls.to_port \u003d 22"},{"line_number":40,"context_line":"        cls.cidr \u003d \u002710.10.10.0/24\u0027"},{"line_number":41,"context_line":"        _, rule \u003d cls.adm_client.create_security_default_group_rule("},{"line_number":42,"context_line":"            cls.ip_protocol,"},{"line_number":43,"context_line":"            cls.from_port,"},{"line_number":44,"context_line":"            cls.to_port,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_9260b8d0","line":41,"updated":"2014-06-03 23:58:50.000000000","message":"Is there any reason this is a class level create? It should be low enough overhead that you can do it with setupClass and addCleanup() which is more robust.\n\nIt also doesn\u0027t appear to be used for every test in the class, just the list ones, maybe just make a helper method to do it for those tests only. I think doing the same rule create and teardown twice is better than doing it in setupClass","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d4d573911c04efbc01951c8ba32fd0384a4a47a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.from_port \u003d 22"},{"line_number":39,"context_line":"        cls.to_port \u003d 22"},{"line_number":40,"context_line":"        cls.cidr \u003d \u002710.10.10.0/24\u0027"},{"line_number":41,"context_line":"        _, rule \u003d cls.adm_client.create_security_default_group_rule("},{"line_number":42,"context_line":"            cls.ip_protocol,"},{"line_number":43,"context_line":"            cls.from_port,"},{"line_number":44,"context_line":"            cls.to_port,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_35e1372a","line":41,"in_reply_to":"1ae5cdf2_9260b8d0","updated":"2014-06-06 04:26:52.000000000","message":"Agree. Done","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"540ed574e9af3fd2781280e105c378e22010963a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            self.assertEqual(to_port, rule[\u0027to_port\u0027])"},{"line_number":74,"context_line":"            self.assertEqual(cidr, rule[\u0027ip_range\u0027][\u0027cidr\u0027])"},{"line_number":75,"context_line":"            # Delete the Security Group default rule"},{"line_number":76,"context_line":"            self.adm_client.delete_security_group_default_rule(rule[\u0027id\u0027])"},{"line_number":77,"context_line":"            self.assertRaises(exceptions.NotFound,"},{"line_number":78,"context_line":"                              self.adm_client.get_security_group_default_rule,"},{"line_number":79,"context_line":"                              rule[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_125748cb","line":76,"updated":"2014-06-03 23:58:50.000000000","message":"A status code check here would make sense since you\u0027re validating the delete call.","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d4d573911c04efbc01951c8ba32fd0384a4a47a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            self.assertEqual(to_port, rule[\u0027to_port\u0027])"},{"line_number":74,"context_line":"            self.assertEqual(cidr, rule[\u0027ip_range\u0027][\u0027cidr\u0027])"},{"line_number":75,"context_line":"            # Delete the Security Group default rule"},{"line_number":76,"context_line":"            self.adm_client.delete_security_group_default_rule(rule[\u0027id\u0027])"},{"line_number":77,"context_line":"            self.assertRaises(exceptions.NotFound,"},{"line_number":78,"context_line":"                              self.adm_client.get_security_group_default_rule,"},{"line_number":79,"context_line":"                              rule[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_55d3235f","line":76,"in_reply_to":"1ae5cdf2_125748cb","updated":"2014-06-06 04:26:52.000000000","message":"Done.","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"}],"tempest/services/compute/json/security_groups_client.py":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"703b9e72c83ddf2a7cc1c5d87d6d9e1f0f0df539","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def delete_security_group_default_rule(self,"},{"line_number":156,"context_line":"                                           security_group_default_rule_id):"},{"line_number":157,"context_line":"        \"\"\"Deletes the provided Security Group default rule.\"\"\""},{"line_number":158,"context_line":"        return self.delete(\u0027os-security-group-default-rules/%s\u0027 % str("},{"line_number":159,"context_line":"            security_group_default_rule_id))"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAXH%2F%2F734%3D","line":157,"updated":"2014-04-16 12:06:49.000000000","message":"Isn\u0027t below more better?\nresp, body \u003d self.delete(\u0027os-security-group-default-rules/%s\u0027 % str(security_group_default_rule_id)) \nBecause maybe you will add the attribute checking ;)","commit_id":"498a8633186e2b4f87695f6c4760f3d27f6c8151"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a8ce3e91dd53d7e64d7d053d204ab3e8a7a48962","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def delete_security_group_default_rule(self,"},{"line_number":156,"context_line":"                                           security_group_default_rule_id):"},{"line_number":157,"context_line":"        \"\"\"Deletes the provided Security Group default rule.\"\"\""},{"line_number":158,"context_line":"        return self.delete(\u0027os-security-group-default-rules/%s\u0027 % str("},{"line_number":159,"context_line":"            security_group_default_rule_id))"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAXH%2F%2F2kk%3D","line":157,"in_reply_to":"AAAAXH%2F%2F734%3D","updated":"2014-04-16 23:30:53.000000000","message":"Yes. i will change.","commit_id":"498a8633186e2b4f87695f6c4760f3d27f6c8151"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"540ed574e9af3fd2781280e105c378e22010963a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                return resp, sg[\u0027rules\u0027]"},{"line_number":132,"context_line":"        raise exceptions.NotFound(\u0027No such Security Group\u0027)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def create_security_default_group_rule(self, ip_protocol, from_port,"},{"line_number":135,"context_line":"                                           to_port, **kwargs):"},{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":"        Creating security group default rules."}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_925358e1","line":134,"updated":"2014-06-03 23:58:50.000000000","message":"Maybe you should make the default group rule methods into a subclass it seems like it would have a better logical separation. It will also make isolating these calls a bit simpler and control the line length a bit. The downside I guess is another client to add to clients.py","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d4d573911c04efbc01951c8ba32fd0384a4a47a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                return resp, sg[\u0027rules\u0027]"},{"line_number":132,"context_line":"        raise exceptions.NotFound(\u0027No such Security Group\u0027)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def create_security_default_group_rule(self, ip_protocol, from_port,"},{"line_number":135,"context_line":"                                           to_port, **kwargs):"},{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":"        Creating security group default rules."}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_f5c18f80","line":134,"in_reply_to":"1ae5cdf2_925358e1","updated":"2014-06-06 04:26:52.000000000","message":"Done","commit_id":"58d11478b5a1cab2f1edb0f4a85e26e431b78bbb"}]}
