/*
- * Copyright (c) 2017 Red Hat, Inc. and others. All rights reserved.
+ * Copyright (c) 2017, 2018 Red Hat, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
private static final Logger LOG = LoggerFactory.getLogger(UpgradeStateListener.class);
private final AtomicBoolean isUpgradeInProgress = new AtomicBoolean(false);
+ private final UpgradeUtils upgradeUtils;
@Inject
- public UpgradeStateListener(@OsgiService final DataBroker dataBroker, final Config config) {
+ public UpgradeStateListener(@OsgiService final DataBroker dataBroker, final Config config,
+ final UpgradeUtils upgradeStateUtils) {
super(dataBroker, new DataTreeIdentifier<>(
LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Config.class)));
+ this.upgradeUtils = upgradeStateUtils;
// When this config value is set from a file it is not accessible via the yang tree...
// so we just write it once here just in case.
try {
+ //TODO: DS Writes should ideally be done from one node to avoid ConflictingModExceptions
+ upgradeStateUtils.setUpgradeConfig(config.isUpgradeInProgress());
SingleTransactionDataBroker.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION,
InstanceIdentifier.create(Config.class), config);
} catch (TransactionCommitFailedException e) {
@Override
public void add(@Nonnull InstanceIdentifier<Config> instanceIdentifier, @Nonnull Config config) {
+ upgradeUtils.setUpgradeConfig(config.isUpgradeInProgress());
isUpgradeInProgress.set(config.isUpgradeInProgress());
LOG.info("UpgradeStateListener.add: isUpgradeInProgress = {}", config.isUpgradeInProgress());
}
@Override
public void remove(@Nonnull InstanceIdentifier<Config> instanceIdentifier, @Nonnull Config config) {
+ upgradeUtils.setUpgradeConfig(false);
isUpgradeInProgress.set(false);
LOG.info("UpgradeStateListener.remove: isUpgradeInProgress = {}", false);
}
@Override
public void update(@Nonnull InstanceIdentifier<Config> instanceIdentifier,
@Nonnull Config originalConfig, @Nonnull Config updatedConfig) {
+ upgradeUtils.setUpgradeConfig(updatedConfig.isUpgradeInProgress());
isUpgradeInProgress.set(updatedConfig.isUpgradeInProgress());
LOG.info("UpgradeStateListener.update: isUpgradeInProgress = {}", updatedConfig.isUpgradeInProgress());
}