one default zone proxy node for all protocols
authorVictor Kirhenshtein <victor@netxms.org>
Mon, 22 Aug 2016 07:50:32 +0000 (10:50 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Mon, 22 Aug 2016 07:50:41 +0000 (10:50 +0300)
41 files changed:
ChangeLog
include/netxms-version.h
include/netxmsdb.h
include/nms_cscp.h
sql/schema.in
src/java/client/netxms-base/src/main/java/org/netxms/base/NXCPCodes.java
src/java/client/netxms-client/src/main/java/org/netxms/client/NXCObjectModificationData.java
src/java/client/netxms-client/src/main/java/org/netxms/client/NXCSession.java
src/java/client/netxms-client/src/main/java/org/netxms/client/ProtocolVersion.java
src/java/client/netxms-client/src/main/java/org/netxms/client/objects/Zone.java
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/Messages.java
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_cs.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_de.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_es.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_fr.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_pt.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_ru.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_zh_CN.properties
src/java/netxms-eclipse/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/propertypages/ZoneCommunications.java
src/server/core/accesspoint.cpp
src/server/core/correlate.cpp
src/server/core/datacoll.cpp
src/server/core/interface.cpp
src/server/core/node.cpp
src/server/core/np.cpp
src/server/core/nxsl_classes.cpp
src/server/core/tools.cpp
src/server/core/zone.cpp
src/server/include/nms_objects.h
src/server/tools/nxdbmgr/upgrade.cpp
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/Messages.java
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_cs.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_de.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_es.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_fr.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_pt.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_ru.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/messages_zh_CN.properties
webui/webapp/ObjectManager/src/org/netxms/ui/eclipse/objectmanager/propertypages/ZoneCommunications.java

index 2dcb2c0..270fa2c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,7 @@
 - New agent parameters System.CPU.CurrentUsage and System.CPU.CurrentUsage(*)
 - SSH subagent (for collecting data and executing actions via SSH)
 - Zone ID can be set for agent in SNMP proxy mode
+- Zones has common default proxy node for all protocols
 - Management console
        - New editors for Agent Config Policy and Log Parser Policy. 
        - DCI summary tables with empty menu path not shown in object context menu
index d3e4df0..e725cf2 100644 (file)
@@ -48,7 +48,7 @@
 #define CLIENT_PROTOCOL_VERSION_PUSH      1     /* Data push API */
 #define CLIENT_PROTOCOL_VERSION_TRAP      1     /* Event (trap) sending API */
 #define CLIENT_PROTOCOL_VERSION_MOBILE    1     /* All functionality relevant for mobile client */
-#define CLIENT_PROTOCOL_VERSION_FULL      4     /* All functionality */
+#define CLIENT_PROTOCOL_VERSION_FULL      5     /* All functionality */
 
 /**
  * Protocol version positions
index ecc7a74..b128521 100644 (file)
@@ -23,6 +23,6 @@
 #ifndef _netxmsdb_h
 #define _netxmsdb_h
 
-#define DB_FORMAT_VERSION   411
+#define DB_FORMAT_VERSION   412
 
 #endif
index 9a4b257..1f6afab 100644 (file)
@@ -1132,6 +1132,7 @@ typedef struct
 #define VID_SSH_LOGIN               ((UINT32)546)
 #define VID_SSH_PASSWORD            ((UINT32)547)
 #define VID_SSH_PROXY               ((UINT32)548)
+#define VID_ZONE_PROXY              ((UINT32)549)
 
 // Base variabe for single threshold in message
 #define VID_THRESHOLD_BASE          ((UINT32)0x00800000)
index 251878f..f9fdf9a 100644 (file)
@@ -287,19 +287,14 @@ CREATE TABLE zones
 (
   id integer not null,    // Zone object ID
   zone_guid integer not null, // Globally unique ID for zone
-  agent_proxy integer not null,
-  snmp_proxy integer not null,
-  icmp_proxy integer not null,
-  ssh_proxy integer not null,
+  proxy_node integer not null,
   PRIMARY KEY(id)
 ) TABLE_TYPE;
 
 COMMENT_TABLE(zones, 'Zones')
 COMMENT_COLUMN(zones.id, 'Zone id from object_properties')
 COMMENT_COLUMN(zones.zone_guid, 'Zone GUID')
-COMMENT_COLUMN(zones.agent_proxy, 'Id of agent proxy for this zone')
-COMMENT_COLUMN(zones.snmp_proxy, 'Id of agent SNMP proxy for this zone')
-COMMENT_COLUMN(zones.icmp_proxy, 'Id of agent ICMP proxy for this zone')
+COMMENT_COLUMN(zones.proxy_node, 'ID of proxy node for this zone')
 
 /*
 ** Mobile device objects
index 6010811..cbe8665 100644 (file)
@@ -920,6 +920,7 @@ public class NXCPCodes
    public static final long VID_SSH_LOGIN = 546;
    public static final long VID_SSH_PASSWORD = 547;
    public static final long VID_SSH_PROXY = 548;
+   public static final long VID_ZONE_PROXY = 549;
 
        public static final long VID_ACL_USER_BASE = 0x00001000L;
        public static final long VID_ACL_USER_LAST = 0x00001FFFL;
index 4d0bed4..1a9bdd0 100644 (file)
@@ -114,6 +114,7 @@ public class NXCObjectModificationData
    public static final int SSH_PROXY          = 64;
    public static final int SSH_LOGIN          = 65;
    public static final int SSH_PASSWORD       = 66;
+   public static final int ZONE_PROXY         = 67;
        
        private Set<Integer> fieldSet;
        private long objectId;
@@ -204,6 +205,7 @@ public class NXCObjectModificationData
        private long sshProxy;
        private String sshLogin;
        private String sshPassword;
+       private long zoneProxy;
        
        /**
         * Constructor for creating modification data for given object
@@ -1680,4 +1682,21 @@ public class NXCObjectModificationData
       this.sshPassword = sshPassword;
       fieldSet.add(SSH_PASSWORD);
    }
+
+   /**
+    * @return the zoneProxy
+    */
+   public long getZoneProxy()
+   {
+      return zoneProxy;
+   }
+
+   /**
+    * @param zoneProxy the zoneProxy to set
+    */
+   public void setZoneProxy(long zoneProxy)
+   {
+      this.zoneProxy = zoneProxy;
+      fieldSet.add(ZONE_PROXY);
+   }
 }
