mooli tayer has uploaded a new change for review.

Change subject: notifier: modify the oid schema for SNMP notification.
......................................................................

notifier: modify the oid schema for SNMP notification.

MIB syntax tested using:
$ smilint -p packaging/doc/mibs/REDHAT-MIB.txt -l 6 \
          packaging/doc/mibs/OVIRT-MIB.txt

Change-Id: Ic8a06063f8ebbbe4d05783cb25036e870a6be3b7
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1136818
Signed-off-by: Mooli Tayer <mta...@redhat.com>
---
M Makefile
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/notifier/transport/snmp/Snmp.java
M ovirt-engine.spec.in
A packaging/doc/mibs/OVIRT-MIB.txt
A packaging/doc/mibs/REDHAT-MIB.txt
M packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.conf.in
6 files changed, 429 insertions(+), 62 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/33745/1

diff --git a/Makefile b/Makefile
index f65f05b..98e8159 100644
--- a/Makefile
+++ b/Makefile
@@ -419,6 +419,7 @@
        for d in bin branding conf files firewalld services setup; do \
                $(MAKE) copy-recursive SOURCEDIR="packaging/$${d}" 
TARGETDIR="$(DESTDIR)$(DATA_DIR)/$${d}" EXCLUDE_GEN="$(GENERATED)"; \
        done
+       $(MAKE) copy-recursive SOURCEDIR=packaging/doc 
TARGETDIR="$(DESTDIR)$(PKG_DOC_DIR)" EXCLUDE_GEN="$(GENERATED)"
        $(MAKE) copy-recursive SOURCEDIR=packaging/man 
TARGETDIR="$(DESTDIR)$(MAN_DIR)" EXCLUDE_GEN="$(GENERATED)"
        $(MAKE) copy-recursive SOURCEDIR=packaging/pythonlib 
TARGETDIR="$(DESTDIR)$(PYTHON_DIR)" EXCLUDE_GEN="$(GENERATED)"
 
diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/notifier/transport/snmp/Snmp.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/notifier/transport/snmp/Snmp.java
index 1001173..af3100c 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/notifier/transport/snmp/Snmp.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/notifier/transport/snmp/Snmp.java
@@ -2,6 +2,7 @@
 
 import java.io.IOException;
 import java.net.InetAddress;
+import java.text.SimpleDateFormat;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -13,6 +14,7 @@
 import org.apache.log4j.Logger;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.EventNotificationMethod;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.notifier.NotificationServiceException;
 import org.ovirt.engine.core.notifier.dao.DispatchResult;
 import org.ovirt.engine.core.notifier.filter.AuditLogEvent;
@@ -20,7 +22,9 @@
 import org.ovirt.engine.core.notifier.utils.NotificationProperties;
 import org.snmp4j.CommunityTarget;
 import org.snmp4j.PDU;
+import org.snmp4j.Target;
 import org.snmp4j.mp.SnmpConstants;
+import org.snmp4j.smi.Integer32;
 import org.snmp4j.smi.OID;
 import org.snmp4j.smi.OctetString;
 import org.snmp4j.smi.TimeTicks;
@@ -38,7 +42,35 @@
     private static final int ENTERPRISE_SPECIFIC = 6;
     private static final Pattern PROFILE_PATTERN = 
Pattern.compile(SNMP_MANAGERS + "(|_(?<profile>.*))");
 
+    /** OIDs - See OVIRT-MIB.txt */
+    public static final int AUDIT = 1;
+
+    private static final OID OBJECTS_AUDIT = new OID(new int[] {2, 1});
+
+    public static final int INSTANCE_ID = 1;
+    public static final int NAME = 2;
+    public static final int ID = 3;
+    public static final int SEVERITY = 4;
+    public static final int MESSAGE = 5;
+    public static final int STATUS = 6;
+    public static final int DATETIME = 7;
+    public static final int USERNAME = 100;
+    public static final int USER_ID = 101;
+    public static final int VM_NAME = 102;
+    public static final int VM_ID = 103;
+    public static final int VDS_NAME = 104;
+    public static final int VDS_ID = 105;
+    public static final int VM_TEMPLATE_NAME = 106;
+    public static final int VM_TEMPLATE_ID = 107;
+    public static final int STORAGE_POOL_NAME = 108;
+    public static final int STORAGE_POOL_ID = 109;
+    public static final int STORAGE_DOMAIN_NAME = 110;
+    public static final int STORAGE_DOMAIN_ID = 111;
+
+
     private final Map<String, Profile> profiles = new HashMap<>();
