)]}'
{"cinderclient/client.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"a4ae03da1b4f1e8805e8b0092337ed75b13e6b65","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        auth \u003d self.auth or self.session.auth"},{"line_number":110,"context_line":"        if hasattr(auth, \u0027get_access\u0027):"},{"line_number":111,"context_line":"            return self.session.auth.get_access(self.session).project_id"},{"line_number":112,"context_line":"        return None"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def get_volume_api_version_from_endpoint(self):"},{"line_number":115,"context_line":"        return get_volume_api_from_url(self.get_endpoint())"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_cc67bd23","line":112,"updated":"2015-01-08 00:51:29.000000000","message":"Really picky but it wouldn\u0027t be bad to have a comment here explaining what happens if None is returned given how odd this looks.","commit_id":"f3bab3d272dd90c494eb83ae49cb94549659e88a"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"52a9ea4583f53e5dcadb61c34df22ff705f3979c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            if self.service_type \u003d\u003d \u0027volume\u0027:"},{"line_number":122,"context_line":"                self.service_type \u003d \u0027volumev2\u0027"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                self.service_type \u003d \u0027volume\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                endpoint \u003d super(SessionClient, self).get_endpoint()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_41a31d43","line":124,"updated":"2015-01-13 07:56:30.000000000","message":"Agree, \u0027else\u0027 branch doesn\u0027t seem necessary.","commit_id":"2095486cb1a33f8452d7ef6ee3aef59f72b658d7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59fd5b4942f08bd5851fbb39f04389ce59e64982","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            if self.service_type \u003d\u003d \u0027volume\u0027:"},{"line_number":122,"context_line":"                self.service_type \u003d \u0027volumev2\u0027"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                self.service_type \u003d \u0027volume\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                endpoint \u003d super(SessionClient, self).get_endpoint()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_bffdcab3","line":124,"updated":"2015-01-12 20:08:37.000000000","message":"If volume already failed wouldn\u0027t we just want to raise instead of trying again?","commit_id":"2095486cb1a33f8452d7ef6ee3aef59f72b658d7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"eb68f3f4fe48fd11576e82ba60a0e8898f0ea6cb","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            if self.service_type \u003d\u003d \u0027volume\u0027:"},{"line_number":122,"context_line":"                self.service_type \u003d \u0027volumev2\u0027"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                self.service_type \u003d \u0027volume\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                endpoint \u003d super(SessionClient, self).get_endpoint()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a930d6b_b81075a9","line":124,"in_reply_to":"1a930d6b_6a5e49e8","updated":"2015-01-22 14:17:11.000000000","message":"Quite right, sorry. I think I must have read through that too quickly and gotten confused. This does make sense.","commit_id":"2095486cb1a33f8452d7ef6ee3aef59f72b658d7"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"005070817f88e6ead5627f30fcd11eee37baf2a1","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            if self.service_type \u003d\u003d \u0027volume\u0027:"},{"line_number":122,"context_line":"                self.service_type \u003d \u0027volumev2\u0027"},{"line_number":123,"context_line":"            else:"},{"line_number":124,"context_line":"                self.service_type \u003d \u0027volume\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                endpoint \u003d super(SessionClient, self).get_endpoint()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a930d6b_6a5e49e8","line":124,"in_reply_to":"3a961159_41a31d43","updated":"2015-01-22 02:06:58.000000000","message":"If the service_type originally tried was volumev2, fall back to volume.\nIf the service type originally tried was volume, fall back to volumev2.\n\nThis is to deal with an case of the endpoint being set to service_type \u0027volume\u0027 in the service catalog, but the request is for version request is v2.\n\nHere\u0027s the flow:\n\nEven if we have a default of \u0027volume\u0027 for service type, it will ask this utils function:\n\nhttps://github.com/openstack/python-cinderclient/blob/master/cinderclient/shell.py#L578\n\ncinderclient.utils.get_service_type looks at what\u0027s set for the function:\n\nhttps://github.com/openstack/python-cinderclient/blob/master/cinderclient/utils.py#L99\n\nThese are all set to volumev2:\n\nhttps://github.com/openstack/python-cinderclient/blob/master/cinderclient/v2/shell.py#L190","commit_id":"2095486cb1a33f8452d7ef6ee3aef59f72b658d7"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"78e01cb9bdc5a4ebddf1daf7b935b6811a20d57c","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                # Raise the first exception, otherwise the error message will"},{"line_number":130,"context_line":"                # mention the service_type we tried to fallback to."},{"line_number":131,"context_line":"                raise e"},{"line_number":132,"context_line":"        return endpoint"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _get_project_id(self):"},{"line_number":135,"context_line":"        \"\"\"Get the project_id in this session"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_0f8122fb","line":132,"updated":"2015-01-13 21:57:57.000000000","message":"i think this is something you should handle from the shell rather than override this function. \n\nWhen you create the shell do adap.get_endpoint(service_type\u003d\u0027volumev2\u0027, interface\u003d\u0027public\u0027) and if you don\u0027t get anything then override the value of service_type that you construct the client with.","commit_id":"2095486cb1a33f8452d7ef6ee3aef59f72b658d7"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"7e7898d1820629ebbe0be3b6dced9dc6fc3f0784","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                # Raise the first exception, otherwise the error message will"},{"line_number":130,"context_line":"                # mention the service_type we tried to fallback to."},{"line_number":131,"context_line":"                raise e"},{"line_number":132,"context_line":"        return endpoint"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def _get_project_id(self):"},{"line_number":135,"context_line":"        \"\"\"Get the project_id in this session"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a930d6b_2418fad2","line":132,"in_reply_to":"3a961159_0f8122fb","updated":"2015-01-22 00:50:02.000000000","message":"I\u0027ll give it a try, thanks Jamie!","commit_id":"2095486cb1a33f8452d7ef6ee3aef59f72b658d7"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"eaf51baea0dd85c7c130f17196a0abe31f719d6a","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    def get_volume_api_version_from_endpoint(self):"},{"line_number":131,"context_line":"        endpoint \u003d self.get_endpoint()"},{"line_number":132,"context_line":"        if not endpoint:"},{"line_number":133,"context_line":"            msg \u003d (\u0027The Cinder server does not support %s. Check your \u0027"},{"line_number":134,"context_line":"                   \u0027providers supported versions and try again with \u0027"},{"line_number":135,"context_line":"                   \u0027setting --os-volume-api-version or the environment \u0027"},{"line_number":136,"context_line":"                   \u0027variable OS_VOLUME_API_VERSION.\u0027 % self.version)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_ab10874f","line":133,"updated":"2015-04-06 22:10:06.000000000","message":"Need _() for the exception message.","commit_id":"3f742bf27db21b2284bd0d12a40f8edb04a36ae3"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f3498543641d060d8fc4fd45efc07c3e3c1f4cbc","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    def get_volume_api_version_from_endpoint(self):"},{"line_number":131,"context_line":"        endpoint \u003d self.get_endpoint()"},{"line_number":132,"context_line":"        if not endpoint:"},{"line_number":133,"context_line":"            msg \u003d (\u0027The Cinder server does not support %s. Check your \u0027"},{"line_number":134,"context_line":"                   \u0027providers supported versions and try again with \u0027"},{"line_number":135,"context_line":"                   \u0027setting --os-volume-api-version or the environment \u0027"},{"line_number":136,"context_line":"                   \u0027variable OS_VOLUME_API_VERSION.\u0027 % self.version)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_abd887f0","line":133,"in_reply_to":"9aa53dc9_ab10874f","updated":"2015-04-06 22:39:38.000000000","message":"Done","commit_id":"3f742bf27db21b2284bd0d12a40f8edb04a36ae3"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9bbd699d98a6ed755d4deb43e7c0f1c026b22d42","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        project_id \u003d self._get_project_id()"},{"line_number":85,"context_line":"        if (parts[1] in [\u0027v1\u0027, \u0027v2\u0027] and parts[2] \u003d\u003d \u0027\u0027"},{"line_number":86,"context_line":"                and project_id is not None):"},{"line_number":87,"context_line":"            url \u003d \u0027{0}{1}\u0027.format(project_id, url)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # Note(tpatil): The standard call raises errors from"},{"line_number":90,"context_line":"        # keystoneclient, here we need to raise the cinderclient errors."}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_066d2a04","line":87,"updated":"2015-04-06 23:37:25.000000000","message":"if you\u0027ve already looked up the get_endpoint here you may as well set url to the fully qualified URL otherwise session is going to have to do it again.","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ac20a4d37f1f9ccc288220013fd9ac941f706f92","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        project_id \u003d self._get_project_id()"},{"line_number":85,"context_line":"        if (parts[1] in [\u0027v1\u0027, \u0027v2\u0027] and parts[2] \u003d\u003d \u0027\u0027"},{"line_number":86,"context_line":"                and project_id is not None):"},{"line_number":87,"context_line":"            url \u003d \u0027{0}{1}\u0027.format(project_id, url)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # Note(tpatil): The standard call raises errors from"},{"line_number":90,"context_line":"        # keystoneclient, here we need to raise the cinderclient errors."}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_2ef3600c","line":87,"in_reply_to":"9aa53dc9_066d2a04","updated":"2015-04-07 04:20:33.000000000","message":"Done","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9bbd699d98a6ed755d4deb43e7c0f1c026b22d42","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        # TODO(thingee): This will be implemented in Keystone client. For now"},{"line_number":124,"context_line":"        # we will implement it in Cinder client and remove later. See"},{"line_number":125,"context_line":"        # https://review.openstack.org/#/c/118520"},{"line_number":126,"context_line":"        auth \u003d self.auth or self.session.auth"},{"line_number":127,"context_line":"        if hasattr(auth, \u0027get_access\u0027):"},{"line_number":128,"context_line":"            return self.session.auth.get_access(self.session).project_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_864edabf","line":125,"updated":"2015-04-06 23:37:25.000000000","message":"been done. you can call self.get_project_id()","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ac20a4d37f1f9ccc288220013fd9ac941f706f92","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        # TODO(thingee): This will be implemented in Keystone client. For now"},{"line_number":124,"context_line":"        # we will implement it in Cinder client and remove later. See"},{"line_number":125,"context_line":"        # https://review.openstack.org/#/c/118520"},{"line_number":126,"context_line":"        auth \u003d self.auth or self.session.auth"},{"line_number":127,"context_line":"        if hasattr(auth, \u0027get_access\u0027):"},{"line_number":128,"context_line":"            return self.session.auth.get_access(self.session).project_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_135fa573","line":125,"in_reply_to":"9aa53dc9_864edabf","updated":"2015-04-07 04:20:33.000000000","message":"Done","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            msg \u003d _(\u0027The Cinder server does not support %s. Check your \u0027"},{"line_number":122,"context_line":"                    \u0027providers supported versions and try again with \u0027"},{"line_number":123,"context_line":"                    \u0027setting --os-volume-api-version or the environment \u0027"},{"line_number":124,"context_line":"                    \u0027variable OS_VOLUME_API_VERSION.\u0027) % self.version"},{"line_number":125,"context_line":"            raise exceptions.InvalidAPIVersion(msg)"},{"line_number":126,"context_line":"        return get_volume_api_from_url(endpoint)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_b2443c1b","line":124,"updated":"2015-04-08 04:31:29.000000000","message":"It seems that many parts of our code is abandoning \"%\". Shall we replace it with \",\"?","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            msg \u003d _(\u0027The Cinder server does not support %s. Check your \u0027"},{"line_number":122,"context_line":"                    \u0027providers supported versions and try again with \u0027"},{"line_number":123,"context_line":"                    \u0027setting --os-volume-api-version or the environment \u0027"},{"line_number":124,"context_line":"                    \u0027variable OS_VOLUME_API_VERSION.\u0027) % self.version"},{"line_number":125,"context_line":"            raise exceptions.InvalidAPIVersion(msg)"},{"line_number":126,"context_line":"        return get_volume_api_from_url(endpoint)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_9838373f","line":124,"in_reply_to":"9aa53dc9_b2443c1b","updated":"2015-04-08 06:59:37.000000000","message":"I think that only applies to inside of a log. See http://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-translated-messages","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"}],"cinderclient/shell.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9bbd699d98a6ed755d4deb43e7c0f1c026b22d42","unresolved":false,"context_lines":[{"line_number":49,"context_line":"from keystoneclient.auth.identity import v2 as v2_auth"},{"line_number":50,"context_line":"from keystoneclient.auth.identity import v3 as v3_auth"},{"line_number":51,"context_line":"from keystoneclient.exceptions import DiscoveryFailure"},{"line_number":52,"context_line":"from keystoneclient.openstack.common.apiclient import (exceptions as"},{"line_number":53,"context_line":"                                                       keystoneclient_exc)"},{"line_number":54,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_e6d5a6b9","line":52,"updated":"2015-04-06 23:37:25.000000000","message":"openstack.common is oslo area. just import keystoneclient.exceptions.","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ac20a4d37f1f9ccc288220013fd9ac941f706f92","unresolved":false,"context_lines":[{"line_number":49,"context_line":"from keystoneclient.auth.identity import v2 as v2_auth"},{"line_number":50,"context_line":"from keystoneclient.auth.identity import v3 as v3_auth"},{"line_number":51,"context_line":"from keystoneclient.exceptions import DiscoveryFailure"},{"line_number":52,"context_line":"from keystoneclient.openstack.common.apiclient import (exceptions as"},{"line_number":53,"context_line":"                                                       keystoneclient_exc)"},{"line_number":54,"context_line":"import six.moves.urllib.parse as urlparse"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_0e465c23","line":52,"in_reply_to":"9aa53dc9_e6d5a6b9","updated":"2015-04-07 04:20:33.000000000","message":"Done","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9bbd699d98a6ed755d4deb43e7c0f1c026b22d42","unresolved":false,"context_lines":[{"line_number":710,"context_line":"                        service_type\u003dservice_type, version\u003dversion,"},{"line_number":711,"context_line":"                        interface\u003d\u0027public\u0027)"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"            except keystoneclient_exc.EndpointNotFound as e:"},{"line_number":714,"context_line":"                # No endpoint found with that service_type, lets fall back to"},{"line_number":715,"context_line":"                # other service_types if the user did not specify one."},{"line_number":716,"context_line":"                if not service_type_input:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_66f9964d","line":713,"updated":"2015-04-06 23:37:25.000000000","message":"Throwing this is a complete mistake from the keystoneclient code. It\u0027s supposed to always return None if not found. \n\nI had a review to change this, but i don\u0027t know how many people rely on the current behaviour.","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ac20a4d37f1f9ccc288220013fd9ac941f706f92","unresolved":false,"context_lines":[{"line_number":710,"context_line":"                        service_type\u003dservice_type, version\u003dversion,"},{"line_number":711,"context_line":"                        interface\u003d\u0027public\u0027)"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"            except keystoneclient_exc.EndpointNotFound as e:"},{"line_number":714,"context_line":"                # No endpoint found with that service_type, lets fall back to"},{"line_number":715,"context_line":"                # other service_types if the user did not specify one."},{"line_number":716,"context_line":"                if not service_type_input:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_e9957240","line":713,"in_reply_to":"9aa53dc9_66f9964d","updated":"2015-04-07 04:20:33.000000000","message":"I tried taking your advice from IRC and just doing a get_endpoint() with the service_type and no version, but it\u0027s still raising EndpointNotFound.","commit_id":"ef5d8f6b1211552fd176df3b6b96057f683f33cb"}],"cinderclient/tests/unit/fixture_data/base.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":16,"context_line":"VOLUME_URL \u003d \u0027http://volume.host\u0027"},{"line_number":17,"context_line":"TENANT_ID \u003d \u0027b363706f891f48019483f8bd6503c54b\u0027"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"VOLUME_V1_URL \u003d \u0027%(volume_url)s/v1/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":20,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"},{"line_number":21,"context_line":"VOLUME_V2_URL \u003d \u0027%(volume_url)s/v2/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":22,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_525610d3","line":19,"updated":"2015-04-08 04:31:29.000000000","message":"It seems that many parts of our code is abandoning \"%\". Shall we replace it with \",\"?","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":16,"context_line":"VOLUME_URL \u003d \u0027http://volume.host\u0027"},{"line_number":17,"context_line":"TENANT_ID \u003d \u0027b363706f891f48019483f8bd6503c54b\u0027"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"VOLUME_V1_URL \u003d \u0027%(volume_url)s/v1/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":20,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"},{"line_number":21,"context_line":"VOLUME_V2_URL \u003d \u0027%(volume_url)s/v2/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":22,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_38f36ba0","line":19,"in_reply_to":"9aa53dc9_525610d3","updated":"2015-04-08 06:59:37.000000000","message":"That would just create a tuple. That\u0027s not what we\u0027re trying to do here.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"VOLUME_V1_URL \u003d \u0027%(volume_url)s/v1/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":20,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"},{"line_number":21,"context_line":"VOLUME_V2_URL \u003d \u0027%(volume_url)s/v2/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":22,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_32514cd9","line":21,"updated":"2015-04-08 04:31:29.000000000","message":"Here as well.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"VOLUME_V1_URL \u003d \u0027%(volume_url)s/v1/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":20,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"},{"line_number":21,"context_line":"VOLUME_V2_URL \u003d \u0027%(volume_url)s/v2/%(tenant_id)s\u0027 % {\u0027volume_url\u0027: VOLUME_URL,"},{"line_number":22,"context_line":"                                                     \u0027tenant_id\u0027: TENANT_ID}"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_f82bc3e9","line":21,"in_reply_to":"9aa53dc9_32514cd9","updated":"2015-04-08 06:59:37.000000000","message":"That would just create a tuple. That\u0027s not what we\u0027re trying to do here.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"}],"cinderclient/tests/unit/test_client.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"eaf51baea0dd85c7c130f17196a0abe31f719d6a","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        output \u003d self.logger.output.split(\u0027\\n\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        print(\"JSBRYANT: output is\", output)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.assertNotIn(\"fakePassword\", output[1])"},{"line_number":69,"context_line":"        self.assertIn(\"fakeUser\", output[1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_4b4d7b71","line":66,"updated":"2015-04-06 22:10:06.000000000","message":"Debug statement?","commit_id":"3f742bf27db21b2284bd0d12a40f8edb04a36ae3"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f3498543641d060d8fc4fd45efc07c3e3c1f4cbc","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        output \u003d self.logger.output.split(\u0027\\n\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        print(\"JSBRYANT: output is\", output)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.assertNotIn(\"fakePassword\", output[1])"},{"line_number":69,"context_line":"        self.assertIn(\"fakeUser\", output[1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_4bee9b8c","line":66,"in_reply_to":"9aa53dc9_4b4d7b71","updated":"2015-04-06 22:39:38.000000000","message":"Done","commit_id":"3f742bf27db21b2284bd0d12a40f8edb04a36ae3"}],"cinderclient/tests/unit/test_shell.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \u0027OS_PASSWORD\u0027: \u0027password\u0027,"},{"line_number":39,"context_line":"        \u0027OS_TENANT_NAME\u0027: \u0027tenant_name\u0027,"},{"line_number":40,"context_line":"        \u0027OS_AUTH_URL\u0027: \u0027%s/v2.0\u0027 % keystone_client.BASE_HOST,"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    # Patch os.environ to avoid required auth info."},{"line_number":44,"context_line":"    def make_env(self, exclude\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_526df096","line":41,"updated":"2015-04-08 04:31:29.000000000","message":"% \u003d\u003e , as well.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        \u0027OS_PASSWORD\u0027: \u0027password\u0027,"},{"line_number":39,"context_line":"        \u0027OS_TENANT_NAME\u0027: \u0027tenant_name\u0027,"},{"line_number":40,"context_line":"        \u0027OS_AUTH_URL\u0027: \u0027%s/v2.0\u0027 % keystone_client.BASE_HOST,"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    # Patch os.environ to avoid required auth info."},{"line_number":44,"context_line":"    def make_env(self, exclude\u003dNone):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_d8e0ffce","line":41,"in_reply_to":"9aa53dc9_526df096","updated":"2015-04-08 06:59:37.000000000","message":"That would be invalid syntax.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":130,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v1/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        volume_service \u003d token.add_service(\u0027volume\u0027, \u0027Cinder v1\u0027)"},{"line_number":133,"context_line":"        volume_service.add_endpoint(public\u003dcinder_url, region\u003d\u0027RegionOne\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_32682c87","line":130,"updated":"2015-04-08 04:31:29.000000000","message":"% \u003d\u003e , as well.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":130,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v1/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        volume_service \u003d token.add_service(\u0027volume\u0027, \u0027Cinder v1\u0027)"},{"line_number":133,"context_line":"        volume_service.add_endpoint(public\u003dcinder_url, region\u003d\u0027RegionOne\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_d8b91fcd","line":130,"in_reply_to":"9aa53dc9_32682c87","updated":"2015-04-08 06:59:37.000000000","message":"That would just create a tuple. That\u0027s not what we\u0027re trying to do here.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298dab1eeae66ea87850f5af02031fff14bcc0b6","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":130,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v1/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        volume_service \u003d token.add_service(\u0027volume\u0027, \u0027Cinder v1\u0027)"},{"line_number":133,"context_line":"        volume_service.add_endpoint(public\u003dcinder_url, region\u003d\u0027RegionOne\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_d5479349","line":130,"in_reply_to":"9aa53dc9_d8b91fcd","updated":"2015-04-08 15:13:53.000000000","message":"Mike is correct, that only applies for passing in format values as arguments to the logger. If direct string formatting is being performed it must use % to be valid.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":156,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v1/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        volume_service \u003d token.add_service(\u0027volume\u0027, \u0027Cinder v1\u0027)"},{"line_number":159,"context_line":"        volume_service.add_endpoint("}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_120648ce","line":156,"updated":"2015-04-08 04:31:29.000000000","message":"% \u003d\u003e , as well.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":154,"context_line":"        \"\"\""},{"line_number":155,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":156,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v1/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        volume_service \u003d token.add_service(\u0027volume\u0027, \u0027Cinder v1\u0027)"},{"line_number":159,"context_line":"        volume_service.add_endpoint("}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_58cd0f5c","line":156,"in_reply_to":"9aa53dc9_120648ce","updated":"2015-04-08 06:59:37.000000000","message":"That would just create a tuple. That\u0027s not what we\u0027re trying to do here.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"15196d448aa1f87c4f9cd666ced5cb1afb44a7eb","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":185,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v2/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        volumev2_service \u003d token.add_service(\u0027volumev2\u0027, \u0027Cinder v2\u0027)"},{"line_number":188,"context_line":"        volumev2_service.add_endpoint("}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_d20fc0df","line":185,"updated":"2015-04-08 04:31:29.000000000","message":"% \u003d\u003e , as well.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d846e54f0fe07a30cecbf07336e46d88e7da07af","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        in the tenant_id for mocking purposes."},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":"        token \u003d keystone_client_fixture.V2Token()"},{"line_number":185,"context_line":"        cinder_url \u003d \u0027http://127.0.0.1:8776/v2/%s\u0027 % fixture_base.TENANT_ID"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        volumev2_service \u003d token.add_service(\u0027volumev2\u0027, \u0027Cinder v2\u0027)"},{"line_number":188,"context_line":"        volumev2_service.add_endpoint("}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_38dc8b11","line":185,"in_reply_to":"9aa53dc9_d20fc0df","updated":"2015-04-08 06:59:37.000000000","message":"That would just create a tuple. That\u0027s not what we\u0027re trying to do here.","commit_id":"b986392e3b1ba4b0ae18a4b7007289cda38d9b84"}]}
