added main mode events and method stubs
authorVictor Kirhenshtein <victor@netxms.org>
Thu, 15 Oct 2015 10:01:55 +0000 (13:01 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Thu, 15 Oct 2015 10:01:55 +0000 (13:01 +0300)
include/netxmsdb.h
include/nxevent.h
sql/events.in
sql/schema.in
src/server/core/netobj.cpp
src/server/include/nms_objects.h
src/server/tools/nxdbmgr/upgrade.cpp

index 9cdec67..8bcf0c0 100644 (file)
@@ -23,6 +23,6 @@
 #ifndef _netxmsdb_h
 #define _netxmsdb_h
 
-#define DB_FORMAT_VERSION   373
+#define DB_FORMAT_VERSION   374
 
 #endif
index 9ab59f8..0ae4340 100644 (file)
 #define EVENT_IF_MASK_CHANGED             75
 #define EVENT_IF_IPADDR_ADDED             76
 #define EVENT_IF_IPADDR_DELETED           77
+#define EVENT_MAINTENANCE_MODE_ENTERED    78
+#define EVENT_MAINTENANCE_MODE_LEFT       79
 
 #define EVENT_SNMP_UNMATCHED_TRAP         500
 #define EVENT_SNMP_COLD_START             501
index 924704e..4d57da1 100644 (file)
@@ -867,48 +867,62 @@ INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description)
                '    7) Access point serial number'
        );
 
-   INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
-      (
-         EVENT_IF_MASK_CHANGED, 'SYS_IF_MASK_CHANGED',
-         EVENT_SEVERITY_NORMAL, 1,
-         'Interface "%2" changed mask from /%6 to /%4 (IP Addr: %3/%4, IfIndex: %5)',
-         'Generated when when network mask on interface is corrected.' CONCAT CRLF CONCAT
-         'Parameters:' CONCAT CRLF CONCAT
-         '   1) Interface object ID' CONCAT CRLF CONCAT
-         '   2) Interface name' CONCAT CRLF CONCAT
-         '   3) Interface IP address' CONCAT CRLF CONCAT
-         '   4) Interface netmask' CONCAT CRLF CONCAT
-         '   5) Interface index' CONCAT CRLF CONCAT
-         '   6) Interface old mask'
-      );
+INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
+   (
+      EVENT_IF_MASK_CHANGED, 'SYS_IF_MASK_CHANGED',
+      EVENT_SEVERITY_NORMAL, 1,
+      'Interface "%2" changed mask from /%6 to /%4 (IP Addr: %3/%4, IfIndex: %5)',
+      'Generated when when network mask on interface is corrected.' CONCAT CRLF CONCAT
+      'Parameters:' CONCAT CRLF CONCAT
+      '   1) Interface object ID' CONCAT CRLF CONCAT
+      '   2) Interface name' CONCAT CRLF CONCAT
+      '   3) Interface IP address' CONCAT CRLF CONCAT
+      '   4) Interface netmask' CONCAT CRLF CONCAT
+      '   5) Interface index' CONCAT CRLF CONCAT
+      '   6) Interface old mask'
+   );
 
