summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorHelper.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-09-14 11:10:09 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-09-14 11:10:09 +0000
commit6fae20c43ce0e8a1ee93d864a53416318b93c22a (patch)
tree323d80817c7070f0b2dc6e056c30be88aa912af3 /cpp/src/IceGrid/DescriptorHelper.cpp
parentadded minimal demo. (diff)
downloadice-6fae20c43ce0e8a1ee93d864a53416318b93c22a.tar.bz2
ice-6fae20c43ce0e8a1ee93d864a53416318b93c22a.tar.xz
ice-6fae20c43ce0e8a1ee93d864a53416318b93c22a.zip
Fixes
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp270
1 files changed, 177 insertions, 93 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index 6ec5ed68b49..8eeba49895e 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -1356,18 +1356,21 @@ ServerInstanceHelper::getIds(multiset<string>& adapterIds, multiset<Ice::Identit
NodeHelper::NodeHelper(const string& name, const NodeDescriptor& descriptor, const Resolver& appResolve) :
_name(name),
- _desc(descriptor)
+ _definition(descriptor)
{
if(_name.empty())
{
appResolve.exception("invalid node: empty name");
}
- Resolver resolve(appResolve, _desc.variables, false);
+ Resolver resolve(appResolve, _definition.variables, false);
resolve.setReserved("node", _name);
resolve.setContext("node `" + _name + "'");
- for(ServerInstanceDescriptorSeq::const_iterator p = _desc.serverInstances.begin();
- p != _desc.serverInstances.end(); ++p)
+
+ _instance = instantiate(resolve);
+
+ ServerInstanceDescriptorSeq::const_iterator p;
+ for(p = _definition.serverInstances.begin(); p != _definition.serverInstances.end(); ++p)
{
ServerInstanceHelper helper(*p, resolve);
if(!_serverInstances.insert(make_pair(helper.getId(), helper)).second)
@@ -1375,7 +1378,9 @@ NodeHelper::NodeHelper(const string& name, const NodeDescriptor& descriptor, con
resolve.exception("duplicate server `" + helper.getId() + "' in node `" + _name + "'");
}
}
- for(ServerDescriptorSeq::const_iterator q = _desc.servers.begin(); q != _desc.servers.end(); ++q)
+
+ ServerDescriptorSeq::const_iterator q;
+ for(q = _definition.servers.begin(); q != _definition.servers.end(); ++q)
{
ServerInstanceHelper helper(*q, resolve);
if(!_servers.insert(make_pair(helper.getId(), helper)).second)
@@ -1390,7 +1395,7 @@ NodeHelper::NodeHelper(const string& name, const NodeDescriptor& descriptor, con
bool
NodeHelper::operator==(const NodeHelper& helper) const
{
- if(_desc.variables != helper._desc.variables)
+ if(_definition.variables != helper._definition.variables)
{
return false;
}
@@ -1414,6 +1419,14 @@ NodeHelper::operator!=(const NodeHelper& helper) const
return !operator==(helper);
}
+NodeDescriptor
+NodeHelper::instantiate(const Resolver& resolve) const
+{
+ NodeDescriptor desc = _definition;
+ desc.loadFactor = resolve(_definition.loadFactor, "load factor");
+ return desc;
+}
+
NodeUpdateDescriptor
NodeHelper::diff(const NodeHelper& helper) const
{
@@ -1422,9 +1435,13 @@ NodeHelper::diff(const NodeHelper& helper) const
NodeUpdateDescriptor update;
update.name = _name;
+ if(_definition.loadFactor != helper._definition.loadFactor)
+ {
+ update.loadFactor = new BoxedLoadFactor(_definition.loadFactor);
+ }
- update.variables = getDictUpdatedElts(helper._desc.variables, _desc.variables);
- update.removeVariables = getDictRemovedElts(helper._desc.variables, _desc.variables);
+ update.variables = getDictUpdatedElts(helper._definition.variables, _definition.variables);
+ update.removeVariables = getDictRemovedElts(helper._definition.variables, _definition.variables);
ServerInstanceHelperDict updated = getDictUpdatedElts(helper._serverInstances, _serverInstances);
for(ServerInstanceHelperDict::const_iterator p = updated.begin(); p != updated.end(); ++p)
@@ -1451,7 +1468,12 @@ NodeHelper::update(const NodeUpdateDescriptor& update, const Resolver& appResolv
//
// Update the variables.
//
- _desc.variables = updateDictElts(_desc.variables, update.variables, update.removeVariables);
+ _definition.variables = updateDictElts(_definition.variables, update.variables, update.removeVariables);
+
+ if(update.loadFactor)
+ {
+ _definition.loadFactor = update.loadFactor->value;
+ }
//
// Remove the servers and server instances.
@@ -1464,14 +1486,14 @@ NodeHelper::update(const NodeUpdateDescriptor& update, const Resolver& appResolv
for(map<string, string>::const_iterator p = update.variables.begin(); p != update.variables.end(); ++p)
{
- _desc.variables[p->first] = p->second;
+ _definition.variables[p->first] = p->second;
}
//
// NOTE: It's important to create the resolver *after* updating
// the node variables!
//
- Resolver resolve(appResolve, _desc.variables, false);
+ Resolver resolve(appResolve, _definition.variables, false);
resolve.setReserved("node", _name);
resolve.setContext("node `" + _name + "'");
@@ -1545,17 +1567,19 @@ NodeHelper::update(const NodeUpdateDescriptor& update, const Resolver& appResolv
//
// Update the node descriptor with the new server instances and servers.
//
- _desc.serverInstances.clear();
+ _definition.serverInstances.clear();
for(r = _serverInstances.begin(); r != _serverInstances.end(); ++r)
{
- _desc.serverInstances.push_back(r->second.getDescriptor());
+ _definition.serverInstances.push_back(r->second.getDescriptor());
}
- _desc.servers.clear();
+ _definition.servers.clear();
for(r = _servers.begin(); r != _servers.end(); ++r)
{
- _desc.servers.push_back(r->second.getDefinition());
+ _definition.servers.push_back(r->second.getDefinition());
}
+
+ _instance = instantiate(resolve);
}
void
@@ -1577,7 +1601,13 @@ NodeHelper::getIds(multiset<string>& serverIds, multiset<string>& adapterIds, mu
const NodeDescriptor&
NodeHelper::getDescriptor() const
{
- return _desc;
+ return _definition;
+}
+
+const NodeDescriptor&
+NodeHelper::getInstance() const
+{
+ return _instance;
}
void
@@ -1607,7 +1637,7 @@ NodeHelper::getPatchDirs(const string& patch, const Resolver& appResolve) const
{
Ice::StringSeq servers;
set<string> directories;
- Resolver resolve(appResolve, _desc.variables, false);
+ Resolver resolve(appResolve, _definition.variables, false);
ServerInstanceHelperDict::const_iterator p;
for(p = _serverInstances.begin(); p != _serverInstances.end(); ++p)
{
@@ -1631,11 +1661,11 @@ NodeHelper::print(Output& out) const
{
out << nl << "node '" << _name << "'";
out << sb;
- if(!_desc.variables.empty())
+ if(!_definition.variables.empty())
{
out << nl << "variables";
out << sb;
- for(StringStringDict::const_iterator q = _desc.variables.begin(); q != _desc.variables.end(); ++q)
+ for(StringStringDict::const_iterator q = _definition.variables.begin(); q != _definition.variables.end(); ++q)
{
out << nl << q->first << " = '" << q->second << "'";
}
@@ -1720,11 +1750,11 @@ NodeHelper::printDiff(Output& out, const NodeHelper& helper) const
void
NodeHelper::validate(const Resolver& appResolve) const
{
- Resolver resolve(appResolve, _desc.variables, false);
+ Resolver resolve(appResolve, _definition.variables, false);
resolve.setReserved("node", _name);
resolve.setContext("node `" + _name + "'");
- for(StringStringDict::const_iterator p = _desc.variables.begin(); p != _desc.variables.end(); ++p)
+ for(StringStringDict::const_iterator p = _definition.variables.begin(); p != _definition.variables.end(); ++p)
{
if(p->first == "")
{
@@ -1734,48 +1764,90 @@ NodeHelper::validate(const Resolver& appResolve) const
}
ApplicationHelper::ApplicationHelper(const ApplicationDescriptor& desc) :
- _desc(desc)
+ _definition(desc)
{
- if(_desc.name.empty())
+ if(_definition.name.empty())
{
throw DeploymentException("invalid application: empty name");
}
- Resolver resolve(*this, _desc.name, desc.variables);
- for(NodeDescriptorDict::const_iterator p = _desc.nodes.begin(); p != _desc.nodes.end(); ++p)
+ Resolver resolve(*this, _definition.name, desc.variables);
+ for(NodeDescriptorDict::const_iterator p = _definition.nodes.begin(); p != _definition.nodes.end(); ++p)
{
_nodes.insert(make_pair(p->first, NodeHelper(p->first, p->second, resolve)));
}
+ _instance = instantiate(resolve);
+
validate(resolve);
}
+ApplicationDescriptor
+ApplicationHelper::instantiate(const Resolver& resolve) const
+{
+ ApplicationDescriptor desc = _definition;
+
+ ReplicatedAdapterDescriptorSeq::iterator r;
+ for(r = desc.replicatedAdapters.begin(); r != desc.replicatedAdapters.end(); ++r)
+ {
+ r->loadBalancing->nReplicas = resolve(r->loadBalancing->nReplicas, "number of replicas");
+ AdaptiveLoadBalancingPolicyPtr alb = AdaptiveLoadBalancingPolicyPtr::dynamicCast(r->loadBalancing);
+ if(alb)
+ {
+ alb->loadSample = resolve(alb->loadSample, "load sample");
+ }
+
+ for(ObjectDescriptorSeq::iterator q = r->objects.begin(); q != r->objects.end(); ++q)
+ {
+ q->type = resolve(q->type, "object type");
+ q->id.name = resolve(q->id.name, "object identity name", false);
+ q->id.category = resolve(q->id.category, "object identity category");
+ }
+ }
+
+ desc.nodes.clear();
+ for(NodeHelperDict::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n)
+ {
+ desc.nodes.insert(make_pair(n->first, n->second.getInstance()));
+ }
+
+ return desc;
+}
+
ApplicationUpdateDescriptor
ApplicationHelper::diff(const ApplicationHelper& helper)
{
ApplicationUpdateDescriptor update;
- update.name = _desc.name;
- if(_desc.description != helper._desc.description)
+ update.name = _definition.name;
+ if(_definition.description != helper._definition.description)
{
- update.description = new BoxedDescription(_desc.description);
+ update.description = new BoxedDescription(_definition.description);
}
- update.variables = getDictUpdatedElts(helper._desc.variables, _desc.variables);
- update.removeVariables = getDictRemovedElts(helper._desc.variables, _desc.variables);
+ update.variables = getDictUpdatedElts(helper._definition.variables, _definition.variables);
+ update.removeVariables = getDictRemovedElts(helper._definition.variables, _definition.variables);
- update.patchs = getDictUpdatedElts(helper._desc.patchs, _desc.patchs);
- update.removePatchs = getDictRemovedElts(helper._desc.patchs, _desc.patchs);
+ update.patchs = getDictUpdatedElts(helper._definition.patchs, _definition.patchs);
+ update.removePatchs = getDictRemovedElts(helper._definition.patchs, _definition.patchs);
+ //
+ // TODO: I don't think that's correct since the load balancing policy is a class.
+ //
GetReplicatedAdapterId rk;
- update.replicatedAdapters = getSeqUpdatedElts(helper._desc.replicatedAdapters, _desc.replicatedAdapters, rk);
- update.removeReplicatedAdapters =getSeqRemovedElts(helper._desc.replicatedAdapters, _desc.replicatedAdapters, rk);
+ update.replicatedAdapters =
+ getSeqUpdatedElts(helper._definition.replicatedAdapters, _definition.replicatedAdapters, rk);
+ update.removeReplicatedAdapters =
+ getSeqRemovedElts(helper._definition.replicatedAdapters, _definition.replicatedAdapters, rk);
TemplateDescriptorEqual tmpleq;
- update.serverTemplates = getDictUpdatedElts(helper._desc.serverTemplates, _desc.serverTemplates, tmpleq);
- update.removeServerTemplates = getDictRemovedElts(helper._desc.serverTemplates, _desc.serverTemplates);
- update.serviceTemplates = getDictUpdatedElts(helper._desc.serviceTemplates, _desc.serviceTemplates, tmpleq);
- update.removeServiceTemplates = getDictRemovedElts(helper._desc.serviceTemplates, _desc.serviceTemplates);
+ update.serverTemplates =
+ getDictUpdatedElts(helper._definition.serverTemplates, _definition.serverTemplates, tmpleq);
+ update.removeServerTemplates = getDictRemovedElts(helper._definition.serverTemplates, _definition.serverTemplates);
+ update.serviceTemplates =
+ getDictUpdatedElts(helper._definition.serviceTemplates, _definition.serviceTemplates, tmpleq);
+ update.removeServiceTemplates =
+ getDictRemovedElts(helper._definition.serviceTemplates, _definition.serviceTemplates);
NodeHelperDict updated = getDictUpdatedElts(helper._nodes, _nodes);
for(NodeHelperDict::const_iterator p = updated.begin(); p != updated.end(); ++p)
@@ -1807,22 +1879,21 @@ ApplicationHelper::update(const ApplicationUpdateDescriptor& update)
{
if(update.description)
{
- _desc.description = update.description->value;
+ _definition.description = update.description->value;
}
- _desc.replicatedAdapters = updateSeqElts(_desc.replicatedAdapters, update.replicatedAdapters,
- update.removeReplicatedAdapters, GetReplicatedAdapterId());
+ _definition.replicatedAdapters = updateSeqElts(_definition.replicatedAdapters, update.replicatedAdapters,
+ update.removeReplicatedAdapters, GetReplicatedAdapterId());
- _desc.variables = updateDictElts(_desc.variables, update.variables, update.removeVariables);
-
- _desc.patchs = updateDictElts(_desc.patchs, update.patchs, update.removePatchs);
+ _definition.variables = updateDictElts(_definition.variables, update.variables, update.removeVariables);
- _desc.serverTemplates = updateDictElts(_desc.serverTemplates, update.serverTemplates,
- update.removeServerTemplates);
-
- _desc.serviceTemplates = updateDictElts(_desc.serviceTemplates, update.serviceTemplates,
- update.removeServiceTemplates);
+ _definition.patchs = updateDictElts(_definition.patchs, update.patchs, update.removePatchs);
+
+ _definition.serverTemplates = updateDictElts(_definition.serverTemplates, update.serverTemplates,
+ update.removeServerTemplates);
+ _definition.serviceTemplates = updateDictElts(_definition.serviceTemplates, update.serviceTemplates,
+ update.removeServiceTemplates);
for(Ice::StringSeq::const_iterator r = update.removeNodes.begin(); r != update.removeNodes.end(); ++r)
{
@@ -1833,7 +1904,7 @@ ApplicationHelper::update(const ApplicationUpdateDescriptor& update)
// NOTE: It's important to create the resolver *after* updating
// the application variables!
//
- Resolver resolve(*this, _desc.name, _desc.variables);
+ Resolver resolve(*this, _definition.name, _definition.variables);
//
// We first update or add the nodes from the update descriptor and
@@ -1869,13 +1940,18 @@ ApplicationHelper::update(const ApplicationUpdateDescriptor& update)
//
// Update the application descriptor.
//
- _desc.nodes.clear();
+ _definition.nodes.clear();
for(NodeHelperDict::const_iterator t = _nodes.begin(); t != _nodes.end(); ++t)
{
- _desc.nodes.insert(make_pair(t->first, t->second.getDescriptor()));
+ _definition.nodes.insert(make_pair(t->first, t->second.getDescriptor()));
}
//
+ // Update the application descriptor instance.
+ //
+ _instance = instantiate(resolve);
+
+ //
// Validate the new application descriptor.
//
validate(resolve);
@@ -1893,7 +1969,7 @@ ApplicationHelper::getIds(set<string>& serverIds, set<string>& adapterIds, set<I
p->second.getIds(sIds, aIds, oIds);
}
ReplicatedAdapterDescriptorSeq::const_iterator r;
- for(r = _desc.replicatedAdapters.begin(); r != _desc.replicatedAdapters.end(); ++r)
+ for(r = _definition.replicatedAdapters.begin(); r != _definition.replicatedAdapters.end(); ++r)
{
aIds.insert(r->id);
for(ObjectDescriptorSeq::const_iterator o = r->objects.begin(); o != r->objects.end(); ++o)
@@ -1910,14 +1986,20 @@ ApplicationHelper::getIds(set<string>& serverIds, set<string>& adapterIds, set<I
const ApplicationDescriptor&
ApplicationHelper::getDescriptor() const
{
- return _desc;
+ return _definition;
+}
+
+const ApplicationDescriptor&
+ApplicationHelper::getInstance() const
+{
+ return _instance;
}
TemplateDescriptor
ApplicationHelper::getServerTemplate(const string& name) const
{
- TemplateDescriptorDict::const_iterator p = _desc.serverTemplates.find(name);
- if(p == _desc.serverTemplates.end())
+ TemplateDescriptorDict::const_iterator p = _definition.serverTemplates.find(name);
+ if(p == _definition.serverTemplates.end())
{
throw DeploymentException("unknown server template `" + name + "'");
}
@@ -1927,8 +2009,8 @@ ApplicationHelper::getServerTemplate(const string& name) const
TemplateDescriptor
ApplicationHelper::getServiceTemplate(const string& name) const
{
- TemplateDescriptorDict::const_iterator p = _desc.serviceTemplates.find(name);
- if(p == _desc.serviceTemplates.end())
+ TemplateDescriptorDict::const_iterator p = _definition.serviceTemplates.find(name);
+ if(p == _definition.serviceTemplates.end())
{
throw DeploymentException("unknown service template `" + name + "'");
}
@@ -1938,8 +2020,8 @@ ApplicationHelper::getServiceTemplate(const string& name) const
PatchDescriptor
ApplicationHelper::getPatchDescriptor(const string& id) const
{
- PatchDescriptorDict::const_iterator p = _desc.patchs.find(id);
- if(p == _desc.patchs.end())
+ PatchDescriptorDict::const_iterator p = _definition.patchs.find(id);
+ if(p == _definition.patchs.end())
{
throw DeploymentException("unknown patch descriptor `" + id + "'");
}
@@ -1952,7 +2034,7 @@ ApplicationHelper::getServerInfos() const
map<string, ServerInfo> servers;
for(NodeHelperDict::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n)
{
- n->second.getServerInfos(_desc.name, servers);
+ n->second.getServerInfos(_definition.name, servers);
}
return servers;
}
@@ -1961,7 +2043,7 @@ map<string, pair<Ice::StringSeq, Ice::StringSeq> >
ApplicationHelper::getNodesPatchDirs(const string& patch) const
{
map<string, pair<Ice::StringSeq, Ice::StringSeq> > nodes;
- Resolver resolve(*this, _desc.name, _desc.variables);
+ Resolver resolve(*this, _definition.name, _definition.variables);
for(NodeHelperDict::const_iterator n = _nodes.begin(); n != _nodes.end(); ++n)
{
nodes.insert(make_pair(n->first, n->second.getPatchDirs(patch, resolve)));
@@ -1972,39 +2054,39 @@ ApplicationHelper::getNodesPatchDirs(const string& patch) const
void
ApplicationHelper::print(Output& out) const
{
- out << "application '" << _desc.name << "'";
+ out << "application '" << _definition.name << "'";
out << sb;
- if(!_desc.description.empty())
+ if(!_definition.description.empty())
{
- out << nl << "description = " << _desc.description;
+ out << nl << "description = " << _definition.description;
}
- if(!_desc.variables.empty())
+ if(!_definition.variables.empty())
{
out << nl << "variables";
out << sb;
- for(StringStringDict::const_iterator p = _desc.variables.begin(); p != _desc.variables.end();
+ for(StringStringDict::const_iterator p = _definition.variables.begin(); p != _definition.variables.end();
++p)
{
out << nl << p->first << " = '" << p->second << "'";
}
out << eb;
}
- if(!_desc.patchs.empty())
+ if(!_definition.patchs.empty())
{
out << nl << "patchs";
out << sb;
- for(PatchDescriptorDict::const_iterator p = _desc.patchs.begin(); p != _desc.patchs.end(); ++p)
+ for(PatchDescriptorDict::const_iterator p = _definition.patchs.begin(); p != _definition.patchs.end(); ++p)
{
out << nl << p->first;
}
out << eb;
}
- if(!_desc.replicatedAdapters.empty())
+ if(!_definition.replicatedAdapters.empty())
{
out << nl << "replicated adapters";
out << sb;
ReplicatedAdapterDescriptorSeq::const_iterator p;
- for(p = _desc.replicatedAdapters.begin(); p != _desc.replicatedAdapters.end(); ++p)
+ for(p = _definition.replicatedAdapters.begin(); p != _definition.replicatedAdapters.end(); ++p)
{
out << nl << "id = `" << p->id << "' load balancing = '";
if(RandomLoadBalancingPolicyPtr::dynamicCast(p->loadBalancing))
@@ -2027,23 +2109,23 @@ ApplicationHelper::print(Output& out) const
}
out << eb;
}
- if(!_desc.serverTemplates.empty())
+ if(!_definition.serverTemplates.empty())
{
out << nl << "server templates";
out << sb;
TemplateDescriptorDict::const_iterator p;
- for(p = _desc.serverTemplates.begin(); p != _desc.serverTemplates.end(); ++p)
+ for(p = _definition.serverTemplates.begin(); p != _definition.serverTemplates.end(); ++p)
{
out << nl << p->first;
}
out << eb;
}
- if(!_desc.serviceTemplates.empty())
+ if(!_definition.serviceTemplates.empty())
{
out << nl << "service templates";
out << sb;
TemplateDescriptorDict::const_iterator p;
- for(p = _desc.serviceTemplates.begin(); p != _desc.serviceTemplates.end(); ++p)
+ for(p = _definition.serviceTemplates.begin(); p != _definition.serviceTemplates.end(); ++p)
{
out << nl << p->first;
}
@@ -2062,7 +2144,7 @@ ApplicationHelper::print(Output& out) const
void
ApplicationHelper::printDiff(Output& out, const ApplicationHelper& helper) const
{
- out << "application `" << _desc.name << "'";
+ out << "application `" << _definition.name << "'";
out << sb;
//
@@ -2071,22 +2153,23 @@ ApplicationHelper::printDiff(Output& out, const ApplicationHelper& helper) const
{
TemplateDescriptorEqual eq;
- TemplateDescriptorDict updated = getDictUpdatedElts(helper._desc.serverTemplates, _desc.serverTemplates, eq);
- Ice::StringSeq removed = getDictRemovedElts(helper._desc.serverTemplates, _desc.serverTemplates);
+ TemplateDescriptorDict updated;
+ updated = getDictUpdatedElts(helper._definition.serverTemplates, _definition.serverTemplates, eq);
+ Ice::StringSeq removed = getDictRemovedElts(helper._definition.serverTemplates, _definition.serverTemplates);
if(!updated.empty() || !removed.empty())
{
out << nl << "server templates";
out << sb;
for(TemplateDescriptorDict::const_iterator p = updated.begin(); p != updated.end(); ++p)
{
- if(helper._desc.serverTemplates.find(p->first) == helper._desc.serverTemplates.end())
+ if(helper._definition.serverTemplates.find(p->first) == helper._definition.serverTemplates.end())
{
out << nl << "server template `" << p->first << "' added";
}
}
for(TemplateDescriptorDict::const_iterator q = updated.begin(); q != updated.end(); ++q)
{
- if(helper._desc.serverTemplates.find(q->first) != helper._desc.serverTemplates.end())
+ if(helper._definition.serverTemplates.find(q->first) != helper._definition.serverTemplates.end())
{
out << nl << "server template `" << q->first << "' updated";
}
@@ -2100,22 +2183,23 @@ ApplicationHelper::printDiff(Output& out, const ApplicationHelper& helper) const
}
{
TemplateDescriptorEqual eq;
- TemplateDescriptorDict updted = getDictUpdatedElts(helper._desc.serviceTemplates, _desc.serviceTemplates, eq);
- Ice::StringSeq removed = getDictRemovedElts(helper._desc.serviceTemplates, _desc.serviceTemplates);
- if(!updted.empty() || !removed.empty())
+ TemplateDescriptorDict updated;
+ updated = getDictUpdatedElts(helper._definition.serviceTemplates, _definition.serviceTemplates, eq);
+ Ice::StringSeq removed = getDictRemovedElts(helper._definition.serviceTemplates, _definition.serviceTemplates);
+ if(!updated.empty() || !removed.empty())
{
out << nl << "service templates";
out << sb;
- for(TemplateDescriptorDict::const_iterator p = updted.begin(); p != updted.end(); ++p)
+ for(TemplateDescriptorDict::const_iterator p = updated.begin(); p != updated.end(); ++p)
{
- if(helper._desc.serviceTemplates.find(p->first) == helper._desc.serviceTemplates.end())
+ if(helper._definition.serviceTemplates.find(p->first) == helper._definition.serviceTemplates.end())
{
out << nl << "service template `" << p->first << "' added";
}
}
- for(TemplateDescriptorDict::const_iterator q = updted.begin(); q != updted.end(); ++q)
+ for(TemplateDescriptorDict::const_iterator q = updated.begin(); q != updated.end(); ++q)
{
- if(helper._desc.serviceTemplates.find(q->first) != helper._desc.serviceTemplates.end())
+ if(helper._definition.serviceTemplates.find(q->first) != helper._definition.serviceTemplates.end())
{
out << nl << "service template `" << q->first << "' updated";
}
@@ -2163,23 +2247,23 @@ ApplicationHelper::printDiff(Output& out, const ApplicationHelper& helper) const
void
ApplicationHelper::validate(const Resolver& resolve) const
{
- for(StringStringDict::const_iterator p = _desc.variables.begin(); p != _desc.variables.end(); ++p)
+ for(StringStringDict::const_iterator p = _definition.variables.begin(); p != _definition.variables.end(); ++p)
{
if(p->first == "")
{
- resolve.exception("invalid application `" + _desc.name + "': empty variable name");
+ resolve.exception("invalid application `" + _definition.name + "': empty variable name");
}
}
TemplateDescriptorDict::const_iterator t;
- for(t = _desc.serverTemplates.begin(); t != _desc.serverTemplates.end(); ++t)
+ for(t = _definition.serverTemplates.begin(); t != _definition.serverTemplates.end(); ++t)
{
if(t->first == "")
{
resolve.exception("empty server template id");
}
}
- for(t = _desc.serviceTemplates.begin(); t != _desc.serviceTemplates.end(); ++t)
+ for(t = _definition.serviceTemplates.begin(); t != _definition.serviceTemplates.end(); ++t)
{
if(t->first == "")
{
@@ -2187,7 +2271,7 @@ ApplicationHelper::validate(const Resolver& resolve) const
}
}
- for(PatchDescriptorDict::const_iterator q = _desc.patchs.begin(); q != _desc.patchs.end(); ++q)
+ for(PatchDescriptorDict::const_iterator q = _definition.patchs.begin(); q != _definition.patchs.end(); ++q)
{
if(q->first == "")
{
@@ -2203,7 +2287,7 @@ ApplicationHelper::validate(const Resolver& resolve) const
multiset<Ice::Identity> objectIds;
set<string> replicatedAdapterIds;
ReplicatedAdapterDescriptorSeq::const_iterator r;
- for(r = _desc.replicatedAdapters.begin(); r != _desc.replicatedAdapters.end(); ++r)
+ for(r = _definition.replicatedAdapters.begin(); r != _definition.replicatedAdapters.end(); ++r)
{
if(r->id.empty())
{