diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-12-19 23:05:58 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-12-19 23:05:58 +0000 |
commit | d9abf6d53d02b7c41f86327ab21302406a1d2575 (patch) | |
tree | b7b0d4b603a68057c994bfe32ddce3c4ca3876ce /java/src/IceGridGUI/LiveDeployment/Node.java | |
parent | Added Ice.Logger.DateFormat property (diff) | |
download | ice-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-x | java/src/IceGridGUI/LiveDeployment/Node.java | 60 |
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(); |