mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

andrug
08.33.2008 a9f53a39717e818e63d8bbb65e103ca7a7b04d68
allow java tuning for OpenDS instance
6 files modified
217 ■■■■■ changed files
opendj-sdk/opends/tests/system-tests/phases/configuration/configuration_opends.xml 7 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/system-tests/phases/installation/installation_opends.xml 4 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/system-tests/phases/parser/parser.py 127 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/system-tests/phases/parser/parser.xml 32 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/system-tests/phases/shared/functions/opendsadm.xml 24 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/system-tests/scenario/conf.dtd 23 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/tests/system-tests/phases/configuration/configuration_opends.xml
@@ -87,9 +87,10 @@
          
          <if expr="isAliveResult == FALSE">
            <call function="'StartDsWithScript'">
              { 'location'  : instance.getHost(),
                 'dsPath'   : instance.getInstallDir(),
                 'fileFd'   : cFileFd
              { 'location' : instance.getHost(),
                'instance' : instance,
                'dsPath'   : instance.getInstallDir(),
                'fileFd'   : cFileFd
              }
            </call>
          </if>
opendj-sdk/opends/tests/system-tests/phases/installation/installation_opends.xml
@@ -267,7 +267,7 @@
      
      
      <!--== Setup product ==-->
      <if expr="instance.isSslEnabled() == 'false'">
      <if expr="instance.getIsSslEnabled() == 'false'">
        <call function="'SetUpDsWithScript'">
          { 
            'location'         : instance.getHost(), 
@@ -293,7 +293,7 @@
            'dsBindPwd'        : DIRECTORY_INSTANCE_PSWD,
            'dsBaseDN'         : suffixDn,
            'dsDoNotStart'     : 'true',
            'dsEnableStartTLS' : instance.isStartTlsEnabled(),
            'dsEnableStartTLS' : instance.getIsStartTlsEnabled(),
            'dsCertificate'    : instance.getCertificate(),
            'fileFd'           : fileFd
          }
opendj-sdk/opends/tests/system-tests/phases/parser/parser.py
@@ -186,6 +186,70 @@
  def getLdifFile(self):
    return self.ldifFile
#
# Class for opendsTuning
#
###########################
class OpendsTuning:
  "Describes tuning informations for OpenDS instance"
  def __init__(self,isJava,xms,xmx,xxNewSize,xxMaxNewSize,\
               xxSurvivorRatio,xxPermSize,xxMaxPermSize,xxUseConcMarkSweepGC,\
               isDataBase,databaseCachePercentage):
    self.isJava                  = isJava
    self.javaArgs                = NOT_DEFINED
    self.xms                     = xms
    self.xmx                     = xmx
    self.xxNewSize               = xxNewSize
    self.xxMaxNewSize            = xxMaxNewSize
    self.xxSurvivorRatio         = xxSurvivorRatio
    self.xxPermSize              = xxPermSize
    self.xxMaxPermSize           = xxMaxPermSize
    self.xxUseConcMarkSweepGC    = xxUseConcMarkSweepGC
    self.isDataBase              = isDataBase
    self.databaseCachePercentage = databaseCachePercentage
  def getIsJava(self):
    return self.isJava
  def getJavaArgs(self):
    return self.javaArgs
  def setJavaArgs(self,javaArgs):
    self.javaArgs = javaArgs
  def getXms(self):
    return self.xms
  def getXmx(self):
    return self.xmx
  def getXxNewSize(self):
    return self.xxNewSize
  def getXxMaxNewSize(self):
    return self.xxMaxNewSize
  def getXxSurvivorRatio(self):
    return self.xxSurvivorRatio
  def getXxPermSize(self):
    return self.xxPermSize
  def getXxMaxPermSize(self):
    return self.xxMaxPermSize
  def getXxUseConcMarkSweepGC(self):
    return self.xxUseConcMarkSweepGC
  def getIsDataBase(self):
    return self.isDataBase
  def getDatabaseCachePercentage(self):
    return self.databaseCachePercentage
#
# Class for instance 
#
@@ -274,7 +338,8 @@
  "Describes an opends Instance"
  def __init__(self, iid, name, product, role, host, installDir, tarball, \
               portLDAP, portLDAPS, portJMX, portREPL, \
               sslEnabled, certificate, startTlsEnabled):
               sslEnabled, certificate, startTlsEnabled, \
               tuning):
    # from instance object
    self.iid             = iid
    self.name            = name
@@ -292,6 +357,7 @@
    self.sslEnabled      = sslEnabled
    self.certificate     = certificate
    self.startTlsEnabled = startTlsEnabled
    self.tuning          = tuning
    
  def getLDAPSPort(self):
    return self.portLDAPS
