)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3a5024892dbf3f1c0d02efdc614d7a9abb3e53fb","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Changes to cinderclient to use microversions."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implements: https://blueprints.launchpad.net/python-cinderclient/+spec/"},{"line_number":12,"context_line":"api-microversion-support-for-cinderclient"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I840a1162b88e8ff36fa3fc4e1d6b9317104df3e0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1a122d0e_459d31bb","line":11,"updated":"2016-04-19 14:20:34.000000000","message":"Should be:\n\nImplements: blueprint api-microversion-support-for-cinderclient","commit_id":"7272a5671108c2e197ff31087705d9990450c25b"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"c13673626e492cee80e7673c197c0cc2083b935e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Changes to cinderclient to use microversions."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implements: https://blueprints.launchpad.net/python-cinderclient/+spec/"},{"line_number":12,"context_line":"api-microversion-support-for-cinderclient"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I840a1162b88e8ff36fa3fc4e1d6b9317104df3e0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1a122d0e_e0042b4b","line":11,"in_reply_to":"1a122d0e_459d31bb","updated":"2016-04-19 14:44:26.000000000","message":"Done","commit_id":"7272a5671108c2e197ff31087705d9990450c25b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3a5024892dbf3f1c0d02efdc614d7a9abb3e53fb","unresolved":false,"context_lines":[{"line_number":12,"context_line":"api-microversion-support-for-cinderclient"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I840a1162b88e8ff36fa3fc4e1d6b9317104df3e0"},{"line_number":15,"context_line":"Depends-On: I6ae0ada221bebb4ab1850d9c99b10fcbb585201f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1a122d0e_c5b14149","line":15,"updated":"2016-04-19 14:20:34.000000000","message":"Depends-on should really only be used for cross-repo dependencies.","commit_id":"7272a5671108c2e197ff31087705d9990450c25b"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"c13673626e492cee80e7673c197c0cc2083b935e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"api-microversion-support-for-cinderclient"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I840a1162b88e8ff36fa3fc4e1d6b9317104df3e0"},{"line_number":15,"context_line":"Depends-On: I6ae0ada221bebb4ab1850d9c99b10fcbb585201f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1a122d0e_00f84748","line":15,"in_reply_to":"1a122d0e_c5b14149","updated":"2016-04-19 14:44:26.000000000","message":"Done","commit_id":"7272a5671108c2e197ff31087705d9990450c25b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c6078607e8585ae5f4440ffaa3af5e7f49bee91d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Changes to cinderclient to use microversions."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implements: blueprint api-microversion-support-for-cinderclient"},{"line_number":12,"context_line":"api-microversion-support-for-cinderclient"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I840a1162b88e8ff36fa3fc4e1d6b9317104df3e0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1a122d0e_1b2ef6a4","line":12,"updated":"2016-04-19 15:04:31.000000000","message":"Extra line here now, but not critical. Good enough for me.","commit_id":"b2cca509e1ff6239d677af559bcdc736e208a593"}],"cinderclient/api_versions.py":[{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"ab018e6e56a12259025a77ccd5218e43ac2f3649","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        @functools.wraps(func)"},{"line_number":350,"context_line":"        def substitution(obj, *args, **kwargs):"},{"line_number":351,"context_line":"            methods \u003d get_substitutions(name, obj.api_version)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"            if not methods:"},{"line_number":354,"context_line":"                raise exceptions.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a1b2928_4b95c53e","line":351,"range":{"start_line":351,"start_character":50,"end_line":351,"end_character":61},"updated":"2016-04-11 04:15:59.000000000","message":"When I test this wrapper in some Manager class, I get such error:\nERROR: \u0027XxxxxxManager\u0027 object has no attribute \u0027api_version\u0027","commit_id":"1e111f5a4c10cc60a2d8c36ce2307988a669ca3d"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"2f1e0fb79168619cd60bf1b1f147536237d0e413","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        @functools.wraps(func)"},{"line_number":350,"context_line":"        def substitution(obj, *args, **kwargs):"},{"line_number":351,"context_line":"            methods \u003d get_substitutions(name, obj.api_version)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"            if not methods:"},{"line_number":354,"context_line":"                raise exceptions.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a1b2928_b174a09c","line":351,"range":{"start_line":351,"start_character":50,"end_line":351,"end_character":61},"in_reply_to":"7a1b2928_4b95c53e","updated":"2016-04-11 18:45:09.000000000","message":"You are right. base.py Manager() is missing @property for api_version.\nI\u0027ll fix.","commit_id":"1e111f5a4c10cc60a2d8c36ce2307988a669ca3d"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def __ge__(self, other):"},{"line_number":120,"context_line":"        return self \u003e other or self \u003d\u003d other"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def matches(self, min_version, max_version):"},{"line_number":123,"context_line":"        \"\"\"Returns whether the version object represents a version"},{"line_number":124,"context_line":"        greater than or equal to the minimum version and less than"},{"line_number":125,"context_line":"        or equal to the maximum version."}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_df10e05b","line":122,"updated":"2016-04-14 12:24:03.000000000","message":"-1: max_version should default to None (the code is ready for that) so we can do:\n\n version.matches(\u00273.2\u0027)\n\ninstead of having to do\n\n version.matches(\u00273.2\u0027, None)","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"81f03860305addeaab01d66e91c22df3741bc39a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def __ge__(self, other):"},{"line_number":120,"context_line":"        return self \u003e other or self \u003d\u003d other"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def matches(self, min_version, max_version):"},{"line_number":123,"context_line":"        \"\"\"Returns whether the version object represents a version"},{"line_number":124,"context_line":"        greater than or equal to the minimum version and less than"},{"line_number":125,"context_line":"        or equal to the maximum version."}],"source_content_type":"text/x-python","patch_set":8,"id":"3a1531f4_d7e17e00","line":122,"in_reply_to":"5a18252c_2fc3998a","updated":"2016-04-15 08:54:48.000000000","message":"I know the code works, I\u0027ve tried it, but it looks weird having to set max_version to None.  ;-)","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def __ge__(self, other):"},{"line_number":120,"context_line":"        return self \u003e other or self \u003d\u003d other"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def matches(self, min_version, max_version):"},{"line_number":123,"context_line":"        \"\"\"Returns whether the version object represents a version"},{"line_number":124,"context_line":"        greater than or equal to the minimum version and less than"},{"line_number":125,"context_line":"        or equal to the maximum version."}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_2fc3998a","line":122,"in_reply_to":"5a18252c_df10e05b","updated":"2016-04-14 15:20:57.000000000","message":"That might be more clear, but this is taken care of in L#150.\nI will fix.","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            raise ValueError(\"Null APIVersion doesn\u0027t support \u0027matches\u0027.\")"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if isinstance(min_version, str):"},{"line_number":140,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":141,"context_line":"        if isinstance(max_version, str):"},{"line_number":142,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_d26c57d2","line":140,"updated":"2016-04-14 12:24:03.000000000","message":"-1: This has 2 issues, it\u0027s not APIVersionRequest but APIVersion, and it\u0027s not version_string but version_str.","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            raise ValueError(\"Null APIVersion doesn\u0027t support \u0027matches\u0027.\")"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if isinstance(min_version, str):"},{"line_number":140,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":141,"context_line":"        if isinstance(max_version, str):"},{"line_number":142,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_4f27f5c9","line":140,"in_reply_to":"5a18252c_d26c57d2","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if isinstance(min_version, str):"},{"line_number":140,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":141,"context_line":"        if isinstance(max_version, str):"},{"line_number":142,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if not min_version and not max_version:"},{"line_number":145,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_325e6b12","line":142,"updated":"2016-04-14 12:24:03.000000000","message":"-1: same as above","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if isinstance(min_version, str):"},{"line_number":140,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":141,"context_line":"        if isinstance(max_version, str):"},{"line_number":142,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if not min_version and not max_version:"},{"line_number":145,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_2f2439c3","line":142,"in_reply_to":"5a18252c_325e6b12","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/client.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":667,"context_line":"    The simplest way to create a client instance is initialization with your"},{"line_number":668,"context_line":"    credentials::"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        \u003e\u003e\u003e from cinderclient import client"},{"line_number":671,"context_line":"        \u003e\u003e\u003e cinder \u003d client.Client(VERSION, USERNAME, PASSWORD,"},{"line_number":672,"context_line":"        ...                      PROJECT_ID, AUTH_URL)"},{"line_number":673,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_b2b39be8","line":670,"updated":"2016-04-14 12:24:03.000000000","message":"nit: This needs to be in\n\n .. code-block:: python\n\nOtherwise sphinx will give some warnings","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":667,"context_line":"    The simplest way to create a client instance is initialization with your"},{"line_number":668,"context_line":"    credentials::"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        \u003e\u003e\u003e from cinderclient import client"},{"line_number":671,"context_line":"        \u003e\u003e\u003e cinder \u003d client.Client(VERSION, USERNAME, PASSWORD,"},{"line_number":672,"context_line":"        ...                      PROJECT_ID, AUTH_URL)"},{"line_number":673,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_92b77639","line":670,"in_reply_to":"5a18252c_b2b39be8","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dd8920e5c718570cb97eadd06aa37d27d967bc97","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    credentials::"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    .. code-block:: python"},{"line_number":671,"context_line":"        \u003e\u003e\u003e from cinderclient import client"},{"line_number":672,"context_line":"        \u003e\u003e\u003e cinder \u003d client.Client(VERSION, USERNAME, PASSWORD,"},{"line_number":673,"context_line":"        ...                      PROJECT_ID, AUTH_URL)"},{"line_number":674,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a1531f4_17e4960b","line":671,"updated":"2016-04-15 08:56:55.000000000","message":"nit: This needs a blank line after .. code-block","commit_id":"366e43cadd8487d03ef834bb15da0c459dd0dec7"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"1dd52f59dd10c4a10adf221d084ba9c85466c5bd","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    credentials::"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"    .. code-block:: python"},{"line_number":671,"context_line":"        \u003e\u003e\u003e from cinderclient import client"},{"line_number":672,"context_line":"        \u003e\u003e\u003e cinder \u003d client.Client(VERSION, USERNAME, PASSWORD,"},{"line_number":673,"context_line":"        ...                      PROJECT_ID, AUTH_URL)"},{"line_number":674,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_05ffe234","line":671,"in_reply_to":"3a1531f4_17e4960b","updated":"2016-04-18 19:44:56.000000000","message":"Done","commit_id":"366e43cadd8487d03ef834bb15da0c459dd0dec7"}],"cinderclient/shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":50,"context_line":"# Enable i18n lazy translation"},{"line_number":51,"context_line":"_i18n.enable_lazy()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"DEFAULT_MAJOR_OS_VOLUME_API_VERSION \u003d api_versions.MAX_VERSION"},{"line_number":54,"context_line":"DEFAULT_CINDER_ENDPOINT_TYPE \u003d \u0027publicURL\u0027"},{"line_number":55,"context_line":"DEFAULT_CINDER_SERVICE_TYPE \u003d \u0027volumev3\u0027"},{"line_number":56,"context_line":"V1_SHELL \u003d \u0027cinderclient.v1.shell\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_b270bbdd","line":53,"updated":"2016-04-14 12:24:03.000000000","message":"-1: We cannot default to v3","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"# Enable i18n lazy translation"},{"line_number":51,"context_line":"_i18n.enable_lazy()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"DEFAULT_MAJOR_OS_VOLUME_API_VERSION \u003d api_versions.MAX_VERSION"},{"line_number":54,"context_line":"DEFAULT_CINDER_ENDPOINT_TYPE \u003d \u0027publicURL\u0027"},{"line_number":55,"context_line":"DEFAULT_CINDER_SERVICE_TYPE \u003d \u0027volumev3\u0027"},{"line_number":56,"context_line":"V1_SHELL \u003d \u0027cinderclient.v1.shell\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_5222fe52","line":53,"in_reply_to":"5a18252c_b270bbdd","updated":"2016-04-14 15:20:57.000000000","message":"I\u0027ll change to \"2\"","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"DEFAULT_MAJOR_OS_VOLUME_API_VERSION \u003d api_versions.MAX_VERSION"},{"line_number":54,"context_line":"DEFAULT_CINDER_ENDPOINT_TYPE \u003d \u0027publicURL\u0027"},{"line_number":55,"context_line":"DEFAULT_CINDER_SERVICE_TYPE \u003d \u0027volumev3\u0027"},{"line_number":56,"context_line":"V1_SHELL \u003d \u0027cinderclient.v1.shell\u0027"},{"line_number":57,"context_line":"V2_SHELL \u003d \u0027cinderclient.v2.shell\u0027"},{"line_number":58,"context_line":"V3_SHELL \u003d \u0027cinderclient.v3.shell\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_5280478b","line":55,"updated":"2016-04-14 12:24:03.000000000","message":"-1: Same here","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"DEFAULT_MAJOR_OS_VOLUME_API_VERSION \u003d api_versions.MAX_VERSION"},{"line_number":54,"context_line":"DEFAULT_CINDER_ENDPOINT_TYPE \u003d \u0027publicURL\u0027"},{"line_number":55,"context_line":"DEFAULT_CINDER_SERVICE_TYPE \u003d \u0027volumev3\u0027"},{"line_number":56,"context_line":"V1_SHELL \u003d \u0027cinderclient.v1.shell\u0027"},{"line_number":57,"context_line":"V2_SHELL \u003d \u0027cinderclient.v2.shell\u0027"},{"line_number":58,"context_line":"V3_SHELL \u003d \u0027cinderclient.v3.shell\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_b2d9d259","line":55,"in_reply_to":"5a18252c_5280478b","updated":"2016-04-14 15:20:57.000000000","message":"This is dead code. I\u0027ll remove.","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/test_api_versions.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Mirantis"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_9fbe6863","line":1,"updated":"2016-04-14 12:24:03.000000000","message":"-1: This file should be moved to the tests/unit directory","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 Mirantis"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_d2bbaee3","line":1,"in_reply_to":"5a18252c_9fbe6863","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/tests/unit/test_shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    def test_cinder_service_name(self):"},{"line_number":140,"context_line":"        # Failing with \u0027No mock address\u0027 means we are not"},{"line_number":141,"context_line":"        # choosing the correct endpoint"},{"line_number":142,"context_line":"        self.skipTest(\"WIP: Needs Mock change for microversion patches\")"},{"line_number":143,"context_line":"        for count in range(1, 4):"},{"line_number":144,"context_line":"            self.list_volumes_on_service(count)"},{"line_number":145,"context_line":"        self.list_volumes_on_service(count)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_f53e9d26","line":142,"updated":"2016-04-14 12:24:03.000000000","message":"?: Why are we skipping this test instead of making it work?","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    def test_cinder_service_name(self):"},{"line_number":140,"context_line":"        # Failing with \u0027No mock address\u0027 means we are not"},{"line_number":141,"context_line":"        # choosing the correct endpoint"},{"line_number":142,"context_line":"        self.skipTest(\"WIP: Needs Mock change for microversion patches\")"},{"line_number":143,"context_line":"        for count in range(1, 4):"},{"line_number":144,"context_line":"            self.list_volumes_on_service(count)"},{"line_number":145,"context_line":"        self.list_volumes_on_service(count)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_527e7e19","line":142,"in_reply_to":"5a18252c_f53e9d26","updated":"2016-04-14 15:20:57.000000000","message":"I need to make it work. Will do after this set of fix-up patches.","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/tests/unit/v1/test_shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # HACK(bcwaldon): replace this when we start using stubs"},{"line_number":51,"context_line":"        self.old_client_class \u003d client.Client"},{"line_number":52,"context_line":"        client.Client \u003d fakes.FakeClient"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        self.requests \u003d self.useFixture(requests_mock_fixture.Fixture())"},{"line_number":55,"context_line":"        self.requests.register_uri("}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_759c4d0f","line":52,"updated":"2016-04-14 12:24:03.000000000","message":"-1: Please use mock instead and remove the tearDown part.\n\nYou have 2 options with mock (I prefer the first one):\n\n- Mock the whole class (no need to add arguments to methods):\n\n @mock.patch.object(client, \u0027Client, fakes.FakeClient)\n class ShellTest(utils.TestCase)\n\n- Make the mock in the setUp\n\n patcher \u003d mock.patch.object(client, \u0027Client, fakes.FakeClient)\n self.addCleanup(patcher.stop)\n patcher.start()","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # HACK(bcwaldon): replace this when we start using stubs"},{"line_number":51,"context_line":"        self.old_client_class \u003d client.Client"},{"line_number":52,"context_line":"        client.Client \u003d fakes.FakeClient"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        self.requests \u003d self.useFixture(requests_mock_fixture.Fixture())"},{"line_number":55,"context_line":"        self.requests.register_uri("}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_b2bc32bc","line":52,"in_reply_to":"5a18252c_759c4d0f","updated":"2016-04-14 15:20:57.000000000","message":"Will do","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # HACK(bcwaldon): replace this when we start using stubs"},{"line_number":52,"context_line":"        self.old_client_class \u003d client.Client"},{"line_number":53,"context_line":"        client.Client \u003d fakes.FakeClient"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.requests \u003d self.useFixture(requests_mock_fixture.Fixture())"},{"line_number":56,"context_line":"        self.requests.register_uri("}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_3502d50b","line":53,"updated":"2016-04-14 12:24:03.000000000","message":"-1: Same as with v1, please use mock instead","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        # HACK(bcwaldon): replace this when we start using stubs"},{"line_number":52,"context_line":"        self.old_client_class \u003d client.Client"},{"line_number":53,"context_line":"        client.Client \u003d fakes.FakeClient"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.requests \u003d self.useFixture(requests_mock_fixture.Fixture())"},{"line_number":56,"context_line":"        self.requests.register_uri("}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_32c9425a","line":53,"in_reply_to":"5a18252c_3502d50b","updated":"2016-04-14 15:20:57.000000000","message":"Will do.","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/tests/unit/v3/fakes.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        return self.client.get_volume_api_version_from_endpoint()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class FakeHTTPClient(base_client.HTTPClient):"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def __init__(self, **kwargs):"},{"line_number":100,"context_line":"        self.username \u003d \u0027username\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_10988777","line":97,"updated":"2016-04-14 12:24:03.000000000","message":"-1: We should limit code duplication, inherit from v2.fakes.FakeHTTPClient and you can remove all methods here (except __init__ that after call super needs to set management_url) and you can also remove _stub_volume and _stub_snapshot methods)","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        return self.client.get_volume_api_version_from_endpoint()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class FakeHTTPClient(base_client.HTTPClient):"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def __init__(self, **kwargs):"},{"line_number":100,"context_line":"        self.username \u003d \u0027username\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_b54b7786","line":97,"in_reply_to":"5a18252c_10988777","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/tests/unit/v3/test_shell.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        # HACK(bcwaldon): replace this when we start using stubs"},{"line_number":48,"context_line":"        self.old_client_class \u003d client.Client"},{"line_number":49,"context_line":"        client.Client \u003d fakes.FakeClient"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.requests \u003d self.useFixture(requests_mock_fixture.Fixture())"},{"line_number":52,"context_line":"        self.requests.register_uri("}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_107fe715","line":49,"updated":"2016-04-14 12:24:03.000000000","message":"-1: As in v1 and v2, please use mock instead","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        # HACK(bcwaldon): replace this when we start using stubs"},{"line_number":48,"context_line":"        self.old_client_class \u003d client.Client"},{"line_number":49,"context_line":"        client.Client \u003d fakes.FakeClient"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.requests \u003d self.useFixture(requests_mock_fixture.Fixture())"},{"line_number":52,"context_line":"        self.requests.register_uri("}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_887a9e86","line":49,"in_reply_to":"5a18252c_107fe715","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"}],"cinderclient/v2/client.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"54f13c44fc8ea7fcfcd27d340b6863dfcd787b1b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":86,"context_line":"        self.pools \u003d pools.PoolManager(self)"},{"line_number":87,"context_line":"        self.capabilities \u003d capabilities.CapabilitiesManager(self)"},{"line_number":88,"context_line":"        self.api_version \u003d api_version or api_versions.APIVersion(\"2.0\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Add in any extensions..."},{"line_number":91,"context_line":"        if extensions:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_95ca456d","line":88,"updated":"2016-04-08 14:16:17.000000000","message":"This should be in the v3 client? or both?","commit_id":"d72636cf6635e2d101865aa275a6574b41dde120"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"395a4d5d753dc97caa7dd5981c63ce1e735655bd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":86,"context_line":"        self.pools \u003d pools.PoolManager(self)"},{"line_number":87,"context_line":"        self.capabilities \u003d capabilities.CapabilitiesManager(self)"},{"line_number":88,"context_line":"        self.api_version \u003d api_version or api_versions.APIVersion(\"2.0\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Add in any extensions..."},{"line_number":91,"context_line":"        if extensions:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_fcc39c36","line":88,"in_reply_to":"9a061dce_95ca456d","updated":"2016-04-08 18:45:26.000000000","message":"Should be in both. Thanks, I\u0027ll fix.","commit_id":"d72636cf6635e2d101865aa275a6574b41dde120"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":86,"context_line":"        self.pools \u003d pools.PoolManager(self)"},{"line_number":87,"context_line":"        self.capabilities \u003d capabilities.CapabilitiesManager(self)"},{"line_number":88,"context_line":"        self.api_version \u003d api_version or api_versions.APIVersion(\"2.0\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Add in any extensions..."},{"line_number":91,"context_line":"        if extensions:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_50f15f94","line":88,"updated":"2016-04-14 12:24:03.000000000","message":"nit: We should use version instead of \"2.0\"\n\n self.api_version \u003d api_version or api_versions.APIVersion(version)","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":86,"context_line":"        self.pools \u003d pools.PoolManager(self)"},{"line_number":87,"context_line":"        self.capabilities \u003d capabilities.CapabilitiesManager(self)"},{"line_number":88,"context_line":"        self.api_version \u003d api_version or api_versions.APIVersion(\"2.0\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Add in any extensions..."},{"line_number":91,"context_line":"        if extensions:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_68e58236","line":88,"in_reply_to":"5a18252c_50f15f94","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dd8920e5c718570cb97eadd06aa37d27d967bc97","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from cinderclient.v2 import volume_backups_restore"},{"line_number":35,"context_line":"from cinderclient.v2 import volume_transfers"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"VERSION \u003d \u00272.0\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class Client(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a1531f4_978c2637","line":37,"updated":"2016-04-15 08:56:55.000000000","message":"-1: I think this should stay within the client and you can use self.version in L88.  (I see now that my comment on patch 8 was missing the self. part)","commit_id":"366e43cadd8487d03ef834bb15da0c459dd0dec7"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"1dd52f59dd10c4a10adf221d084ba9c85466c5bd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from cinderclient.v2 import volume_backups_restore"},{"line_number":35,"context_line":"from cinderclient.v2 import volume_transfers"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"VERSION \u003d \u00272.0\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class Client(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_25277ecb","line":37,"in_reply_to":"3a1531f4_978c2637","updated":"2016-04-18 19:44:56.000000000","message":"Done","commit_id":"366e43cadd8487d03ef834bb15da0c459dd0dec7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f946b4ac5f373c07f29aedc485ac5ebe1957293a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            auth_system\u003dauth_system,"},{"line_number":116,"context_line":"            auth_plugin\u003dauth_plugin,"},{"line_number":117,"context_line":"            session\u003dsession,"},{"line_number":118,"context_line":"            api_version\u003dapi_version,"},{"line_number":119,"context_line":"            **kwargs)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"dab17558_54479076","line":118,"range":{"start_line":118,"start_character":24,"end_line":118,"end_character":35},"updated":"2016-05-10 20:17:19.000000000","message":"Shouldn\u0027t this be self.api_version?","commit_id":"3f75b48f067abae846655e48ce8f96fda79a3ae8"}],"cinderclient/v3/client.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"30ce5d8bf2d33389ac4314ed1930be797bd3a462","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":86,"context_line":"        self.pools \u003d pools.PoolManager(self)"},{"line_number":87,"context_line":"        self.capabilities \u003d capabilities.CapabilitiesManager(self)"},{"line_number":88,"context_line":"        self.api_version \u003d api_version or api_versions.APIVersion(\"3.0\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Add in any extensions..."},{"line_number":91,"context_line":"        if extensions:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_3045c3b2","line":88,"updated":"2016-04-14 12:24:03.000000000","message":"nit: We should use version instead of \"3.0\"\n\n self.api_version \u003d api_version or api_versions.APIVersion(version)","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"0c21eb16306b44e78d1fc8455eb01c613c52956a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            availability_zones.AvailabilityZoneManager(self)"},{"line_number":86,"context_line":"        self.pools \u003d pools.PoolManager(self)"},{"line_number":87,"context_line":"        self.capabilities \u003d capabilities.CapabilitiesManager(self)"},{"line_number":88,"context_line":"        self.api_version \u003d api_version or api_versions.APIVersion(\"3.0\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Add in any extensions..."},{"line_number":91,"context_line":"        if extensions:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_08f84ec2","line":88,"in_reply_to":"5a18252c_3045c3b2","updated":"2016-04-14 15:20:57.000000000","message":"Done","commit_id":"0104138ecb7bcb2d18984534ed8fbaf3ae9fdf09"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"dd8920e5c718570cb97eadd06aa37d27d967bc97","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from cinderclient.v3 import volume_backups_restore"},{"line_number":35,"context_line":"from cinderclient.v3 import volume_transfers"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"VERSION \u003d \u00273.0\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class Client(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a1531f4_f7811afd","line":37,"updated":"2016-04-15 08:56:55.000000000","message":"ditto","commit_id":"366e43cadd8487d03ef834bb15da0c459dd0dec7"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"1dd52f59dd10c4a10adf221d084ba9c85466c5bd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from cinderclient.v3 import volume_backups_restore"},{"line_number":35,"context_line":"from cinderclient.v3 import volume_transfers"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"VERSION \u003d \u00273.0\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class Client(object):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a122d0e_65317605","line":37,"in_reply_to":"3a1531f4_f7811afd","updated":"2016-04-18 19:44:56.000000000","message":"Done","commit_id":"366e43cadd8487d03ef834bb15da0c459dd0dec7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f946b4ac5f373c07f29aedc485ac5ebe1957293a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            auth_system\u003dauth_system,"},{"line_number":116,"context_line":"            auth_plugin\u003dauth_plugin,"},{"line_number":117,"context_line":"            session\u003dsession,"},{"line_number":118,"context_line":"            api_version\u003dapi_version,"},{"line_number":119,"context_line":"            **kwargs)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"dab17558_d4538037","line":118,"range":{"start_line":118,"start_character":24,"end_line":118,"end_character":35},"updated":"2016-05-10 20:17:19.000000000","message":"self.api_version?","commit_id":"3f75b48f067abae846655e48ce8f96fda79a3ae8"}]}
