Skip to content

Commit 0a62d97

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Remove Rocky-era min compute trusted certs compat check"
2 parents 03753b2 + 1251ff2 commit 0a62d97

File tree

5 files changed

+12
-115
lines changed

5 files changed

+12
-115
lines changed

nova/api/openstack/compute/servers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -793,8 +793,7 @@ def create(self, req, body):
793793
exception.InstanceExists,
794794
exception.NetworkAmbiguous,
795795
exception.NoUniqueMatch,
796-
exception.VolumeTypeSupportNotYetAvailable,
797-
exception.CertificateValidationNotYetAvailable) as error:
796+
exception.VolumeTypeSupportNotYetAvailable) as error:
798797
raise exc.HTTPConflict(explanation=error.format_message())
799798

800799
# If the caller wanted a reservation_id, return it
@@ -1110,8 +1109,7 @@ def _action_rebuild(self, req, id, body):
11101109
image_href,
11111110
password,
11121111
**kwargs)
1113-
except (exception.InstanceIsLocked,
1114-
exception.CertificateValidationNotYetAvailable) as e:
1112+
except exception.InstanceIsLocked as e:
11151113
raise exc.HTTPConflict(explanation=e.format_message())
11161114
except exception.InstanceInvalidState as state_error:
11171115
common.raise_http_conflict_for_instance_invalid_state(state_error,

nova/compute/api.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
AGGREGATE_ACTION_UPDATE_META = 'UpdateMeta'
104104
AGGREGATE_ACTION_DELETE = 'Delete'
105105
AGGREGATE_ACTION_ADD = 'Add'
106-
MIN_COMPUTE_TRUSTED_CERTS = 31
107106
MIN_COMPUTE_ABORT_QUEUED_LIVE_MIGRATION = 34
108107
MIN_COMPUTE_VOLUME_TYPE = 36
109108
MIN_COMPUTE_SYNC_COMPUTE_STATUS_DISABLED = 38
@@ -1163,12 +1162,6 @@ def _retrieve_trusted_certs_object(context, trusted_certs, rebuild=False):
11631162
:returns: nova.objects.TrustedCerts object or None if no user-specified
11641163
trusted cert IDs were given and nova is not configured with
11651164
default trusted cert IDs
1166-
:raises: nova.exception.CertificateValidationNotYetAvailable: If
1167-
rebuilding a server with trusted certs on a compute host that is
1168-
too old to supported trusted image cert validation, or if creating
1169-
a server with trusted certs and there are no compute hosts in the
1170-
deployment that are new enough to support trusted image cert
1171-
validation
11721165
"""
11731166
# Retrieve trusted_certs parameter, or use CONF value if certificate
11741167
# validation is enabled
@@ -1182,29 +1175,6 @@ def _retrieve_trusted_certs_object(context, trusted_certs, rebuild=False):
11821175
else:
11831176
return None
11841177

1185-
# Confirm trusted_certs are supported by the minimum nova
1186-
# compute service version
1187-
# TODO(mriedem): This minimum version compat code can be dropped in the
1188-
# 19.0.0 Stein release when all computes must be at a minimum running
1189-
# Rocky code.
1190-
if rebuild:
1191-
# we only care about the current cell since this is
1192-
# a rebuild
1193-
min_compute_version = objects.Service.get_minimum_version(
1194-
context, 'nova-compute')
1195-
else:
1196-
# we don't know which cell it's going to get scheduled
1197-
# to, so check all cells
1198-
# NOTE(mriedem): For multi-create server requests, we're hitting
1199-
# this for each instance since it's not cached; we could likely
1200-
# optimize this.
1201-
min_compute_version = \
1202-
objects.service.get_minimum_version_all_cells(
1203-
context, ['nova-compute'])
1204-
1205-
if min_compute_version < MIN_COMPUTE_TRUSTED_CERTS:
1206-
raise exception.CertificateValidationNotYetAvailable()
1207-
12081178
return certs_to_return
12091179

12101180
def _get_bdm_image_metadata(self, context, block_device_mapping,

nova/exception.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2379,12 +2379,6 @@ class CertificateValidationFailed(NovaException):
23792379
"certificate: %(cert_uuid)s. %(reason)s")
23802380

23812381

2382-
class CertificateValidationNotYetAvailable(NovaException):
2383-
msg_fmt = _("Image signature certificate validation support is "
2384-
"not yet available.")
2385-
code = 409
2386-
2387-
23882382
class InstanceRescueFailure(NovaException):
23892383
msg_fmt = _("Failed to move instance to rescue mode: %(reason)s")
23902384

nova/tests/unit/api/openstack/compute/test_serversV21.py

Lines changed: 5 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3442,9 +3442,7 @@ def _rebuild_server(self, mock_get, certs=None,
34423442
# either not set or empty
34433443
self.assertIsNone(server['trusted_image_certificates'])
34443444

3445-
@mock.patch('nova.objects.Service.get_minimum_version',
3446-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
3447-
def test_rebuild_server_with_trusted_certs(self, get_min_ver):
3445+
def test_rebuild_server_with_trusted_certs(self):
34483446
"""Test rebuild with valid trusted_image_certificates argument"""
34493447
self._rebuild_server(
34503448
certs=['0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8',
@@ -3454,9 +3452,7 @@ def test_rebuild_server_without_trusted_certs(self):
34543452
"""Test rebuild without trusted image certificates"""
34553453
self._rebuild_server()
34563454

3457-
@mock.patch('nova.objects.Service.get_minimum_version',
3458-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
3459-
def test_rebuild_server_conf_options_turned_off_set(self, get_min_ver):
3455+
def test_rebuild_server_conf_options_turned_off_set(self):
34603456
"""Test rebuild with feature disabled and certs specified"""
34613457
self._rebuild_server(
34623458
certs=['0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8'], conf_enabled=False)
@@ -3469,9 +3465,7 @@ def test_rebuild_server_default_trusted_certificates_empty(self):
34693465
"""Test rebuild with feature enabled and no certs specified"""
34703466
self._rebuild_server(conf_enabled=True)
34713467

3472-
@mock.patch('nova.objects.Service.get_minimum_version',
3473-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
3474-
def test_rebuild_server_default_trusted_certificates(self, get_min_ver):
3468+
def test_rebuild_server_default_trusted_certificates(self):
34753469
"""Test rebuild with certificate specified in configurations"""
34763470
self._rebuild_server(conf_enabled=True, conf_certs=['conf-id'])
34773471

@@ -3530,10 +3524,7 @@ def test_rebuild_server_with_invalid_trusted_certs(self):
35303524
self.req, FAKE_UUID, body=self.body)
35313525
self.assertIn('is not of type', six.text_type(ex))
35323526

3533-
@mock.patch('nova.objects.Service.get_minimum_version',
3534-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
3535-
def test_rebuild_server_with_trusted_certs_pre_2_63_fails(self,
3536-
get_min_ver):
3527+
def test_rebuild_server_with_trusted_certs_pre_2_63_fails(self):
35373528
"""Make sure we can't use trusted_certs before 2.63"""
35383529
self._rebuild_server(certs=['trusted-cert-id'])
35393530
self.req.api_version_request = \
@@ -3568,17 +3559,6 @@ def test_rebuild_server_with_cert_validation_error(
35683559
self.assertIn('test cert validation error',
35693560
six.text_type(ex))
35703561

3571-
@mock.patch('nova.objects.Service.get_minimum_version',
3572-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS - 1)
3573-
def test_rebuild_server_with_cert_validation_not_available(
3574-
self, get_min_ver):
3575-
ex = self.assertRaises(webob.exc.HTTPConflict,
3576-
self._rebuild_server,
3577-
certs=['trusted-cert-id'])
3578-
self.assertIn('Image signature certificate validation support '
3579-
'is not yet available',
3580-
six.text_type(ex))
3581-
35823562

35833563
class ServersControllerRebuildTestV271(ControllerTest):
35843564
image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
@@ -6571,9 +6551,7 @@ def _create_instance_req(self, certs=None):
65716551
self.req.api_version_request = \
65726552
api_version_request.APIVersionRequest('2.63')
65736553

6574-
@mock.patch('nova.objects.service.get_minimum_version_all_cells',
6575-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
6576-
def test_create_instance_with_trusted_certs(self, get_min_ver):
6554+
def test_create_instance_with_trusted_certs(self):
65776555
"""Test create with valid trusted_image_certificates argument"""
65786556
self._create_instance_req(
65796557
['0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8',
@@ -6678,18 +6656,6 @@ def test_create_server_with_cert_validation_error(
66786656
self.assertIn('test cert validation error',
66796657
six.text_type(ex))
66806658

6681-
@mock.patch('nova.objects.service.get_minimum_version_all_cells',
6682-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS - 1)
6683-
def test_create_server_with_cert_validation_not_available(
6684-
self, mock_get_min_version_all_cells):
6685-
self._create_instance_req(['trusted-cert-id'])
6686-
ex = self.assertRaises(webob.exc.HTTPConflict,
6687-
self.controller.create, self.req,
6688-
body=self.body)
6689-
self.assertIn('Image signature certificate validation support '
6690-
'is not yet available',
6691-
six.text_type(ex))
6692-
66936659

66946660
class ServersControllerCreateTestV267(ServersControllerCreateTest):
66956661
def setUp(self):

nova/tests/unit/compute/test_compute_api.py

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3706,8 +3706,6 @@ def test_rebuild_change_keypair(self, _record_action_start,
37063706
self.assertNotEqual(orig_key_name, instance.key_name)
37073707
self.assertNotEqual(orig_key_data, instance.key_data)
37083708

3709-
@mock.patch('nova.objects.Service.get_minimum_version',
3710-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
37113709
@mock.patch.object(objects.RequestSpec, 'get_by_instance_uuid')
37123710
@mock.patch.object(objects.Instance, 'save')
37133711
@mock.patch.object(objects.Instance, 'get_flavor')
@@ -3719,7 +3717,7 @@ def test_rebuild_change_keypair(self, _record_action_start,
37193717
def test_rebuild_change_trusted_certs(self, _record_action_start,
37203718
_checks_for_create_and_rebuild, _check_auto_disk_config,
37213719
_get_image, bdm_get_by_instance_uuid, get_flavor, instance_save,
3722-
req_spec_get_by_inst_uuid, get_min_version):
3720+
req_spec_get_by_inst_uuid):
37233721
orig_system_metadata = {}
37243722
orig_trusted_certs = ['orig-trusted-cert-1', 'orig-trusted-cert-2']
37253723
new_trusted_certs = ['new-trusted-cert-1', 'new-trusted-cert-2']
@@ -3765,8 +3763,6 @@ def test_rebuild_change_trusted_certs(self, _record_action_start,
37653763
self.context, None, image, flavor, {}, [], None)
37663764
self.assertEqual(new_trusted_certs, instance.trusted_certs.ids)
37673765

3768-
@mock.patch('nova.objects.Service.get_minimum_version',
3769-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
37703766
@mock.patch.object(objects.RequestSpec, 'get_by_instance_uuid')
37713767
@mock.patch.object(objects.Instance, 'save')
37723768
@mock.patch.object(objects.Instance, 'get_flavor')
@@ -3780,8 +3776,7 @@ def test_rebuild_unset_trusted_certs(self, _record_action_start,
37803776
_check_auto_disk_config,
37813777
_get_image, bdm_get_by_instance_uuid,
37823778
get_flavor, instance_save,
3783-
req_spec_get_by_inst_uuid,
3784-
get_min_version):
3779+
req_spec_get_by_inst_uuid):
37853780
"""Tests the scenario that the server was created with some trusted
37863781
certs and then rebuilt without trusted_image_certificates=None
37873782
explicitly to unset the trusted certs on the server.
@@ -3831,8 +3826,6 @@ def test_rebuild_unset_trusted_certs(self, _record_action_start,
38313826
self.context, None, image, flavor, {}, [], None)
38323827
self.assertIsNone(instance.trusted_certs)
38333828

3834-
@mock.patch('nova.objects.Service.get_minimum_version',
3835-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
38363829
@mock.patch.object(compute_utils, 'is_volume_backed_instance',
38373830
return_value=True)
38383831
@mock.patch.object(objects.Instance, 'get_flavor')
@@ -3842,8 +3835,7 @@ def test_rebuild_unset_trusted_certs(self, _record_action_start,
38423835
@mock.patch.object(compute_api.API, '_record_action_start')
38433836
def test_rebuild_volume_backed_instance_with_trusted_certs(
38443837
self, _record_action_start, _check_auto_disk_config, _get_image,
3845-
bdm_get_by_instance_uuid, get_flavor, instance_is_volume_backed,
3846-
get_min_version):
3838+
bdm_get_by_instance_uuid, get_flavor, instance_is_volume_backed):
38473839
orig_system_metadata = {}
38483840
new_trusted_certs = ['new-trusted-cert-1', 'new-trusted-cert-2']
38493841
instance = fake_instance.fake_instance_obj(
@@ -5969,28 +5961,15 @@ def test_populate_instance_for_create_neutron_secgroups(self):
59695961
False)
59705962
self.assertEqual(0, len(instance.security_groups))
59715963

5972-
@mock.patch('nova.objects.service.get_minimum_version_all_cells',
5973-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
5974-
def test_retrieve_trusted_certs_object(self, get_min_version):
5964+
def test_retrieve_trusted_certs_object(self):
59755965
ids = ['0b5d2c72-12cc-4ba6-a8d7-3ff5cc1d8cb8',
59765966
'674736e3-f25c-405c-8362-bbf991e0ce0a']
59775967

59785968
retrieved_certs = self.compute_api._retrieve_trusted_certs_object(
59795969
self.context, ids)
59805970
self.assertEqual(ids, retrieved_certs.ids)
59815971

5982-
@mock.patch('nova.objects.service.get_minimum_version_all_cells',
5983-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS - 1)
5984-
def test_retrieve_trusted_certs_object_old_compute(self, get_min_version):
5985-
ids = ['trusted-cert-id']
5986-
5987-
self.assertRaises(exception.CertificateValidationNotYetAvailable,
5988-
self.compute_api._retrieve_trusted_certs_object,
5989-
self.context, ids)
5990-
5991-
@mock.patch('nova.objects.service.get_minimum_version_all_cells',
5992-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS)
5993-
def test_retrieve_trusted_certs_object_conf(self, get_min_version):
5972+
def test_retrieve_trusted_certs_object_conf(self):
59945973
ids = ['conf-trusted-cert-1', 'conf-trusted-cert-2']
59955974

59965975
self.flags(verify_glance_signatures=True, group='glance')
@@ -6013,16 +5992,6 @@ def test_retrieve_trusted_certs_object_empty(self):
60135992
self.assertIsNone(self.compute_api._retrieve_trusted_certs_object(
60145993
self.context, []))
60155994

6016-
@mock.patch('nova.objects.Service.get_minimum_version',
6017-
return_value=compute_api.MIN_COMPUTE_TRUSTED_CERTS - 1)
6018-
def test_retrieve_trusted_certs_object_old_compute_rebuild(
6019-
self, get_min_version):
6020-
ids = ['trusted-cert-id']
6021-
self.assertRaises(exception.CertificateValidationNotYetAvailable,
6022-
self.compute_api._retrieve_trusted_certs_object,
6023-
self.context, ids, rebuild=True)
6024-
get_min_version.assert_called_once_with(self.context, 'nova-compute')
6025-
60265995
@mock.patch('nova.objects.HostMapping.get_by_host')
60275996
@mock.patch('nova.objects.ComputeNode.get_by_host_and_nodename')
60285997
@mock.patch('nova.scheduler.client.report.SchedulerReportClient.'

0 commit comments

Comments
 (0)