@@ -308,15 +374,17 @@
  def setJavaVersion(self,javaVersion):
    self.javaVersion = javaVersion
    
  def isSslEnabled(self):
  def getIsSslEnabled(self):
    return self.sslEnabled
    
  def getCertificate(self):
    return self.certificate
    
  def isStartTlsEnabled(self):
  def getIsStartTlsEnabled(self):
    return self.startTlsEnabled
  def getTuning(self):
    return self.tuning
#
# Class for client
@@ -592,6 +660,17 @@
  cSslEnabled      = 'false'
  cCertificate     = NOT_DEFINED
  cStartTlsEnabled = 'false'
  cIsJava          = 'false'
  cXms             = NOT_DEFINED
  cXmx             = NOT_DEFINED
  cXxNewSize       = NOT_DEFINED
  cXxMaxNewSize    = NOT_DEFINED
  cXxSurvivorRatio = NOT_DEFINED
  cXxPermSize      = NOT_DEFINED
  cXxMaxPermSize   = NOT_DEFINED
  cXxUseConcMarkSweepGC = NOT_DEFINED
  cIsDataBase      = 'false'
  cDatabaseCachePercentage = NOT_DEFINED
  
  #
  # Parsing second level : host,ports,...
@@ -649,6 +728,35 @@
        cStartTlsEnabled = _getAttributeNode(thisSubChild,'startTlsEnabled')
        
      
      elif (thisSubChild.getNodeType() == Node.ELEMENT_NODE and
          thisSubChild.getNodeName() == 'tuning'):
        # Get tuning values
        if thisSubChild.hasChildNodes():
          tuningList = thisSubChild.getChildNodes()
          for k in range(tuningList.getLength()):
            thisTuning = tuningList.item(k)
            if (thisTuning.getNodeType() == Node.ELEMENT_NODE and
                thisTuning.getNodeName() == 'java'):
              cIsJava = 'true'
              cXms = _getAttributeNode(thisTuning,'xms')
              cXmx = _getAttributeNode(thisTuning,'xmx')
              cXxNewSize = _getAttributeNode(thisTuning,'xxNewSize')
              cXxMaxNewSize = _getAttributeNode(thisTuning,'xxMaxNewSize')
              cXxSurvivorRatio = _getAttributeNode(thisTuning,
                                                   'xxSurvivorRatio')
              cXxPermSize = _getAttributeNode(thisTuning,'xxPermSize')
              cXxMaxPermSize = _getAttributeNode(thisTuning,'xxMaxPermSize')
              cXxUseConcMarkSweepGC = _getAttributeNode(thisTuning,
                                                        'xxUseConcMarkSweepGC')
            elif (thisTuning.getNodeType() == Node.ELEMENT_NODE and
                thisTuning.getNodeName() == 'databaseCache'):
              cIsDataBase = 'true'
              cDatabaseCachePercentage = _getAttributeNode(thisTuning,
                                                     'percentage')
      # must be at the end of the if case
      elif (thisSubChild.getNodeType() == Node.TEXT_NODE or
            thisSubChild.getNodeType() == Node.COMMENT_NODE):
@@ -666,11 +774,20 @@
    msg = '%s\n ERROR: instance %s : no children for instance node' % \
          (msg,cName)
  
  cOpendsTuning = OpendsTuning(cIsJava,cXms,cXmx,cXxNewSize,cXxMaxNewSize,\
                              cXxSurvivorRatio,cXxPermSize,cXxMaxPermSize,\
                              cXxUseConcMarkSweepGC,\
                              cIsDataBase,cDatabaseCachePercentage)
  cInstallDir = '%s/%s/%s' % (cInstallDir,cName,opendsName)
  return [msg,OpendsInstance(cId,cName,cProduct,cRole,cHost,cInstallDir,\
                             opendsZip,\
                             cPortLDAP,cPortLDAPS,cPortJMX,cPortREPL,\
                             cSslEnabled,cCertificate,cStartTlsEnabled)]
                             cSslEnabled,cCertificate,cStartTlsEnabled,\
                             cOpendsTuning)]
