)]}'
{"releasenotes/notes/version-discovery-a501c4e9e9869f77.yaml":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"7ac8eb9eea5aedf8affbbe2cbf26a8d34bf48307","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    start being able to consume API microversions as"},{"line_number":10,"context_line":"    needed."},{"line_number":11,"context_line":"upgrade:"},{"line_number":12,"context_line":"  - keystoneauth is required at at least version 3.2.0"},{"line_number":13,"context_line":"    becaue of version discovery."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7f287b81_f9549223","line":12,"range":{"start_line":12,"start_character":29,"end_line":12,"end_character":34},"updated":"2017-09-01 15:05:48.000000000","message":"awkward wording. I suggest...\n\n\"keystoneauth version 3.2.0 or higher is required because of version discovery.\"","commit_id":"620d822682a787bff778d52d32e6ce8dcee43572"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"7ac8eb9eea5aedf8affbbe2cbf26a8d34bf48307","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    needed."},{"line_number":11,"context_line":"upgrade:"},{"line_number":12,"context_line":"  - keystoneauth is required at at least version 3.2.0"},{"line_number":13,"context_line":"    becaue of version discovery."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7f287b81_d94af681","line":13,"range":{"start_line":13,"start_character":4,"end_line":13,"end_character":10},"updated":"2017-09-01 15:05:48.000000000","message":"s/becaue/because/","commit_id":"620d822682a787bff778d52d32e6ce8dcee43572"}],"shade/openstackcloud.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a079e02d902ecf5abb8977395996864bbc0e4800","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            shade_logger\u003dself.log)"},{"line_number":365,"context_line":"        config_version \u003d self.cloud_config.get_api_version(service_type)"},{"line_number":366,"context_line":"        if config_version:"},{"line_number":367,"context_line":"            if min_version and int(config_version[0]) \u003c min_version:"},{"line_number":368,"context_line":"                raise OpenStackCloudException("},{"line_number":369,"context_line":"                    \"Version {config_version} requested for {service_type}\""},{"line_number":370,"context_line":"                    \" but shade understands a minimum of {min_version}\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_3afddc6d","line":367,"range":{"start_line":367,"start_character":13,"end_line":367,"end_character":68},"updated":"2017-08-14 16:55:05.000000000","message":"do we need to check only in the major versions ? max and min version are always major versions ? integers?","commit_id":"38a1bfb283883d34a9d36ff588bc1946b965355e"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8e88cae3cc82f58a67950a28d2b0b13dc5c2fa56","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            shade_logger\u003dself.log)"},{"line_number":365,"context_line":"        config_version \u003d self.cloud_config.get_api_version(service_type)"},{"line_number":366,"context_line":"        if config_version:"},{"line_number":367,"context_line":"            if min_version and int(config_version[0]) \u003c min_version:"},{"line_number":368,"context_line":"                raise OpenStackCloudException("},{"line_number":369,"context_line":"                    \"Version {config_version} requested for {service_type}\""},{"line_number":370,"context_line":"                    \" but shade understands a minimum of {min_version}\".format("}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_098ad4bd","line":367,"range":{"start_line":367,"start_character":13,"end_line":367,"end_character":68},"in_reply_to":"9f436f4f_3afddc6d","updated":"2017-08-14 20:22:50.000000000","message":"min and max are only ever passed internally to shade, so we can know they\u0027re always int.\n\nAnd yes, for our purposes in shade we only need to check major.","commit_id":"38a1bfb283883d34a9d36ff588bc1946b965355e"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"a079e02d902ecf5abb8977395996864bbc0e4800","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                pass"},{"line_number":385,"context_line":"        # We either don\u0027t have a user-configured version or it failed and we\u0027re"},{"line_number":386,"context_line":"        # falling back"},{"line_number":387,"context_line":"        adapter \u003d adapter_ctr("},{"line_number":388,"context_line":"            min_version\u003dmin_version,"},{"line_number":389,"context_line":"            max_version\u003dmax_version)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        if config_version:"},{"line_number":392,"context_line":"            api_version \u003d adapter.get_endpoint_data().api_version"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_3aaf1c7e","line":389,"range":{"start_line":387,"start_character":0,"end_line":389,"end_character":36},"updated":"2017-08-14 16:55:05.000000000","message":"how does this related (the need to construct the adapter with min and max) to the ability to call adapter.get(\u0027/services\u0027, endpoint_filters\u003d{\u0027interface\u0027: \u0027admin\u0027}) ???\n\nweren\u0027t we able to do this before? does this mean we can\u0027t call it this way ^ if we return on L382?","commit_id":"38a1bfb283883d34a9d36ff588bc1946b965355e"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8e88cae3cc82f58a67950a28d2b0b13dc5c2fa56","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                pass"},{"line_number":385,"context_line":"        # We either don\u0027t have a user-configured version or it failed and we\u0027re"},{"line_number":386,"context_line":"        # falling back"},{"line_number":387,"context_line":"        adapter \u003d adapter_ctr("},{"line_number":388,"context_line":"            min_version\u003dmin_version,"},{"line_number":389,"context_line":"            max_version\u003dmax_version)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        if config_version:"},{"line_number":392,"context_line":"            api_version \u003d adapter.get_endpoint_data().api_version"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_49b57c7d","line":389,"range":{"start_line":387,"start_character":0,"end_line":389,"end_character":36},"in_reply_to":"9f436f4f_3aaf1c7e","updated":"2017-08-14 20:22:50.000000000","message":"You can do it in both cases - the difference is that the old code passed back a discovered endpoint which was then passed to the adapter as endpoint_override. If the adapter has endpoint_override, then endpoint_filter arguments are meaningless.\n\nThis way we\u0027re not doing the logic ourselves anymore and we\u0027re letting keystone do it. That means that an additional endpoint_filter can be passed and if ksa needs to do more discovery, then it will.","commit_id":"38a1bfb283883d34a9d36ff588bc1946b965355e"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"6de391dd1137ba095a60a0ff90bebcfabc6d7ead","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        config_major \u003d self._get_major_version_id(config_version)"},{"line_number":367,"context_line":"        max_major \u003d self._get_major_version_id(max_version)"},{"line_number":368,"context_line":"        min_major \u003d self._get_major_version_id(min_version)"},{"line_number":369,"context_line":"        print(config_major, max_major, min_major)"},{"line_number":370,"context_line":"        # NOTE(mordred) The shade logic for versions is slightly different"},{"line_number":371,"context_line":"        # than the ksa Adapter constructor logic. shade knows the versions"},{"line_number":372,"context_line":"        # it knows, and uses them when it detects them. However, if a user"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f287b81_993fce86","line":369,"updated":"2017-09-01 14:48:32.000000000","message":"Don\u0027t think we need this print().","commit_id":"ad44d17e92ea4544c9a2e4c301cec141ba46781b"}]}
