Call upgrade_release for cluster upgrade tests
Call upgrade_release for cluster upgrade tests: fuel2 release clone $ORIG_ID $RELEASE_ID -f value -c id Change-Id: I0a010bdce97a754982de4cd734a32fb74ab15067
This commit is contained in:
parent
abc20bf8cb
commit
72326563e7
@ -240,6 +240,15 @@ class NailgunClient(object):
|
||||
return self._put(
|
||||
url="/nodes/{}/disks".format(node_id), json=data).json()
|
||||
|
||||
@logwrap
|
||||
def get_deployable_releases(self):
|
||||
return sorted(
|
||||
[
|
||||
release for release
|
||||
in self.get_releases() if release['is_deployable']],
|
||||
key=lambda rel: rel['id']
|
||||
)
|
||||
|
||||
@logwrap
|
||||
def get_release_id(self, release_name=OPENSTACK_RELEASE):
|
||||
for release in self.get_releases():
|
||||
|
@ -35,7 +35,8 @@ class TestOSupgrade(OSUpgradeBase):
|
||||
|
||||
Scenario:
|
||||
1. Revert snapshot upgrade_ceph_ha_restore
|
||||
2. Run "octane upgrade-env <orig_env_id>"
|
||||
2. Run fuel2 release clone <orig_env_id>
|
||||
3. Run "octane upgrade-env <orig_env_id> <RELEASE_ID>"
|
||||
3. Ensure that new cluster was created with correct release
|
||||
|
||||
"""
|
||||
@ -44,7 +45,23 @@ class TestOSupgrade(OSUpgradeBase):
|
||||
self.env.revert_snapshot("upgrade_ceph_ha_restore")
|
||||
self.install_octane()
|
||||
|
||||
self.upgrade_env_code()
|
||||
release_id = self.upgrade_release(use_net_template=False)
|
||||
|
||||
logger.info(
|
||||
'Releases available for deploy:\n'
|
||||
'{}'.format(
|
||||
''.join(
|
||||
map(
|
||||
lambda release: '\t{:<4}: {}\n'.format(
|
||||
release["id"], release['name']),
|
||||
self.fuel_web.client.get_deployable_releases()
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
logger.info('RELEASE ID for env upgrade: {}'.format(release_id))
|
||||
|
||||
self.upgrade_env_code(release_id=release_id)
|
||||
|
||||
self.env.make_snapshot("os_upgrade_env", is_make=True)
|
||||
|
||||
|
@ -96,25 +96,66 @@ class OSUpgradeBase(DataDrivenUpgradeBase):
|
||||
raise RuntimeError('old_cluster_name is not set')
|
||||
return self.fuel_web.client.get_cluster_id(self.old_cluster_name)
|
||||
|
||||
def upgrade_env_code(self):
|
||||
def upgrade_release(self, use_net_template=False):
|
||||
self.show_step(self.next_step)
|
||||
self.ssh_manager.check_call(
|
||||
ip=self.env.get_admin_node_ip(),
|
||||
command="octane upgrade-env {0}".format(self.orig_cluster_id),
|
||||
error_info="'upgrade-env' command failed, inspect logs for details"
|
||||
|
||||
if not use_net_template:
|
||||
return int(
|
||||
self.ssh_manager.check_call(
|
||||
ip=self.env.get_admin_node_ip(),
|
||||
command='fuel2 release clone {0} {1} '
|
||||
'-f value -c id'.format(
|
||||
self.orig_cluster_id,
|
||||
self.fuel_web.client.get_release_id()
|
||||
),
|
||||
error_info='RELEASE_ID clone failed'
|
||||
).stdout_str
|
||||
)
|
||||
else:
|
||||
raise NotImplementedError(
|
||||
'Upgrade with network templates is not supported now')
|
||||
|
||||
def upgrade_env_code(self, release_id):
|
||||
self.show_step(self.next_step)
|
||||
seed_id = int(
|
||||
self.ssh_manager.check_call(
|
||||
ip=self.env.get_admin_node_ip(),
|
||||
command="octane upgrade-env {0} {1}".format(
|
||||
self.orig_cluster_id,
|
||||
release_id
|
||||
),
|
||||
error_info="'upgrade-env' command failed, "
|
||||
"inspect logs for details"
|
||||
).stdout_str)
|
||||
|
||||
new_cluster_id = int(self.fuel_web.get_last_created_cluster())
|
||||
|
||||
assert_not_equal(
|
||||
self.orig_cluster_id, seed_id,
|
||||
"Cluster IDs are the same: old={} and new={}".format(
|
||||
self.orig_cluster_id, seed_id))
|
||||
|
||||
assert_equal(
|
||||
seed_id,
|
||||
new_cluster_id,
|
||||
"Cluster ID was changed, but it's not the last:"
|
||||
" abnormal activity or configuration error presents!\n"
|
||||
"\tSEED ID: {}\n"
|
||||
"\tLAST ID: {}".format(seed_id, new_cluster_id)
|
||||
)
|
||||
|
||||
new_cluster_id = self.fuel_web.get_last_created_cluster()
|
||||
assert_not_equal(
|
||||
self.orig_cluster_id, new_cluster_id,
|
||||
"Cluster IDs are the same: {!r} and {!r}".format(
|
||||
self.orig_cluster_id, new_cluster_id))
|
||||
cluster_release_id = int(
|
||||
self.fuel_web.get_cluster_release_id(seed_id)
|
||||
)
|
||||
|
||||
self.show_step(self.next_step)
|
||||
assert_equal(
|
||||
self.fuel_web.get_cluster_release_id(new_cluster_id),
|
||||
self.fuel_web.client.get_release_id(
|
||||
release_name='Mitaka on Ubuntu 14.04'))
|
||||
cluster_release_id,
|
||||
release_id,
|
||||
"Release ID {} is not equals to expected {}".format(
|
||||
cluster_release_id,
|
||||
release_id
|
||||
)
|
||||
)
|
||||
|
||||
def upgrade_first_controller_code(self, seed_cluster_id):
|
||||
self.show_step(self.next_step)
|
||||
|
Loading…
Reference in New Issue
Block a user