#============================================================================
opendj-sdk/opends/tests/system-tests/phases/parser/parser.xml
@@ -102,6 +102,38 @@
          <script>
            instance.setLogDir('%s/%s' % (LOG_DIR,instance.getName()))
          </script>
          <!-- Set javaArgs tuning property -->
          <script>
            tuning = instance.getTuning()
            if tuning.getIsJava() == 'true':
              if tuning.getXms() != NOT_DEFINED:
                c1 = '-Xms%s' % tuning.getXms()
              if tuning.getXmx() != NOT_DEFINED:
                c2 = '-Xmx%s' % tuning.getXmx()
              if tuning.getXxNewSize() != NOT_DEFINED:
                c3 = '-XX&#58;NewSize=%s' % tuning.getXxNewSize()
              if tuning.getXxMaxNewSize() != NOT_DEFINED:
                c4 = '-XX&#58;MaxNewSize=%s' % tuning.getXxMaxNewSize()
              if tuning.getXxSurvivorRatio() != NOT_DEFINED:
                c5 = '-XX&#58;SurvivorRatio=%s' % tuning.getXxSurvivorRatio()
              if tuning.getXxPermSize() != NOT_DEFINED:
                c6 = '-XX&#58;PermSize=%s' % tuning.getXxPermSize()
              if tuning.getXxMaxPermSize() != NOT_DEFINED:
                c7 = '-XX&#58;MaxPermSize=%s' % tuning.getXxMaxPermSize()
              if tuning.getXxUseConcMarkSweepGC() == 'true':
                c8 = '-XX&#58;+UseConcMarkSweepGC'
              tuning.setJavaArgs('%s %s %s %s %s %s %s %s' % \
                                (c1,c2,c3,c4,c5,c6,c7,c8))
          </script>
        </sequence>
      </paralleliterate>
      
opendj-sdk/opends/tests/system-tests/phases/shared/functions/opendsadm.xml
@@ -207,6 +207,12 @@
        </function-arg-description>
        <function-arg-property name="type" value="hostname"/>
      </function-arg-def>
      <function-arg-def name="instance" type="optional">
        <function-arg-description>
          instance object of the instance
        </function-arg-description>
        <function-arg-property name="type" value="option"/>
      </function-arg-def>
     <function-arg-def name="dsPath" type="required">
        <function-arg-description>
          Pathname to installation root
@@ -279,12 +285,28 @@
        STAFCmdParams=' '.join(STAFCmdParamsList)
      </script>
      
      <!-- define environment variables -->
      <script>
        env = []
        env.append('PATH=/bin:/usr/bin:%s' % dsBinPath)
        env.append('JAVA_HOME=%s' % JAVA_HOME)
        env.append('OPENDS_JAVA_HOME=%s' % JAVA_HOME)
        if instance:
          sys.path.append("%s/phases/parser" % TESTS_DIR )
          from parser import *
          tuning = instance.getTuning()
          if tuning.getJavaArgs() != NOT_DEFINED:
            env.append('OPENDS_JAVA_ARGS=%s' % tuning.getJavaArgs())
      </script>
      <call function="'runCommand'">
        { 'name'      : 'StartDsWithScript',
        { 'name'      : 'StartDs %s:%s' % \
                        (instance.getName(),instance.getLDAPPort()),
          'location'  : location,
          'command'   : STAFCmd,
          'arguments' : STAFCmdParams,
          'path'      : dsBinPath,
          'env'       : env,
          'fileFd'    : fileFd
        }
      </call>
opendj-sdk/opends/tests/system-tests/scenario/conf.dtd
@@ -40,7 +40,7 @@
  <!ELEMENT domain (#PCDATA)>
<!-- ========== INSTANCE NODE ========================= -->
<!ELEMENT instance (host,installDir,ports?,security?)>
<!ELEMENT instance (host,installDir,ports?,security?,tuning?)>
<!ATTLIST instance 
    name NMTOKEN #REQUIRED 
    product NMTOKEN #REQUIRED
@@ -54,10 +54,23 @@
    <!ELEMENT jmx (#PCDATA)>
    <!ELEMENT replicationServer (#PCDATA)>
  <!ELEMENT security EMPTY>
  <!ATTLIST security
      sslEnabled ( true | false ) "true"
      certificate ( generateSelfSigned ) "generateSelfSigned"
      startTlsEnabled ( true | false) "false">
  <!ATTLIST security
        sslEnabled ( true | false ) "false"
        certificate ( generateSelfSigned ) "generateSelfSigned"
        startTlsEnabled ( true | false ) "false">
  <!ELEMENT tuning (java?,databaseCache?)>
    <!ELEMENT java EMPTY>
    <!ATTLIST java
        xms NMTOKEN #IMPLIED
        xmx NMTOKEN #IMPLIED
        xxNewSize NMTOKEN #IMPLIED
        xxMaxNewSize NMTOKEN #IMPLIED
        xxSurvivorRatio NMTOKEN #IMPLIED
        xxPermSize NMTOKEN #IMPLIED
        xxMaxPermSize NMTOKEN #IMPLIED
        xxUseConcMarkSweepGC NMTOKEN #IMPLIED>
    <!ELEMENT databaseCache EMPTY>
    <!ATTLIST databaseCache percentage NMTOKEN #REQUIRED>
<!-- ========== SUFFIX NODE ========================= -->