Explorar o código

HPCC-22467 assign support node ips even no any esp,roxie and thor requested.

xwang2713 %!s(int64=6) %!d(string=hai) anos
pai
achega
84b6c372b6
Modificáronse 1 ficheiros con 24 adicións e 11 borrados
  1. 24 11
      deployment/deployutils/wizardInputs.cpp

+ 24 - 11
deployment/deployutils/wizardInputs.cpp

@@ -86,13 +86,26 @@ void CWizardInputs::setEnvironment()
   if(m_pXml->hasProp("@ipList"))
     formIPList(m_pXml->queryProp("@ipList"), m_ipaddress);
 
+  if(m_pXml->hasProp("@roxieNodes"))
+    m_roxieNodes = atoi(m_pXml->queryProp("@roxieNodes"));
+
+  if(m_pXml->hasProp("@thorNodes"))
+    m_thorNodes = atoi(m_pXml->queryProp("@thorNodes"));
+
+  m_espNodes = 1;
+  if(m_pXml->hasProp("@espNodes"))
+    m_espNodes = atoi(m_pXml->queryProp("@espNodes"));
+
   if(m_pXml->hasProp("@supportNodes"))
   {
     m_supportNodes = atoi(m_pXml->queryProp("@supportNodes"));
 
     if (m_supportNodes)
     {
-      if (m_ipaddress.length() > 0 && m_ipaddress.length() > m_supportNodes)
+      if (m_ipaddress.length() > 0 &&
+         ((m_ipaddress.length() > m_supportNodes) ||
+         ((m_ipaddress.length() == m_supportNodes) &&
+          (m_roxieNodes == 0) && (m_thorNodes == 0) && (m_espNodes == 0))))
       {
         for(unsigned i = 0; i < m_supportNodes; i++)
           m_ipaddressSupport.append(m_ipaddress.item(i));
@@ -104,15 +117,6 @@ void CWizardInputs::setEnvironment()
     }
   }
 
-  if(m_pXml->hasProp("@roxieNodes"))
-    m_roxieNodes = atoi(m_pXml->queryProp("@roxieNodes"));
-
-  if(m_pXml->hasProp("@thorNodes"))
-    m_thorNodes = atoi(m_pXml->queryProp("@thorNodes"));
-
-  m_espNodes = 1;
-  if(m_pXml->hasProp("@espNodes"))
-    m_espNodes = atoi(m_pXml->queryProp("@espNodes"));
 
 
   if(m_pXml->hasProp("@dbuser"))
@@ -278,6 +282,9 @@ void CWizardInputs::setWizardRules()
 
 CInstDetails* CWizardInputs::getServerIPMap(const char* compName, const char* buildSetName,const IPropertyTree* pEnvTree, unsigned numOfNodes)
 {
+  if (numOfNodes == 0)
+    return NULL;
+
   StringBuffer xPath;
   xPath.appendf("./Programs/Build/BuildSet[@name=\"%s\"]",buildSetName);
   IPropertyTree* pBuildSet = pEnvTree->queryPropTree(xPath.str());
@@ -296,7 +303,13 @@ CInstDetails* CWizardInputs::getServerIPMap(const char* compName, const char* bu
 
     if (m_ipaddress.ordinality() + m_supportNodes == 1 && instDetails == NULL && strcmp(buildSetName, "backupnode"))
     {
-      instDetails = new CInstDetails(compName, m_ipaddress.item(0));
+      if (m_ipaddress.ordinality() > 0)
+        instDetails = new CInstDetails(compName, m_ipaddress.item(0));
+      else if (m_ipaddressSupport.ordinality() > 0)
+        instDetails = new CInstDetails(compName, m_ipaddressSupport.item(0));
+      else
+        return instDetails;
+
       m_compIpMap.setValue(buildSetName,instDetails);
       return instDetails;
     }