)]}'
{"cinder/tests/functional/api/client.py":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"efdad36239277aa9267582e1045817579802d899","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return response"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _authenticate(self, force_reauthication\u003dFalse):"},{"line_number":102,"context_line":"        if self.auth_result and not force_reauthication:"},{"line_number":103,"context_line":"            return self.auth_result"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_a4e6f9b1","line":101,"range":{"start_line":101,"start_character":28,"end_line":101,"end_character":47},"updated":"2016-04-05 17:07:06.000000000","message":"s/reauthication/force_reauthentication","commit_id":"f9f51549948c862417a3f2186ca3539327a342a1"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"0d2b7c02f33d03c232d3c14a45632e29d2ee5428","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return response"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _authenticate(self, force_reauthication\u003dFalse):"},{"line_number":102,"context_line":"        if self.auth_result and not force_reauthication:"},{"line_number":103,"context_line":"            return self.auth_result"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_446433e3","line":101,"range":{"start_line":101,"start_character":28,"end_line":101,"end_character":47},"in_reply_to":"9a061dce_a4e6f9b1","updated":"2016-04-05 20:02:00.000000000","message":"Done","commit_id":"f9f51549948c862417a3f2186ca3539327a342a1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"efdad36239277aa9267582e1045817579802d899","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        return response"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _authenticate(self, force_reauthication\u003dFalse):"},{"line_number":102,"context_line":"        if self.auth_result and not force_reauthication:"},{"line_number":103,"context_line":"            return self.auth_result"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        auth_uri \u003d self.auth_uri"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_84e1359d","line":102,"range":{"start_line":102,"start_character":36,"end_line":102,"end_character":55},"updated":"2016-04-05 17:07:06.000000000","message":"s/reauthication/force_reauthentication","commit_id":"f9f51549948c862417a3f2186ca3539327a342a1"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"0d2b7c02f33d03c232d3c14a45632e29d2ee5428","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        return response"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def _authenticate(self, force_reauthication\u003dFalse):"},{"line_number":102,"context_line":"        if self.auth_result and not force_reauthication:"},{"line_number":103,"context_line":"            return self.auth_result"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        auth_uri \u003d self.auth_uri"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_849c8bc1","line":102,"range":{"start_line":102,"start_character":36,"end_line":102,"end_character":55},"in_reply_to":"9a061dce_84e1359d","updated":"2016-04-05 20:02:00.000000000","message":"Done","commit_id":"f9f51549948c862417a3f2186ca3539327a342a1"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"efdad36239277aa9267582e1045817579802d899","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            {\u0027quota_set\u0027: quota_update})[\u0027quota_set\u0027]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def quota_get(self, project_id):"},{"line_number":211,"context_line":"        return self.api_get(\u0027os-quota-sets/%s?usage\u003dTrue\u0027"},{"line_number":212,"context_line":"                            % project_id)[\u0027quota_set\u0027]"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def create_type(self, type_name, extra_specs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_9f1e9c61","line":211,"range":{"start_line":211,"start_character":46,"end_line":211,"end_character":51},"updated":"2016-04-05 17:07:06.000000000","message":"Just a suggestion: why don\u0027t you pass usage as a parameter of quota_get? In this way, this method can be more easily reusable.","commit_id":"f9f51549948c862417a3f2186ca3539327a342a1"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"0d2b7c02f33d03c232d3c14a45632e29d2ee5428","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            {\u0027quota_set\u0027: quota_update})[\u0027quota_set\u0027]"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def quota_get(self, project_id):"},{"line_number":211,"context_line":"        return self.api_get(\u0027os-quota-sets/%s?usage\u003dTrue\u0027"},{"line_number":212,"context_line":"                            % project_id)[\u0027quota_set\u0027]"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def create_type(self, type_name, extra_specs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a061dce_a4a9cfe1","line":211,"range":{"start_line":211,"start_character":46,"end_line":211,"end_character":51},"in_reply_to":"9a061dce_9f1e9c61","updated":"2016-04-05 20:02:00.000000000","message":"Done","commit_id":"f9f51549948c862417a3f2186ca3539327a342a1"}],"cinder/tests/functional/functional_helpers.py":[{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"984baf625b13ee73897ce2dd7107aa6ef4456caf","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        server[\u0027name\u0027] \u003d server_name"},{"line_number":143,"context_line":"        return server"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _poll_while(self, volume_id, continue_states, expected_end_status\u003dNone,"},{"line_number":146,"context_line":"                    max_retries\u003d5):"},{"line_number":147,"context_line":"        \"\"\"Poll (briefly) while the state is in continue_states."},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_5a54e3fd","line":145,"updated":"2016-03-30 20:18:53.000000000","message":"nit: it might be nice call it _poll_volume_while or something","commit_id":"9b6a7673529c8be288a8ec5ed1df06598a2d2da9"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"492040cf53b0b14bb4e9ce84ff5ba21e1d242e56","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        server[\u0027name\u0027] \u003d server_name"},{"line_number":143,"context_line":"        return server"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _poll_while(self, volume_id, continue_states, expected_end_status\u003dNone,"},{"line_number":146,"context_line":"                    max_retries\u003d5):"},{"line_number":147,"context_line":"        \"\"\"Poll (briefly) while the state is in continue_states."},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_c9d02ff9","line":145,"in_reply_to":"ba0121b8_5a54e3fd","updated":"2016-03-30 22:28:36.000000000","message":"done","commit_id":"9b6a7673529c8be288a8ec5ed1df06598a2d2da9"}],"cinder/tests/functional/test_quotas.py":[{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"8c58a47c693953803ea59b88f4065173a1064c79","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Shouldn\u0027t be able to create volume on child project by default"},{"line_number":94,"context_line":"        self.assertRaises(self.over_quota_exception, self._create_volume)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_update_child_with_parent_default_quota(self):"},{"line_number":97,"context_line":"        # Make sure we can update to a reasonable value"},{"line_number":98,"context_line":"        self.api.quota_set(self.B.id, {\u0027volumes\u0027: 5})"},{"line_number":99,"context_line":"        # Ensure that the update took"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_647428cf","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":51},"updated":"2016-03-29 07:49:06.000000000","message":"This test doesn\u0027t have any assert(), which is a little bit strange for me, maybe worth a comment?","commit_id":"9b6a7673529c8be288a8ec5ed1df06598a2d2da9"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"492040cf53b0b14bb4e9ce84ff5ba21e1d242e56","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Shouldn\u0027t be able to create volume on child project by default"},{"line_number":94,"context_line":"        self.assertRaises(self.over_quota_exception, self._create_volume)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_update_child_with_parent_default_quota(self):"},{"line_number":97,"context_line":"        # Make sure we can update to a reasonable value"},{"line_number":98,"context_line":"        self.api.quota_set(self.B.id, {\u0027volumes\u0027: 5})"},{"line_number":99,"context_line":"        # Ensure that the update took"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_89eab7aa","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":51},"in_reply_to":"ba0121b8_5ad7c34a","updated":"2016-03-30 22:28:36.000000000","message":"Ah - I like that suggestion a lot.","commit_id":"9b6a7673529c8be288a8ec5ed1df06598a2d2da9"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"7ac22aeae271d3a4e84dc431b8b6bfe4a4789629","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Shouldn\u0027t be able to create volume on child project by default"},{"line_number":94,"context_line":"        self.assertRaises(self.over_quota_exception, self._create_volume)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_update_child_with_parent_default_quota(self):"},{"line_number":97,"context_line":"        # Make sure we can update to a reasonable value"},{"line_number":98,"context_line":"        self.api.quota_set(self.B.id, {\u0027volumes\u0027: 5})"},{"line_number":99,"context_line":"        # Ensure that the update took"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_ec6e45c8","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":51},"in_reply_to":"ba0121b8_647428cf","updated":"2016-03-29 13:15:35.000000000","message":"Reasonable question :) so in the past we\u0027ve had issues with updating a child project when the parent project has a default quota set, so that\u0027s what this is exposing.  But I can see how it\u0027s strange, do you think it\u0027s better to slide this into the next test case to make one larger test?","commit_id":"9b6a7673529c8be288a8ec5ed1df06598a2d2da9"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"984baf625b13ee73897ce2dd7107aa6ef4456caf","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Shouldn\u0027t be able to create volume on child project by default"},{"line_number":94,"context_line":"        self.assertRaises(self.over_quota_exception, self._create_volume)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_update_child_with_parent_default_quota(self):"},{"line_number":97,"context_line":"        # Make sure we can update to a reasonable value"},{"line_number":98,"context_line":"        self.api.quota_set(self.B.id, {\u0027volumes\u0027: 5})"},{"line_number":99,"context_line":"        # Ensure that the update took"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_5ad7c34a","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":51},"in_reply_to":"ba0121b8_ec6e45c8","updated":"2016-03-30 20:18:53.000000000","message":"You could maybe just add in the _poll_while() and assert that the volume hits \u0027available\u0027. Or if we don\u0027t even care that much just assert we get *something* back when creating the volume, that way its more clear we are just expecting not to get an error raised.","commit_id":"9b6a7673529c8be288a8ec5ed1df06598a2d2da9"}]}
