Add tool to check overcloud version

Change-Id: Ib30e76110753f5d764bd8e5ad9861ce3fd84569a
This commit is contained in:
Federico Ressi 2022-07-15 17:59:23 +02:00
parent eb331a722a
commit ff0c3d84fd
2 changed files with 21 additions and 3 deletions

View File

@ -34,6 +34,7 @@ run_playbook_from_undercloud = _ansible.run_playbook_from_undercloud
OvercloudKeystoneCredentialsFixture = \
overcloud.OvercloudKeystoneCredentialsFixture
find_overcloud_node = overcloud.find_overcloud_node
has_overcloud = overcloud.has_overcloud
list_overcloud_nodes = overcloud.list_overcloud_nodes
load_overcloud_rcfile = overcloud.load_overcloud_rcfile
overcloud_host_config = overcloud.overcloud_host_config

View File

@ -13,6 +13,7 @@
# under the License.
from __future__ import absolute_import
import functools
import io
import os
import typing
@ -34,9 +35,25 @@ CONF = config.CONF
LOG = log.getLogger(__name__)
def has_overcloud():
# rewrite this function
return _undercloud.has_undercloud()
def has_overcloud(min_version: str = None,
max_version: str = None) -> bool:
if not _undercloud.has_undercloud():
return False
if min_version or max_version:
if not tobiko.match_version(get_overcloud_version(),
min_version=min_version,
max_version=max_version):
return False
return True
@functools.lru_cache()
def get_overcloud_version() -> tobiko.VersionType:
ssh_client = topology.find_openstack_node(group='controller').ssh_client
release = sh.execute('cat /etc/rhosp-release',
ssh_client=ssh_client).stdout
return tobiko.parse_version(release)
def load_overcloud_rcfile() -> typing.Dict[str, str]: