You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2018/04/09 14:27:51 UTC
svn commit: r1828726 - in /uima/uima-ducc/branches/reliable-ducc:
src/main/admin/ src/main/resources/ src/main/test/
uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/
uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ uima-ducc-cli/sr...
Author: degenaro
Date: Mon Apr 9 14:27:50 2018
New Revision: 1828726
URL: http://svn.apache.org/viewvc?rev=1828726&view=rev
Log:
UIMA-5742 Reliable DUCC
- employ ducc.head for Agents and CLI
- employ local host for Orchestrator, PM, RM, SM, and broker
(remove use of initial reliable DUCC design: virtual_ip_address and virtual_ip_device)
Removed:
uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/head/DuccHeadHelper.java
Modified:
uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_head_mode.py
uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_util.py
uima/uima-ducc/branches/reliable-ducc/src/main/admin/start_ducc
uima/uima-ducc/branches/reliable-ducc/src/main/resources/default.ducc.properties
uima/uima-ducc/branches/reliable-ducc/src/main/test/service.py
uima/uima-ducc/branches/reliable-ducc/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/DuccWorkHelper.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccUiUtilities.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/ServiceTester.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesHelper.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/part4/reliable.tex
uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/reliable-ducc.tex
uima/uima-ducc/branches/reliable-ducc/uima-ducc-examples/src/main/scripts/start_sim
uima/uima-ducc/branches/reliable-ducc/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java
uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
Modified: uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_head_mode.py
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_head_mode.py?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_head_mode.py (original)
+++ uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_head_mode.py Mon Apr 9 14:27:50 2018
@@ -18,11 +18,12 @@
# under the License.
# -----------------------------------------------------------------------
+import os
import subprocess
from ducc_util import DuccUtil
-class Master(DuccUtil):
+class DuccHeadMode(DuccUtil):
# purpose: determine reliable ducc status
# input: none
@@ -31,31 +32,31 @@ class Master(DuccUtil):
# and employ linux commands to determine if system
# has matching configured virtual ip address
+ debug_flag = False
+
+ def debug(self,text):
+ if(self.debug_flag):
+ print(text)
+
def main(self):
result = 'unspecified'
try:
- device = self.ducc_properties.get('ducc.virtual.ip.device')
- address = self.ducc_properties.get('ducc.virtual.ip.address')
- #print "device: "+device, "address: "+address
- if(device == None):
- pass
- elif(address == None):
- pass
- elif(address == '0.0.0.0'):
- pass
- else:
- #print 'cmd: ', '/sbin/ip', 'addr', 'list', device
- p = subprocess.Popen(['/sbin/ip', 'addr', 'list', device], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- output, err = p.communicate()
- #print "output: "+output
- if(address in output):
- result = 'master'
- else:
- result = 'backup'
+ head = self.ducc_properties.get('ducc.head')
+ if(self.is_reliable_head_eligible(head)):
+ text = 'cmd: ', '/sbin/ip', 'addr', 'list'
+ self.debug(text)
+ p = subprocess.Popen(['/sbin/ip', 'addr', 'list'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ output, err = p.communicate()
+ text = "output: "+output
+ self.debug(text)
+ if(head in output):
+ result = 'master'
+ else:
+ result = 'backup'
except Exception as e:
print e
print result
if __name__ == '__main__':
- instance = Master()
+ instance = DuccHeadMode()
instance.main()
\ No newline at end of file
Modified: uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_util.py
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_util.py?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_util.py (original)
+++ uima/uima-ducc/branches/reliable-ducc/src/main/admin/ducc_util.py Mon Apr 9 14:27:50 2018
@@ -156,7 +156,7 @@ class DuccUtil(DuccBase):
self.ducc_uid = find_ducc_uid()
# self.broker_url = self.ducc_properties.get('ducc.broker.url')
self.broker_protocol = self.ducc_properties.get('ducc.broker.protocol')
- self.broker_host = self.ducc_properties.get('ducc.broker.hostname')
+ self.broker_host = self.localhost
self.broker_port = self.ducc_properties.get('ducc.broker.port')
self.broker_jmx_port = self.ducc_properties.get('ducc.broker.jmx.port')
self.broker_decoration = self.ducc_properties.get('ducc.broker.url.decoration')
@@ -357,7 +357,7 @@ class DuccUtil(DuccBase):
def stop_broker(self):
- broker_host = self.ducc_properties.get('ducc.broker.hostname')
+ broker_host = self.localhost
broker_home = self.ducc_properties.get('ducc.broker.home')
broker_name = self.ducc_properties.get('ducc.broker.name')
broker_jmx = self.ducc_properties.get('ducc.broker.jmx.port')
@@ -391,6 +391,13 @@ class DuccUtil(DuccBase):
is_operational = False
req = node.split('.')[0]
cmd = '/bin/hostname'
+ if(node == 'localhost'):
+ resp = self.popen(cmd)
+ lines = resp.readlines()
+ if(len(lines)== 1):
+ line = lines[0]
+ line = line.strip();
+ req = line.split('.')[0]
ssh_cmd = 'ssh -q -o BatchMode=yes -o ConnectTimeout=10'+' '+node+" "+cmd
resp = self.popen(ssh_cmd)
lines = resp.readlines()
@@ -532,16 +539,31 @@ class DuccUtil(DuccBase):
return False
return True
+ keepalivd_conf = '/etc/keepalived/keepalived.conf'
+
+ def is_reliable_head_eligible(self, head):
+ retVal = False
+ if ( os.path.exists(self.keepalivd_conf) ):
+ with open(self.keepalivd_conf) as f:
+ for line in f:
+ if head in line:
+ retVal = True
+ break
+ return retVal
+
# Exit if this is not the head node. Ignore the domain as uname sometimes drops it.
# Also check that ssh to this node works
# Also restrict operations to the userid that installed ducc
def verify_head(self):
head = self.ducc_properties.get("ducc.head").split('.')[0]
- local = self.localhost.split('.')[0]
- if local != head:
- print ">>> ERROR - this script must be run from the head node"
- sys.exit(1);
- node = head
+ if(self.is_reliable_head_eligible(head)):
+ node = 'localhost'
+ else:
+ local = self.localhost.split('.')[0]
+ if local != head:
+ print ">>> ERROR - this script must be run from the head node"
+ sys.exit(1);
+ node = head
if(self.ssh_operational(node)):
text = "ssh is operational to "+node
#print text
@@ -1060,6 +1082,7 @@ class DuccUtil(DuccBase):
self.broker_host = 'localhost'
self.broker_port = '61616'
self.default_components = ['rm', 'pm', 'sm', 'or', 'ws', 'db', 'broker']
+ self.local_components = ['rm', 'pm', 'sm', 'or', 'ws', 'broker']
self.default_nodefiles = [self.DUCC_HOME + '/resources/ducc.nodes']
if ( self.localhost == self.ducc_properties.get("ducc.head")):
Modified: uima/uima-ducc/branches/reliable-ducc/src/main/admin/start_ducc
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/src/main/admin/start_ducc?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/src/main/admin/start_ducc (original)
+++ uima/uima-ducc/branches/reliable-ducc/src/main/admin/start_ducc Mon Apr 9 14:27:50 2018
@@ -41,7 +41,7 @@ class StartDucc(DuccUtil):
def start_broker(self):
- broker_host = self.ducc_properties.get('ducc.broker.hostname')
+ broker_host = self.localhost
print 'Starting broker on', broker_host
lines = self.ssh(broker_host, True, "'", self.DUCC_HOME + '/admin/ducc.py', '-c', 'broker', "'")
while 1:
@@ -68,14 +68,13 @@ class StartDucc(DuccUtil):
msgs = []
node = self.ducc_properties.get('ducc.head')
+
com = component
if ( com.find('@') >= 0 ):
com, node = com.split('@')
-
- if ( ( com == 'ws' ) and ( node == 'local' ) and ( self.webserver_node != 'localhost' )):
- if ( self.webserver_node != None ):
- node = self.webserver_node
- component = com + '@' + node
+
+ if (com in self.local_components):
+ node = self.localhost
if ((com in self.default_components) or ( com == 'agent')) :
msgs.append((node, 'Starting', com))
Modified: uima/uima-ducc/branches/reliable-ducc/src/main/resources/default.ducc.properties
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/src/main/resources/default.ducc.properties?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/src/main/resources/default.ducc.properties (original)
+++ uima/uima-ducc/branches/reliable-ducc/src/main/resources/default.ducc.properties Mon Apr 9 14:27:50 2018
@@ -47,21 +47,11 @@
# Resource Manager, Process Manager, Service Manager). This property is required and MUST be
# configured in new installation. The installation script ducc_post_install initializes this
# property to the node the script is executed on.
+# Reliable DUCC: if running reliably, then this value must be the same as that specified
+# for the virtual_ipaddress in /etc/keepalived/keepalived.conf. DUCC CLI and Agents employ
+# this value to connect to the current reliable DUCC head node.
ducc.head = <head-node>
-# These optional properties declare virtual ip device and address for "reliable" DUCC.
-# Reliable DUCC comprises a MASTER and BACKUP configured using Linux keepalived, which
-# must correspond with the below two DUCC properties.
-# The following signify "reliable" DUCC is *not* in effect:
-# - omission of one or both of these properties
-# - 0.0.0.0 specified as <ducc.virtual.ip.address>
-# When in effect, a DUCC head node will act as MASTER only when the command
-# > ip addr show dev <ducc.virtual.ip.device> displays <ducc.virtual.ip.address>
-# Automatic takeover by the DUCC head BACKUP from DUCC head MASTER (and vice versa) occurs
-# when the above command results change.
-ducc.virtual.ip.device = eth0
-ducc.virtual.ip.address = 0.0.0.0
-
# The full name of the Java command.
# This specifies the full path to the JVM to be used by the DUCC processes. This MUST be
# configured. The installation script ducc_post_install initializes this property to
@@ -97,11 +87,6 @@ ducc.jms.provider=activemq
#Declare the wire protocol used to communicate with ActiveMQ.
ducc.broker.protocol=tcp
-
-# This declares the node where the ActiveMQ broker resides. It MUST be updated to
-# the actual node where the broker is running as part of DUCC installation.
-# The default value will not work.
-ducc.broker.hostname=${ducc.head}
# This declares the port on which the ActiveMQ broker is listening for messages.
ducc.broker.port=61617
@@ -110,7 +95,6 @@ ducc.broker.port=61617
ducc.broker.url.decoration=jms.useCompression=true&jms.prefetchPolicy.all=0
# The Broker's name must match the actual broker name in the broker config.
-# THIS IS NOT THE BROKER HOSTNAME WHICH IS CONFIGURED IN ducc.broker.hostname.
# This is the internal name of the broker, used to locate Broker's MBean in
# JMX Registry. It is NOT related to any node name. When using the ActiveMQ
# distribution supplied with DUCC it should always be set to localhost.
@@ -561,8 +545,7 @@ ducc.sm.meta.ping.timeout = 15000
# *****
ducc.sm.http.port=${ducc.orchestrator.http.port}
-# This is the node where the Service Manager runs. It MUST be configured as part of DUCC
-# setup. The ducc_post_install procedures initialize this to ${ducc.head}
+# This is the node where the Service Manager runs. It MUST be ${ducc.head}.
ducc.sm.http.node=${ducc.head}
# This is the length of time, in milliseconds, that the SM allows a service to remain alive after
@@ -612,9 +595,7 @@ ducc.orchestrator.maintenance.rate=60000
# This is the HTTP port used by the Orchestrator to field requests from the CLI / API.
ducc.orchestrator.http.port=19988
-# Node where OR is running. This is needed by CLI to compose a URL to access OR jetty server.
-# This is the node where the Orchestrator runs. It MUST be configured as part of DUCC
-# setup. The ducc_post_install procedures initialize this to ${ducc.head}
+# Node where Orchestrator is running. It MUST be ${ducc.head}.
ducc.orchestrator.http.node=${ducc.head}
#------------------------------------------------------------------------------
Modified: uima/uima-ducc/branches/reliable-ducc/src/main/test/service.py
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/src/main/test/service.py?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/src/main/test/service.py (original)
+++ uima/uima-ducc/branches/reliable-ducc/src/main/test/service.py Mon Apr 9 14:27:50 2018
@@ -201,7 +201,7 @@ def mkBrokerUrl(ducc_home):
props = DuccProperties()
props.load(ducc_home + '/resources/ducc.properties')
protocol = props.get('ducc.broker.protocol')
- host = props.get('ducc.broker.hostname')
+ host = props.get('ducc.head')
port = props.get('ducc.broker.port')
return protocol + '://' + host + ':' + port
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/DuccWorkHelper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/DuccWorkHelper.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/DuccWorkHelper.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/DuccWorkHelper.java Mon Apr 9 14:27:50 2018
@@ -19,7 +19,6 @@
package org.apache.uima.ducc.agent.deploy;
import org.apache.uima.ducc.agent.Agent;
-import org.apache.uima.ducc.common.head.DuccHeadHelper;
import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
import org.apache.uima.ducc.common.utils.id.DuccId;
@@ -60,8 +59,7 @@ public class DuccWorkHelper {
String location = "getTargetUrl";
String targetUrl = null;
String server = getServer();
- String host = DuccPropertiesResolver.get("ducc." + server + ".http.node");
- host = DuccHeadHelper.getVirtualHost(host);
+ String host = DuccPropertiesResolver.get("ducc.head");
String port = DuccPropertiesResolver.get("ducc." + server + ".http.port");
if ( host == null || port == null ) {
String message = "ducc." + server + ".http.node and/or .port not set in ducc.properties";
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java Mon Apr 9 14:27:50 2018
@@ -128,12 +128,9 @@ public abstract class DuccMonitor {
public abstract String getUrl(String id);
public String getHost() {
- String host = duccPropertiesResolver.getFileProperty("ducc.virtual.ip.address");
+ String host = duccPropertiesResolver.getFileProperty("ducc.ws.node");
if (host == null) {
- host = duccPropertiesResolver.getFileProperty("ducc.ws.node");
- if (host == null) {
- host = duccPropertiesResolver.getFileProperty("ducc.head");
- }
+ host = duccPropertiesResolver.getFileProperty("ducc.head");
}
return host;
}
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccUiUtilities.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccUiUtilities.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccUiUtilities.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccUiUtilities.java Mon Apr 9 14:27:50 2018
@@ -42,7 +42,6 @@ import javax.xml.parsers.ParserConfigura
import org.apache.uima.UIMAFramework;
import org.apache.uima.ducc.common.IDuccUser;
import org.apache.uima.ducc.common.TcpStreamHandler;
-import org.apache.uima.ducc.common.head.DuccHeadHelper;
import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
import org.apache.uima.ducc.transport.event.sm.IService.ServiceType;
import org.apache.uima.ducc.user.common.PrivateClassLoader;
@@ -142,8 +141,7 @@ public class DuccUiUtilities {
* Get URL for service handling request. (server is always "orchestrator")
*/
public static String dispatchUrl(String server) {
- String host = DuccPropertiesResolver.get("ducc." + server + ".http.node");
- host = DuccHeadHelper.getVirtualHost(host);
+ String host = DuccPropertiesResolver.get("ducc.head");
String port = DuccPropertiesResolver.get("ducc." + server + ".http.port");
if ( host == null || port == null) {
throw new IllegalStateException("ducc." + server + ".http.node and/or .port not set in ducc.properties");
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/ServiceTester.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/ServiceTester.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/ServiceTester.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/ServiceTester.java Mon Apr 9 14:27:50 2018
@@ -96,7 +96,7 @@ public class ServiceTester
throws Exception
{
String proto = ducc_properties.getStringProperty("ducc.broker.protocol");
- String host = ducc_properties.getStringProperty("ducc.broker.hostname");
+ String host = ducc_properties.getStringProperty("ducc.head");
String port = ducc_properties.getStringProperty("ducc.broker.port");
return proto + "://" + host + ":" + port;
}
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java Mon Apr 9 14:27:50 2018
@@ -50,10 +50,11 @@ import org.apache.uima.ducc.common.admin
import org.apache.uima.ducc.common.crypto.Crypto;
import org.apache.uima.ducc.common.exception.DuccComponentInitializationException;
import org.apache.uima.ducc.common.exception.DuccConfigurationException;
-import org.apache.uima.ducc.common.head.DuccHeadHelper;
import org.apache.uima.ducc.common.main.DuccService;
import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.DuccProperties;
+import org.apache.uima.ducc.common.utils.DuccPropertiesHelper;
+import org.apache.uima.ducc.common.utils.InetHelper;
import org.apache.uima.ducc.common.utils.JdkEvaluator;
import org.apache.uima.ducc.common.utils.JdkEvaluator.JDKVendor;
import org.apache.uima.ducc.common.utils.JdkEvaluator.Vendors;
@@ -139,11 +140,12 @@ public abstract class AbstractDuccCompon
}
private static String agent = "agent";
- private static String ducc_virtual_ip_device = "ducc.virtual.ip.device";
- private static String ducc_virtual_ip_address = "ducc.virtual.ip.address";
- private static String ducc_broker_hostname = "ducc.broker.hostname";
private static String ducc_deploy_components = "ducc.deploy.components";
+ private static String ducc_broker_hostname = "inet.hostname";
+ /*
+ * Agents use virtual IP, other daemons use local host
+ */
private boolean is_virtual_ip_used() {
String location = "is_virtual_ip_used";
boolean retVal = false;
@@ -159,14 +161,12 @@ public abstract class AbstractDuccCompon
private String getBrokerHostname() throws Exception {
String location = "getBrokerHostname";
- String brokerHostname = System.getProperty(ducc_broker_hostname);
+ String brokerHostname = InetHelper.getHostName();
String retVal = brokerHostname;
- String ipDevice = System.getProperty(ducc_virtual_ip_device);
- String ipAddress = System.getProperty(ducc_virtual_ip_address);
- logger.info(location, jobid, ducc_broker_hostname+"="+brokerHostname, ducc_virtual_ip_device+"="+ipDevice, ducc_virtual_ip_address+"="+ipAddress);
if(is_virtual_ip_used()) {
- retVal = DuccHeadHelper.getVirtualHost(brokerHostname);
+ retVal = DuccPropertiesHelper.getDuccHead();
}
+ logger.debug(location, jobid, ducc_broker_hostname+"="+brokerHostname);
return retVal;
}
@@ -229,9 +229,12 @@ public abstract class AbstractDuccCompon
private static String sepDeco = "?";
/**
- * ducc.properties provides broker URL in pieces as follows: - ducc.broker.protocol -
- * ducc.broker.hostname - ducc.broker.port - ducc.broker.url.decoration Assemble the above into a
- * complete URL
+ * ducc.properties provides broker URL in pieces as follows:
+ * - ducc.broker.protocol
+ * - ducc.broker.port
+ * - ducc.broker.url.decoration
+ * Assemble the above with broker host (ducc.head for Agents, local host for other daemons)
+ * into a complete URL
*
* @throws Exception
*/
@@ -252,7 +255,7 @@ public abstract class AbstractDuccCompon
}
if ((duccBrokerHostname = getBrokerHostname()) == null) {
throw new DuccConfigurationException(
- "Ducc Configuration Exception. Please add ducc.broker.hostname property to ducc.propeties");
+ "Ducc Configuration Exception. Please add ducc.head property to ducc.propeties");
}
if ((duccBrokerPort = System.getProperty("ducc.broker.port")) == null) {
throw new DuccConfigurationException(
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesHelper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesHelper.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesHelper.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesHelper.java Mon Apr 9 14:27:50 2018
@@ -18,9 +18,6 @@
*/
package org.apache.uima.ducc.common.utils;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
import java.util.Properties;
public class DuccPropertiesHelper {
@@ -45,21 +42,4 @@ public class DuccPropertiesHelper {
return retVal;
}
- private static String defaultDuccHeadVirtualIpAddress= "";
-
- public static String getDuccHeadVirtualIpAddress() {
- String key = DuccPropertiesResolver.ducc_head_virtual_ip_address;
- String value = DuccPropertiesResolver.get(key,defaultDuccHeadVirtualIpAddress);
- String retVal = value;
- return retVal;
- }
-
- private static String defaultDuccHeadVirtualIpDevice= "";
-
- public static String getDuccHeadVirtualIpDevice() {
- String key = DuccPropertiesResolver.ducc_head_virtual_ip_device;
- String value = DuccPropertiesResolver.get(key,defaultDuccHeadVirtualIpDevice);
- String retVal = value;
- return retVal;
- }
}
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccPropertiesResolver.java Mon Apr 9 14:27:50 2018
@@ -83,9 +83,6 @@ public class DuccPropertiesResolver {
public static final String ducc_head = "ducc.head";
- public static final String ducc_head_virtual_ip_address = "ducc.virtual.ip.address";
- public static final String ducc_head_virtual_ip_device = "ducc.virtual.ip.device";
-
public static final String ducc_security_home = "ducc.security.home";
public static final String ducc_private_resources = "ducc.private.resources";
@@ -105,7 +102,6 @@ public class DuccPropertiesResolver {
public static final String ducc_signature_required = "ducc.signature.required";
public static final String ducc_broker_url = "ducc.broker.url";
public static final String ducc_broker_protocol = "ducc.broker.protocol";
- public static final String ducc_broker_hostname = "ducc.broker.hostname";
public static final String ducc_broker_port = "ducc.broker.port";
public static final String ducc_broker_url_decoration = "ducc.broker.url.decoration";
public static final String ducc_broker_name = "ducc.broker.name";
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/part4/reliable.tex
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/part4/reliable.tex?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/part4/reliable.tex (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/part4/reliable.tex Mon Apr 9 14:27:50 2018
@@ -42,6 +42,48 @@
which can be found at this web address:
\url{https://docs.oracle.com/cd/E37670_01/E41138/html/section_uxg_lzh_nr.html}.
+ Sample MASTER /etc/keepalived/keepalived.conf
+
+ \begin{verbatim}
+ ! Configuration File for keepalived
+
+ vrrp_instance VI_1 {
+ state MASTER
+ interface eth0
+ virtual_router_id 51
+ priority 100
+ advert_int 1
+ authentication {
+ auth_type PASS
+ auth_pass 1111
+ }
+ virtual_ipaddress {
+ 192.168.6.253
+ }
+ }
+ \end{verbatim}
+
+ Sample BACKUP /etc/keepalived/keepalived.conf
+
+ \begin{verbatim}
+ ! Configuration File for keepalived
+
+ vrrp_instance VI_1 {
+ state BACKUP
+ interface eth0
+ virtual_router_id 51
+ priority 100
+ advert_int 1
+ authentication {
+ auth_type PASS
+ auth_pass 1111
+ }
+ virtual_ipaddress {
+ 192.168.6.253
+ }
+ }
+ \end{verbatim}
+
Linux Commands
Starting keepalived
@@ -54,13 +96,13 @@
Querying keepalived
\begin{verbatim}
- > ip addr show dev eth0
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
- link/ether 00:21:5e:20:02:84 brd ff:ff:ff:ff:ff:ff
- inet 192.168.3.7/16 brd 192.168.255.255 scope global eth0
- inet 192.168.200.17/32 scope global eth0
- inet6 fe80::221:5eff:fe20:284/64 scope link
- valid_lft forever preferred_lft forever
+ > /sbin/ip addr show dev eth0
+ 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
+ link/ether 00:21:5e:20:02:84 brd ff:ff:ff:ff:ff:ff
+ inet 192.168.3.7/16 brd 192.168.255.255 scope global eth0
+ inet 192.168.6.253/32 scope global eth0
+ inet6 fe80::221:5eff:fe20:284/64 scope link
+ valid_lft forever preferred_lft forever
\end{verbatim}
Stopping keepalived
@@ -71,15 +113,14 @@
\end{verbatim}
\section{Configuring DUCC}
- To configure DUCC to run reliable, there are two properties that must
+ To configure DUCC to run reliable, one required property must
be configured in the {\em site.ducc.properties} file. Example:
\begin{verbatim}
- ducc.virtual.ip.device = eth0
- ducc.virtual.ip.address = 192.168.200.17
+ ducc.head = 192.168.6.253
\end{verbatim}
- Use the device and virtual IP address configured for your host machines.
+ Use the virtual IP address configured for your host machines keepalived.
\section{Webserver}
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/reliable-ducc.tex
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/reliable-ducc.tex?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/reliable-ducc.tex (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-duccdocs/src/site/tex/duccbook/reliable-ducc.tex Mon Apr 9 14:27:50 2018
@@ -76,6 +76,48 @@ This first major section describes suppo
which can be found at this web address:
\url{https://docs.oracle.com/cd/E37670_01/E41138/html/section_uxg_lzh_nr.html}.
+ Sample MASTER /etc/keepalived/keepalived.conf
+
+ \begin{verbatim}
+ ! Configuration File for keepalived
+
+ vrrp_instance VI_1 {
+ state MASTER
+ interface eth0
+ virtual_router_id 51
+ priority 100
+ advert_int 1
+ authentication {
+ auth_type PASS
+ auth_pass 1111
+ }
+ virtual_ipaddress {
+ 192.168.6.253
+ }
+ }
+ \end{verbatim}
+
+ Sample BACKUP /etc/keepalived/keepalived.conf
+
+ \begin{verbatim}
+ ! Configuration File for keepalived
+
+ vrrp_instance VI_1 {
+ state BACKUP
+ interface eth0
+ virtual_router_id 51
+ priority 100
+ advert_int 1
+ authentication {
+ auth_type PASS
+ auth_pass 1111
+ }
+ virtual_ipaddress {
+ 192.168.6.253
+ }
+ }
+ \end{verbatim}
+
Linux Commands
Starting keepalived
@@ -88,13 +130,13 @@ This first major section describes suppo
Querying keepalived
\begin{verbatim}
- > ip addr show dev eth0
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
- link/ether 00:21:5e:20:02:84 brd ff:ff:ff:ff:ff:ff
- inet 192.168.3.7/16 brd 192.168.255.255 scope global eth0
- inet 192.168.200.17/32 scope global eth0
- inet6 fe80::221:5eff:fe20:284/64 scope link
- valid_lft forever preferred_lft forever
+ > /sbin/ip addr show dev eth0
+ 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
+ link/ether 00:21:5e:20:02:84 brd ff:ff:ff:ff:ff:ff
+ inet 192.168.3.7/16 brd 192.168.255.255 scope global eth0
+ inet 192.168.6.253/32 scope global eth0
+ inet6 fe80::221:5eff:fe20:284/64 scope link
+ valid_lft forever preferred_lft forever
\end{verbatim}
Stopping keepalived
@@ -105,15 +147,14 @@ This first major section describes suppo
\end{verbatim}
\subsection{Configuring DUCC}
- To configure DUCC to run reliable, there are two properties that must
+ To configure DUCC to run reliable, one required property must
be configured in the {\em site.ducc.properties} file. Example:
\begin{verbatim}
- ducc.virtual.ip.device = eth0
- ducc.virtual.ip.address = 192.168.200.17
+ ducc.head = 192.168.6.253
\end{verbatim}
- Use the device and virtual IP address configured for your host machines.
+ Use the virtual IP address configured for your host machines keepalived.
\subsection{Webserver}
@@ -163,7 +204,7 @@ publication.
# output: one of { unspecified, master, backup }
# operation: look in ducc.properties for relevant keywords
# and employ linux commands to determine if system
- # has matching configured virtual ip address
+ # has matching configured virtual IP address
\end{verbatim}
\subsubsection{existing scripts}
@@ -171,8 +212,9 @@ publication.
{\renewcommand\labelitemi{}
\begin{itemize}
\item \textbf{ducc\_post\_install} - no need to create webserver request log directory
- \item \textbf{ducc\_util.py} - incorporate host name into cassandra.pid, cassandra.console path
+ \item \textbf{ducc\_util.py} - incorporate host name into cassandra.pid, cassandra.console path; broker host must be local host; head node must be eligible with respect to keepalived.conf; head node local components are all daemons except Database and Agents
\item \textbf{ducc.py} - incorporate host name into cassandra.pid, cassandra.console path
+ \item \textbf{start\_ducc.py} - head node local components must start on eligible local host
\end{itemize}
}
@@ -181,20 +223,21 @@ publication.
\textbf{ducc.properties}
\begin{verbatim}
- # These optional properties declare virtual ip device and address for "reliable" DUCC.
- # Reliable DUCC comprises a MASTER and BACKUP configured using Linux keepalived, which
- # must correspond with the below two DUCC properties.
- # The following signify "reliable" DUCC is *not* in effect:
- # - omission of one or both of these properties
- # - 0.0.0.0 specified as <ducc.virtual.ip.address>
- # When in effect, a DUCC head node will act as MASTER only when the command
- # > ip addr show dev <ducc.virtual.ip.device> displays <ducc.virtual.ip.address>
- # Automatic takeover by the DUCC head BACKUP from DUCC head MASTER (and vice versa) occurs
- # when the above command results change.
- ducc.virtual.ip.device = eth0
- ducc.virtual.ip.address = 0.0.0.0
+ # The name of the node where DUCC runs.
+ # This property declares the node where the DUCC administrative processes run (Orchestrator,
+ # Resource Manager, Process Manager, Service Manager). This property is required and MUST be
+ # configured in new installation. The installation script ducc_post_install initializes this
+ # property to the node the script is executed on.
+ # Reliable DUCC: if running reliably, then this value must be the same as that specified
+ # for the virtual_ipaddress in /etc/keepalived/keepalived.conf. DUCC CLI and Agents employ
+ # this value to connect to the current reliable DUCC head node.
+ ducc.head = <head-node>
\end{verbatim}
+Although not strictly true, the Orchestrator, RM, SM, PM, Webserver and Broker "must"
+all be configured on the head node. Reliable DUCC may work with other configurations,
+but it has not been tested as such.
+
\textbf{log4j.xml}
\begin{verbatim}
@@ -207,9 +250,10 @@ publication.
{\renewcommand\labelitemi{}
\begin{itemize}
- \item \textbf{DuccWorkHelper} - use virtualIP address or head node
+ \item \textbf{DuccWorkHelper} - use virtual IP address configured as ducc.head node
\item \textbf{AgentEventListener} - ignore any incoming publications from backup producer
\item \textbf{CGroupsTest} - employ changed DuccIdFactory signature
+ \item \textbf{ServiceTester} - broker must be on ducc.head node
\end{itemize}
}
@@ -217,8 +261,8 @@ publication.
{\renewcommand\labelitemi{}
\begin{itemize}
- \item \textbf{DuccMonitor} - use virtual IP address, or WS node, or head node
- \item \textbf{DuccUiUtilities} - use virtualIP address or head node (to submit, cancel..)
+ \item \textbf{DuccMonitor} - use WS node or virtual IP address configured as ducc.head node
+ \item \textbf{DuccUiUtilities} - use virtual IP address configured as ducc.head node (to submit, cancel..)
\end{itemize}
}
@@ -226,9 +270,8 @@ publication.
{\renewcommand\labelitemi{}
\begin{itemize}
- \item \textbf{AbstractDuccComponent} - for broker use virtual IP address or head node, remove commented-out code, remove print to console
+ \item \textbf{AbstractDuccComponent} - remove commented-out code, remove print to console, head node local components are all daemons except Database and Agents
\item \textbf{ADuccHead} - abstract class with reliable DUCC share functionality
- \item \textbf{DuccHeadHelper, IDuccHead} - reliable DUCC utilities
\item \textbf{IDuccHead} - reliable DUCC interface
\item \textbf{IDuccEnv} - remove DUCC\_LOGS\_WEBSERVER\_DIR, not used
\item \textbf{IStateServices} - database access control RW or RO
@@ -236,8 +279,8 @@ publication.
\item \textbf{StateServices} - database access control RW or RO
\item \textbf{DuccDaemonRuntimeProperties} - incorporate hostname into logs directory location
\item \textbf{InetHelper} - incorporate hostname into logs directory location
- \item \textbf{DuccPropertiesHelper} - fetch virtual IP address
- \item \textbf{DuccPropertiesResolver} - Reliable DUCC properties keys
+ \item \textbf{DuccPropertiesHelper} - fetch virtual IP address configured as ducc.head node
+ \item \textbf{DuccPropertiesResolver} - Remove key ducc.broker.hostname, broker must be on ducc.head node
\item \textbf{IDuccLoggerComponents} - Missing PM abbreviation
\item \textbf{DuccIdFactory} - improved (generalized) to handle DB persisted sequence numbering
\end{itemize}
@@ -317,7 +360,7 @@ publication.
{\renewcommand\labelitemi{}
\begin{itemize}
- \item \textbf{JobDriverStateExchanger} - use virtualIP address or head node
+ \item \textbf{JobDriverStateExchanger} - use virtual IP address configured as ducc.head node
\item \textbf{AbstractDuccEvent} - tag publications with producer host identity and state {\em master} or {\em backup}
\item \textbf{DaemonDuccEvent} - switch to {\em master} or {\em backup} state for recording to system event log
\item \textbf{DuccEvent} - add events SWITCH\_TO\_MASTER and SWITCH\_TO\_BACKUP
@@ -330,6 +373,7 @@ publication.
{\renewcommand\labelitemi{}
\begin{itemize}
+ \item \textbf{BrokerHelper} - use local host name to find co-located broker
\item \textbf{DuccBoot} - make boot reusable for switch to {\em master}
\item \textbf{DuccData} - create reset function for switch to {\em master}
\item \textbf{DuccHead} - loggable wrapper around common.ADuccHead
@@ -345,6 +389,15 @@ publication.
\end{itemize}
}
+\subsubsection{examples}
+
+{\renewcommand\labelitemi{}
+\begin{itemize}
+ \item \textbf{start\_sim} - broker must be on head node
+\end{itemize}
+}
+
+
\section{Installing and Cloning}
This second major section describes support for installation of head node master and backup(s).
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-examples/src/main/scripts/start_sim
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-examples/src/main/scripts/start_sim?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-examples/src/main/scripts/start_sim (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-examples/src/main/scripts/start_sim Mon Apr 9 14:27:50 2018
@@ -60,7 +60,7 @@ class StartSim(DuccUtil):
if ( not self.automanage ):
print "Broker is not automanaged, returning."
- broker_host = self.ducc_properties.get('ducc.broker.hostname')
+ broker_host = self.localhost
print 'broker host', broker_host
lines = self.ssh(broker_host, True, "'", self.DUCC_HOME + '/admin/ducc.py', '-c', 'broker', '--simtest', "'")
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java Mon Apr 9 14:27:50 2018
@@ -22,7 +22,6 @@ import java.util.Map.Entry;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.uima.ducc.common.NodeIdentity;
-import org.apache.uima.ducc.common.head.DuccHeadHelper;
import org.apache.uima.ducc.common.jd.files.workitem.IWorkItemStateKeeper;
import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
@@ -129,11 +128,7 @@ public class JobDriverStateExchanger ext
private String getTargetUrl() {
String targetUrl = null;
String server = getServer();
- String host = DuccPropertiesResolver.get("ducc." + server + ".http.node");
-
- // employ virtual IP if configured
- host = DuccHeadHelper.getVirtualHost(host);
-
+ String host = DuccPropertiesResolver.get("ducc.head");
String port = DuccPropertiesResolver.get("ducc." + server + ".http.port");
if ( host == null || port == null ) {
String message = "ducc." + server + ".http.node and/or .port not set in ducc.properties";
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/helper/BrokerHelper.java Mon Apr 9 14:27:50 2018
@@ -42,6 +42,7 @@ import javax.management.remote.JMXServic
import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.InetHelper;
import org.apache.uima.ducc.common.utils.id.DuccId;
import org.apache.uima.ducc.ws.DuccDaemonsData;
@@ -108,8 +109,7 @@ public class BrokerHelper extends JmxHel
String key;
String value;
//
- key = "ducc.broker.hostname";
- value = duccPropertiesResolver.getCachedProperty(key);
+ value = InetHelper.getHostName();
setHost(value);
//
key = "ducc.broker.jmx.port";
Modified: uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1828726&r1=1828725&r2=1828726&view=diff
==============================================================================
--- uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/uima-ducc/branches/reliable-ducc/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Mon Apr 9 14:27:50 2018
@@ -49,7 +49,6 @@ import org.apache.uima.ducc.common.SizeB
import org.apache.uima.ducc.common.SizeBytes.Type;
import org.apache.uima.ducc.common.boot.DuccDaemonRuntimeProperties;
import org.apache.uima.ducc.common.boot.DuccDaemonRuntimeProperties.DaemonName;
-import org.apache.uima.ducc.common.head.DuccHeadHelper;
import org.apache.uima.ducc.common.head.IDuccHead;
import org.apache.uima.ducc.common.internationalization.Messages;
import org.apache.uima.ducc.common.jd.files.IWorkItemState;
@@ -3344,23 +3343,15 @@ public class DuccHandler extends DuccAbs
String methodName = "handleDuccServletClusterReliableStatus";
duccLogger.trace(methodName, null, messages.fetch("enter"));
StringBuffer sb = new StringBuffer();
- if(DuccHeadHelper.isVirtualIpAddress()) {
- String ipAddress = DuccPropertiesHelper.getDuccHeadVirtualIpAddress();
- String ipDevice = DuccPropertiesHelper.getDuccHeadVirtualIpDevice();
- if(ipAddress.length() > 0) {
- if(ipDevice.length() > 0) {
- String status = dh.get_ducc_head_mode();
- String hover = ipDevice+" "+ipAddress;
- if(dh.is_ducc_head_master()) {
- String text = "<span title=\""+hover+"\">"+status+"</span>";
- sb.append(text);
- }
- else {
- String text = "<span>"+status+"</span>";
- sb.append(text);
- }
- }
- }
+ String status = dh.get_ducc_head_mode();
+ String hover = DuccPropertiesHelper.getDuccHead();
+ if(dh.is_ducc_head_master()) {
+ String text = "<span title=\""+hover+"\">"+status+"</span>";
+ sb.append(text);
+ }
+ else {
+ String text = "<span>"+status+"</span>";
+ sb.append(text);
}
response.getWriter().println(sb);
duccLogger.trace(methodName, null, messages.fetch("exit"));
@@ -3372,25 +3363,18 @@ public class DuccHandler extends DuccAbs
String methodName = "handleDuccServletClusterReliableLabel";
duccLogger.trace(methodName, null, messages.fetch("enter"));
StringBuffer sb = new StringBuffer();
- if(DuccHeadHelper.isVirtualIpAddress()) {
- String ipAddress = DuccPropertiesHelper.getDuccHeadVirtualIpAddress();
- String ipDevice = DuccPropertiesHelper.getDuccHeadVirtualIpDevice();
- if(ipAddress.length() > 0) {
- if(ipDevice.length() > 0) {
- String label = "reliable:";
- if(dh.is_ducc_head_backup()) {
- String hover = "Click to visit master";
- String text = "<span title=\""+hover+"\">"+label+"</span>";
- String link = "http://"+ipAddress+":"+getDuccWebServer().getPort()+"/";
- String href = "<a href=\""+link+"\" target=\"_ducc_master\" >"+text+"</a>";
- sb.append(href);
- }
- else {
- String text = "<span>"+label+"</span>";
- sb.append(text);
- }
- }
- }
+ String label = "reliable:";
+ if(dh.is_ducc_head_backup()) {
+ String hover = "Click to visit master";
+ String text = "<span title=\""+hover+"\">"+label+"</span>";
+ String host = DuccPropertiesHelper.getDuccHead();;
+ String link = "http://"+host+":"+getDuccWebServer().getPort()+"/";
+ String href = "<a href=\""+link+"\" target=\"_ducc_master\" >"+text+"</a>";
+ sb.append(href);
+ }
+ else {
+ String text = "<span>"+label+"</span>";
+ sb.append(text);
}
response.getWriter().println(sb);
duccLogger.trace(methodName, null, messages.fetch("exit"));