)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enable users to manage EC2-credentials on publicURL"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix enable users to manage their EC2 credentials using publicURL"},{"line_number":10,"context_line":"instead of adminURL that can be not publicly exposed for \u0027security\u0027"},{"line_number":11,"context_line":"reason"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_a853ad37","line":9,"updated":"2014-05-23 19:35:18.000000000","message":"Should be:  This fix enables users...","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This fix enable users to manage their EC2 credentials using publicURL"},{"line_number":10,"context_line":"instead of adminURL that can be not publicly exposed for \u0027security\u0027"},{"line_number":11,"context_line":"reason"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I46c4bf27223d0170276b711bda6faac115ef4c10"},{"line_number":14,"context_line":"Closes-Bug: #1286063"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7adec928_e834d5fc","line":11,"updated":"2014-05-23 19:35:18.000000000","message":"Should be: reasons.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"}],"keystoneclient/base.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4de2c95e6d4dcb9849bc729fec5a733ef48c695b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        return self.client"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _list(self, url, response_key, obj_class\u003dNone, body\u003dNone,"},{"line_number":93,"context_line":"              management\u003dTrue):"},{"line_number":94,"context_line":"        \"\"\"List the collection."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        :param url: a partial URL, e.g., \u0027/servers\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FbgE%3D","line":93,"updated":"2014-03-06 05:42:50.000000000","message":"i think i would prefer we just allow passing **kwargs through here to the relevant request method all through this file.","commit_id":"a5d07762b704e649474ed60d8bc33cc279abeb01"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7adec928_abb48735","updated":"2014-05-23 19:35:18.000000000","message":"Since we are actually just passing in \u0027management\u0027 why use kwargs instead of just specifying management?","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"0979f249a7b1312fc278dc6d36f12254afc44f04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3ae8d1ca_516a171b","in_reply_to":"7adec928_abb48735","updated":"2014-05-28 04:33:47.000000000","message":"I think i asked for this. There are other things i would like to get down from the top level into the actual request. \n\nPerhaps you want to specify a different region_name or something for this request. Add a header for some reason, who knows.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            (self.resource_class will be used by default)"},{"line_number":100,"context_line":"        :param body: data that will be encoded as JSON and passed in POST"},{"line_number":101,"context_line":"            request (GET will be sent by default)"},{"line_number":102,"context_line":"        \"\"\""},{"line_number":103,"context_line":"        if body:"},{"line_number":104,"context_line":"            resp, body \u003d self.client.post(url, body\u003dbody, **kwargs)"},{"line_number":105,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_882fd1a0","line":102,"updated":"2014-05-23 19:35:18.000000000","message":"\u0027kwargs\u0027 was added to the signature, but not the doc comment.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        :param url: a partial URL, e.g., \u0027/servers\u0027"},{"line_number":125,"context_line":"        :param response_key: the key to be looked up in response dictionary,"},{"line_number":126,"context_line":"            e.g., \u0027server\u0027"},{"line_number":127,"context_line":"        \"\"\""},{"line_number":128,"context_line":"        resp, body \u003d self.client.get(url, **kwargs)"},{"line_number":129,"context_line":"        return self.resource_class(self, body[response_key], loaded\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_e81bf57d","line":126,"updated":"2014-05-23 19:35:18.000000000","message":"Same as above.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        \"\"\"Retrieve request headers for an object."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        :param url: a partial URL, e.g., \u0027/servers\u0027"},{"line_number":135,"context_line":"        \"\"\""},{"line_number":136,"context_line":"        resp, body \u003d self.client.head(url, **kwargs)"},{"line_number":137,"context_line":"        return resp.status_code \u003d\u003d 204"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_0813c166","line":135,"updated":"2014-05-23 19:35:18.000000000","message":"Same as above.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        resp, body \u003d self.client.head(url, **kwargs)"},{"line_number":137,"context_line":"        return resp.status_code \u003d\u003d 204"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def _create(self, url, body, response_key, return_raw\u003dFalse, **kwargs):"},{"line_number":140,"context_line":"        \"\"\"Deprecated. Use `_post` instead."},{"line_number":141,"context_line":"        \"\"\""},{"line_number":142,"context_line":"        return self._post(url, body, response_key, return_raw, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_6807e51d","line":139,"updated":"2014-05-23 19:35:18.000000000","message":"This is deprecated. Does it need to change?","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            e.g., \u0027servers\u0027"},{"line_number":152,"context_line":"        :param return_raw: flag to force returning raw JSON instead of"},{"line_number":153,"context_line":"            Python object of self.resource_class"},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        resp, body \u003d self.client.post(url, body\u003dbody, **kwargs)"},{"line_number":156,"context_line":"        if return_raw:"},{"line_number":157,"context_line":"            return body[response_key]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_cbff1300","line":154,"updated":"2014-05-23 19:35:18.000000000","message":"kwargs missing from the doc string.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            request (GET will be sent by default)"},{"line_number":166,"context_line":"        :param response_key: the key to be looked up in response dictionary,"},{"line_number":167,"context_line":"            e.g., \u0027servers\u0027"},{"line_number":168,"context_line":"        \"\"\""},{"line_number":169,"context_line":"        resp, body \u003d self.client.put(url, body\u003dbody, **kwargs)"},{"line_number":170,"context_line":"        # PUT requests may not return a body"},{"line_number":171,"context_line":"        if body is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_eb020f08","line":168,"updated":"2014-05-23 19:35:18.000000000","message":"Same as above","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            request (GET will be sent by default)"},{"line_number":183,"context_line":"        :param response_key: the key to be looked up in response dictionary,"},{"line_number":184,"context_line":"            e.g., \u0027servers\u0027"},{"line_number":185,"context_line":"        \"\"\""},{"line_number":186,"context_line":"        resp, body \u003d self.client.patch(url, body\u003dbody, **kwargs)"},{"line_number":187,"context_line":"        if response_key is not None:"},{"line_number":188,"context_line":"            return self.resource_class(self, body[response_key])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_2b0dd737","line":185,"updated":"2014-05-23 19:35:18.000000000","message":"Same as above","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        \"\"\"Delete an object."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        :param url: a partial URL, e.g., \u0027/servers/my-server\u0027"},{"line_number":196,"context_line":"        \"\"\""},{"line_number":197,"context_line":"        return self.client.delete(url, **kwargs)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def _update(self, url, body\u003dNone, response_key\u003dNone, method\u003d\"PUT\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_6b0eff33","line":196,"updated":"2014-05-23 19:35:18.000000000","message":"Same as above","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"}],"keystoneclient/tests/test_base.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4de2c95e6d4dcb9849bc729fec5a733ef48c695b","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.client.get \u003d self.mox.CreateMockAnything()"},{"line_number":45,"context_line":"        self.client.get(\u0027/OS-KSADM/roles/1\u0027, management\u003dself.management).\\"},{"line_number":46,"context_line":"            AndRaise(AttributeError)"},{"line_number":47,"context_line":"        self.mox.ReplayAll()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        f \u003d roles.Role(self.client.roles, {\u0027id\u0027: 1, \u0027name\u0027: \u0027Member\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fbfw%3D","line":46,"updated":"2014-03-06 05:42:50.000000000","message":"i\u0027m not sure why we need to make this change?","commit_id":"a5d07762b704e649474ed60d8bc33cc279abeb01"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4de2c95e6d4dcb9849bc729fec5a733ef48c695b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"class ManagerTest(utils.TestCase):"},{"line_number":83,"context_line":"    body \u003d {\"hello\": {\"hi\": 1}}"},{"line_number":84,"context_line":"    url \u003d \"/test-url\""},{"line_number":85,"context_line":"    management_endpoint \u003d [True, False]"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def setUp(self):"},{"line_number":88,"context_line":"        super(ManagerTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FbZI%3D","line":85,"updated":"2014-03-06 05:42:50.000000000","message":"this doesn\u0027t need to be a class variable","commit_id":"a5d07762b704e649474ed60d8bc33cc279abeb01"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4de2c95e6d4dcb9849bc729fec5a733ef48c695b","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"            rsrc \u003d self.mgr._patch(self.url, self.body,"},{"line_number":164,"context_line":"                                   management\u003dmanagement)"},{"line_number":165,"context_line":"            self.assertEqual(rsrc.hello[\"hi\"], 1)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_update(self):"},{"line_number":168,"context_line":"        self.client.patch \u003d self.mox.CreateMockAnything()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FbYo%3D","line":165,"updated":"2014-03-06 05:42:50.000000000","message":"i don\u0027t think these tests show that the URL being used has changed because of the management flag. \n\nI think just add a new test which shows that it uses admin url normally and auth url when management is passed to the manager.","commit_id":"a5d07762b704e649474ed60d8bc33cc279abeb01"}],"keystoneclient/tests/v2_0/test_ec2.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2d81c5a4ffc62713543308e141748d6dce92bd58","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class EC2Tests(utils.TestCase):"},{"line_number":20,"context_line":"    def setUp(self):"},{"line_number":21,"context_line":"        super(EC2Tests, self).setUp()"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2F1Tw%3D","line":20,"updated":"2014-04-17 04:47:07.000000000","message":"these don\u0027t appear to be doing anything, suggest removing them","commit_id":"edbcf64c7ad0f93e2e29a2c9994f741f85dff27d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"2046400b147e400de2cf8613548a5e67bd095a6a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import httpretty"},{"line_number":14,"context_line":"from mox3 import mox"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneclient.tests.v2_0 import utils"},{"line_number":17,"context_line":"from keystoneclient.v2_0 import ec2"}],"source_content_type":"text/x-python","patch_set":3,"id":"7adec928_eb504f0c","line":14,"updated":"2014-05-23 19:35:18.000000000","message":"Are you able to do this with mock? In general we are trying to get rid of mox in favor of mock and since this is new code it makes sense to just use the preferred library.","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0db290bdda6e03d420b370eab52f39ef6a3390b0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import httpretty"},{"line_number":14,"context_line":"from mox3 import mox"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneclient.tests.v2_0 import utils"},{"line_number":17,"context_line":"from keystoneclient.v2_0 import ec2"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_793dfcba","line":14,"in_reply_to":"3ae8d1ca_f15a4382","updated":"2014-07-02 20:14:22.000000000","message":"documentation for mock http://www.voidspace.org.uk/python/mock/","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"0979f249a7b1312fc278dc6d36f12254afc44f04","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import httpretty"},{"line_number":14,"context_line":"from mox3 import mox"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneclient.tests.v2_0 import utils"},{"line_number":17,"context_line":"from keystoneclient.v2_0 import ec2"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_f15a4382","line":14,"in_reply_to":"7adec928_eb504f0c","updated":"2014-05-28 04:33:47.000000000","message":"even better - why can\u0027t you do it with httpretty?","commit_id":"d4d8853d4e9a0259a7b1af8d6c99d243c944bdd7"}]}