index d5fd1a9..24e9a5d 100644 (file)
@@ -4637,7 +4637,12 @@ public class NXCSession
       {
          msg.setField(NXCPCodes.VID_SSH_PASSWORD, data.getSshPassword());
       }
-      
+
+      if (data.isFieldSet(NXCObjectModificationData.ZONE_PROXY))
+      {
+         msg.setFieldInt32(NXCPCodes.VID_ZONE_PROXY, (int)data.getZoneProxy());
+      }
+            
       modifyCustomObject(data, userData, msg);
 
       sendMessage(msg);
index 8682ca6..bad34e2 100644 (file)
@@ -33,7 +33,7 @@ public final class ProtocolVersion
    public static final int PUSH = 1;
    public static final int TRAP = 1;
    public static final int MOBILE = 1;
-   public static final int FULL = 4;
+   public static final int FULL = 5;
    
    // Indexes
    public static final int INDEX_BASE = 0;
index e43b2d0..8762b7b 100644 (file)
@@ -28,10 +28,7 @@ import org.netxms.client.NXCSession;
 public class Zone extends GenericObject
 {
        private long zoneId;
-       private long agentProxy;
-       private long snmpProxy;
-       private long icmpProxy;
-   private long sshProxy;
+       private long proxyNodeId;
        
        /**
         * Create zone object from NXCP message
@@ -43,10 +40,7 @@ public class Zone extends GenericObject
        {
                super(msg, session);
                zoneId = msg.getFieldAsInt64(NXCPCodes.VID_ZONE_ID);
-               agentProxy = msg.getFieldAsInt64(NXCPCodes.VID_AGENT_PROXY);
-               snmpProxy = msg.getFieldAsInt64(NXCPCodes.VID_SNMP_PROXY);
-               icmpProxy = msg.getFieldAsInt64(NXCPCodes.VID_ICMP_PROXY);
-      sshProxy = msg.getFieldAsInt64(NXCPCodes.VID_SSH_PROXY);
+               proxyNodeId = msg.getFieldAsInt64(NXCPCodes.VID_ZONE_PROXY);
        }
 
        /* (non-Javadoc)
@@ -74,37 +68,13 @@ public class Zone extends GenericObject
        {
                return zoneId;
        }
-
-       /**
-        * @return the agentProxy
-        */
-       public long getAgentProxy()
-       {
-               return agentProxy;
-       }
-
-       /**
-        * @return the snmpProxy
-        */
-       public long getSnmpProxy()
-       {
-               return snmpProxy;
-       }
-
-       /**
-        * @return the icmpProxy
-        */
-       public long getIcmpProxy()
-       {
-               return icmpProxy;
-       }
-
-       /**
-    * @return the sshProxy
+       
+   /**
+    * @return the proxyNodeId
     */
-   public long getSshProxy()
+   public long getProxyNodeId()
    {
-      return sshProxy;
+      return proxyNodeId;
    }
 
    /* (non-Javadoc)
index 8fba08c..e6b4145 100644 (file)
@@ -396,10 +396,7 @@ public class Messages extends NLS
    public static String VPNSubnets_LocalNetworks;
    public static String VPNSubnets_PeerGateway;
    public static String VPNSubnets_RemoteNetworks;
-   public static String ZoneCommunications_DefaultAgentProxy;
-   public static String ZoneCommunications_DefaultICMPProxy;
-   public static String ZoneCommunications_DefaultSNMPProxy;
-   public static String ZoneCommunications_DefaultSSHProxy;
+   public static String ZoneCommunications_DefaultProxy;
    public static String ZoneCommunications_JobError;
    public static String ZoneCommunications_JobName;
    public static String ZoneSelectionDialog_EmptySelectionWarning;
index 13ca491..a5371ee 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index a1662a4..f9f2fab 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=V\u00fdchoz\u00ed proxy agenta
-ZoneCommunications_DefaultICMPProxy=V\u00fdchoz\u00ed ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=V\u00fdchoz\u00ed SNMP proxy
-ZoneCommunications_DefaultSSHProxy=V\u00fdchoz\u00ed SSH proxy
+ZoneCommunications_DefaultProxy=V\u00fdchoz\u00ed proxy
 ZoneCommunications_JobError=Nelze aktualizovat komunika\u010dni nastaven\u00ed
 ZoneCommunications_JobName=Aktualizovat komunika\u010dn\u00ed nastaven\u00ed pro z\u00f3nu %s
 ZoneSelectionDialog_EmptySelectionWarning=Pros\u00edm vyberte objekt z\u00f3na\!
index 69665e7..a6d3083 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index fe614d0..c6da65e 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index 69665e7..a6d3083 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index 5e5e92c..b8fe079 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index 2a3c551..ad43a95 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435
 VPNSubnets_LocalNetworks=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438
 VPNSubnets_PeerGateway=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0448\u043b\u044e\u0437
 VPNSubnets_RemoteNetworks=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438
-ZoneCommunications_DefaultAgentProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f NetXMS \u0430\u0433\u0435\u043d\u0442\u0430
-ZoneCommunications_DefaultICMPProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ICMP
-ZoneCommunications_DefaultSNMPProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f SNMP
-ZoneCommunications_DefaultSSHProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f SSH
+ZoneCommunications_DefaultProxy=\u041f\u0440\u043e\u043a\u0441\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
 ZoneCommunications_JobError=\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f
 ZoneCommunications_JobName=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u043e\u043d\u044b %s
 ZoneSelectionDialog_EmptySelectionWarning=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0437\u043e\u043d\u0443\!
index fe614d0..c6da65e 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index a99d508..8958adb 100644 (file)
@@ -29,6 +29,7 @@ import org.netxms.client.NXCObjectModificationData;
 import org.netxms.client.NXCSession;
 import org.netxms.client.objects.Zone;
 import org.netxms.ui.eclipse.jobs.ConsoleJob;
+import org.netxms.ui.eclipse.objectbrowser.api.ObjectSelectionFilterFactory;
 import org.netxms.ui.eclipse.objectbrowser.widgets.ObjectSelector;
 import org.netxms.ui.eclipse.objectmanager.Activator;
 import org.netxms.ui.eclipse.objectmanager.Messages;
@@ -41,9 +42,6 @@ public class ZoneCommunications extends PropertyPage
 {
        private Zone zone;
        private ObjectSelector agentProxy;
-       private ObjectSelector snmpProxy;
-       private ObjectSelector icmpProxy;
-   private ObjectSelector sshProxy;
        
        /* (non-Javadoc)
         * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
@@ -60,36 +58,13 @@ public class ZoneCommunications extends PropertyPage
                dialogArea.setLayout(dialogLayout);
 
                agentProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-               agentProxy.setLabel(Messages.get().ZoneCommunications_DefaultAgentProxy);
-               agentProxy.setObjectId(zone.getAgentProxy());
+               agentProxy.setLabel(Messages.get().ZoneCommunications_DefaultProxy);
+      agentProxy.setClassFilter(ObjectSelectionFilterFactory.getInstance().createNodeSelectionFilter(false));
+               agentProxy.setObjectId(zone.getProxyNodeId());
                GridData gd = new GridData();
                gd.horizontalAlignment = SWT.FILL;
                gd.grabExcessHorizontalSpace = true;
                agentProxy.setLayoutData(gd);
-               
-               snmpProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-               snmpProxy.setLabel(Messages.get().ZoneCommunications_DefaultSNMPProxy);
-               snmpProxy.setObjectId(zone.getSnmpProxy());
-               gd = new GridData();
-               gd.horizontalAlignment = SWT.FILL;
-               gd.grabExcessHorizontalSpace = true;
-               snmpProxy.setLayoutData(gd);
-               
-               icmpProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-               icmpProxy.setLabel(Messages.get().ZoneCommunications_DefaultICMPProxy);
-               icmpProxy.setObjectId(zone.getIcmpProxy());
-               gd = new GridData();
-               gd.horizontalAlignment = SWT.FILL;
-               gd.grabExcessHorizontalSpace = true;
-               icmpProxy.setLayoutData(gd);
-               
-      sshProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-      sshProxy.setLabel(Messages.get().ZoneCommunications_DefaultSSHProxy);
-      sshProxy.setObjectId(zone.getSshProxy());
-      gd = new GridData();
-      gd.horizontalAlignment = SWT.FILL;
-      gd.grabExcessHorizontalSpace = true;
-      sshProxy.setLayoutData(gd);
       
                return dialogArea;
        }
@@ -105,10 +80,7 @@ public class ZoneCommunications extends PropertyPage
                        setValid(false);
                
                final NXCObjectModificationData md = new NXCObjectModificationData(zone.getObjectId());
-               md.setAgentProxy(agentProxy.getObjectId());
-               md.setSnmpProxy(snmpProxy.getObjectId());
-               md.setIcmpProxy(icmpProxy.getObjectId());
-      md.setSshProxy(sshProxy.getObjectId());
+               md.setZoneProxy(agentProxy.getObjectId());
                
                final NXCSession session = (NXCSession)ConsoleSharedData.getSession();
                new ConsoleJob(String.format(Messages.get().ZoneCommunications_JobName, zone.getObjectName()), null, Activator.PLUGIN_ID, null) {
@@ -167,9 +139,6 @@ public class ZoneCommunications extends PropertyPage
        protected void performDefaults()
        {
                super.performDefaults();
-               
                agentProxy.setObjectId(0);
-               snmpProxy.setObjectId(0);
-               icmpProxy.setObjectId(0);
        }
 }
index 8a7c0d0..6ed5eb9 100644 (file)
@@ -450,7 +450,7 @@ void AccessPoint::statusPoll(ClientSession *session, UINT32 rqId, Queue *eventQu
                        Zone *zone = (Zone *)g_idxZoneByGUID.get(controller->getZoneId());
                        if (zone != NULL)
                        {
-                               icmpProxy = zone->getIcmpProxy();
+                               icmpProxy = zone->getProxyNodeId();
                        }
                }
 
@@ -552,7 +552,7 @@ void AccessPoint::updatePingData()
       Zone *zone = (Zone *)g_idxZoneByGUID.get(pNode->getZoneId());
       if (zone != NULL)
       {
-         icmpProxy = zone->getIcmpProxy();
+         icmpProxy = zone->getProxyNodeId();
       }
    }
 
index 774f03b..60ec6c6 100644 (file)
@@ -75,17 +75,10 @@ static void C_SysNodeDown(Node *pNode, Event *pEvent)
        if (IsZoningEnabled() && (pNode->getZoneId() != 0))
        {
                Zone *zone = (Zone *)g_idxZoneByGUID.get(pNode->getZoneId());
-               if ((zone != NULL) && ((zone->getAgentProxy() != 0) || (zone->getSnmpProxy() != 0) || (zone->getIcmpProxy() != 0)))
+               if ((zone != NULL) && (zone->getProxyNodeId() != 0))
                {
-                       bool allProxyDown = true;
-                       if (zone->getAgentProxy() != 0)
-                               allProxyDown = CheckAgentDown(pNode, pEvent, zone->getAgentProxy(), _T("agent proxy"));
-                       if (allProxyDown && (zone->getSnmpProxy() != 0) && (zone->getSnmpProxy() != zone->getAgentProxy()))
-                               allProxyDown = CheckAgentDown(pNode, pEvent, zone->getSnmpProxy(), _T("SNMP proxy"));
-                       if (allProxyDown && (zone->getIcmpProxy() != 0) && (zone->getIcmpProxy() != zone->getAgentProxy()) && (zone->getIcmpProxy() != zone->getSnmpProxy()))
-                               allProxyDown = CheckAgentDown(pNode, pEvent, zone->getSnmpProxy(), _T("ICMP proxy"));
-                       if (allProxyDown)
-                               return;
+                  if (CheckAgentDown(pNode, pEvent, zone->getProxyNodeId(), _T("zone proxy")))
+                     return;
                        pEvent->setRootId(0);
                }
        }
index ed1bbf1..51886e7 100644 (file)
@@ -110,8 +110,8 @@ static void *GetItemData(DataCollectionTarget *dcTarget, DCItem *pItem, TCHAR *p
                   if (IsZoningEnabled())
                   {
                      Zone *zone = (Zone *)FindZoneByGUID(((Node *)dcTarget)->getZoneId());
-                     if ((zone != NULL) && (zone->getSshProxy() != 0))
-                        proxyId = zone->getSshProxy();
+                     if ((zone != NULL) && (zone->getProxyNodeId() != 0))
+                        proxyId = zone->getProxyNodeId();
                      else
                         proxyId = g_dwMgmtNode;
                   }
index 8181007..cfc1df3 100644 (file)
@@ -713,7 +713,7 @@ void Interface::updatePingData()
       Zone *zone = (Zone *)g_idxZoneByGUID.get(m_zoneId);
       if (zone != NULL)
       {
-         icmpProxy = zone->getIcmpProxy();
+         icmpProxy = zone->getProxyNodeId();
       }
    }
 
@@ -801,7 +801,7 @@ void Interface::icmpStatusPoll(UINT32 rqId, UINT32 nodeIcmpProxy, Cluster *clust
                Zone *zone = (Zone *)g_idxZoneByGUID.get(m_zoneId);
                if (zone != NULL)
                {
-                       icmpProxy = zone->getIcmpProxy();
+                       icmpProxy = zone->getProxyNodeId();
                }
        }
 
index ce7278a..a63fbee 100644 (file)
@@ -1829,18 +1829,9 @@ bool Node::checkNetworkPath(UINT32 dwRqId)
        if (IsZoningEnabled() && (m_zoneId != 0))
        {
                Zone *zone = (Zone *)g_idxZoneByGUID.get(m_zoneId);
-               if ((zone != NULL) && ((zone->getAgentProxy() != 0) || (zone->getSnmpProxy() != 0) || (zone->getIcmpProxy() != 0)))
-               {
-                       bool allProxyDown = true;
-                       if (zone->getIcmpProxy() != 0)
-                               allProxyDown = checkNetworkPathElement(zone->getIcmpProxy(), _T("ICMP proxy"), true, dwRqId);
-                       if (allProxyDown && (zone->getSnmpProxy() != 0) && (zone->getSnmpProxy() != zone->getIcmpProxy()))
-                               allProxyDown = checkNetworkPathElement(zone->getSnmpProxy(), _T("SNMP proxy"), true, dwRqId);
-                       if (allProxyDown && (zone->getAgentProxy() != 0) && (zone->getAgentProxy() != zone->getIcmpProxy()) && (zone->getAgentProxy() != zone->getSnmpProxy()))
-                               allProxyDown = checkNetworkPathElement(zone->getAgentProxy(), _T("agent proxy"), true, dwRqId);
-                       if (allProxyDown)
-                               return true;
-               }
+               if ((zone != NULL) && (zone->getProxyNodeId() != 0) &&
+                   checkNetworkPathElement(zone->getProxyNodeId(), _T("zone proxy"), true, dwRqId))
+                  return true;
        }
 
        // Check directly connected switch
@@ -5749,7 +5740,7 @@ void Node::setAgentProxy(AgentConnection *pConn)
                Zone *zone = (Zone *)g_idxZoneByGUID.get(m_zoneId);
                if (zone != NULL)
                {
-                       proxyNode = zone->getAgentProxy();
+                       proxyNode = zone->getProxyNodeId();
                }
        }
 
@@ -5850,7 +5841,7 @@ UINT32 Node::getEffectiveSnmpProxy() const
                Zone *zone = (Zone *)g_idxZoneByGUID.get(m_zoneId);
                if (zone != NULL)
                {
-                       snmpProxy = zone->getSnmpProxy();
+                       snmpProxy = zone->getProxyNodeId();
                }
        }
    return snmpProxy;
@@ -7420,7 +7411,7 @@ void Node::updatePingData()
       Zone *zone = (Zone *)g_idxZoneByGUID.get(m_zoneId);
       if (zone != NULL)
       {
-         icmpProxy = zone->getIcmpProxy();
+         icmpProxy = zone->getProxyNodeId();
       }
    }
 
index d67ef06..0267b0a 100644 (file)
@@ -287,9 +287,9 @@ static bool HostIsReachable(const InetAddress& ipAddr, UINT32 zoneId, bool fullC
                Zone *zone = (Zone *)g_idxZoneByGUID.get(zoneId);
                if (zone != NULL)
                {
-                       agentProxy = zone->getAgentProxy();
-                       icmpProxy = zone->getIcmpProxy();
-                       snmpProxy = zone->getSnmpProxy();
+                       agentProxy = zone->getProxyNodeId();
+                       icmpProxy = zone->getProxyNodeId();
+                       snmpProxy = zone->getProxyNodeId();
                }
        }
 
index 3217f33..064c529 100644 (file)
@@ -245,17 +245,14 @@ NXSL_Value *NXSL_ZoneClass::getAttr(NXSL_Object *object, const TCHAR *attr)
       return value;
 
    Zone *zone = (Zone *)object->getData();
-   if (!_tcscmp(attr, _T("agentProxy")))
+   if (!_tcscmp(attr, _T("proxyNode")))
    {
-      value = new NXSL_Value(zone->getAgentProxy());
+      Node *node = (Node *)FindObjectById(zone->getProxyNodeId(), OBJECT_NODE);
+      value = (node != NULL) ? new NXSL_Value(new NXSL_Object(&g_nxslNodeClass, node)) : new NXSL_Value();
    }
-   else if (!_tcscmp(attr, _T("icmpProxy")))
+   else if (!_tcscmp(attr, _T("proxyNodeId")))
    {
-      value = new NXSL_Value(zone->getIcmpProxy());
-   }
-   else if (!_tcscmp(attr, _T("snmpProxy")))
-   {
-      value = new NXSL_Value(zone->getSnmpProxy());
+      value = new NXSL_Value(zone->getProxyNodeId());
    }
    else if (!_tcscmp(attr, _T("zoneId")))
    {
index 1efe372..8cef77c 100644 (file)
@@ -1,6 +1,6 @@
 /*
 ** NetXMS - Network Management System
-** Copyright (C) 2003-2013 Victor Kirhenshtein
+** Copyright (C) 2003-2016 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU General Public License as published by
@@ -341,7 +341,7 @@ InetAddress NXCORE_EXPORTABLE ResolveHostName(UINT32 zoneId, const TCHAR *hostna
       Zone *zone = FindZoneByGUID(zoneId);
       if (zone != NULL)
       {
-         Node *proxy = (Node *)FindObjectById(zone->getAgentProxy(), OBJECT_NODE);
+         Node *proxy = (Node *)FindObjectById(zone->getProxyNodeId(), OBJECT_NODE);
          if (proxy != NULL)
          {
             TCHAR query[256], buffer[128];
index 47c927d..1dad905 100644 (file)
@@ -30,10 +30,7 @@ Zone::Zone() : NetObj()
    m_id = 0;
    m_zoneId = 0;
    _tcscpy(m_name, _T("Default"));
-   m_agentProxy = 0;
-   m_snmpProxy = 0;
-       m_icmpProxy = 0;
-   m_sshProxy = 0;
+   m_proxyNodeId = 0;
        m_idxNodeByAddr = new InetAddressIndex;
        m_idxInterfaceByAddr = new InetAddressIndex;
        m_idxSubnetByAddr = new InetAddressIndex;
@@ -47,10 +44,7 @@ Zone::Zone(UINT32 zoneId, const TCHAR *name) : NetObj()
    m_id = 0;
    m_zoneId = zoneId;
    nx_strncpy(m_name, name, MAX_OBJECT_NAME);
-   m_agentProxy = 0;
-   m_snmpProxy = 0;
-       m_icmpProxy = 0;
-   m_sshProxy = 0;
+   m_proxyNodeId = 0;
        m_idxNodeByAddr = new InetAddressIndex;
        m_idxInterfaceByAddr = new InetAddressIndex;
        m_idxSubnetByAddr = new InetAddressIndex;
@@ -77,7 +71,7 @@ bool Zone::loadFromDatabase(DB_HANDLE hdb, UINT32 dwId)
       return false;
 
    TCHAR szQuery[256];
-   _sntprintf(szQuery, 256, _T("SELECT zone_guid,agent_proxy,snmp_proxy,icmp_proxy,ssh_proxy FROM zones WHERE id=%d"), dwId);
+   _sntprintf(szQuery, 256, _T("SELECT zone_guid,proxy_node FROM zones WHERE id=%d"), dwId);
    DB_RESULT hResult = DBSelect(hdb, szQuery);
    if (hResult == NULL)
       return false;     // Query failed
@@ -98,10 +92,7 @@ bool Zone::loadFromDatabase(DB_HANDLE hdb, UINT32 dwId)
    }
 
    m_zoneId = DBGetFieldULong(hResult, 0, 0);
-   m_agentProxy = DBGetFieldULong(hResult, 0, 1);
-   m_snmpProxy = DBGetFieldULong(hResult, 0, 2);
-   m_icmpProxy = DBGetFieldULong(hResult, 0, 3);
-   m_sshProxy = DBGetFieldULong(hResult, 0, 4);
+   m_proxyNodeId = DBGetFieldULong(hResult, 0, 1);
 
    DBFreeResult(hResult);
 
@@ -124,20 +115,17 @@ BOOL Zone::saveToDatabase(DB_HANDLE hdb)
       DB_STATEMENT hStmt;
       if (IsDatabaseRecordExist(hdb, _T("zones"), _T("id"), m_id))
       {
-         hStmt = DBPrepare(hdb, _T("UPDATE zones SET zone_guid=?,agent_proxy=?,snmp_proxy=?,icmp_proxy=?,ssh_proxy=? WHERE id=?"));
+         hStmt = DBPrepare(hdb, _T("UPDATE zones SET zone_guid=?,proxy_node=? WHERE id=?"));
       }
       else
       {
-         hStmt = DBPrepare(hdb, _T("INSERT INTO zones (zone_guid,agent_proxy,snmp_proxy,icmp_proxy,ssh_proxy,id) VALUES (?,?,?,?,?,?)"));
+         hStmt = DBPrepare(hdb, _T("INSERT INTO zones (zone_guid,proxy_node,id) VALUES (?,?,?)"));
       }
       if (hStmt != NULL)
       {
          DBBind(hStmt, 1, DB_SQLTYPE_INTEGER, m_zoneId);
-         DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, m_agentProxy);
-         DBBind(hStmt, 3, DB_SQLTYPE_INTEGER, m_snmpProxy);
-         DBBind(hStmt, 4, DB_SQLTYPE_INTEGER, m_icmpProxy);
-         DBBind(hStmt, 5, DB_SQLTYPE_INTEGER, m_sshProxy);
-         DBBind(hStmt, 6, DB_SQLTYPE_INTEGER, m_id);
+         DBBind(hStmt, 2, DB_SQLTYPE_INTEGER, m_proxyNodeId);
+         DBBind(hStmt, 3, DB_SQLTYPE_INTEGER, m_id);
          success = DBExecute(hStmt);
          DBFreeStatement(hStmt);
       }
@@ -173,10 +161,7 @@ void Zone::fillMessageInternal(NXCPMessage *msg)
 {
    NetObj::fillMessageInternal(msg);
    msg->setField(VID_ZONE_ID, m_zoneId);
-   msg->setField(VID_AGENT_PROXY, m_agentProxy);
-   msg->setField(VID_SNMP_PROXY, m_snmpProxy);
-   msg->setField(VID_ICMP_PROXY, m_icmpProxy);
-   msg->setField(VID_SSH_PROXY, m_sshProxy);
+   msg->setField(VID_ZONE_PROXY, m_proxyNodeId);
 }
 
 /**
@@ -184,17 +169,8 @@ void Zone::fillMessageInternal(NXCPMessage *msg)
  */
 UINT32 Zone::modifyFromMessageInternal(NXCPMessage *request)
 {
-       if (request->isFieldExist(VID_AGENT_PROXY))
-               m_agentProxy = request->getFieldAsUInt32(VID_AGENT_PROXY);
-
-       if (request->isFieldExist(VID_SNMP_PROXY))
-               m_snmpProxy = request->getFieldAsUInt32(VID_SNMP_PROXY);
-
-       if (request->isFieldExist(VID_ICMP_PROXY))
-               m_icmpProxy = request->getFieldAsUInt32(VID_ICMP_PROXY);
-
-   if (request->isFieldExist(VID_SSH_PROXY))
-      m_sshProxy = request->getFieldAsUInt32(VID_SSH_PROXY);
+       if (request->isFieldExist(VID_ZONE_PROXY))
+               m_proxyNodeId = request->getFieldAsUInt32(VID_ZONE_PROXY);
 
    return NetObj::modifyFromMessageInternal(request);
 }
index 00d0fa8..6e8e58c 100644 (file)
@@ -1971,10 +1971,7 @@ class Zone : public NetObj
 {
 protected:
    UINT32 m_zoneId;
-   UINT32 m_agentProxy;
-   UINT32 m_snmpProxy;
-       UINT32 m_icmpProxy;
-       UINT32 m_sshProxy;
+   UINT32 m_proxyNodeId;
        InetAddressIndex *m_idxNodeByAddr;
        InetAddressIndex *m_idxInterfaceByAddr;
        InetAddressIndex *m_idxSubnetByAddr;
@@ -1998,10 +1995,7 @@ public:
    virtual NXSL_Value *createNXSLObject();
 
    UINT32 getZoneId() const { return m_zoneId; }
-       UINT32 getAgentProxy() const { return m_agentProxy; }
-       UINT32 getSnmpProxy() const { return m_snmpProxy; }
-       UINT32 getIcmpProxy() const { return m_icmpProxy; }
-   UINT32 getSshProxy() const { return m_sshProxy; }
+       UINT32 getProxyNodeId() const { return m_proxyNodeId; }
 
    void addSubnet(Subnet *pSubnet) { addChild(pSubnet); pSubnet->addParent(this); }
 
index e245bcc..df3087b 100644 (file)
@@ -736,6 +736,46 @@ static bool SetSchemaVersion(int version)
 }
 
 /**
+ * Upgrade from V411 to V412
+ */
+static BOOL H_UpgradeFromV411(int currVersion, int newVersion)
+{
+   DB_RESULT hResult = SQLSelect(_T("SELECT id,zone_guid,agent_proxy,snmp_proxy,icmp_proxy,ssh_proxy FROM zones"));
+   if (hResult != NULL)
+   {
+      CHK_EXEC(SQLQuery(_T("DROP TABLE zones")));
+      CHK_EXEC(CreateTable(
+               _T("CREATE TABLE zones (")
+               _T("id integer not null,")
+               _T("zone_guid integer not null,")
+               _T("proxy_node integer not null,")
+               _T("PRIMARY KEY(id))")));
+      int count = DBGetNumRows(hResult);
+      if (count > 0)
+      {
+         TCHAR query[256];
+         for(int i = 0; i < count; i++)
+         {
+            UINT32 proxy = 0;
+            for(int j = 2; (j < 6) && (proxy == 0); j++)
+               proxy = DBGetFieldULong(hResult, i, j);
+            _sntprintf(query, 256, _T("INSERT INTO zones (id,zone_guid,proxy_node) VALUES (%d,%d,%d"),
+                       DBGetFieldLong(hResult, i, 0), DBGetFieldLong(hResult, i, 1), (int)proxy);
+            CHK_EXEC(SQLQuery(query));
+         }
+      }
+      DBFreeResult(hResult);
+   }
+   else
+   {
+      if (g_bIgnoreErrors)
+         return false;
+   }
+   CHK_EXEC(SetSchemaVersion(412));
+   return TRUE;
+}
+
+/**
  * Upgrade from V410 to V411
  */
 static BOOL H_UpgradeFromV410(int currVersion, int newVersion)
@@ -10441,6 +10481,7 @@ static struct
    { 408, 409, H_UpgradeFromV408 },
    { 409, 410, H_UpgradeFromV409 },
    { 410, 411, H_UpgradeFromV410 },
+   { 411, 412, H_UpgradeFromV411 },
    { 0, 0, NULL }
 };
 
