Index: includes/definitions/os.inc.php
===================================================================
--- includes/definitions/os.inc.php	(revision 6577)
+++ includes/definitions/os.inc.php	(working copy)
@@ -431,6 +431,20 @@
 $config['os'][$os]['sysObjectID'][]         = ".1.3.6.1.4.1.7247.1.1";
 $config['os'][$os]['mibs'][]                = "LM-SENSORS-MIB";
 
+$os = "datadomain";
+$config['os'][$os]['text']                  = "DD OS";
+$config['os'][$os]['group']                 = "unix";
+$config['os'][$os]['type']                  = "storage";
+$config['os'][$os]['icon']                  = "datadomain";
+$config['os'][$os]['graphs'][0]             = "device_bits";
+$config['os'][$os]['graphs'][1]             = "device_processor";
+$config['os'][$os]['graphs'][2]             = "device_mempool";
+$config['os'][$os]['sysObjectID'][]         = ".1.3.6.1.4.1.19746.3.1";
+$config['os'][$os]['mib_dirs'][]            = "datadomain";
+$config['os'][$os]['mibs'][]                = "DATA-DOMAIN-MIB";
+$config['os'][$os]['mib_blacklist'][]       = "ENTITY-SENSOR-MIB";
+$config['os'][$os]['mib_blacklist'][]       = "LSI-MegaRAID-SAS-MIB";
+
 $os = "aix";
 $config['os'][$os]['text']                  = "AIX";
 $config['os'][$os]['group']                 = "unix";
Index: includes/definitions/sensors.inc.php
===================================================================
--- includes/definitions/sensors.inc.php	(revision 6577)
+++ includes/definitions/sensors.inc.php	(working copy)
@@ -469,6 +469,23 @@
 $config['status_states']['ups-mib-test-state'][5] = array('name' => 'inProgress',         'event' => 'ok');
 $config['status_states']['ups-mib-test-state'][6] = array('name' => 'noTestsInitiated',   'event' => 'ignore');
 
+// DATA-DOMAIN-MIB
+$config['status_states']['data-domain-mib-disk-state'][1] = array('name' => 'Ok',             'event' => 'ok');
+$config['status_states']['data-domain-mib-disk-state'][2] = array('name' => 'Unknown',        'event' => 'warning');
+$config['status_states']['data-domain-mib-disk-state'][3] = array('name' => 'Absent',         'event' => 'ignore');
+$config['status_states']['data-domain-mib-disk-state'][4] = array('name' => 'Failed',         'event' => 'alert');
+
+$config['status_states']['data-domain-mib-pwr-state'][0] = array('name' => 'Absent',          'event' => 'ignore');
+$config['status_states']['data-domain-mib-pwr-state'][1] = array('name' => 'Ok',              'event' => 'ok');
+$config['status_states']['data-domain-mib-pwr-state'][2] = array('name' => 'Failed',          'event' => 'alert');
+$config['status_states']['data-domain-mib-pwr-state'][3] = array('name' => 'Faulty',          'event' => 'alert');
+$config['status_states']['data-domain-mib-pwr-state'][4] = array('name' => 'Acnone',          'event' => 'ignore');
+$config['status_states']['data-domain-mib-pwr-state'][99] = array('name' => 'Unknown',        'event' => 'warning');
+
+$config['status_states']['data-domain-mib-fan-state'][0] = array('name' => 'Notfound',        'event' => 'ignore');
+$config['status_states']['data-domain-mib-fan-state'][1] = array('name' => 'Ok',              'event' => 'ok');
+$config['status_states']['data-domain-mib-fan-state'][2] = array('name' => 'Fail',            'event' => 'alert');
+
 // End sensor states
 
 // FIXME. $config['sensor_types'] >> $config['sensor']['types']
