Merge "Split out Neutron routers client"
diff --git a/tempest/api/network/test_subnetpools_extensions.py b/tempest/api/network/test_subnetpools_extensions.py
index d027132..c6cc8e2 100644
--- a/tempest/api/network/test_subnetpools_extensions.py
+++ b/tempest/api/network/test_subnetpools_extensions.py
@@ -30,7 +30,7 @@
Lists subnet pool.
Show subnet pool details.
- v2.0 of the Neutron API is assumed. It is assumed that subnetpools
+ v2.0 of the Neutron API is assumed. It is assumed that subnet_allocation
options mentioned in the [network-feature-enabled] section and
default_network option mentioned in the [network] section of
etc/tempest.conf:
@@ -40,8 +40,8 @@
@classmethod
def skip_checks(cls):
super(SubnetPoolsTestJSON, cls).skip_checks()
- if not test.is_extension_enabled('subnetpools', 'network'):
- msg = "subnet pools extension not enabled."
+ if not test.is_extension_enabled('subnet_allocation', 'network'):
+ msg = "subnet_allocation extension not enabled."
raise cls.skipException(msg)
@test.attr(type='smoke')
diff --git a/tempest/config.py b/tempest/config.py
index c3c6eda..ea151ae 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -962,7 +962,7 @@
DataProcessingFeaturesGroup = [
cfg.ListOpt('plugins',
- default=["vanilla", "hdp"],
+ default=["vanilla", "cdh"],
deprecated_group="data_processing-feature-enabled",
help="List of enabled data processing plugins")
]
diff --git a/tempest/lib/api_schema/response/compute/v2_1/servers.py b/tempest/lib/api_schema/response/compute/v2_1/servers.py
index 485c51a..3289f04 100644
--- a/tempest/lib/api_schema/response/compute/v2_1/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_1/servers.py
@@ -267,12 +267,13 @@
'type': 'object',
'properties': {
'id': {'type': 'string'},
- 'device': {'type': 'string'},
+ 'device': {'type': ['string', 'null']},
'volumeId': {'type': 'string'},
'serverId': {'type': ['integer', 'string']}
},
'additionalProperties': False,
- 'required': ['id', 'device', 'volumeId', 'serverId']
+ # 'device' is optional in response.
+ 'required': ['id', 'volumeId', 'serverId']
}
attach_volume = {
diff --git a/tempest/lib/auth.py b/tempest/lib/auth.py
index e269fd1..2d20a0b 100644
--- a/tempest/lib/auth.py
+++ b/tempest/lib/auth.py
@@ -325,13 +325,24 @@
parts = urlparse.urlparse(_base_url)
if filters.get('api_version', None) is not None:
+ version_path = '/%s' % filters['api_version']
path = re.sub(r'(^|/)+v\d+(?:\.\d+)?',
- '/' + filters['api_version'],
+ version_path,
parts.path,
count=1)
- _base_url = _base_url.replace(parts.path, path)
+ _base_url = urlparse.urlunparse((parts.scheme,
+ parts.netloc,
+ path or version_path,
+ parts.params,
+ parts.query,
+ parts.fragment))
if filters.get('skip_path', None) is not None and parts.path != '':
- _base_url = _base_url.replace(parts.path, "/")
+ _base_url = urlparse.urlunparse((parts.scheme,
+ parts.netloc,
+ '/',
+ parts.params,
+ parts.query,
+ parts.fragment))
return _base_url
@@ -447,13 +458,24 @@
parts = urlparse.urlparse(_base_url)
if filters.get('api_version', None) is not None:
+ version_path = '/%s' % filters['api_version']
path = re.sub(r'(^|/)+v\d+(?:\.\d+)?',
- '/' + filters['api_version'],
+ version_path,
parts.path,
count=1)
- _base_url = _base_url.replace(parts.path, path)
+ _base_url = urlparse.urlunparse((parts.scheme,
+ parts.netloc,
+ path or version_path,
+ parts.params,
+ parts.query,
+ parts.fragment))
if filters.get('skip_path', None) is not None:
- _base_url = _base_url.replace(parts.path, "/")
+ _base_url = urlparse.urlunparse((parts.scheme,
+ parts.netloc,
+ '/',
+ parts.params,
+ parts.query,
+ parts.fragment))
return _base_url