/* * Copyright (c) 2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.db.client.upgrade.callbacks; import java.net.URI; 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.RegistrationStatus; import com.emc.storageos.db.client.model.HostInterface; import com.emc.storageos.db.client.model.Initiator; import com.emc.storageos.db.client.model.IpInterface; import com.emc.storageos.db.client.upgrade.BaseCustomMigrationCallback; import com.emc.storageos.svcs.errorhandling.resources.MigrationCallbackException; public class HostInterfaceRegistrationStatusMigration extends BaseCustomMigrationCallback { public static final Long FLAG_DEFAULT = 2L; private static final Logger log = LoggerFactory.getLogger(HostInterfaceRegistrationStatusMigration.class); @Override public void process() throws MigrationCallbackException { processType(Initiator.class); processType(IpInterface.class); } private <T extends HostInterface> void processType(Class<T> clazz) { DbClient dbClient = getDbClient(); List<URI> initiatorKeys = dbClient.queryByType(clazz, false); Iterator<T> hostInterfaces = dbClient.queryIterativeObjects(clazz, initiatorKeys); while (hostInterfaces.hasNext()) { // set default value of RegistrationStatus to REGISTERED HostInterface hostInterface = hostInterfaces.next(); log.info("Setting registration status of " + hostInterface.getId() + " to " + RegistrationStatus.REGISTERED); hostInterface.setRegistrationStatus(RegistrationStatus.REGISTERED.toString()); dbClient.persistObject(hostInterface); } } }