From ecaca2279e1779c0c9f68c98e08d6ff2c9bb1bdb Mon Sep 17 00:00:00 2001 From: Andrey Kurilin <akurilin@mirantis.com> Date: Wed, 10 Feb 2016 13:49:53 +0200 Subject: [PATCH] [microversions] Skip microversion 2.18 2.18 - Establishes a set of routes that makes project_id an optional construct in v2.1. The change on Nova-API side adds only check for existence of "project_id" at the url. It doesn't check microversion, so all latest and previous microversions can work with or without project_id. Proof: all functional tests are succeed on this change (several of them use latest microversion). To cut down "project_id" from the url at the novaclient side, we need to modify ``novaclient.client.HttpClient`` and ``novaclient.client.SessionClient``. This change requires splitting Nova's related requests and the others(authentication, volume...), which are still require "project_id" at the url. It is a complex task, which can be skipped for now to unblock implementation of further microversions. Change-Id: Ia6e608aac41d2f2d59b9504d21647e4f88af3335 --- novaclient/__init__.py | 2 +- novaclient/tests/unit/v2/test_shell.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/novaclient/__init__.py b/novaclient/__init__.py index 1a2ae922e..d0859b114 100644 --- a/novaclient/__init__.py +++ b/novaclient/__init__.py @@ -25,4 +25,4 @@ API_MIN_VERSION = api_versions.APIVersion("2.1") # when client supported the max version, and bumped sequentially, otherwise # the client may break due to server side new version may include some # backward incompatible change. -API_MAX_VERSION = api_versions.APIVersion("2.17") +API_MAX_VERSION = api_versions.APIVersion("2.18") diff --git a/novaclient/tests/unit/v2/test_shell.py b/novaclient/tests/unit/v2/test_shell.py index 0869a1105..8e110c578 100644 --- a/novaclient/tests/unit/v2/test_shell.py +++ b/novaclient/tests/unit/v2/test_shell.py @@ -2677,6 +2677,14 @@ class ShellTest(utils.TestCase): 9, # doesn't require any changes in novaclient 15, # doesn't require any changes in novaclient 16, # doesn't require any changes in novaclient + 18, # NOTE(andreykurilin): this microversion requires changes in + # HttpClient and our SessionClient, which is based on + # keystoneauth1.session. Skipping this complicated change + # allows to unblock implementation further microversions + # before feature-freeze + # (we can do it, since nova-api change didn't actually add + # new microversion, just an additional checks. See + # https://review.openstack.org/#/c/233076/ for more details) ]) versions_supported = set(range(0, novaclient.API_MAX_VERSION.ver_minor + 1))