)]}'
{"tempest/api/network/base.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"40f30b6d1396b042d600faebb6b0d70bae4d858f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    Therefore, v2.x of the Neutron API is assumed. It is also assumed that the"},{"line_number":34,"context_line":"    following options are defined in the [network] section of etc/tempest.conf:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        quantum_available as True"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        tenant_network_cidr with a block of cidr\u0027s from which smaller blocks"},{"line_number":39,"context_line":"        can be allocated for tenant networks"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fp08%3D","line":36,"updated":"2013-07-15 08:18:43.000000000","message":"neutron_available as True","commit_id":"2d56423533ca943e1c23c49fcb6aa6065aa8699c"}],"tempest/api/network/test_quotas.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6bf31730628ea336f664edb835493087f7070677","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api.network import base"},{"line_number":20,"context_line":"from tempest.clients import AdminManager"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FRAQ%3D","line":20,"updated":"2013-07-05 17:18:39.000000000","message":"Per hacking guidelines, we try to keep the imports to modules only, not objects.\n\nhttps://github.com/openstack/tempest/blob/master/HACKING.rst","commit_id":"f6fcdde866a306bf72ba256bca2995b9107df186"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6bf31730628ea336f664edb835493087f7070677","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":73,"context_line":"        self.assertEqual(0, quota_set[\u0027network\u0027])"},{"line_number":74,"context_line":"        self.assertEqual(0, quota_set[\u0027security_group\u0027])"},{"line_number":75,"context_line":"        #Reset quotas to default and confirm"},{"line_number":76,"context_line":"        resp, body \u003d self.admin_client.reset_quotas(self.demo_tenant_id)"},{"line_number":77,"context_line":"        self.assertEqual(\u0027204\u0027, resp[\u0027status\u0027])"},{"line_number":78,"context_line":"        resp, non_default_quotas \u003d self.admin_client.list_quotas()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FQ%2F8%3D","line":75,"updated":"2013-07-05 17:18:39.000000000","message":"For comments starting with #, please make sure there is a space after the # sign. Here and above.","commit_id":"f6fcdde866a306bf72ba256bca2995b9107df186"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"06124793b3df64d8665342305d031f7365a7f01c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        cls.admin_client \u003d admin_manager.network_client"},{"line_number":51,"context_line":"        identity_admin_client \u003d admin_manager.identity_client"},{"line_number":52,"context_line":"        resp, tenants \u003d identity_admin_client.list_tenants()"},{"line_number":53,"context_line":"        cls.demo_tenant_id \u003d [tnt[\u0027id\u0027] for tnt in tenants if tnt[\u0027name\u0027]"},{"line_number":54,"context_line":"                              \u003d\u003d cls.config.identity.tenant_name][0]"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @attr(type\u003d[\u0027positive\u0027, \u0027gate\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2F8dI%3D","line":53,"updated":"2013-07-08 19:28:45.000000000","message":"this is a lot of logic for one line, can we unpack that a bit?","commit_id":"25028e2ab72894331c3e42f017d9f147a8e9c36c"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"36190373123ff284abb8cad74dffe1af05eef6ea","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @attr(type\u003d[\u0027positive\u0027, \u0027gate\u0027])"},{"line_number":58,"context_line":"    def test_quotas(self):"},{"line_number":59,"context_line":"        # Change quotas for demo tenant"},{"line_number":60,"context_line":"        new_quotas \u003d {\u0027network\u0027: 0, \u0027security_group\u0027: 0}"},{"line_number":61,"context_line":"        resp, quota_set \u003d self.admin_client.update_quotas(self.demo_tenant_id,"},{"line_number":62,"context_line":"                                                          **new_quotas)"},{"line_number":63,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2Fekk%3D","line":60,"updated":"2013-07-17 16:57:35.000000000","message":"You should not manipulate the demo tenant\u0027s quota, especially to 0.\n\nIn parallel run it can cause random failurs in another tests.\n\nThe identity admin is able to create a new clean tenant for this test case.","commit_id":"db2a6fda1e8a600946e3a07e78c2ea9b7bf7f031"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2ed6f2979cb1ae83602afee5b0f56d91bb11c01d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        reset quotas to default values for a specified tenant"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    v2.0 of the API is assumed. It is also assumed that the following"},{"line_number":37,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        neutron_available as True"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FiAM%3D","line":37,"updated":"2013-07-29 17:54:38.000000000","message":"Should be [service_available]","commit_id":"42a25f44f9fd25be950a2f4802707e9f9d71e6d5"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"2ed6f2979cb1ae83602afee5b0f56d91bb11c01d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    v2.0 of the API is assumed. It is also assumed that the following"},{"line_number":37,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        neutron_available as True"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    Finally, it is assumed that the per-tenant quota extension API is"},{"line_number":42,"context_line":"    configured in /etc/neutron/neutron.conf as follows:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FiAE%3D","line":39,"updated":"2013-07-29 17:54:38.000000000","message":"Should be \"neutron as True\"","commit_id":"42a25f44f9fd25be950a2f4802707e9f9d71e6d5"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"20d0baea2420ac11f37f8aa739a34c772ce27256","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        cls.admin_client \u003d admin_manager.network_client"},{"line_number":52,"context_line":"        cls.identity_admin_client \u003d admin_manager.identity_client"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @attr(type\u003d[\u0027positive\u0027, \u0027gate\u0027])"},{"line_number":55,"context_line":"    def test_quotas(self):"},{"line_number":56,"context_line":"        # Add a tenant to conduct the test"},{"line_number":57,"context_line":"        test_tenant \u003d rand_name(\u0027test_tenant_\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2Fg80%3D","line":54,"updated":"2013-07-30 00:07:06.000000000","message":"positive is not a valid tag. Please remove that, and I\u0027ll be +2.","commit_id":"6690b8066a62d2877b467bc0b2f25618cd171c8c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"77a05ceb21b67f4b36d58e0a10c87847b898a90f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Confirm tenant is listed in non default quotas"},{"line_number":73,"context_line":"        resp, non_default_quotas \u003d self.admin_client.list_quotas()"},{"line_number":74,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":75,"context_line":"        self.assertTrue(qs for qs in non_default_quotas if qs[\u0027tenant_id\u0027]"},{"line_number":76,"context_line":"                        \u003d\u003d tenant_id)"},{"line_number":77,"context_line":"        # Confirm from APi quotas were changed as requested for tenant"},{"line_number":78,"context_line":"        resp, quota_set \u003d self.admin_client.show_quotas(tenant_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAQn%2F%2FZXs%3D","line":75,"updated":"2013-07-31 19:58:42.000000000","message":"this really needs to be converted to an assertIn. If this fails, it\u0027s going to be impossible to figure out why as it will be hidden in the list comprehension.","commit_id":"bdb93f342ee84c2c3ba96db368e8da8ab8201eb7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"0609e5fa172c383671d8b1f4eb8673548dd5453a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Confirm tenant is listed in non default quotas"},{"line_number":73,"context_line":"        resp, non_default_quotas \u003d self.admin_client.list_quotas()"},{"line_number":74,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":75,"context_line":"        self.assertTrue(qs for qs in non_default_quotas if qs[\u0027tenant_id\u0027]"},{"line_number":76,"context_line":"                        \u003d\u003d tenant_id)"},{"line_number":77,"context_line":"        # Confirm from APi quotas were changed as requested for tenant"},{"line_number":78,"context_line":"        resp, quota_set \u003d self.admin_client.show_quotas(tenant_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAQn%2F%2FYck%3D","line":75,"in_reply_to":"AAAAQn%2F%2FZXs%3D","updated":"2013-08-01 02:28:19.000000000","message":"Done","commit_id":"bdb93f342ee84c2c3ba96db368e8da8ab8201eb7"}]}
