Merge "Add additional checks for attributes"
diff --git a/tempest/api_schema/response/compute/parameter_types.py b/tempest/api_schema/response/compute/parameter_types.py
index 4a1dfdd..90d4c8f 100644
--- a/tempest/api_schema/response/compute/parameter_types.py
+++ b/tempest/api_schema/response/compute/parameter_types.py
@@ -65,3 +65,17 @@
}
}
}
+
+response_header = {
+ 'connection': {'type': 'string'},
+ 'content-length': {'type': 'string'},
+ 'content-type': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'x-compute-request-id': {'type': 'string'},
+ 'vary': {'type': 'string'},
+ 'x-openstack-nova-api-version': {'type': 'string'},
+ 'date': {
+ 'type': 'string',
+ 'format': 'data-time'
+ }
+}
diff --git a/tempest/api_schema/response/compute/v2/images.py b/tempest/api_schema/response/compute/v2/images.py
index 21dc9ab..3c0b80e 100644
--- a/tempest/api_schema/response/compute/v2/images.py
+++ b/tempest/api_schema/response/compute/v2/images.py
@@ -91,15 +91,16 @@
'status_code': [202],
'response_header': {
'type': 'object',
- 'properties': {
- 'location': {
- 'type': 'string',
- 'format': 'uri'
- }
- },
- 'required': ['location']
+ 'properties': parameter_types.response_header
}
}
+create_image['response_header']['properties'].update(
+ {'location': {
+ 'type': 'string',
+ 'format': 'uri'}
+ }
+)
+create_image['response_header']['required'] = ['location']
delete = {
'status_code': [204]
diff --git a/tempest/cmd/javelin.py b/tempest/cmd/javelin.py
index 8f238a5..e970249 100755
--- a/tempest/cmd/javelin.py
+++ b/tempest/cmd/javelin.py
@@ -870,32 +870,14 @@
for server in servers:
client = client_for_user(server['owner'])
- res = _get_server_by_name(client, server['name'])
- if not res:
+ response = _get_server_by_name(client, server['name'])
+ if not response:
LOG.info("Server '%s' does not exist" % server['name'])
continue
- res = client.servers.get_server(res['id'])
- # we iterate all interfaces until we find a floating IP
- # and stop looping after dropping it.
- def _find_first_floating():
- if (CONF.service_available.neutron and
- not CONF.baremetal.driver_enabled and
- CONF.compute.use_floatingip_for_ssh):
- for body in res['addresses'].items():
- for addr in body:
- ip = addr['addr']
- if addr.get('OS-EXT-IPS:type',
- 'floating') == 'floating':
- (client.floating_ips.
- disassociate_floating_ip_from_server(
- ip, res['id']))
- client.floating_ips.delete_floating_ip(ip)
- return
-
- _find_first_floating()
- client.servers.delete_server(res['id'])
- client.servers.wait_for_server_termination(res['id'],
+ # TODO(EmilienM): disassociate floating IP from server and release it.
+ client.servers.delete_server(response['id'])
+ client.servers.wait_for_server_termination(response['id'],
ignore_error=True)
diff --git a/tempest/scenario/test_encrypted_cinder_volumes.py b/tempest/scenario/test_encrypted_cinder_volumes.py
index eed3d0b..e6912d8 100644
--- a/tempest/scenario/test_encrypted_cinder_volumes.py
+++ b/tempest/scenario/test_encrypted_cinder_volumes.py
@@ -35,8 +35,8 @@
self.glance_image_create()
self.nova_boot()
- def create_encrypted_volume(self, encryption_provider):
- volume_type = self.create_volume_type(name='luks')
+ def create_encrypted_volume(self, encryption_provider, volume_type):
+ volume_type = self.create_volume_type(name=volume_type)
self.create_encryption_type(type_id=volume_type['id'],
provider=encryption_provider,
key_size=512,
@@ -53,7 +53,8 @@
def test_encrypted_cinder_volumes_luks(self):
self.launch_instance()
self.create_encrypted_volume('nova.volume.encryptors.'
- 'luks.LuksEncryptor')
+ 'luks.LuksEncryptor',
+ volume_type='luks')
self.attach_detach_volume()
@test.idempotent_id('cbc752ed-b716-4717-910f-956cce965722')
@@ -61,5 +62,6 @@
def test_encrypted_cinder_volumes_cryptsetup(self):
self.launch_instance()
self.create_encrypted_volume('nova.volume.encryptors.'
- 'cryptsetup.CryptsetupEncryptor')
+ 'cryptsetup.CryptsetupEncryptor',
+ volume_type='cryptsetup')
self.attach_detach_volume()