/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.volumecontroller.impl.monitoring.isilon;
import java.net.URI;
import com.emc.storageos.db.client.model.DataObject;
import com.emc.storageos.db.client.model.StorageSystem;
import com.emc.storageos.isilon.restapi.IsilonEvent;
import com.emc.storageos.services.OperationTypeEnum;
import com.emc.storageos.volumecontroller.impl.monitoring.RecordableBourneEvent;
import com.emc.storageos.volumecontroller.impl.monitoring.RecordableDeviceEvent;
import com.emc.storageos.volumecontroller.impl.monitoring.cim.enums.RecordType;
/**
* Class for processing IsilonEvent
*/
public class RecordableIsilonEvent extends RecordableDeviceEvent {
private static final int MAX_ISILON_DEV_ID = 100;
private IsilonEvent _event;
private StorageSystem _isilonDevice;
/**
* Overloaded constructor
*
* @param deviceId
* @param event
*/
public RecordableIsilonEvent(StorageSystem isilonDevice, IsilonEvent event) {
super(null);
_event = event;
_isilonDevice = isilonDevice;
}
/**
* {@inheritDoc}
*/
@Override
public long getTimestamp() {
return _event.getLatestTimeMilliSeconds();
}
/**
* {@inheritDoc}
*/
@Override
public String getDescription() {
return _event.getMessage();
}
/**
* {@inheritDoc}
*/
@Override
public String getService() {
return "file";
}
/**
* {@inheritDoc}
*/
@Override
public String getType() {
// there is no information in the alerts
return OperationTypeEnum.ArrayGeneric.toString();
}
/**
* {@inheritDoc}
*/
@Override
public Class<DataObject> getResourceClass() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String getExtensions() {
return _event.getSpecifiers();
}
/**
* {@inheritDoc}
*/
@Override
public String getSource() {
String source = null;
if (_isilonDevice != null) {
source = _isilonDevice.getIpAddress();
}
return source;
}
/**
* {@inheritDoc}
*/
@Override
public String getEventId() {
return RecordableBourneEvent.getUniqueEventId();
}
/**
* {@inheritDoc}
*/
@Override
public String getSeverity() {
String severity = _event.getSeverity();
if (severity != null) {
severity = severity.toUpperCase();
}
return severity;
}
/**
* {@inheritDoc}
*/
@Override
public String getAlertType() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String getRecordType() {
return RecordType.Alert.name();
}
/**
* {@inheritDoc}
*/
@Override
public String getNativeGuid() {
String nativeGuid = null;
if (_isilonDevice != null) {
nativeGuid = _isilonDevice.getNativeGuid();
}
return nativeGuid;
}
/**
* {@inheritDoc}
*/
@Override
public String getOperationalStatusDescriptions() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public String getOperationalStatusCodes() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public URI getResourceId() {
URI resourceId = null;
if (_isilonDevice != null) {
resourceId = _isilonDevice.getId();
}
return resourceId;
}
/**
* {@inheritDoc}
*/
@Override
public URI getProjectId() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public URI getVirtualPool() {
return null;
}
}