/* * Copyright (c) 2008-2011 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.plugins.discovery.smis.processor.fast; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.cim.CIMObjectPath; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.emc.storageos.plugins.BaseCollectionException; import com.emc.storageos.plugins.common.Constants; import com.emc.storageos.plugins.common.Processor; import com.emc.storageos.plugins.common.domainmodel.Operation; /** * Processor used in extracting EMC_ControllerConfigurationService for * VMAX and VNX. * EMC_ControllerConfiguration Service is being stored in Map using key. * later it will be used for other SMI-S operations. * */ public class ControllerConfigurationProcessor extends Processor { private Logger _logger = LoggerFactory .getLogger(ControllerConfigurationProcessor.class); @Override public void processResult( Operation operation, Object resultObj, Map<String, Object> keyMap) throws BaseCollectionException { try { @SuppressWarnings("unchecked") final Iterator<CIMObjectPath> it = (Iterator<CIMObjectPath>) resultObj; while (it.hasNext()) { CIMObjectPath controllerConfigurationService = it.next(); String systemName = controllerConfigurationService .getKey(Constants.SYSTEMNAME).getValue().toString(); String serialID = (String) keyMap.get(Constants._serialID); if (systemName.contains(serialID)) { addPath(keyMap, operation.getResult(), controllerConfigurationService); if (systemName.toLowerCase().contains(Constants.SYMMETRIX)) { keyMap.put(Constants.VMAXConfigurationService, controllerConfigurationService); } else if (systemName.toLowerCase().contains(Constants.CLARIION)) { keyMap.put(Constants.VNXConfigurationService, controllerConfigurationService); } } } } catch (Exception e) { _logger.error("Controller Configuration Service Discovery Failed : ", e); } } @Override protected void setPrerequisiteObjects(List<Object> inputArgs) throws BaseCollectionException { } }