Skip to content

Commit

Permalink
Fix few issues in upgrades
Browse files Browse the repository at this point in the history
Signed-off-by: Shylesh Kumar Mohan <shmohan@redhat.com>
  • Loading branch information
shylesh authored and amr1ta committed Oct 8, 2024
1 parent 8c7ee25 commit 11670e9
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 25 deletions.
9 changes: 1 addition & 8 deletions ocs_ci/framework/pytest_customization/marks.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
)
from ocs_ci.utility import version
from ocs_ci.utility.aws import update_config_from_s3
from ocs_ci.utility.utils import is_z_stream_upgrade, load_auth_config
from ocs_ci.utility.utils import load_auth_config


# tier marks
Expand Down Expand Up @@ -195,13 +195,6 @@
reason="This test cannot run on setup having more than three worker nodes",
)

# Skip if we are running z-stream upgrades
# Useful marker for DR upgrade cases
skipif_z_stream_upgrade = pytest.mark.skipif(
is_z_stream_upgrade(),
reason="This is z-stream upgrade and this component upgrade should have been taken care by other components",
)

# Skipif marks
skipif_aws_creds_are_missing = pytest.mark.skipif(
(
Expand Down
18 changes: 11 additions & 7 deletions ocs_ci/ocs/acm_upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from ocs_ci.ocs.ocp import OCP
from ocs_ci.utility import templating
from ocs_ci.utility.utils import get_ocp_version, get_running_acm_version, run_cmd
from ocs_ci.utility.version import get_semantic_version


logger = logging.getLogger(__name__)

Expand All @@ -31,10 +31,11 @@ def __init__(self):
self.upgrade_version = config.UPGRADE["upgrade_acm_version"]
# In case if we are using registry image
self.acm_registry_image = config.UPGRADE.get("upgrade_acm_registry_image", "")
self.zstream_upgrade = False

def get_acm_version_before_upgrade(self):
running_acm_version = get_running_acm_version()
return get_semantic_version(running_acm_version)
return running_acm_version

def get_parsed_versions(self):
parsed_version_before_upgrade = parse_version(self.version_before_upgrade)
Expand All @@ -46,6 +47,8 @@ def run_upgrade(self):
self.version_change = (
self.get_parsed_versions()[1] > self.get_parsed_versions()[0]
)
if not self.version_change:
self.zstream_upgrade = True
# either this would be GA to Unreleased upgrade of same version OR
# GA to unreleased upgrade to higher version
if self.acm_registry_image and self.version_change:
Expand Down Expand Up @@ -123,12 +126,13 @@ def validate_upgrade(self):
acm_sub = OCP(
namespace=self.namespace,
resource_name=self.operator_name,
kind="Subscription",
)
assert (
acm_sub.get()["items"][0]["spec"]["channel"]
== config.ENV_DATA["acm_hub_channel"]
kind="Subscription.operators.coreos.com",
)
if not self.zstream_upgrade:
acm_prev_channel = f"release-{self.upgrade_version}"
else:
acm_prev_channel = config.ENV_DATA["acm_hub_channel"]
assert acm_sub.get().get("spec").get("channel") == acm_prev_channel
logger.info("Checking ACM status")
acm_mch = OCP(
kind=constants.ACM_MULTICLUSTER_HUB,
Expand Down
17 changes: 12 additions & 5 deletions ocs_ci/ocs/dr_upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,13 +239,15 @@ class DRHubUpgrade(DRUpgrade):
def __init__(self):
super().__init__(resource_name=defaults.DR_HUB_OPERATOR_NAME)
self.operator_name = defaults.DR_HUB_OPERATOR_NAME
self.subscription_name = constants.DR_HUB_OPERATOR_SUBSCRIPTION
self.subscription_name = constants.DR_HUB_OPERATOR_SUBSCRIPTION.replace(
"PLACEHOLDER", config.ENV_DATA["ocs_version"]
)

def run_upgrade(self):
self.pod_name_pattern = "ramen-hub-operator"
self.collect_data()
assert (
self.pre_upgrade_data["pod_status"] == "Running"
self.pre_upgrade_data.get("pod_status", "") == "Running"
), "ramen-hub-operator pod is not in Running status"
super().run_upgrade()
self.upgrade_phase = "post_upgrade"
Expand All @@ -265,15 +267,20 @@ class DRClusterOperatorUpgrade(DRUpgrade):
"""

def __init__(self):
super().__init__(resource_name=defaults.DR_CLUSTER_OPERATOR_NAME)
super().__init__(
resource_name=defaults.DR_CLUSTER_OPERATOR_NAME,
namespace=constants.OPENSHIFT_DR_SYSTEM_NAMESPACE,
)
self.operator_name = defaults.DR_CLUSTER_OPERATOR_NAME
self.subscription_name = constants.DR_CLUSTER_OPERATOR_SUBSCRIPTION
self.subscription_name = constants.DR_CLUSTER_OPERATOR_SUBSCRIPTION.replace(
"PLACEHOLDER", config.ENV_DATA["ocs_version"]
)

def run_upgrade(self):
self.pod_name_pattern = "ramen-dr-cluster-operator"
self.collect_data()
assert (
self.pre_upgrade_data["pod_status"] == "Running"
self.pre_upgrade_data.get("pod_status", "") == "Running"
), "ramen-dr-operator pod is not in Running status"
super().run_upgrade()
self.upgrade_phase = "post_upgrade"
Expand Down
9 changes: 7 additions & 2 deletions ocs_ci/ocs/ocs_upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -428,9 +428,14 @@ def update_subscription(self, channel):
subscription_name = constants.ODF_SUBSCRIPTION
else:
subscription_name = constants.OCS_SUBSCRIPTION
kind_name = (
"subscription.operators.coreos.com"
if config.multicluster
else "subscription"
)
subscription = OCP(
resource_name=subscription_name,
kind="subscription",
kind=kind_name,
namespace=config.ENV_DATA["cluster_namespace"],
)
current_ocs_source = subscription.data["spec"]["source"]
Expand All @@ -441,7 +446,7 @@ def update_subscription(self, channel):
else constants.OPERATOR_CATALOG_SOURCE_NAME
)
patch_subscription_cmd = (
f"patch subscription {subscription_name} "
f"patch {kind_name} {subscription_name} "
f'-n {self.namespace} --type merge -p \'{{"spec":{{"channel": '
f'"{channel}", "source": "{ocs_source}"}}}}\''
)
Expand Down
12 changes: 9 additions & 3 deletions tests/functional/upgrade/test_upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from ocs_ci.framework.pytest_customization.marks import (
purple_squad,
multicluster_roles,
skipif_z_stream_upgrade,
)
from ocs_ci.framework.testlib import (
ocs_upgrade,
Expand All @@ -24,6 +23,7 @@
DRHubUpgrade,
)
from ocs_ci.utility.reporting import get_polarion_id
from ocs_ci.utility.utils import is_z_stream_upgrade

log = logging.getLogger(__name__)

Expand Down Expand Up @@ -102,26 +102,32 @@ def test_mco_upgrade(zone_rank, role_rank, config_index):

@purple_squad
@dr_hub_upgrade
@skipif_z_stream_upgrade
@multicluster_roles(["mdr-all-acm"])
def test_dr_hub_upgrade(zone_rank, role_rank, config_index):
"""
Test upgrade procedure for DR hub operator
"""
if is_z_stream_upgrade():
pytest.skip(
"This is z-stream upgrade and this component upgrade should have been taken care by ODF upgrade"
)
dr_hub_upgrade_obj = DRHubUpgrade()
dr_hub_upgrade_obj.run_upgrade()


@purple_squad
@dr_cluster_operator_upgrade
@skipif_z_stream_upgrade
@multicluster_roles(["mdr-all-odf"])
def test_dr_cluster_upgrade(zone_rank, role_rank, config_index):
"""
Test upgrade procedure for DR cluster operator
"""
if is_z_stream_upgrade():
pytest.skip(
"This is z-stream upgrade and this component upgrade should have been taken care by ODF upgrade"
)
dr_cluster_upgrade_obj = DRClusterOperatorUpgrade()
dr_cluster_upgrade_obj.run_upgrade()

Expand Down

0 comments on commit 11670e9

Please sign in to comment.