-   INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
-      (
-         EVENT_IF_IPADDR_ADDED, 'SYS_IF_IPADDR_ADDED',
-         EVENT_SEVERITY_NORMAL, 1,
-         'IP address %3/%4 added to interface "%2"',
-         'Generated when IP address added to interface.' CONCAT CRLF CONCAT
-         'Parameters:' CONCAT CRLF CONCAT
-         '   1) Interface object ID' CONCAT CRLF CONCAT
-         '   2) Interface name' CONCAT CRLF CONCAT
-         '   3) IP address' CONCAT CRLF CONCAT
-         '   4) Network mask' CONCAT CRLF CONCAT
-         '   5) Interface index'
-      );
-      
-   INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
-      (
-         EVENT_IF_IPADDR_DELETED, 'SYS_IF_IPADDR_DELETED',
-         EVENT_SEVERITY_NORMAL, 1,
-         'IP address %3/%4 deleted from interface "%2"',
-         'Generated when IP address deleted from interface.' CONCAT CRLF CONCAT
-         'Parameters:' CONCAT CRLF CONCAT
-         '   1) Interface object ID' CONCAT CRLF CONCAT
-         '   2) Interface name' CONCAT CRLF CONCAT
-         '   3) IP address' CONCAT CRLF CONCAT
-         '   4) Network mask' CONCAT CRLF CONCAT
-         '   5) Interface index'
-      );
+INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
+   (
+      EVENT_IF_IPADDR_ADDED, 'SYS_IF_IPADDR_ADDED',
+      EVENT_SEVERITY_NORMAL, 1,
+      'IP address %3/%4 added to interface "%2"',
+      'Generated when IP address added to interface.' CONCAT CRLF CONCAT
+      'Parameters:' CONCAT CRLF CONCAT
+      '   1) Interface object ID' CONCAT CRLF CONCAT
+      '   2) Interface name' CONCAT CRLF CONCAT
+      '   3) IP address' CONCAT CRLF CONCAT
+      '   4) Network mask' CONCAT CRLF CONCAT
+      '   5) Interface index'
+   );
+   
+INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
+   (
+      EVENT_IF_IPADDR_DELETED, 'SYS_IF_IPADDR_DELETED',
+      EVENT_SEVERITY_NORMAL, 1,
+      'IP address %3/%4 deleted from interface "%2"',
+      'Generated when IP address deleted from interface.' CONCAT CRLF CONCAT
+      'Parameters:' CONCAT CRLF CONCAT
+      '   1) Interface object ID' CONCAT CRLF CONCAT
+      '   2) Interface name' CONCAT CRLF CONCAT
+      '   3) IP address' CONCAT CRLF CONCAT
+      '   4) Network mask' CONCAT CRLF CONCAT
+      '   5) Interface index'
+   );
+INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
+   (
+      EVENT_MAINTENANCE_MODE_ENTERED, 'SYS_MAINTENANCE_MODE_ENTERED',
+      EVENT_SEVERITY_NORMAL, 1,
+      'Entered maintenance mode',
+      'Generated when node, cluster, or mobile device entered maintenance mode.'
+   );
+INSERT INTO event_cfg (event_code,event_name,severity,flags,message,description) VALUES
+   (
+      EVENT_MAINTENANCE_MODE_LEFT, 'SYS_MAINTENANCE_MODE_LEFT',
+      EVENT_SEVERITY_NORMAL, 1,
+      'Left maintenance mode',
+      'Generated when node, cluster, or mobile device left maintenance mode.'
+   );
 
 /*
 ** SNMP traps
index f5cf9bb..c85b06c 100644 (file)
@@ -177,6 +177,7 @@ CREATE TABLE object_properties
    street_address varchar(255) null,
    postcode varchar(31) null,
        maint_mode char(1) not null,
+   maint_event_id SQL_INT64 not null,
        PRIMARY KEY(object_id)
 ) TABLE_TYPE;
 
index a06a4ca..f6f60e8 100644 (file)
@@ -43,6 +43,8 @@ NetObj::NetObj()
    m_isDeleted = false;
    m_isHidden = false;
        m_isSystem = false;
+       m_maintenanceMode = false;
+       m_maintenanceEventId = 0;
    m_dwChildCount = 0;
    m_pChildList = NULL;
    m_dwParentCount = 0;
@@ -174,7 +176,7 @@ bool NetObj::loadCommonProperties()
                              _T("status_thresholds,comments,is_system,")
                                                                          _T("location_type,latitude,longitude,location_accuracy,")
                                                                          _T("location_timestamp,guid,image,submap_id,country,city,")
-                             _T("street_address,postcode,maint_mode FROM object_properties ")
+                             _T("street_address,postcode,maint_mode,maint_event_id FROM object_properties ")
                              _T("WHERE object_id=?"));
        if (hStmt != NULL)
        {
@@ -227,6 +229,7 @@ bool NetObj::loadCommonProperties()
             m_postalAddress = new PostalAddress(country, city, streetAddress, postcode);
 
             m_maintenanceMode = DBGetFieldLong(hResult, 0, 26) ? true : false;
+            m_maintenanceEventId = DBGetFieldUInt64(hResult, 0, 27);
 
                                success = true;
                        }
@@ -2028,3 +2031,17 @@ void NetObj::setStatusPropagation(int method, int arg1, int arg2, int arg3, int
    setModified();
    unlockProperties();
 }
+
+/**
+ * Enter maintenance mode
+ */
+void NetObj::enterMaintenanceMode()
+{
+}
+
+/**
+ * Leave maintenance mode
+ */
+void NetObj::leaveMaintenanceMode()
+{
+}
index ceecc8c..1b7a111 100644 (file)
@@ -431,6 +431,7 @@ protected:
    bool m_isHidden;
        bool m_isSystem;
        bool m_maintenanceMode;