index 10a910d..6e32fba 100644 (file)
@@ -399,10 +399,7 @@ public class Messages extends NLS
    public String VPNSubnets_LocalNetworks;
    public String VPNSubnets_PeerGateway;
    public String VPNSubnets_RemoteNetworks;
-   public String ZoneCommunications_DefaultAgentProxy;
-   public String ZoneCommunications_DefaultICMPProxy;
-   public String ZoneCommunications_DefaultSNMPProxy;
-   public String ZoneCommunications_DefaultSSHProxy;
+   public String ZoneCommunications_DefaultProxy;
    public String ZoneCommunications_JobError;
    public String ZoneCommunications_JobName;
    public String ZoneSelectionDialog_EmptySelectionWarning;
index 13ca491..a5371ee 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index a1662a4..f9f2fab 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=V\u00fdchoz\u00ed proxy agenta
-ZoneCommunications_DefaultICMPProxy=V\u00fdchoz\u00ed ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=V\u00fdchoz\u00ed SNMP proxy
-ZoneCommunications_DefaultSSHProxy=V\u00fdchoz\u00ed SSH proxy
+ZoneCommunications_DefaultProxy=V\u00fdchoz\u00ed proxy
 ZoneCommunications_JobError=Nelze aktualizovat komunika\u010dni nastaven\u00ed
 ZoneCommunications_JobName=Aktualizovat komunika\u010dn\u00ed nastaven\u00ed pro z\u00f3nu %s
 ZoneSelectionDialog_EmptySelectionWarning=Pros\u00edm vyberte objekt z\u00f3na\!
