/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.monitoring.cim.alert; import java.util.Hashtable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.model.DataObject; import com.emc.storageos.db.client.model.Volume; import com.emc.storageos.volumecontroller.impl.monitoring.cim.MonitoringPropertiesLoader; import com.emc.storageos.volumecontroller.impl.monitoring.cim.enums.RecordType; import com.emc.storageos.volumecontroller.impl.monitoring.cim.utility.CIMConstants; public class CIMVolumeAlertRecordableDeviceEvent extends CIMAlertRecordableDeviceEvent { /** * Logger to log the debug statements */ private static final Logger _logger = LoggerFactory .getLogger(CIMVolumeAlertRecordableDeviceEvent.class); /** * Overloaded constructor * * @param dbClient */ public CIMVolumeAlertRecordableDeviceEvent(DbClient dbClient, MonitoringPropertiesLoader mLoader, Hashtable<String, String> notification) { super(dbClient); _monitoringPropertiesLoader = mLoader; _indication = notification; } /** * {@inheritDoc} */ @Override public String getNativeGuid() { String nativeGuid = _indication .get(CIMConstants.ALERT_MANAGED_ELEMENT_COMPOSITE_ID); if (_monitoringPropertiesLoader.isToLogIndications()) { _logger.debug("Block related Alert - NativeGuid/Alternate ID {}", nativeGuid); } // Convert the composite id to match Bourne format. if (nativeGuid != null && nativeGuid.indexOf(CIMConstants.CLARIION_PREFIX) != -1) { nativeGuid = nativeGuid.replace(CIMConstants.CLARIION_PREFIX, CIMConstants.CLARIION_PREFIX_TO_UPPER); } if (nativeGuid != null) { nativeGuid = nativeGuid.replace("/", CIMConstants.VOLUME_PREFIX); } if (_monitoringPropertiesLoader.isToLogIndications()) { _logger.debug( "Bourne Specific format of Alternate ID for block {}", nativeGuid); } return nativeGuid; } /** * {@inheritDoc} */ @Override public Class<? extends DataObject> getResourceClass() { return Volume.class; } /** * {@inheritDoc} */ @Override public String getExtensions() { return null; } /** * {@inheritDoc} */ @Override public String getRecordType() { return RecordType.Alert.name(); } }