)]}'
{"os_client_config/cloud_config.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3d40481512a74db4065137d8e861129820c2ba30","unresolved":false,"context_lines":[{"line_number":267,"context_line":"            if service_key \u003d\u003d \u0027volume\u0027 and not self.get_api_version(\u0027volume\u0027):"},{"line_number":268,"context_line":"                # If we don\u0027t have a configured cinder version, we can\u0027t know"},{"line_number":269,"context_line":"                # to request a different service_type"},{"line_number":270,"context_line":"                min_version \u003d min_version or 1"},{"line_number":271,"context_line":"                max_version \u003d max_version or 3"},{"line_number":272,"context_line":"                min_major \u003d str(min_version)[0]"},{"line_number":273,"context_line":"                max_major \u003d str(max_version)[0]"},{"line_number":274,"context_line":"                versions \u003d range(int(min_major), int(max_major) + 1)"},{"line_number":275,"context_line":"                versions.reverse()"},{"line_number":276,"context_line":"                service_types \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_78185f85","line":273,"range":{"start_line":270,"start_character":0,"end_line":273,"end_character":47},"updated":"2017-03-07 18:34:28.000000000","message":"This feels very weird to support strings for versions being passed through.\n\nIt\u0027s readable for sake of what you\u0027re doing but the only thing str() is providing here is the ability to say \"3.X\" (str) and 3.X (float) and 3 (int)\n\nIf you wanted to limit to float and int, use math.trunc.\n\nthis comment is a total nit and not super important, but more of a \"do we really want to encourage the passing of strings here?\"","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"dda7c18c4614bc29615cd04cee7f1c77c18b3d9d","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                min_version \u003d min_version or 1"},{"line_number":271,"context_line":"                max_version \u003d max_version or 3"},{"line_number":272,"context_line":"                min_major \u003d str(min_version)[0]"},{"line_number":273,"context_line":"                max_major \u003d str(max_version)[0]"},{"line_number":274,"context_line":"                versions \u003d range(int(min_major), int(max_major) + 1)"},{"line_number":275,"context_line":"                versions.reverse()"},{"line_number":276,"context_line":"                service_types \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_c0d3bf02","line":273,"in_reply_to":"9a30ddce_78185f85","updated":"2017-03-09 15:17:36.000000000","message":"Totally - it was more a habit from dealling with legacy versions.","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3d40481512a74db4065137d8e861129820c2ba30","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                max_version \u003d max_version or 3"},{"line_number":272,"context_line":"                min_major \u003d str(min_version)[0]"},{"line_number":273,"context_line":"                max_major \u003d str(max_version)[0]"},{"line_number":274,"context_line":"                versions \u003d range(int(min_major), int(max_major) + 1)"},{"line_number":275,"context_line":"                versions.reverse()"},{"line_number":276,"context_line":"                service_types \u003d []"},{"line_number":277,"context_line":"                for version in versions:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_5b32b5f2","line":274,"updated":"2017-03-07 18:34:28.000000000","message":"NIT: use range(int(max_major) +1 , int(min_major), -1)\n\nThis will produce an inverse order and not need the versions.reverse().\n\n    \u003e\u003e\u003e range(10, 0, -1)\n    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"dda7c18c4614bc29615cd04cee7f1c77c18b3d9d","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                max_version \u003d max_version or 3"},{"line_number":272,"context_line":"                min_major \u003d str(min_version)[0]"},{"line_number":273,"context_line":"                max_major \u003d str(max_version)[0]"},{"line_number":274,"context_line":"                versions \u003d range(int(min_major), int(max_major) + 1)"},{"line_number":275,"context_line":"                versions.reverse()"},{"line_number":276,"context_line":"                service_types \u003d []"},{"line_number":277,"context_line":"                for version in versions:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_00da3717","line":274,"in_reply_to":"9a30ddce_5b32b5f2","updated":"2017-03-09 15:17:36.000000000","message":"Done","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"3d40481512a74db4065137d8e861129820c2ba30","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                    if version \u003d\u003d 1:"},{"line_number":279,"context_line":"                        service_types.append(\u0027volume\u0027)"},{"line_number":280,"context_line":"                    else:"},{"line_number":281,"context_line":"                        service_types.append(\u0027volumev{v}\u0027.format(v\u003dversion))"},{"line_number":282,"context_line":"            else:"},{"line_number":283,"context_line":"                service_types \u003d [self.get_service_type(service_key)]"},{"line_number":284,"context_line":"            for service_type in service_types:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_78885f23","line":281,"range":{"start_line":281,"start_character":24,"end_line":281,"end_character":76},"updated":"2017-03-07 18:34:28.000000000","message":"It makes me so sad we have to support this \u003d/","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"dda7c18c4614bc29615cd04cee7f1c77c18b3d9d","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                    if version \u003d\u003d 1:"},{"line_number":279,"context_line":"                        service_types.append(\u0027volume\u0027)"},{"line_number":280,"context_line":"                    else:"},{"line_number":281,"context_line":"                        service_types.append(\u0027volumev{v}\u0027.format(v\u003dversion))"},{"line_number":282,"context_line":"            else:"},{"line_number":283,"context_line":"                service_types \u003d [self.get_service_type(service_key)]"},{"line_number":284,"context_line":"            for service_type in service_types:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_4006ef86","line":281,"in_reply_to":"9a30ddce_78885f23","updated":"2017-03-09 15:17:36.000000000","message":"You and me both.","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"7ec55cc2d365d201e60be52f2f6d0d3f29f874bb","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            for service_type in service_types:"},{"line_number":285,"context_line":"                kwargs[\u0027service_type\u0027] \u003d service_type"},{"line_number":286,"context_line":"                try:"},{"line_number":287,"context_line":"                    endpoint \u003d session.get_endpoint(**kwargs)"},{"line_number":288,"context_line":"                except keystoneauth1.exceptions.catalog.EndpointNotFound:"},{"line_number":289,"context_line":"                    pass"},{"line_number":290,"context_line":"        if not endpoint:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_5e261ebb","line":287,"range":{"start_line":287,"start_character":20,"end_line":287,"end_character":61},"updated":"2017-03-07 20:34:15.000000000","message":"do you want to always take the last endpoint found? Should this have a break here?\n\nThis seems a bit weird and could produce undefined behaviors since it is a for-loop.\n\nIt looks like service_types should really be exactly 1 entry ever.","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"dda7c18c4614bc29615cd04cee7f1c77c18b3d9d","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            for service_type in service_types:"},{"line_number":285,"context_line":"                kwargs[\u0027service_type\u0027] \u003d service_type"},{"line_number":286,"context_line":"                try:"},{"line_number":287,"context_line":"                    endpoint \u003d session.get_endpoint(**kwargs)"},{"line_number":288,"context_line":"                except keystoneauth1.exceptions.catalog.EndpointNotFound:"},{"line_number":289,"context_line":"                    pass"},{"line_number":290,"context_line":"        if not endpoint:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_001f97b7","line":287,"in_reply_to":"9a30ddce_5e261ebb","updated":"2017-03-09 15:17:36.000000000","message":"Service types could be [\u0027volumev3\u0027, \u0027volumev2\u0027] - so it can be a list. And if the request is lax enough that it is a list, we want to return the most recent thing available. So yes - you\u0027re totally right, there should totally be a break there.","commit_id":"04394f803c99a41f191b56dec1c80d165db7e62a"}]}
