From a9f53a39717e818e63d8bbb65e103ca7a7b04d68 Mon Sep 17 00:00:00 2001
From: andrug <andrug@localhost>
Date: Tue, 08 Apr 2008 15:33:21 +0000
Subject: [PATCH] allow java tuning for OpenDS instance
---
opendj-sdk/opends/tests/system-tests/phases/installation/installation_opends.xml | 4
opendj-sdk/opends/tests/system-tests/phases/parser/parser.py | 127 ++++++++++++++++++++++++++++++-
opendj-sdk/opends/tests/system-tests/phases/parser/parser.xml | 32 ++++++++
opendj-sdk/opends/tests/system-tests/phases/shared/functions/opendsadm.xml | 24 +++++
opendj-sdk/opends/tests/system-tests/scenario/conf.dtd | 23 ++++-
opendj-sdk/opends/tests/system-tests/phases/configuration/configuration_opends.xml | 7 +
6 files changed, 201 insertions(+), 16 deletions(-)
diff --git a/opendj-sdk/opends/tests/system-tests/phases/configuration/configuration_opends.xml b/opendj-sdk/opends/tests/system-tests/phases/configuration/configuration_opends.xml
index ccd2ebc..08eafa0 100755
--- a/opendj-sdk/opends/tests/system-tests/phases/configuration/configuration_opends.xml
+++ b/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>
diff --git a/opendj-sdk/opends/tests/system-tests/phases/installation/installation_opends.xml b/opendj-sdk/opends/tests/system-tests/phases/installation/installation_opends.xml
index 6c740e6..8a01e4e 100755
--- a/opendj-sdk/opends/tests/system-tests/phases/installation/installation_opends.xml
+++ b/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
}
diff --git a/opendj-sdk/opends/tests/system-tests/phases/parser/parser.py b/opendj-sdk/opends/tests/system-tests/phases/parser/parser.py
index e1bcc81..96b4815 100755
--- a/opendj-sdk/opends/tests/system-tests/phases/parser/parser.py
+++ b/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)]
+
+
#============================================================================
diff --git a/opendj-sdk/opends/tests/system-tests/phases/parser/parser.xml b/opendj-sdk/opends/tests/system-tests/phases/parser/parser.xml
index 266e03e..864b4ef 100755
--- a/opendj-sdk/opends/tests/system-tests/phases/parser/parser.xml
+++ b/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:NewSize=%s' % tuning.getXxNewSize()
+
+ if tuning.getXxMaxNewSize() != NOT_DEFINED:
+ c4 = '-XX:MaxNewSize=%s' % tuning.getXxMaxNewSize()
+
+ if tuning.getXxSurvivorRatio() != NOT_DEFINED:
+ c5 = '-XX:SurvivorRatio=%s' % tuning.getXxSurvivorRatio()
+
+ if tuning.getXxPermSize() != NOT_DEFINED:
+ c6 = '-XX:PermSize=%s' % tuning.getXxPermSize()
+
+ if tuning.getXxMaxPermSize() != NOT_DEFINED:
+ c7 = '-XX:MaxPermSize=%s' % tuning.getXxMaxPermSize()
+
+ if tuning.getXxUseConcMarkSweepGC() == 'true':
+ c8 = '-XX:+UseConcMarkSweepGC'
+
+ tuning.setJavaArgs('%s %s %s %s %s %s %s %s' % \
+ (c1,c2,c3,c4,c5,c6,c7,c8))
+ </script>
</sequence>
</paralleliterate>
diff --git a/opendj-sdk/opends/tests/system-tests/phases/shared/functions/opendsadm.xml b/opendj-sdk/opends/tests/system-tests/phases/shared/functions/opendsadm.xml
index fec23b3..59a9a54 100755
--- a/opendj-sdk/opends/tests/system-tests/phases/shared/functions/opendsadm.xml
+++ b/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>
diff --git a/opendj-sdk/opends/tests/system-tests/scenario/conf.dtd b/opendj-sdk/opends/tests/system-tests/scenario/conf.dtd
index ecedfd5..3f9ae0a 100755
--- a/opendj-sdk/opends/tests/system-tests/scenario/conf.dtd
+++ b/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 ========================= -->
--
Gitblit v1.10.0