/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.upgrade.callbacks;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.emc.storageos.db.client.DbClient;
import com.emc.storageos.db.client.model.DiscoveredDataObject.DiscoveryStatus;
import com.emc.storageos.db.client.model.StoragePool;
import com.emc.storageos.db.client.upgrade.BaseCustomMigrationCallback;
import com.emc.storageos.svcs.errorhandling.resources.MigrationCallbackException;
public class StoragePoolDiscoveryStatusMigration extends
BaseCustomMigrationCallback {
private static final Logger log = LoggerFactory.getLogger(StoragePoolDiscoveryStatusMigration.class);
@Override
public void process() throws MigrationCallbackException {
DbClient dbClient = getDbClient();
List<URI> poolIds = dbClient.queryByType(StoragePool.class, true);
Iterator<StoragePool> pools = dbClient.queryIterativeObjects(StoragePool.class, poolIds);
List<StoragePool> modifiedPools = new ArrayList<StoragePool>();
while (pools.hasNext()) {
// set default value of DiscoveryStatus to VISIBLE
StoragePool pool = pools.next();
log.info("Setting discovery status of " + pool.getId() +
" to " + DiscoveryStatus.VISIBLE);
pool.setDiscoveryStatus(DiscoveryStatus.VISIBLE.name());
modifiedPools.add(pool);
}
dbClient.persistObject(modifiedPools);
}
}