index 69665e7..a6d3083 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index fe614d0..c6da65e 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index 69665e7..a6d3083 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index 5e5e92c..b8fe079 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index 2a3c551..ad43a95 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435
 VPNSubnets_LocalNetworks=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438
 VPNSubnets_PeerGateway=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0448\u043b\u044e\u0437
 VPNSubnets_RemoteNetworks=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438
-ZoneCommunications_DefaultAgentProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f NetXMS \u0430\u0433\u0435\u043d\u0442\u0430
-ZoneCommunications_DefaultICMPProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f ICMP
-ZoneCommunications_DefaultSNMPProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f SNMP
-ZoneCommunications_DefaultSSHProxy=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f SSH
+ZoneCommunications_DefaultProxy=\u041f\u0440\u043e\u043a\u0441\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
 ZoneCommunications_JobError=\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f
 ZoneCommunications_JobName=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u043e\u043d\u044b %s
 ZoneSelectionDialog_EmptySelectionWarning=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0437\u043e\u043d\u0443\!
index fe614d0..c6da65e 100644 (file)
@@ -389,10 +389,7 @@ VPNSubnets_JobName=Update VPN configuration
 VPNSubnets_LocalNetworks=Local networks
 VPNSubnets_PeerGateway=Peer gateway
 VPNSubnets_RemoteNetworks=Remote networks
