diff options
author | Bernard Normier <bernard@zeroc.com> | 2005-11-08 19:51:53 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2005-11-08 19:51:53 +0000 |
commit | 01a5e905cb352901a9aeef1e6328f581fe77a267 (patch) | |
tree | e1fd65505a37ba34db97cb6bd5d85df607f06d7a /java/src/IceGrid/TreeNode/ServerTemplates.java | |
parent | minor fixes to comments (diff) | |
download | ice-01a5e905cb352901a9aeef1e6328f581fe77a267.tar.bz2 ice-01a5e905cb352901a9aeef1e6328f581fe77a267.tar.xz ice-01a5e905cb352901a9aeef1e6328f581fe77a267.zip |
Fixed bug #586
Diffstat (limited to 'java/src/IceGrid/TreeNode/ServerTemplates.java')
-rwxr-xr-x | java/src/IceGrid/TreeNode/ServerTemplates.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/java/src/IceGrid/TreeNode/ServerTemplates.java b/java/src/IceGrid/TreeNode/ServerTemplates.java index c99f024082d..8366439b631 100755 --- a/java/src/IceGrid/TreeNode/ServerTemplates.java +++ b/java/src/IceGrid/TreeNode/ServerTemplates.java @@ -189,7 +189,8 @@ class ServerTemplates extends Templates return getApplication().findServerInstances(templateId);
}
- void update(java.util.Map updates, String[] removeTemplates)
+ void update(java.util.Map updates, String[] removeTemplates,
+ java.util.Set serviceTemplates)
throws UpdateFailedException
{
//
@@ -229,6 +230,30 @@ class ServerTemplates extends Templates }
}
+ //
+ // Rebuild template affected by service template updates
+ //
+ p = serviceTemplates.iterator();
+ while(p.hasNext())
+ {
+ java.util.List serviceInstances =
+ findServiceInstances((String)p.next());
+ java.util.Iterator q = serviceInstances.iterator();
+ while(q.hasNext())
+ {
+ Service service = (Service)q.next();
+ ServerTemplate serverTemplate =
+ (ServerTemplate)service.getParent().getParent();
+
+ if(!updatedChildren.contains(serverTemplate) &&
+ !newChildren.contains(serverTemplate))
+ {
+ serverTemplate.rebuild();
+ updatedChildren.add(serverTemplate);
+ }
+ }
+ }
+
updateChildren((CommonBaseI[])updatedChildren.toArray
(new CommonBaseI[0]));
addChildren((CommonBaseI[])newChildren.toArray(new CommonBaseI[0]));
|