summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Parser.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-07-01 09:26:05 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-07-01 09:26:05 +0000
commit50c0153ec1b849eb65f28fe14bf15eaf5938af7e (patch)
treed00de2b50f8256af6eeb45557d577543b968007f /cpp/src/IceGrid/Parser.cpp
parentChanged ant version req to 1.6.1 for deleteonexit (diff)
downloadice-50c0153ec1b849eb65f28fe14bf15eaf5938af7e.tar.bz2
ice-50c0153ec1b849eb65f28fe14bf15eaf5938af7e.tar.xz
ice-50c0153ec1b849eb65f28fe14bf15eaf5938af7e.zip
Removed applicationSynced call, fixed node observer nodeUp method to not
include inactive servers.
Diffstat (limited to 'cpp/src/IceGrid/Parser.cpp')
-rw-r--r--cpp/src/IceGrid/Parser.cpp157
1 files changed, 42 insertions, 115 deletions
diff --git a/cpp/src/IceGrid/Parser.cpp b/cpp/src/IceGrid/Parser.cpp
index d0f23c31f9f..90ff363e2ee 100644
--- a/cpp/src/IceGrid/Parser.cpp
+++ b/cpp/src/IceGrid/Parser.cpp
@@ -693,157 +693,84 @@ Parser::diffApplication(const list<string>& args)
out << sb;
ApplicationDescriptorHelper newAppHelper(_communicator, newApp);
- ApplicationDescriptorHelper origAppHelper(_communicator, origApp);
-
- if(!origApp->serverTemplates.empty() || !newApp->serverTemplates.empty())
+ ApplicationUpdateDescriptor update = newAppHelper.diff(origApp);
+ if(!update.serverTemplates.empty() || !update.removeServerTemplates.empty())
{
out << nl << "server templates";
out << sb;
-
- set<string> oldTmpls;
- set<string> newTmpls;
- for(TemplateDescriptorDict::const_iterator p = origApp->serverTemplates.begin();
- p != origApp->serverTemplates.end(); ++p)
- {
- oldTmpls.insert(p->first);
- }
- for(TemplateDescriptorDict::const_iterator p = newApp->serverTemplates.begin();
- p != newApp->serverTemplates.end(); ++p)
+ TemplateDescriptorDict::const_iterator p;
+ for(p = update.serverTemplates.begin(); p != update.serverTemplates.end(); ++p)
{
- newTmpls.insert(p->first);
- }
-
- set<string> added, removed, updated;
- set_difference(newTmpls.begin(), newTmpls.end(), oldTmpls.begin(), oldTmpls.end(), set_inserter(added));
- set_difference(oldTmpls.begin(), oldTmpls.end(), newTmpls.begin(), newTmpls.end(), set_inserter(removed));
-
- for(TemplateDescriptorDict::const_iterator p = newApp->serverTemplates.begin();
- p != newApp->serverTemplates.end(); ++p)
- {
- ServerDescriptorPtr desc = ServerDescriptorPtr::dynamicCast(p->second.descriptor);
- TemplateDescriptorDict::const_iterator q = origApp->serverTemplates.find(p->first);
- if(q != origApp->serverTemplates.end())
+ if(newApp->serverTemplates.find(p->first) == newApp->serverTemplates.end())
{
- ServerDescriptorPtr orig = ServerDescriptorPtr::dynamicCast(q->second.descriptor);
- if(ServerDescriptorHelper(newAppHelper, desc) != ServerDescriptorHelper(origAppHelper, orig))
- {
- updated.insert(p->first);
- }
+ out << nl << "server template `" << p->first << "' added";
+ }
+ else
+ {
+ out << nl << "server template `" << p->first << "' updated";
}
}
-
- for(set<string>::const_iterator p = added.begin(); p != added.end(); ++p)
- {
- out << nl << "server template `" << *p << "' added";
- }
- for(set<string>::const_iterator p = updated.begin(); p != updated.end(); ++p)
- {
- out << nl << "server template `" << *p << "' updated";
- }
- for(set<string>::const_iterator p = removed.begin(); p != removed.end(); ++p)
+ Ice::StringSeq::const_iterator q;
+ for(q = update.removeServerTemplates.begin(); q != update.removeServerTemplates.end(); ++q)
{
- out << nl << "server template `" << *p << "' removed";
+ out << nl << "server template `" << *q << "' removed";
}
out << eb;
}
- if(!origApp->serviceTemplates.empty() || !newApp->serviceTemplates.empty())
+ if(!update.serviceTemplates.empty() || !update.removeServiceTemplates.empty())
{
out << nl << "service templates";
out << sb;
-
- set<string> oldTmpls;
- set<string> newTmpls;
- for(TemplateDescriptorDict::const_iterator p = origApp->serviceTemplates.begin();
- p != origApp->serviceTemplates.end(); ++p)
- {
- oldTmpls.insert(p->first);
- }
- for(TemplateDescriptorDict::const_iterator p = newApp->serviceTemplates.begin();
- p != newApp->serviceTemplates.end(); ++p)
- {
- newTmpls.insert(p->first);
- }
-
- set<string> added, removed, updated;
- set_difference(newTmpls.begin(), newTmpls.end(), oldTmpls.begin(), oldTmpls.end(), set_inserter(added));
- set_difference(oldTmpls.begin(), oldTmpls.end(), newTmpls.begin(), newTmpls.end(), set_inserter(removed));
-
- for(TemplateDescriptorDict::const_iterator p = newApp->serviceTemplates.begin();
- p != newApp->serviceTemplates.end(); ++p)
+ TemplateDescriptorDict::const_iterator p;
+ for(p = update.serviceTemplates.begin(); p != update.serviceTemplates.end(); ++p)
{
- ServiceDescriptorPtr desc = ServiceDescriptorPtr::dynamicCast(p->second.descriptor);
- TemplateDescriptorDict::const_iterator q = origApp->serviceTemplates.find(p->first);
- if(q != origApp->serviceTemplates.end())
+ if(origApp->serviceTemplates.find(p->first) == origApp->serviceTemplates.end())
{
- ServiceDescriptorPtr orig = ServiceDescriptorPtr::dynamicCast(q->second.descriptor);
- if(ServiceDescriptorHelper(newAppHelper, desc) != ServiceDescriptorHelper(origAppHelper, orig))
- {
- updated.insert(p->first);
- }
+ out << nl << "service template `" << p->first << "' added";
+ }
+ else
+ {
+ out << nl << "service template `" << p->first << "' updated";
}
}
-
- for(set<string>::const_iterator p = added.begin(); p != added.end(); ++p)
- {
- out << nl << "service template `" << *p << "' added";
- }
- for(set<string>::const_iterator p = updated.begin(); p != updated.end(); ++p)
- {
- out << nl << "service template `" << *p << "' updated";
- }
- for(set<string>::const_iterator p = removed.begin(); p != removed.end(); ++p)
+ Ice::StringSeq::const_iterator q;
+ for(q = update.removeServiceTemplates.begin(); q != update.removeServiceTemplates.end(); ++q)
{
- out << nl << "service template `" << *p << "' removed";
+ out << nl << "service template `" << *q << "' removed";
}
-
out << eb;
}
- if(!origApp->servers.empty() || !newApp->servers.empty())
+ if(!update.servers.empty() || !update.removeServers.empty())
{
out << nl << "servers";
out << sb;
- set<string> oldSvrs;
- set<string> newSvrs;
- for_each(origApp->servers.begin(), origApp->servers.end(), AddServerName(oldSvrs));
- for_each(newApp->servers.begin(), newApp->servers.end(), AddServerName(newSvrs));
-
- set<string> added, removed, updated;
- set_difference(newSvrs.begin(), newSvrs.end(), oldSvrs.begin(), oldSvrs.end(), set_inserter(added));
- set_difference(oldSvrs.begin(), oldSvrs.end(), newSvrs.begin(), newSvrs.end(), set_inserter(removed));
-
- for(ServerInstanceDescriptorSeq::const_iterator p = newApp->servers.begin(); p != newApp->servers.end(); ++p)
+ ServerInstanceDescriptorSeq::const_iterator p;
+ for(p = update.servers.begin(); p != update.servers.end(); ++p)
{
- ServerDescriptorPtr desc = ServerDescriptorPtr::dynamicCast(p->descriptor);
- for(ServerInstanceDescriptorSeq::const_iterator q = origApp->servers.begin();
- q != origApp->servers.end(); ++q)
+ ServerInstanceDescriptorSeq::const_iterator q;
+ for(q = origApp->servers.begin(); q != origApp->servers.end(); ++q)
{
- if(desc->name == q->descriptor->name)
+ if(p->descriptor->name == q->descriptor->name)
{
- ServerDescriptorPtr orig = q->descriptor;
- if(q->node != p->node ||
- ServerDescriptorHelper(newAppHelper, desc) != ServerDescriptorHelper(origAppHelper, orig))
- {
- updated.insert(orig->name);
- }
break;
}
}
+ if(q == origApp->servers.end())
+ {
+ out << nl << "server `" << p->descriptor->name << "' added";
+ }
+ else
+ {
+ out << nl << "server `" << p->descriptor->name << "' updated";
+ }
}
-
- for(set<string>::const_iterator p = added.begin(); p != added.end(); ++p)
- {
- out << nl << "server `" << *p << "' added";
- }
- for(set<string>::const_iterator p = updated.begin(); p != updated.end(); ++p)
- {
- out << nl << "server `" << *p << "' updated";
- }
- for(set<string>::const_iterator p = removed.begin(); p != removed.end(); ++p)
+ Ice::StringSeq::const_iterator q;
+ for(q = update.removeServers.begin(); q != update.removeServers.end(); ++q)
{
- out << nl << "server `" << *p << "' removed";
+ out << nl << "server `" << *q << "' removed";
}
out << eb;
}