summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/LiveDeployment/Node.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-12-19 23:05:58 +0000
committerBernard Normier <bernard@zeroc.com>2006-12-19 23:05:58 +0000
commitd9abf6d53d02b7c41f86327ab21302406a1d2575 (patch)
treeb7b0d4b603a68057c994bfe32ddce3c4ca3876ce /java/src/IceGridGUI/LiveDeployment/Node.java
parentAdded Ice.Logger.DateFormat property (diff)
downloadice-d9abf6d53d02b7c41f86327ab21302406a1d2575.tar.bz2
ice-d9abf6d53d02b7c41f86327ab21302406a1d2575.tar.xz
ice-d9abf6d53d02b7c41f86327ab21302406a1d2575.zip
Added support for node variables
Diffstat (limited to 'java/src/IceGridGUI/LiveDeployment/Node.java')
-rwxr-xr-xjava/src/IceGridGUI/LiveDeployment/Node.java60
1 files changed, 52 insertions, 8 deletions
diff --git a/java/src/IceGridGUI/LiveDeployment/Node.java b/java/src/IceGridGUI/LiveDeployment/Node.java
index 986fd65223e..2ede821935c 100755
--- a/java/src/IceGridGUI/LiveDeployment/Node.java
+++ b/java/src/IceGridGUI/LiveDeployment/Node.java
@@ -264,6 +264,7 @@ class Node extends ListTreeNode
data.resolver = new Utils.Resolver(new java.util.Map[]{appDesc.variables, nodeDesc.variables});
data.resolver.put("application", appDesc.name);
data.resolver.put("node", _id);
+ putInfoVariables(data.resolver);
_map.put(appDesc.name, data);
@@ -282,8 +283,6 @@ class Node extends ListTreeNode
}
}
-
-
boolean remove(String appName)
{
_map.remove(appName);
@@ -434,17 +433,20 @@ class Node extends ListTreeNode
if(variablesChanged || !serviceTemplates.isEmpty() || !serverTemplates.isEmpty())
{
//
- // Rebuild every other server
+ // Rebuild every other server in this application
//
java.util.Iterator p = _children.iterator();
while(p.hasNext())
{
Server server = (Server)p.next();
- if(!freshServers.contains(server))
+ if(server.getApplication() == appDesc)
{
- server.rebuild(data.resolver,
- variablesChanged,
- serviceTemplates, serverTemplates);
+ if(!freshServers.contains(server))
+ {
+ server.rebuild(data.resolver,
+ variablesChanged,
+ serviceTemplates, serverTemplates);
+ }
}
}
}
@@ -467,6 +469,24 @@ class Node extends ListTreeNode
return _windows;
}
+ private boolean putInfoVariables(Utils.Resolver resolver)
+ {
+ if(_info == null)
+ {
+ return false;
+ }
+ else
+ {
+ boolean updated = resolver.put("node.os", _info.info.os);
+ updated = resolver.put("node.hostname", _info.info.hostname) || updated;
+ updated = resolver.put("node.release", _info.info.release) || updated;
+ updated = resolver.put("node.version", _info.info.version) || updated;
+ updated = resolver.put("node.machine", _info.info.machine) || updated;
+ updated = resolver.put("node.datadir", _info.info.dataDir) || updated;
+ return updated;
+ }
+ }
+
void up(NodeDynamicInfo info, boolean fireEvent)
{
_up = true;
@@ -474,10 +494,34 @@ class Node extends ListTreeNode
_windows = info.info.os.toLowerCase().startsWith("windows");
//
+ // Update variables and rebuild all affected servers
+ //
+ java.util.Iterator p = _map.values().iterator();
+ while(p.hasNext())
+ {
+ ApplicationData data = (ApplicationData)p.next();
+
+ if(putInfoVariables(data.resolver))
+ {
+ String appName = data.resolver.find("application");
+
+ java.util.Iterator q = _children.iterator();
+ while(q.hasNext())
+ {
+ Server server = (Server)q.next();
+ if(server.getApplication().name.equals(appName))
+ {
+ server.rebuild(data.resolver, true, null, null);
+ }
+ }
+ }
+ }
+
+ //
// Tell every server on this node
//
java.util.Set updatedServers = new java.util.HashSet();
- java.util.Iterator p = _info.servers.iterator();
+ p = _info.servers.iterator();
while(p.hasNext())
{
ServerDynamicInfo sinfo = (ServerDynamicInfo)p.next();