mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-05 04:06:49 +02:00
[ONOS-7098] Rebalance masters on upgrade completion event
Change-Id: I03e8590f8df57563a3919365e3b382082439e869
This commit is contained in:
parent
09220c20d7
commit
713830def0
@ -49,6 +49,9 @@ import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.net.MastershipRole;
|
||||
import org.onosproject.net.region.Region;
|
||||
import org.onosproject.net.region.RegionService;
|
||||
import org.onosproject.upgrade.UpgradeEvent;
|
||||
import org.onosproject.upgrade.UpgradeEventListener;
|
||||
import org.onosproject.upgrade.UpgradeService;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -88,6 +91,7 @@ public class MastershipManager
|
||||
private final Logger log = getLogger(getClass());
|
||||
|
||||
private final MastershipStoreDelegate delegate = new InternalDelegate();
|
||||
private final UpgradeEventListener upgradeEventListener = new InternalUpgradeEventListener();
|
||||
|
||||
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
|
||||
protected MastershipStore store;
|
||||
@ -104,13 +108,22 @@ public class MastershipManager
|
||||
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
|
||||
protected ComponentConfigService cfgService;
|
||||
|
||||
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
|
||||
protected UpgradeService upgradeService;
|
||||
|
||||
private NodeId localNodeId;
|
||||
private Timer requestRoleTimer;
|
||||
|
||||
static final boolean DEFAULT_USE_REGION_FOR_BALANCE_ROLES = false;
|
||||
@Property(name = "useRegionForBalanceRoles", boolValue = DEFAULT_USE_REGION_FOR_BALANCE_ROLES,
|
||||
label = "Use Regions for balancing roles")
|
||||
public boolean useRegionForBalanceRoles;
|
||||
protected boolean useRegionForBalanceRoles;
|
||||
|
||||
private static final boolean DEFAULT_REBALANCE_ROLES_ON_UPGRADE = true;
|
||||
@Property(name = "rebalanceRolesOnUpgrade",
|
||||
boolValue = DEFAULT_REBALANCE_ROLES_ON_UPGRADE,
|
||||
label = "Automatically rebalance roles following an upgrade")
|
||||
protected boolean rebalanceRolesOnUpgrade;
|
||||
|
||||
@Activate
|
||||
public void activate() {
|
||||
@ -492,4 +505,14 @@ public class MastershipManager
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalUpgradeEventListener implements UpgradeEventListener {
|
||||
@Override
|
||||
public void event(UpgradeEvent event) {
|
||||
if (rebalanceRolesOnUpgrade &&
|
||||
(event.type() == UpgradeEvent.Type.COMMITTED || event.type() == UpgradeEvent.Type.RESET)) {
|
||||
balanceRoles();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -60,7 +60,6 @@ import org.onosproject.store.cluster.messaging.ClusterCommunicationService;
|
||||
import org.onosproject.store.cluster.messaging.MessageSubject;
|
||||
import org.onosproject.store.serializers.KryoNamespaces;
|
||||
import org.onosproject.store.service.Serializer;
|
||||
import org.onosproject.upgrade.UpgradeService;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
@ -91,9 +90,6 @@ public class ConsistentDeviceMastershipStore
|
||||
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
|
||||
protected ClusterCommunicationService clusterCommunicator;
|
||||
|
||||
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
|
||||
protected UpgradeService upgradeService;
|
||||
|
||||
private NodeId localNodeId;
|
||||
|
||||
private static final MessageSubject ROLE_RELINQUISH_SUBJECT =
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user