Browse Source

HPCC-8461 Configmgr - Fix filesBasedn of dali and espsmc to match LDAP

- XSLs will populate filesBasedn for espsmc and dali
- XSDs will not contain the filesBasedn field for the UI

Signed-off-by: Gleb Aronsky <gleb.aronsky@lexisnexis.com>
Gleb Aronsky 12 years ago
parent
commit
02de782436

+ 1 - 6
esp/files/scripts/configmgr/configmgr.js

@@ -924,14 +924,9 @@ function handleConfigCellClickEvent(oArgs, caller, isComplex) {
 
     if ((record.getData('compType') == 'EspProcess' || record.getData('compType') == "DaliServerProcess") && (record.getData('params').indexOf('subType=EspBinding') != -1 || record.getData('_key') == "ldapServer") && (typeof(column.field) !== 'undefined' && (column.field == 'service' || column.field == 'value')))
     {
-      bUpdateFilesBasedn = true;
       if (column.field == 'service')
         refreshConfirm = false;
     }
-    else if (record.getData('compType') == 'LDAPServerProcess' && record.getData('name') == 'filesBasedn')
-      bUpdateFilesBasedn = true;
-    else
-      bUpdateFilesBasedn = false;
 
     var xmlArgs = argsToXml(category, params, attrName, oldValue, newValue, recordIndex + 1, record.getData(column.key + '_onChange'));
     YAHOO.util.Connect.asyncRequest('POST', '/WsDeploy/SaveSetting', {
@@ -1048,7 +1043,7 @@ function handleConfigCellClickEvent(oArgs, caller, isComplex) {
       },
       scope: this
     },
-    top.document.navDT.getFileName(true) + 'XmlArgs=' + xmlArgs + '&bUpdateFilesBasedn='  + bUpdateFilesBasedn);
+    top.document.navDT.getFileName(true) + 'XmlArgs=' + xmlArgs);
   };
 
   if (typeof (caller.editors) === 'undefined') {

+ 0 - 1
esp/scm/WsDeploy.ecm

@@ -137,7 +137,6 @@ ESPresponse [exceptions_inline, encode(0)] DisplaySettingsResponse
 ESPrequest SaveSettingRequest
 {
     string XmlArgs;
-    bool bUpdateFilesBasedn;
     ESPstruct WsDeployReqInfo ReqInfo;
 };
 

+ 0 - 124
esp/services/WsDeploy/WsDeployService.cpp

@@ -993,7 +993,6 @@ bool CWsDeployFileInfo::saveSetting(IEspContext &context, IEspSaveSettingRequest
   checkForRefresh(context, &req.getReqInfo(), true);
 
   const char* xmlArg = req.getXmlArgs();
-  bool bUpdateFilesBasedn = req.getBUpdateFilesBasedn();
   Owned<IPropertyTree> pEnvRoot = &m_Environment->getPTree();
   IPropertyTree* pEnvSoftware = pEnvRoot->queryPropTree(XML_TAG_SOFTWARE);
   IPropertyTree* pEnvHardware = pEnvRoot->queryPropTree(XML_TAG_HARDWARE);
@@ -1273,129 +1272,6 @@ bool CWsDeployFileInfo::saveSetting(IEspContext &context, IEspSaveSettingRequest
         }
       }
 
-      if (bUpdateFilesBasedn == true && strcmp(pszAttrName, TAG_LDAPSERVER) == 0 && strcmp(pszCompType, XML_TAG_DALISERVERPROCESS) == 0 && pComp != NULL)
-      {
-        Owned<IPropertyTree> pActiveEnvRoot = getEnvTree(context, &req.getReqInfo());
-
-        StringBuffer ldapXPath;
-        StringBuffer strFilesBasedn;
-
-        if (pszNewValue && *pszNewValue)
-        {
-          ldapXPath.appendf("./%s/%s[%s=\"%s\"]", XML_TAG_SOFTWARE, XML_TAG_LDAPSERVERPROCESS, XML_ATTR_NAME, pszNewValue);
-          strFilesBasedn.appendf("%s",pActiveEnvRoot->queryPropTree(ldapXPath.str())->queryProp(XML_ATTR_FILESBASEDN));
-        }
-
-        pComp->setProp(XML_ATTR_FILESBASEDN,strFilesBasedn);
-      }
-      else if (bUpdateFilesBasedn == true && pComp != NULL && strcmp(pszCompType, XML_TAG_ESPPROCESS) == 0 && strcmp(pszAttrName, TAG_SERVICE) == 0 && pszNewValue && *pszNewValue)
-      {
-        Owned<IPropertyTree> pActiveEnvRoot = getEnvTree(context, &req.getReqInfo());
-
-        StringBuffer ldapXPath;
-        StringBuffer espServiceXPath;
-        StringBuffer espProcessXPath;
-        StringBuffer strFilesBasedn;
-
-        espServiceXPath.appendf("./%s/%s[%s=\"%s\"]", XML_TAG_SOFTWARE, XML_TAG_ESPSERVICE, XML_ATTR_NAME, pszNewValue);
-        espProcessXPath.appendf("./%s/%s/[%s=\"%s\"]/%s", XML_TAG_SOFTWARE, XML_TAG_ESPPROCESS, XML_ATTR_NAME, pszCompName, XML_TAG_AUTHENTICATION);
-
-        StringBuffer strLDAPName(pActiveEnvRoot->queryPropTree(espProcessXPath.str())->queryProp(XML_ATTR_LDAPSERVER));
-
-        if (strLDAPName.length() > 0)
-        {
-          ldapXPath.appendf("./%s/%s[%s=\"%s\"]", XML_TAG_SOFTWARE, XML_TAG_LDAPSERVERPROCESS, XML_ATTR_NAME, strLDAPName.str());
-          strFilesBasedn.appendf("%s", pActiveEnvRoot->queryPropTree(ldapXPath.str())->queryProp(XML_ATTR_FILESBASEDN));
-        }
-        pActiveEnvRoot->queryPropTree(espServiceXPath.str())->setProp(XML_ATTR_FILESBASEDN, strFilesBasedn);
-      }
-      else if (bUpdateFilesBasedn == true && strcmp(pszAttrName, TAG_LDAPSERVER) == 0 && strcmp(pszCompType, XML_TAG_ESPPROCESS) == 0 && pComp != NULL)
-      {
-        Owned<IPropertyTree> pActiveEnvRoot = getEnvTree(context, &req.getReqInfo());
-
-        StringBuffer ldapXPath;
-        StringBuffer espBindingXPath;
-        StringBuffer espProcessXPath;
-        StringBuffer strFilesBasedn;
-
-        if (pszNewValue != NULL && *pszNewValue != 0)
-        {
-          ldapXPath.appendf("./%s/%s[%s=\"%s\"]", XML_TAG_SOFTWARE, XML_TAG_LDAPSERVERPROCESS, XML_ATTR_NAME, pszNewValue);
-          strFilesBasedn.appendf("%s",pActiveEnvRoot->queryPropTree(ldapXPath.str())->queryProp(XML_ATTR_FILESBASEDN));
-        }
-
-        espBindingXPath.appendf("./%s/%s[%s=\"%s\"]/%s", XML_TAG_SOFTWARE, XML_TAG_ESPPROCESS, XML_ATTR_NAME, pszCompName, XML_TAG_ESPBINDING);
-
-        Owned<IPropertyTreeIterator> iterItems = pActiveEnvRoot->getElements(espBindingXPath.str());
-
-        ForEach(*iterItems)
-        {
-          IPropertyTree *pItem = &iterItems->query();
-          const char* service_name = pItem->queryProp(XML_ATTR_SERVICE);
-
-          espProcessXPath.clear().appendf("./%s/%s[%s=\"%s\"]", XML_TAG_SOFTWARE, XML_TAG_ESPSERVICE, XML_ATTR_NAME, service_name);
-
-          const char* service_type = pActiveEnvRoot->queryPropTree(espProcessXPath.str())->queryProp(XML_ATTR_BUILDSET);
-
-          if (service_type && *service_type && !strcmp(service_type, "espsmc"))
-            pActiveEnvRoot->queryPropTree(espProcessXPath.str())->setProp(XML_ATTR_FILESBASEDN, strFilesBasedn);
-        }
-      }
-      // Update of LDAP component filesBasedn
-      else if (bUpdateFilesBasedn == true && strcmp(pszAttrName, TAG_FILESBASEDN) == 0 && strcmp(pszCompType, XML_TAG_LDAPSERVERPROCESS) == 0 && pszCompName != NULL && pszNewValue != NULL)
-      {
-        // update dali
-        StringBuffer daliProcessXPath;
-        daliProcessXPath.appendf("./%s/%s", XML_TAG_SOFTWARE, XML_TAG_DALISERVERPROCESS);
-
-        Owned<IPropertyTree> pActiveEnvRoot = getEnvTree(context, &req.getReqInfo());
-        Owned<IPropertyTreeIterator> iterItems = pActiveEnvRoot->getElements(daliProcessXPath.str());
-
-        ForEach(*iterItems)
-        {
-          IPropertyTree *pItem = &iterItems->query();
-          const char* ldap_server = pItem->queryProp(XML_ATTR_LDAPSERVER);
-
-          // check if dali has this ldap server assigned before changing filesBasedn
-          if (ldap_server != NULL && strcmp(ldap_server, pszCompName) == 0)
-            pItem->setProp(XML_ATTR_FILESBASEDN, pszNewValue);
-        }
-
-        //update esp services
-        StringBuffer espProcessXPath;
-        StringBuffer espBindingXPath;
-        StringBuffer espServiceXPath;
-
-        espProcessXPath.appendf("./%s/%s", XML_TAG_SOFTWARE, XML_TAG_ESPPROCESS);
-        Owned<IPropertyTreeIterator> iterItems2 = pActiveEnvRoot->getElements(espProcessXPath.str());
-
-        ForEach(*iterItems2)
-        {
-          IPropertyTree *pItem = &iterItems2->query();
-          const char* ldap_server = pItem->queryPropTree(XML_TAG_AUTHENTICATION)->queryProp(XML_ATTR_LDAPSERVER);
-
-          if (ldap_server != NULL && strcmp(ldap_server, pszCompName) == 0)
-          {
-            espBindingXPath.clear().appendf("%s[%s=\"%s\"]/%s", espProcessXPath.str(), XML_ATTR_NAME, pItem->queryProp(XML_ATTR_NAME), XML_TAG_ESPBINDING);
-
-            Owned<IPropertyTreeIterator> iterItems3 = pActiveEnvRoot->getElements(espBindingXPath.str());
-
-            ForEach(*iterItems3)
-            {
-              IPropertyTree *pItem = &iterItems3->query();
-              const char* service_name = pItem->queryProp(XML_ATTR_SERVICE);
-
-              espServiceXPath.clear().appendf("./%s/%s[%s=\"%s\"]", XML_TAG_SOFTWARE, XML_TAG_ESPSERVICE, XML_ATTR_NAME, service_name);
-
-              const char* service_type = pActiveEnvRoot->queryPropTree(espServiceXPath.str())->queryProp(XML_ATTR_BUILDSET);
-
-              if (service_type && *service_type && !strcmp(service_type, "espsmc"))
-                pActiveEnvRoot->queryPropTree(espServiceXPath.str())->setProp(XML_ATTR_FILESBASEDN, pszNewValue);
-            }
-          }
-        }
-      }
-
       if (!pComp)
         throw MakeStringException(-1, "No such component in environment: '%s' named '%s'.", pszCompType, pszCompName);
       else

+ 3 - 5
initfiles/componentfiles/configxml/@temp/esp_service_WsSMC.xsl

@@ -561,12 +561,10 @@ This is required by its binding with ESP service '<xsl:value-of select="$espServ
         <EspService name="{$serviceName}" type="{$serviceType}" plugin="{$servicePlugin}">
             <xsl:variable name="ldapservername" select="$bindingNode/../Authentication/@ldapServer"/>
             <xsl:choose>
-                <xsl:when test="string(@filesBasedn) != ''">
-                    <Files basedn="{@filesBasedn}"/>
+                <xsl:when test="$ldapservername != ''">
+                <xsl:variable name="filesbasedn" select="/Environment/Software/LDAPServerProcess[@name=$ldapservername]/@filesBasedn"/>
+                <Files basedn="{$filesbasedn}"/>
                 </xsl:when>
-                <xsl:otherwise>
-                    <Files basedn="ou=Files,ou=ecl"/>
-                </xsl:otherwise>
             </xsl:choose>
             <Resources>
                 <xsl:for-each select="../EspProcess[Authentication/@ldapServer=$ldapservername]/EspBinding">

+ 0 - 7
initfiles/componentfiles/configxml/dali.xsd

@@ -327,13 +327,6 @@
         </xs:restriction>
       </xs:simpleType>
     </xs:attribute>
-    <xs:attribute name="filesBasedn" type="xs:string" use="required" default="ou=Files,ou=ecl">
-      <xs:annotation>
-        <xs:appinfo>
-          <viewType>hidden</viewType>
-        </xs:appinfo>
-      </xs:annotation>
-    </xs:attribute>
     <xs:attribute name="filesDefaultUser" use="optional" type="xs:string">
       <xs:annotation>
         <xs:appinfo>

+ 4 - 1
initfiles/componentfiles/configxml/dali.xsl

@@ -259,8 +259,11 @@
         </xsl:element>
         <xsl:if test="string(@ldapServer) != ''">
           <xsl:element name="ldapSecurity">
-            <xsl:copy-of select="@ldapProtocol | @authMethod | @maxConnections | @workunitsBasedn | @filesBasedn | @filesDefaultUser | @filesDefaultPassword"/>
+            <xsl:copy-of select="@ldapProtocol | @authMethod | @maxConnections | @workunitsBasedn | @filesDefaultUser | @filesDefaultPassword"/>
             <xsl:variable name="ldapServerName" select="@ldapServer"/>
+            <xsl:attribute name="filesBasedn">
+                <xsl:value-of select="/Environment/Software/LDAPServerProcess[@name=$ldapServerName]/@filesBasedn"/>
+            </xsl:attribute>
             <xsl:variable name="ldapServerNode" select="/Environment/Software/LDAPServerProcess[@name=$ldapServerName]"/>
             <xsl:if test="not($ldapServerNode)">
               <xsl:message terminate="yes">

+ 0 - 7
initfiles/componentfiles/configxml/espsmcservice.xsd.in

@@ -62,13 +62,6 @@
                     </xs:appinfo>
                 </xs:annotation>
             </xs:attribute>
-            <xs:attribute name="filesBasedn" type="xs:string" use="optional" default="ou=Files,ou=ecl">
-                <xs:annotation>
-                    <xs:appinfo>
-                        <viewType>hidden</viewType>
-                    </xs:appinfo>
-                </xs:annotation>
-            </xs:attribute>
             <xs:attribute name="pluginsPath" type="relativePath" use="optional" default="${PLUGINS_PATH}">
                 <xs:annotation>
                     <xs:appinfo>

+ 0 - 2
initfiles/etc/DIR_NAME/environment.xml.in

@@ -320,7 +320,6 @@
   <DaliServerProcess build="${projname}_${version}-${stagever}"
                      buildSet="dali"
                      environment="${CONFIG_DIR}/${ENV_XML_FILE}"
-                     filesBasedn="ou=Files,ou=ecl"
                      name="mydali"
                      recoverFromIncErrors="true">
    <Instance computer="localhost"
@@ -594,7 +593,6 @@
               name="EclWatch"
               pluginsPath="${PLUGINS_PATH}"
               syntaxCheckQueue=""
-              filesBasedn="ou=Files,ou=ecl"
               viewTimeout="1000"
               warnIfCpuLoadOver="95"
               warnIfFreeMemoryUnder="5"