-ZoneCommunications_DefaultAgentProxy=Default agent proxy
-ZoneCommunications_DefaultICMPProxy=Default ICMP proxy
-ZoneCommunications_DefaultSNMPProxy=Default SNMP proxy
-ZoneCommunications_DefaultSSHProxy=Default SSH proxy
+ZoneCommunications_DefaultProxy=Default proxy
 ZoneCommunications_JobError=Cannot update communication settings
 ZoneCommunications_JobName=Update communication settings for zone %s
 ZoneSelectionDialog_EmptySelectionWarning=Please select zone object\!
index a99d508..8958adb 100644 (file)
@@ -29,6 +29,7 @@ import org.netxms.client.NXCObjectModificationData;
 import org.netxms.client.NXCSession;
 import org.netxms.client.objects.Zone;
 import org.netxms.ui.eclipse.jobs.ConsoleJob;
+import org.netxms.ui.eclipse.objectbrowser.api.ObjectSelectionFilterFactory;
 import org.netxms.ui.eclipse.objectbrowser.widgets.ObjectSelector;
 import org.netxms.ui.eclipse.objectmanager.Activator;
 import org.netxms.ui.eclipse.objectmanager.Messages;
@@ -41,9 +42,6 @@ public class ZoneCommunications extends PropertyPage
 {
        private Zone zone;
        private ObjectSelector agentProxy;
-       private ObjectSelector snmpProxy;
-       private ObjectSelector icmpProxy;
-   private ObjectSelector sshProxy;
        
        /* (non-Javadoc)
         * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
@@ -60,36 +58,13 @@ public class ZoneCommunications extends PropertyPage
                dialogArea.setLayout(dialogLayout);
 
                agentProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-               agentProxy.setLabel(Messages.get().ZoneCommunications_DefaultAgentProxy);
-               agentProxy.setObjectId(zone.getAgentProxy());
+               agentProxy.setLabel(Messages.get().ZoneCommunications_DefaultProxy);
+      agentProxy.setClassFilter(ObjectSelectionFilterFactory.getInstance().createNodeSelectionFilter(false));
+               agentProxy.setObjectId(zone.getProxyNodeId());
                GridData gd = new GridData();
                gd.horizontalAlignment = SWT.FILL;
                gd.grabExcessHorizontalSpace = true;
                agentProxy.setLayoutData(gd);
-               
-               snmpProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-               snmpProxy.setLabel(Messages.get().ZoneCommunications_DefaultSNMPProxy);
-               snmpProxy.setObjectId(zone.getSnmpProxy());
-               gd = new GridData();
-               gd.horizontalAlignment = SWT.FILL;
-               gd.grabExcessHorizontalSpace = true;
-               snmpProxy.setLayoutData(gd);
-               
-               icmpProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-               icmpProxy.setLabel(Messages.get().ZoneCommunications_DefaultICMPProxy);
-               icmpProxy.setObjectId(zone.getIcmpProxy());
-               gd = new GridData();
-               gd.horizontalAlignment = SWT.FILL;
-               gd.grabExcessHorizontalSpace = true;
-               icmpProxy.setLayoutData(gd);
-               
-      sshProxy = new ObjectSelector(dialogArea, SWT.NONE, true);
-      sshProxy.setLabel(Messages.get().ZoneCommunications_DefaultSSHProxy);
-      sshProxy.setObjectId(zone.getSshProxy());
-      gd = new GridData();
-      gd.horizontalAlignment = SWT.FILL;
-      gd.grabExcessHorizontalSpace = true;
-      sshProxy.setLayoutData(gd);
       
                return dialogArea;
        }
@@ -105,10 +80,7 @@ public class ZoneCommunications extends PropertyPage
                        setValid(false);
                
                final NXCObjectModificationData md = new NXCObjectModificationData(zone.getObjectId());
-               md.setAgentProxy(agentProxy.getObjectId());
-               md.setSnmpProxy(snmpProxy.getObjectId());
-               md.setIcmpProxy(icmpProxy.getObjectId());
-      md.setSshProxy(sshProxy.getObjectId());
+               md.setZoneProxy(agentProxy.getObjectId());
                
                final NXCSession session = (NXCSession)ConsoleSharedData.getSession();
                new ConsoleJob(String.format(Messages.get().ZoneCommunications_JobName, zone.getObjectName()), null, Activator.PLUGIN_ID, null) {
@@ -167,9 +139,6 @@ public class ZoneCommunications extends PropertyPage
        protected void performDefaults()
        {
                super.performDefaults();
-               
                agentProxy.setObjectId(0);
-               snmpProxy.setObjectId(0);
-               icmpProxy.setObjectId(0);
        }
 }