/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.model.uimodels.migration;
import org.apache.commons.lang.BooleanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.model.uimodels.InitialSetup;
import static com.emc.storageos.db.client.model.uimodels.InitialSetup.*;
import com.emc.storageos.coordinator.common.impl.ConfigurationImpl;
import com.emc.storageos.db.client.DbClient;
import com.emc.storageos.db.client.upgrade.BaseCustomMigrationCallback;
import com.emc.storageos.db.client.upgrade.callbacks.DataObjectInternalFlagsInitializer;
import com.emc.storageos.svcs.errorhandling.resources.MigrationCallbackException;
@SuppressWarnings("deprecation")
public class InitialSetupDeprecationCallback extends BaseCustomMigrationCallback {
private static final Logger log = LoggerFactory.getLogger(DataObjectInternalFlagsInitializer.class);
/**
* If the InitialSetup CF singleton exists and has the 'complete' attribute set,
* set the corresponding configuration fields in ZK, then remove the CF row
*/
@Override
public void process() throws MigrationCallbackException {
DbClient dbClient = this.getDbClient();
InitialSetup initialSetup = dbClient.queryObject(InitialSetup.class, InitialSetup.SINGLETON_ID);
if ((initialSetup != null) && (BooleanUtils.isTrue(initialSetup.getComplete()))) {
log.info("Migrating InitialSetup CF into Coordinator");
ConfigurationImpl config = new ConfigurationImpl();
config.setKind(CONFIG_KIND);
config.setId(CONFIG_ID);
config.setConfig(COMPLETE, Boolean.TRUE.toString());
coordinatorClient.persistServiceConfiguration(config);
dbClient.removeObject(initialSetup);
}
}
}