+
+    private static final String ISO8601 = "yyyy-MM-dd'T'HH:mm'Z'";
     private org.snmp4j.Snmp snmp = null;
     private boolean active = false;
     private static long nanoStart = System.nanoTime();
@@ -97,66 +129,10 @@
         // PDU class is for SNMPv2c units
         PDU v2pdu = new PDU();
         v2pdu.setType(PDU.TRAP);
-        int auditLogTypeVal = AuditLogType.UNASSIGNED.getValue();
-        try {
-            // TODO mtayer: what about db? add to audit log type
 
-            auditLogTypeVal = AuditLogType.valueOf(event.getName()).getValue();
-        } catch (IllegalArgumentException e) {
-            log.warn("Could not find event: " + event.getName() + " in 
auditLogTypes");
-        }
-        OID trapOID = SnmpConstants.getTrapOID(profile.oid, 
ENTERPRISE_SPECIFIC, auditLogTypeVal);
-        v2pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, trapOID));
-        v2pdu.add(new VariableBinding(SnmpConstants.sysUpTime,
-                                      new TimeTicks((System.nanoTime() - 
nanoStart) / 10000000)));
-        v2pdu.add(new VariableBinding(
-                new OID(trapOID).append(0),
-                new OctetString(event.getMessage())));
-        v2pdu.add(new VariableBinding(
-                new OID(trapOID).append(1),
-                new OctetString(event.getSeverity().name())));
-        v2pdu.add(new VariableBinding(
-                new OID(trapOID).append(2),
-                new OctetString(event.getType().name())));
-        v2pdu.add(new VariableBinding(
-                new OID(trapOID).append(3),
-                new OctetString(event.getLogTime().toString())));
-        v2pdu.add(new VariableBinding(
-                new OID(trapOID).append(4),
-                new OctetString(event.getLogTypeName())));
-        if (!StringUtils.isEmpty(event.getUserName())) {
-            v2pdu.add(new VariableBinding(
-                    new OID(trapOID).append(5),
-                    new OctetString(event.getUserName())));
-        }
-        if (!StringUtils.isEmpty(event.getVmName())) {
-            v2pdu.add(new VariableBinding(
-                    new OID(trapOID).append(6),
-                    new OctetString(event.getVmName())));
-        }
-        if (!StringUtils.isEmpty(event.getVdsName())) {
-            v2pdu.add(new VariableBinding(
-                    new OID(trapOID).append(7),
-                    new OctetString(event.getVdsName())));
-        }
-        if (!StringUtils.isEmpty(event.getVmTemplateName())) {
-            v2pdu.add(new VariableBinding(
-                    new OID(trapOID).append(8),
-                    new OctetString(event.getVmTemplateName())));
-        }
-        if (!StringUtils.isEmpty(event.getStoragePoolName())) {
-            v2pdu.add(new VariableBinding(
-                    new OID(trapOID).append(9),
-                    new OctetString(event.getStoragePoolName())));
-        }
-        if (!StringUtils.isEmpty(event.getStorageDomainName())) {
-            v2pdu.add(new VariableBinding(
-                    new OID(trapOID).append(10),
-                    new OctetString(event.getStorageDomainName())));
-        }
-        CommunityTarget target = new CommunityTarget();
-        target.setCommunity(profile.community);
-        target.setVersion(SnmpConstants.version2c);
+        addPayload(v2pdu, event, profile);
+
+        Target target = createTarget(profile);
         for (Host host : profile.hosts) {
             try {
                 log.info(String.format("Generate an snmp trap for event: %s to 
address: %s ",
@@ -176,6 +152,73 @@
         }
     }
 
+    private CommunityTarget createTarget(Profile profile) {
+        CommunityTarget target = new CommunityTarget();
+        target.setCommunity(profile.community);
+        target.setVersion(SnmpConstants.version2c);
+        return target;
+    }
+
+    private void addPayload(PDU v2pdu, AuditLogEvent event, Profile profile) {
+
+        v2pdu.add(new VariableBinding(SnmpConstants.sysUpTime,
+                                      new TimeTicks((System.nanoTime() - 
nanoStart) / 10000000)));
+        // { [baseoid] notifications(0) audit(1) }
+        v2pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,
+                                      SnmpConstants.getTrapOID(new 
OID(profile.oid),
+                                                               
ENTERPRISE_SPECIFIC,
+                                                               AUDIT)));
+
+        int auditLogId = AuditLogType.UNASSIGNED.getValue();
+        try {
+            auditLogId = AuditLogType.valueOf(event.getName()).getValue();
+        } catch (IllegalArgumentException e) {
+            log.warn("Could not find event: " + event.getName() + " in 
auditLogTypes");
+        }
+        // { [baseoid] objects(2) audit(1) }
+        OID auditObjects = new OID(profile.oid).append(OBJECTS_AUDIT);
+
+        addInt(v2pdu, auditObjects, INSTANCE_ID, auditLogId, true);
+        addString(v2pdu, auditObjects, NAME, event.getName(), true);
+        addInt(v2pdu, auditObjects, ID, auditLogId, true);
+        addInt(v2pdu, auditObjects, SEVERITY, event.getSeverity().getValue(), 
true);
+        addString(v2pdu, auditObjects, MESSAGE, event.getMessage(), true);
+        addInt(v2pdu, auditObjects, STATUS, event.getType().getValue(), true);
+        addString(v2pdu, auditObjects, DATETIME, new 
SimpleDateFormat(ISO8601).format(event.getLogTime()), true);
+
+        // Optional pdu:
+        addString(v2pdu, auditObjects, USERNAME, event.getUserName(), false);
+        addUuid(v2pdu, auditObjects, USER_ID, event.getUserId());
+        addString(v2pdu, auditObjects, VM_NAME, event.getVmName(), false);
+        addUuid(v2pdu, auditObjects, VM_ID, event.getVmId());
+        addString(v2pdu, auditObjects, VDS_NAME, event.getVdsName(), false);
+        addUuid(v2pdu, auditObjects, VDS_ID, event.getVdsId());
+        addString(v2pdu, auditObjects, VM_TEMPLATE_NAME, 
event.getVmTemplateName(), false);
+        addUuid(v2pdu, auditObjects, VM_TEMPLATE_ID, event.getVmTemplateId());
+        addString(v2pdu, auditObjects, STORAGE_POOL_NAME, 
event.getStoragePoolName(), false);
+        addUuid(v2pdu, auditObjects, STORAGE_POOL_ID, 
event.getStoragePoolId());
+        addString(v2pdu, auditObjects, STORAGE_DOMAIN_NAME, 
event.getStorageDomainName(), false);
+        addUuid(v2pdu, auditObjects, STORAGE_DOMAIN_ID, 
event.getStorageDomainId());
+    }
+
+    private void addString(PDU v2pdu, OID prefix, int suffix, String val, 
boolean allowEmpty) {
+        if (allowEmpty || !StringUtils.isEmpty(val)) {
+            v2pdu.add(new VariableBinding(new OID(prefix).append(suffix), new 
OctetString(val == null ? "" : val)));
+        }
+    }
+
+    private void addInt(PDU v2pdu, OID prefix, int suffix, Integer val, 
boolean allowEmpty) {
+        if (allowEmpty || val != null) {
+            v2pdu.add(new VariableBinding(new OID(prefix).append(suffix), new 
Integer32(val == null ? 0 : val)));
+        }
+    }
+
+    private void addUuid(PDU v2pdu, final OID prefix, int suffix, Guid val) {
+        if (!Guid.isNullOrEmpty(val)) {
+            addString(v2pdu, prefix, suffix, val.toString(), false);
+        }
+    }
+
     static class Host {
         public String name;
         public int port = 162;
diff --git a/ovirt-engine.spec.in b/ovirt-engine.spec.in
index 2cb5d93..6312cb3 100644
--- a/ovirt-engine.spec.in
+++ b/ovirt-engine.spec.in
@@ -896,6 +896,7 @@
 %{engine_data}/conf/sysprep/
 %{engine_data}/files/
 %{engine_doc}/AuditLogMessages.properties
+%{engine_doc}/mibs/
 %{engine_ear}/META-INF
 %{engine_ear}/bll.jar
 %{engine_ear}/docs.war/
diff --git a/packaging/doc/mibs/OVIRT-MIB.txt b/packaging/doc/mibs/OVIRT-MIB.txt
new file mode 100644
index 0000000..f398741
--- /dev/null
+++ b/packaging/doc/mibs/OVIRT-MIB.txt
@@ -0,0 +1,289 @@
+
+--
+-- Copyright 2014 Red Hat Inc.
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+--     Unless required by applicable law or agreed to in writing, software
+--     distributed under the License is distributed on an "AS IS" BASIS,
+--     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--     See the License for the specific language governing permissions and
+--     limitations under the License.
+--
+
+OVIRT-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    Integer32,
+    MODULE-IDENTITY,
+    NOTIFICATION-TYPE,
+    OBJECT-TYPE         FROM SNMPv2-SMI
+    NOTIFICATION-GROUP,
+    MODULE-COMPLIANCE,
+    OBJECT-GROUP        FROM SNMPv2-CONF
+    redhat              FROM REDHAT-MIB
+;
+
+ovirt MODULE-IDENTITY
+    LAST-UPDATED "201409140000Z"
+    ORGANIZATION "www.ovirt.org"
+    CONTACT-INFO "TBD"
+    DESCRIPTION  "TBD"
+    REVISION     "201409140000Z"
+    DESCRIPTION
+        "First draft"
+    ::= { redhat 13}
+
+--
+-- top level structure
+--
+ovirtEngine                          OBJECT IDENTIFIER ::= { ovirt 1 }
+ovirtEngineNotifier                  OBJECT IDENTIFIER ::= { ovirtEngine 1 }
+
+ovirtEngineNotifierNotifications     OBJECT IDENTIFIER ::= { 
ovirtEngineNotifier 0 }
+
+ovirtEngineNotifierObjects           OBJECT IDENTIFIER ::= { 
ovirtEngineNotifier 2 }
+ovirtEngineNotifierObjectsAudit      OBJECT IDENTIFIER ::= { 
ovirtEngineNotifierObjects 1 }
+
+ovirtEngineNotifierGroups                    OBJECT IDENTIFIER ::= { 
ovirtEngineNotifier 3 }
+
+ovirtEngineNotifierCompliances               OBJECT IDENTIFIER ::= { 
ovirtEngineNotifier 4 }
+
+--
+-- Compliance
+--
+
+ovirtEngineNotifierCompliance MODULE-COMPLIANCE
+    STATUS     current
+    DESCRIPTION
+           "MANDATORY-GROUPS must be implemented to comply with this module."
+    MODULE  -- this module
+        MANDATORY-GROUPS { ovirtEngineNotificationsGroup, 
ovirtEngineObjectAuditGroup }
+    ::= { ovirtEngineNotifierCompliances 2 }
+
+--
+-- Trap definition
+--
+
+ovirtEngineNotificationsGroup NOTIFICATION-GROUP
+    NOTIFICATIONS  { ovirtEngineNotifierNotificationsAudit }
+    STATUS         current
+    DESCRIPTION    "notifications defined in SMIv2 modules are required to be 
listed in a group"
+::= {  ovirtEngineNotifierGroups 1  }
+
+ovirtEngineNotifierNotificationsAudit NOTIFICATION-TYPE
+    OBJECTS     {
+                  ovirtEngineNotifierInstanceId,
+                  ovirtEngineNotifierName,
+                  ovirtEngineNotifierId,
+                  ovirtEngineNotifierSeverity,
+                  ovirtEngineNotifierMessage,
+                  ovirtEngineNotifierStatus,
+                  ovirtEngineNotifierDatetime
+                }
+    STATUS      current
+    DESCRIPTION
+        "Defines an audit log event sent by ovirt-engine-notifier."
+::= { ovirtEngineNotifierNotifications 1 }
+
+--
+-- Objects
+--
+ovirtEngineObjectAuditGroup OBJECT-GROUP
+    OBJECTS      {
+                   ovirtEngineNotifierInstanceId,
+                   ovirtEngineNotifierName,
+                   ovirtEngineNotifierId,
+                   ovirtEngineNotifierSeverity,
+                   ovirtEngineNotifierMessage,
+                   ovirtEngineNotifierStatus,
+                   ovirtEngineNotifierDatetime,
+                   ovirtEngineNotifierUsername,
+                   ovirtEngineNotifierUserId,
+                   ovirtEngineNotifierVmName,
+                   ovirtEngineNotifierVmId,
+                   ovirtEngineNotifierHostName,
+                   ovirtEngineNotifierHostId,
+                   ovirtEngineNotifierTemplateName,
+                   ovirtEngineNotifierTemplateId,
+                   ovirtEngineNotifierStoragePoolName,
+                   ovirtEngineNotifierStoragePoolId,
+                   ovirtEngineNotifierStorageDomainName,
+                   ovirtEngineNotifierStorageDomainId
+                 }
+    STATUS       current
+    DESCRIPTION  "A group for all mandatory and optional objects sent in
+                  ovirtEngineNotifierNotificationsAudit notifications.
+                  defined since every defined in an SMIv2 module is required 
to be
+                  listed in at least one group in order to be conformant "
+::= { ovirtEngineNotifierGroups 2 }
+
+ovirtEngineNotifierInstanceId OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The id of the audit event at ovirt-engine, e,g 83."
+::= { ovirtEngineNotifierObjectsAudit 1 }
+
+
+ovirtEngineNotifierName OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The name of the audit event type, e,g VDC_STOP.
+         See AuditLogMessages.properties."
+::= { ovirtEngineNotifierObjectsAudit 2 }
+
+ovirtEngineNotifierId OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The id of the audit event type, e,g 2 (2 is the id of VDC_STOP)."
+::= { ovirtEngineNotifierObjectsAudit 3 }
+
+ovirtEngineNotifierSeverity OBJECT-TYPE
+    SYNTAX      INTEGER {
+                          normal (0),
+                          warning (1),
+                          error (2),
+                          alert (10)
+                        }
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The severity of the audit event."
+::= { ovirtEngineNotifierObjectsAudit 4 }
+
+ovirtEngineNotifierMessage OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The text message associated with the audit event."
+::= { ovirtEngineNotifierObjectsAudit 5 }
+
+ovirtEngineNotifierStatus OBJECT-TYPE
+    SYNTAX      INTEGER {
+                          resolveMessage (0),
+                          alertMessage (1)
+                        }
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The lifecycle status of this audit log event."
+::= { ovirtEngineNotifierObjectsAudit 6 }
+
+ovirtEngineNotifierDatetime OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The Datetime of the audit event occurred as ISO 8601 
(yyyy-MM-dd'T'HH:mm'Z')."
+::= { ovirtEngineNotifierObjectsAudit 7 }
+
+-- optional pdu:
+
+ovirtEngineNotifierUsername OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The Username associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 100 }
+
+ovirtEngineNotifierUserId OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The uuid associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 101 }
+
+ovirtEngineNotifierVmName OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The name of the vm associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 102 }
+
+ovirtEngineNotifierVmId OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The uuid of the vm associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 103 }
+
+ovirtEngineNotifierHostName OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The name of the host associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 104 }
+
+ovirtEngineNotifierHostId OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The uuid of the host associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 105 }
+
+ovirtEngineNotifierTemplateName OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The name of the template associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 106 }
+
+ovirtEngineNotifierTemplateId OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The uuid of the template associated with the audit event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 107 }
+
+ovirtEngineNotifierStoragePoolName OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The name of the storage pool associated with the audit 
event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 108 }
+
+ovirtEngineNotifierStoragePoolId OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The uuid of the storage pool associated with the audit 
event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 109 }
+
+ovirtEngineNotifierStorageDomainName OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The name of the storage domain associated with the audit 
event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 110 }
+
+ovirtEngineNotifierStorageDomainId OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The uuid of the storage domain associated with the audit 
event(optional)."
+::= { ovirtEngineNotifierObjectsAudit 111 }
+
+END
diff --git a/packaging/doc/mibs/REDHAT-MIB.txt 
b/packaging/doc/mibs/REDHAT-MIB.txt
new file mode 100644
index 0000000..f1cac06
--- /dev/null
+++ b/packaging/doc/mibs/REDHAT-MIB.txt
@@ -0,0 +1,33 @@
+--
+-- Copyright 2014 Red Hat Inc.
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+--     Unless required by applicable law or agreed to in writing, software
+--     distributed under the License is distributed on an "AS IS" BASIS,
+--     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+--     See the License for the specific language governing permissions and
+--     limitations under the License.
+--
+
+REDHAT-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, enterprises FROM SNMPv2-SMI
+;
+
+redhat MODULE-IDENTITY
+    LAST-UPDATED "201409140000Z"
+    ORGANIZATION "www.redhat.org"
+    CONTACT-INFO "TBD"
+    DESCRIPTION  "TBD"
+    REVISION     "201409140000Z"
+    DESCRIPTION
+        "First draft"
+    ::= { enterprises 2312}
+
+END
diff --git 
a/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.conf.in 
b/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.conf.in
index e071b47..f54e677 100644
--- a/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.conf.in
+++ b/packaging/services/ovirt-engine-notifier/ovirt-engine-notifier.conf.in
@@ -152,10 +152,10 @@
 # Default SNMP Community String.
 SNMP_COMMUNITY=public
 
-# Default TRAP Object Identifier for alerts.
+# SNMP Trap Object Identifier for outgoing notifications.
+# { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) redhat(2312) 
ovirt(13) engine(1) notifier(1) }
 #
-# 
iso.organization.DoD.Internet.private.enterprises.redhat.ovirt-engine.notifications.audit-log
-# 1.3.6.1.4.1.2312.13.1.1
+# Note: changing the default will prevent generated traps from complying with 
OVIRT-MIB.txt.
 SNMP_OID=1.3.6.1.4.1.2312.13.1.1
 
 #


-- 
To view, visit http://gerrit.ovirt.org/33745
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic8a06063f8ebbbe4d05783cb25036e870a6be3b7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5.0
Gerrit-Owner: mooli tayer <mta...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to