+       UINT64 m_maintenanceEventId;
        uuid m_image;
    MUTEX m_mutexProperties;         // Object data access mutex
    MUTEX m_mutexRefCount;     // Reference counter access mutex
@@ -554,6 +555,11 @@ public:
    void resetStatus() { m_iStatus = STATUS_UNKNOWN; setModified(); }
    void setComments(TCHAR *text);      /* text must be dynamically allocated */
 
+   bool isInMaintenanceMode() { return m_maintenanceMode; }
+   UINT64 getMaintenanceEventId() { return m_maintenanceEventId; }
+   virtual void enterMaintenanceMode();
+   virtual void leaveMaintenanceMode();
+
    void fillMessage(NXCPMessage *msg);
    UINT32 modifyFromMessage(NXCPMessage *msg);
 
index 578f67f..cccd4b8 100644 (file)
@@ -574,6 +574,29 @@ static bool ConvertObjectToolMacros(UINT32 id, const TCHAR *text, const TCHAR *c
 }
 
 /**
+ * Upgrade from V373 to V374
+ */
+static BOOL H_UpgradeFromV373(int currVersion, int newVersion)
+{
+   static TCHAR batch[] =
+      _T("ALTER TABLE object_properties ADD maint_event_id $SQL:INT64\n")
+      _T("UPDATE object_properties SET maint_mode='0'\n")
+      _T("<END>");
+   CHK_EXEC(SQLBatch(batch));
+
+   CHK_EXEC(CreateEventTemplate(EVENT_MAINTENANCE_MODE_ENTERED, _T("SYS_MAINTENANCE_MODE_ENTERED"), SEVERITY_NORMAL, EF_LOG,
+         _T("Entered maintenance mode"),
+         _T("Generated when node, cluster, or mobile device enters maintenance mode.")));
+
+   CHK_EXEC(CreateEventTemplate(EVENT_MAINTENANCE_MODE_LEFT, _T("SYS_MAINTENANCE_MODE_LEFT"), SEVERITY_NORMAL, EF_LOG,
+         _T("Left maintenance mode"),
+         _T("Generated when node, cluster, or mobile device leaves maintenance mode.")));
+
+   CHK_EXEC(SQLQuery(_T("UPDATE metadata SET var_value='374' WHERE var_name='SchemaVersion'")));
+   return TRUE;
+}
+
+/**
  * Upgrade from V372 to V373
  */
 static BOOL H_UpgradeFromV372(int currVersion, int newVersion)
@@ -8975,6 +8998,7 @@ static struct
    { 370, 371, H_UpgradeFromV370 },
    { 371, 372, H_UpgradeFromV371 },
    { 372, 373, H_UpgradeFromV372 },
+   { 373, 374, H_UpgradeFromV373 },
    { 0, 0, NULL }
 };