From 930e9797f420ed538bc4e55ffeb76b8596e12715 Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Fri, 11 Nov 2005 13:56:10 +0000 Subject: :activate() would contact the locator even if the OA id was empty. Fixed a bug where ${node.os} for example couldn't be used in distribution directories. Unknown elements in XML file are now treated as errors. --- cpp/src/IceGrid/DescriptorHelper.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp') diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp index 705b757e319..6d4767398c8 100644 --- a/cpp/src/IceGrid/DescriptorHelper.cpp +++ b/cpp/src/IceGrid/DescriptorHelper.cpp @@ -1705,8 +1705,8 @@ NodeHelper::getServerInfos(const string& application, map& s } } -DistributionDescriptorDict -NodeHelper::getDistributions(const string& server) const +bool +NodeHelper::hasDistributions(const string& server) const { // // Get the server distributions to patch. @@ -1719,14 +1719,14 @@ NodeHelper::getDistributions(const string& server) const { if(!p->second.getServerInstance()->distrib.icepatch.empty()) { - distribs.insert(make_pair(p->first, p->second.getServerInstance()->distrib)); + return true; } } for(p = _servers.begin(); p != _servers.end(); ++p) { if(!p->second.getServerInstance()->distrib.icepatch.empty()) { - distribs.insert(make_pair(p->first, p->second.getServerInstance()->distrib)); + return true; } } } @@ -1736,16 +1736,21 @@ NodeHelper::getDistributions(const string& server) const if(p == _serverInstances.end()) { p = _servers.find(server); + if(p == _servers.end()) + { + p = _serverInstances.end(); + } } if(p != _serverInstances.end()) { if(!p->second.getServerInstance()->distrib.icepatch.empty()) { - distribs.insert(make_pair(server, p->second.getServerInstance()->distrib)); + return true; } } } - return distribs; + + return false; } bool @@ -2217,17 +2222,16 @@ ApplicationHelper::getServerInfos() const } void -ApplicationHelper::getDistributions(DistributionDescriptor& distribution, - map& nodeDistributions, +ApplicationHelper::getDistributions(DistributionDescriptor& distribution, + vector& nodes, const string& server) const { distribution = _instance.distrib; for(NodeHelperDict::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n) { - DistributionDescriptorDict distrib = n->second.getDistributions(server); - if(!distrib.empty()) + if(n->second.hasDistributions(server)) { - nodeDistributions.insert(make_pair(n->first, distrib)); + nodes.push_back(n->first); if(!server.empty()) { break; @@ -2236,7 +2240,7 @@ ApplicationHelper::getDistributions(DistributionDescriptor& distribution, else if(!_instance.distrib.icepatch.empty() && (server.empty() && n->second.hasServers() || n->second.hasServer(server))) { - nodeDistributions.insert(make_pair(n->first, distrib)); + nodes.push_back(n->first); } } } -- cgit v1.2.3