From 3c65d1bb24bb25c6ed715fc9eaddf527ac97f209 Mon Sep 17 00:00:00 2001 From: Jordan Halterman Date: Tue, 9 Jan 2018 13:01:03 -0800 Subject: [PATCH] [ONOS-7350] Add ISSU HA/rollback test scenario Change-Id: I8c1952480cd429d40c77db2e66d16ace27948148 --- .../upgrade/impl/UpgradeManager.java | 1 + tools/test/bin/onos-check-issu-status | 27 +++ tools/test/scenarios/ha-upgrade.xml | 165 ++++++++++++++++++ 3 files changed, 193 insertions(+) create mode 100755 tools/test/bin/onos-check-issu-status create mode 100644 tools/test/scenarios/ha-upgrade.xml diff --git a/core/net/src/main/java/org/onosproject/upgrade/impl/UpgradeManager.java b/core/net/src/main/java/org/onosproject/upgrade/impl/UpgradeManager.java index ab1b1c3e92..218a357589 100644 --- a/core/net/src/main/java/org/onosproject/upgrade/impl/UpgradeManager.java +++ b/core/net/src/main/java/org/onosproject/upgrade/impl/UpgradeManager.java @@ -385,6 +385,7 @@ public class UpgradeManager .filter(id -> clusterService.getVersion(id).equals(upgrade.target())) .collect(Collectors.toSet()); if (upgradedNodes.contains(event.subject().id())) { + log.warn("Upgrade failure detected: rolling back upgrade"); rollback(); } } diff --git a/tools/test/bin/onos-check-issu-status b/tools/test/bin/onos-check-issu-status new file mode 100755 index 0000000000..a0aa52bc7b --- /dev/null +++ b/tools/test/bin/onos-check-issu-status @@ -0,0 +1,27 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Checks whether the specified ONOS cluster node has the desired state. +# ----------------------------------------------------------------------------- + +aux=/tmp/stc/stc-$$.log +trap "rm -f $aux 2>/dev/null" EXIT + +function onos_nodes() { + echo $(env | sort | egrep "^OC[0-9]+" | cut -d= -f2) +} + +nodes=$(onos_nodes) + +for attempt in {1..5}; do + for node in $nodes; do + onos $node issu status > $aux + cat $aux + + status=$(cat $aux) + + [ "$status" = "${1}" ] && exit 0 + sleep 1 + done +done + +exit 1 \ No newline at end of file diff --git a/tools/test/scenarios/ha-upgrade.xml b/tools/test/scenarios/ha-upgrade.xml new file mode 100644 index 0000000000..0f832a9634 --- /dev/null +++ b/tools/test/scenarios/ha-upgrade.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +