)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9b47e4970da703e539a76787dda97c9c242dd4c1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Almost anything that gets passed to a Session.request() call is suitable"},{"line_number":22,"context_line":"to go into an adapter (the exceptions are essentially the body data and"},{"line_number":23,"context_line":"method which only makes sense per call)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I100c791806674213d3cdb5389d4b0a1cf88c82dd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1ae5cdf2_b0c4c760","line":24,"updated":"2014-06-18 23:26:24.000000000","message":"This should have a blueprint or a bug or at least a DocImpact.","commit_id":"5191149328018370f4dd3dec366c35241ec17bc6"}],"keystoneclient/adapter.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"9f319eeececab26ef42eb0f6e0a94836db0ed656","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from keystoneclient import utils"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class Adapter(baseclient.HttpMethodsBase):"},{"line_number":18,"context_line":"    \"\"\"An instance of a session with local variables."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    A session is a global object that is shared around amongst many clients. It"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_f21f8907","line":17,"updated":"2014-06-10 00:34:40.000000000","message":"I was expecting adapter to be written this way\n\nclass SessionAdapter(Session):\n    def __init__(self, session, service_type\u003dNone, ...):\n        self.__class__ \u003d type(session.__class__.__name__,\n                              (self.__class__, session.__class__),\n                              {})\n        self.__dict__ \u003d session.__dict__\n        self._session \u003d session","commit_id":"078866e6b43c725312965cdbb4d979aee5c8a035"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"44236e555986b9303480bc3a6eb39302d9376f80","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    A session is a global object that is shared around amongst many clients. It"},{"line_number":20,"context_line":"    therefore contains state that is relevant to everyone. There is a lot of"},{"line_number":21,"context_line":"    state such as the service type and region_name that are only relevant to a"},{"line_number":22,"context_line":"    particular client that is using the session. You therefore create an"},{"line_number":23,"context_line":"    adapter to a session that contains information relevant to your usage of"},{"line_number":24,"context_line":"    the session."},{"line_number":25,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_f98a3319","line":22,"updated":"2014-06-23 23:34:58.000000000","message":"(NIT) Suggest: rephrase to eliminate the \"you therefore\", perhaps soemthing like: To help provide separation of global session data and client-local data it is possible to create an adapter ...","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c57b80faf905f5949e58b88af403ae2e46867e6e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    A session is a global object that is shared around amongst many clients. It"},{"line_number":20,"context_line":"    therefore contains state that is relevant to everyone. There is a lot of"},{"line_number":21,"context_line":"    state such as the service type and region_name that are only relevant to a"},{"line_number":22,"context_line":"    particular client that is using the session. You therefore create an"},{"line_number":23,"context_line":"    adapter to a session that contains information relevant to your usage of"},{"line_number":24,"context_line":"    the session."},{"line_number":25,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_f46e8c63","line":22,"in_reply_to":"1ae5cdf2_f98a3319","updated":"2014-06-25 00:22:46.000000000","message":"Done","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ccbe3c687712e15349176b508df8d5631d367b29","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        :param str service_name: The default service_name for URL discovery."},{"line_number":36,"context_line":"        :param str interface: The default interface for URL discovery."},{"line_number":37,"context_line":"        :param str region_name: The default region_name for URL discovery."},{"line_number":38,"context_line":"        :param str auth: An auth plugin to use instead of the session one."},{"line_number":39,"context_line":"        :param str user_agent: The User-Agent string to set."},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_dcb70484","line":38,"updated":"2014-06-24 17:20:10.000000000","message":"an auth plugin is a string?","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c57b80faf905f5949e58b88af403ae2e46867e6e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        :param str service_name: The default service_name for URL discovery."},{"line_number":36,"context_line":"        :param str interface: The default interface for URL discovery."},{"line_number":37,"context_line":"        :param str region_name: The default region_name for URL discovery."},{"line_number":38,"context_line":"        :param str auth: An auth plugin to use instead of the session one."},{"line_number":39,"context_line":"        :param str user_agent: The User-Agent string to set."},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_148db82a","line":38,"in_reply_to":"1ae5cdf2_dcb70484","updated":"2014-06-25 00:22:46.000000000","message":"Done","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"}],"keystoneclient/tests/test_session.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ccbe3c687712e15349176b508df8d5631d367b29","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"class AdapterTest(utils.TestCase):"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    SERVICE_TYPE \u003d \u0027test-type\u0027"},{"line_number":517,"context_line":"    SERVICE_NAME \u003d \u0027test-name\u0027"},{"line_number":518,"context_line":"    INTERFACE \u003d \u0027test-interface\u0027"},{"line_number":519,"context_line":"    REGION_NAME \u003d \u0027test-region\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_9c32dc0d","line":516,"updated":"2014-06-24 17:20:10.000000000","message":"might as well use a random strings for these.","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c57b80faf905f5949e58b88af403ae2e46867e6e","unresolved":false,"context_lines":[{"line_number":513,"context_line":""},{"line_number":514,"context_line":"class AdapterTest(utils.TestCase):"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    SERVICE_TYPE \u003d \u0027test-type\u0027"},{"line_number":517,"context_line":"    SERVICE_NAME \u003d \u0027test-name\u0027"},{"line_number":518,"context_line":"    INTERFACE \u003d \u0027test-interface\u0027"},{"line_number":519,"context_line":"    REGION_NAME \u003d \u0027test-region\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_94a0e892","line":516,"in_reply_to":"1ae5cdf2_9c32dc0d","updated":"2014-06-25 00:22:46.000000000","message":"Done","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ccbe3c687712e15349176b508df8d5631d367b29","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"    @httpretty.activate"},{"line_number":525,"context_line":"    def test_setting_variables(self):"},{"line_number":526,"context_line":"        response \u003d \u0027response\u0027"},{"line_number":527,"context_line":"        self.stub_url(httpretty.GET, body\u003dresponse)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        auth \u003d CalledAuthPlugin()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_bc10785a","line":526,"updated":"2014-06-24 17:20:10.000000000","message":"I assume this could be a random string, too.","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c57b80faf905f5949e58b88af403ae2e46867e6e","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"    @httpretty.activate"},{"line_number":525,"context_line":"    def test_setting_variables(self):"},{"line_number":526,"context_line":"        response \u003d \u0027response\u0027"},{"line_number":527,"context_line":"        self.stub_url(httpretty.GET, body\u003dresponse)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        auth \u003d CalledAuthPlugin()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_b49b2463","line":526,"in_reply_to":"1ae5cdf2_bc10785a","updated":"2014-06-25 00:22:46.000000000","message":"Done","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ccbe3c687712e15349176b508df8d5631d367b29","unresolved":false,"context_lines":[{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    @httpretty.activate"},{"line_number":555,"context_line":"    def test_legacy_binding(self):"},{"line_number":556,"context_line":"        response \u003d \u0027{\"hello\": \"world\"}\u0027"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        self.stub_url(httpretty.GET, body\u003dresponse)"},{"line_number":559,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_bf1eaa5d","line":556,"updated":"2014-06-24 17:20:10.000000000","message":"suggest use a JSON library to generate json rather than typing it in.","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c57b80faf905f5949e58b88af403ae2e46867e6e","unresolved":false,"context_lines":[{"line_number":553,"context_line":""},{"line_number":554,"context_line":"    @httpretty.activate"},{"line_number":555,"context_line":"    def test_legacy_binding(self):"},{"line_number":556,"context_line":"        response \u003d \u0027{\"hello\": \"world\"}\u0027"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"        self.stub_url(httpretty.GET, body\u003dresponse)"},{"line_number":559,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_34b714d9","line":556,"in_reply_to":"1ae5cdf2_bf1eaa5d","updated":"2014-06-25 00:22:46.000000000","message":"Done","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ccbe3c687712e15349176b508df8d5631d367b29","unresolved":false,"context_lines":[{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    @httpretty.activate"},{"line_number":573,"context_line":"    def test_legacy_binding_non_json_resp(self):"},{"line_number":574,"context_line":"        response \u003d \u0027response\u0027"},{"line_number":575,"context_line":"        self.stub_url(httpretty.GET, body\u003dresponse, content_type\u003d\u0027text/html\u0027)"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        auth \u003d CalledAuthPlugin()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_bf55cafb","line":574,"updated":"2014-06-24 17:20:10.000000000","message":"use a random string.","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c57b80faf905f5949e58b88af403ae2e46867e6e","unresolved":false,"context_lines":[{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    @httpretty.activate"},{"line_number":573,"context_line":"    def test_legacy_binding_non_json_resp(self):"},{"line_number":574,"context_line":"        response \u003d \u0027response\u0027"},{"line_number":575,"context_line":"        self.stub_url(httpretty.GET, body\u003dresponse, content_type\u003d\u0027text/html\u0027)"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        auth \u003d CalledAuthPlugin()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_1f5cf1ef","line":574,"in_reply_to":"1ae5cdf2_bf55cafb","updated":"2014-06-25 00:22:46.000000000","message":"Done","commit_id":"35e7a82f4834a9e80985e88f41eea4d5a0f95646"}]}
