Replace release.is_deployable with release.state

is_deployable doesn't really give any additional information for a
release, it is removed. To make change API-backward-compatible, it is
retained as a property dependent on release.state.

New state is added - manageonly, for environments that are not able to
be deployed, but can still be managed.

Change-Id: I518a0114730a2f227c9ef035a376f9a90d3d5bbd
Closes-bug: #1503303
DocImpact
This commit is contained in:
Maciej Kwiek 2015-10-20 11:40:25 +02:00 committed by Nikita Zubkov
parent fb27542463
commit 84ece08e25
4 changed files with 7 additions and 5 deletions

View File

@ -95,7 +95,7 @@ class NailgunReleaseAdapter(object):
@property
def is_deployable(self):
return self.release.is_deployable
return objects.Release.is_deployable(self.release)
@property
def environment_version(self):

View File

@ -29,7 +29,7 @@ class BaseCloneClusterTest(nailgun_test_base.BaseIntegrationTest):
self.release_61 = self.env.create_release(
operating_system=consts.RELEASE_OS.ubuntu,
version="2014.2.2-6.1",
is_deployable=False,
state=consts.RELEASE_STATES.manageonly
)
self.release_70 = self.env.create_release(
operating_system=consts.RELEASE_OS.ubuntu,

View File

@ -20,6 +20,7 @@ from oslo_serialization import jsonutils
from nailgun import consts
from nailgun.errors import errors
from nailgun.settings import settings
from nailgun.test import base
from .. import validators
@ -35,11 +36,12 @@ class TestClusterUpgradeValidator(tests_base.BaseCloneClusterTest):
self.validator.validate_release_upgrade(self.release_61,
self.release_70)
@mock.patch.dict(settings.VERSION, {'feature_groups': ['mirantis']})
def test_validate_release_upgrade_deprecated_release(self):
release_511 = self.env.create_release(
operating_system=consts.RELEASE_OS.ubuntu,
version="2014.1.3-5.1.1",
is_deployable=False,
state=consts.RELEASE_STATES.manageonly
)
msg = "^Upgrade to the given release \({0}\).*is deprecated and " \
"cannot be installed\.$".format(self.release_61.id)
@ -48,7 +50,7 @@ class TestClusterUpgradeValidator(tests_base.BaseCloneClusterTest):
self.release_61)
def test_validate_release_upgrade_to_older_release(self):
self.release_61.is_deployable = True
self.release_61.state = consts.RELEASE_STATES.available
msg = "^Upgrade to the given release \({0}\).*release is equal or " \
"lower than the release of the original cluster\.$" \
.format(self.release_61.id)

View File

@ -49,7 +49,7 @@ class ClusterUpgradeValidator(base.BasicValidator):
@classmethod
def validate_release_upgrade(cls, orig_release, new_release):
if not new_release.is_deployable:
if not objects.Release.is_deployable(new_release):
raise errors.InvalidData(
"Upgrade to the given release ({0}) is not possible because "
"this release is deprecated and cannot be installed."