Index: includes/discovery/sensors/data-domain-mib.inc.php
===================================================================
--- includes/discovery/sensors/data-domain-mib.inc.php	(revision 0)
+++ includes/discovery/sensors/data-domain-mib.inc.php	(working copy)
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * Observium
+ *
+ *   This file is part of Observium.
+ *
+ * @package    observium
+ * @subpackage discovery
+ * @copyright  (C) 2006-2015 Adam Armstrong
+ *
+ */
+
+$mib = 'DATA-DOMAIN-MIB';
+echo(" $mib ");
+
+$cache['datadomain']['power'] = snmpwalk_cache_oid($device, 'powerModuleTable', array(), $mib);
+$cache['datadomain']['temp']  = snmpwalk_cache_oid($device, 'temperatureSensorTable', array(), $mib);
+$cache['datadomain']['fan']   = snmpwalk_cache_oid($device, 'fanPropertiesTable', array(), $mib);
+$cache['datadomain']['disk']  = snmpwalk_cache_oid($device, 'diskPropertiesTable', array(), $mib);
+
+foreach ($cache['datadomain']['power'] as $index => $entry)
+{
+  if ($encl == '') { $encl = 'Enclosure'; }
+  $descr = $encl.':'.$entry['powerEnclosureID'].' - '.$entry['powerModuleDescription'];
+  $oid   = '.1.3.6.1.4.1.19746.1.1.1.1.1.1.4.'.$index;
+  $value = $entry['powerModuleStatus'];
+
+  if ($value !== '')
+  {
+    discover_sensor($valid['sensor'], 'state', $device, $oid, 'powerModuleStatus.'.$index, 'data-domain-mib-pwr-state', $descr, NULL, $value, array('entPhysicalClass' => 'power'));
+  }
+}
+
+foreach ($cache['datadomain']['temp'] as $index => $entry)
+{
+  if ($encl == '') { $encl = 'Enclosure'; }
+  $descr = $encl.':'.$entry['tempEnclosureID'].' - '.$entry['tempSensorDescription'];
+  $oid   = '.1.3.6.1.4.1.19746.1.1.2.1.1.1.5.'.$index;
+  $value = $entry['tempSensorCurrentValue'];
+
+  if ($value > 0)
+  {
+    discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, 'data-domain-mib', $descr, 1, $value);
+  }
+}
+
+foreach ($cache['datadomain']['fan'] as $index => $entry)
+{
+  if ($encl == '') { $encl = 'Enclosure'; }
+  $descr = $encl.':'.$entry['fanEnclosureID'].' - '.$entry['fanDescription'];
+  $oid   = '.1.3.6.1.4.1.19746.1.1.3.1.1.1.6.'.$index;
+  $value = $entry['fanStatus'];
+
+  if ($value !== '')
+  {
+    discover_sensor($valid['sensor'], 'state', $device, $oid, 'fanStatus.'.$index, 'data-domain-mib-fan-state', $descr, NULL, $value, array('entPhysicalClass' => 'fan'));
+  }
+}
+
+foreach ($cache['datadomain']['disk'] as $index => $entry)
+{
+  if ($encl == '') { $encl = 'Enclosure'; }
+  $descr = $encl.':'.$entry['diskPropEnclosureID'].' - Disk '.$entry['diskPropIndex'].': '.$entry['diskModel'];
+  $oid   = '.1.3.6.1.4.1.19746.1.6.1.1.1.8.'.$index;
+  $value = $entry['diskPropState'];
+
+  if ($value !== '')
+  {
+    discover_sensor($valid['sensor'], 'state', $device, $oid, 'diskPropState.'.$index, 'data-domain-mib-disk-state', $descr, NULL, $value, array('entPhysicalClass' => 'storage'));
+  }
+}
+
+// EOF
Index: includes/polling/os/datadomain.inc.php
===================================================================
--- includes/polling/os/datadomain.inc.php	(revision 0)
+++ includes/polling/os/datadomain.inc.php	(working copy)
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Observium
+ *
+ *   This file is part of Observium.
+ *
+ * @package    observium
+ * @subpackage poller
+ * @copyright  (C) 2006-2015 Adam Armstrong
+ *
+ */
+
+$mib = 'DATA-DOMAIN-MIB';
+
+$version  = trim($poll_device['sysDescr'], 'Data Domain OS');
+$serial   = snmp_get($device, 'systemSerialNumber.0', '-OQv', $mib);
+$hardware = snmp_get($device, 'systemModelNumber.0', '-OQv', $mib);
+
+// EOF