Disallow to change operating system during upgrade
Changing of an operating system for clouds nodes is not supported and is not tested at all. That's why this additional validation was added. Change-Id: Ibf6db17f783879eff88e2366dfdb0a2871e2aa0a
This commit is contained in:
parent
d94df3e42b
commit
7cf3fe9b3a
@ -100,6 +100,10 @@ class NailgunReleaseAdapter(object):
|
||||
uid, fail_if_not_found=fail_if_not_found)
|
||||
return release
|
||||
|
||||
@property
|
||||
def operating_system(self):
|
||||
return self.release.operating_system
|
||||
|
||||
@property
|
||||
def is_deployable(self):
|
||||
return objects.Release.is_deployable(self.release)
|
||||
|
@ -58,6 +58,14 @@ class TestClusterUpgradeValidator(tests_base.BaseCloneClusterTest):
|
||||
self.validator.validate_release_upgrade(self.dst_release,
|
||||
self.src_release)
|
||||
|
||||
def test_validate_release_upgrade_to_different_os(self):
|
||||
self.dst_release.operating_system = consts.RELEASE_OS.centos
|
||||
msg = "^Changing of operating system is not possible during upgrade " \
|
||||
"\(from {0} to {1}\).$".format("Ubuntu", "CentOS")
|
||||
with self.assertRaisesRegexp(errors.InvalidData, msg):
|
||||
self.validator.validate_release_upgrade(self.src_release,
|
||||
self.dst_release)
|
||||
|
||||
def test_validate_cluster_name(self):
|
||||
self.validator.validate_cluster_name("cluster-42")
|
||||
|
||||
|
@ -62,6 +62,12 @@ class ClusterUpgradeValidator(base.BasicValidator):
|
||||
"this release is equal or lower than the release of the "
|
||||
"original cluster.".format(new_release.id),
|
||||
log_message=True)
|
||||
if orig_release.operating_system != new_release.operating_system:
|
||||
raise errors.InvalidData(
|
||||
"Changing of operating system is not possible during upgrade "
|
||||
"(from {0} to {1}).".format(orig_release.operating_system,
|
||||
new_release.operating_system),
|
||||
log_message=True)
|
||||
|
||||
@classmethod
|
||||
def validate_cluster_name(cls, cluster_name):
|
||||
|
Loading…
Reference in New Issue
Block a user