35 cluster.
nodes.clear();
37 TiXmlDocument doc(confFile);
41 err<<
"XmlClusterLoader: unable to load "<<confFile;
47 TiXmlElement *root = doc.RootElement();
50 logger->
addError(
"XmlClusterLoader: unable to find root element");
54 if (root->ValueStr() !=
"cluster")
57 err<<
"XmlClusterLoader:No tag cluster found in"<<confFile;
62 if (root->Attribute(
"name"))
64 cluster.
name = root->Attribute(
"name");
67 if (root->Attribute(
"user"))
69 cluster.
user = root->Attribute(
"user");
72 TiXmlElement *nameserver = root->FirstChildElement(
"nameserver");
76 err<<
"XmlClusterLoader:No tag nameserver found in"<<confFile;
81 if (nameserver->Attribute(
"namespace"))
83 cluster.
nameSpace = nameserver->Attribute(
"namespace");
87 if (nameserver->Attribute(
"node"))
89 cluster.
nsNode = nameserver->Attribute(
"node");
93 if (nameserver->Attribute(
"ssh-options"))
95 cluster.
ssh_options = nameserver->Attribute(
"ssh-options");
101 for (TiXmlElement* node = root->FirstChildElement(
"node");
102 node !=
nullptr; node = node->NextSiblingElement(
"node"))
107 c_node.
name = node->GetText();
110 if (node->Attribute(
"display"))
116 if (node->Attribute(
"user"))
118 c_node.
user = node->Attribute(
"user");
125 if (node->Attribute(
"ssh-options"))
127 c_node.
ssh_options = node->Attribute(
"ssh-options");
130 if (node->Attribute(
"address"))
132 c_node.
address = node->Attribute(
"address");
138 cluster.
nodes.push_back(c_node);
Singleton class ErrorLogger.
void addError(const char *szError)
static ErrorLogger * Instance()
Singleton class ErrorLogger.
virtual ~XmlClusterLoader()
XmlClusterLoader(std::string szFileName)
load only one application indicated by its xml file name
bool parseXmlFile(Cluster &_cluster)
std::stringstream OSTRINGSTREAM
std::vector< ClusterNode > nodes