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

andrug
21.19.2008 09f0a204b67b17a0426c1580270b2b4e7b43bf24
add dsconfig shared library and update sample2 post_configuration file
1 files added
1 files modified
289 ■■■■■ changed files
opends/tests/system-tests/phases/shared/functions/opendscfg.xml 256 ●●●●● patch | view | raw | blame | history
opends/tests/system-tests/scenario/sample2/post_configuration.xml 33 ●●●●● patch | view | raw | blame | history
opends/tests/system-tests/phases/shared/functions/opendscfg.xml
New file
@@ -0,0 +1,256 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, include this CDDL HEADER in each
 ! file and include the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Copyright 2008 Sun Microsystems, Inc.
 ! -->
<stax>
  <function name="_dsconfigCommonArgs">
    <function-prolog>
      This function resolves common dsconfig arguments
    </function-prolog>
    <function-no-args />
    <script>
      if dsInstanceHost:
        STAFCmdParamsList.append('-h %s' % dsInstanceHost)
      if dsInstancePort:
        STAFCmdParamsList.append('-p %s' % dsInstancePort)
      if dsInstanceDn:
        STAFCmdParamsList.append('-D "%s"' % dsInstanceDn)
      if dsInstancePswd:
        STAFCmdParamsList.append('-w "%s"' % dsInstancePswd)
      STAFCmdParamsList.append('-n')
    </script>
  </function>
  <function name="dsconfig" scope="local">
    <function-prolog>
      This function lists, get or set a list of attributes using dsconfig
    </function-prolog>
    <function-map-args>
      <function-arg-def name="location"
                        type="optional"
                        default="STAF_REMOTE_HOSTNAME">
        <function-arg-description>
          Location of target host
        </function-arg-description>
        <function-arg-property name="type" value="hostname" />
      </function-arg-def>
      <function-arg-def name="dsPath" type="required">
        <function-arg-description>
          Pathname to installation root
        </function-arg-description>
        <function-arg-property name="type" value="filepath" />
      </function-arg-def>
      <function-arg-def name="dsInstanceHost" type="optional" default="STAF_REMOTE_HOSTNAME">
        <function-arg-description>
          Directory server hostname or IP address
        </function-arg-description>
        <function-arg-property name="type" value="hostname" />
      </function-arg-def>
      <function-arg-def name="dsInstancePort" type="required">
        <function-arg-description>
          Directory server port number
        </function-arg-description>
        <function-arg-property name="type" value="Port number" />
      </function-arg-def>
      <function-arg-def name="dsInstanceDn" type="required">
        <function-arg-description>
          Bind DN
        </function-arg-description>
        <function-arg-property name="type" value="DN" />
      </function-arg-def>
      <function-arg-def name="dsInstancePswd" type="required">
        <function-arg-description>
          Bind password
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="subcommand" type="required">
        <function-arg-description>
          dsconfig subcommand to execute
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="objectType" type="optional">
        <function-arg-description>
          Object type to modify, e.g. backend-name
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="objectName" type="optional">
        <function-arg-description>
          object name  to modify, e.g. userroot
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="optionsString" type="optional">
        <function-arg-description>
          String containing  the dsconfig options.  e.g. --set enabled:true --set key-store-pin:servercert
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="expectedRC" type="optional" default="0">
        <function-arg-description>
          Expected return code value. Default value is 0.
        </function-arg-description>
        <function-arg-property name="type" value="string" />
      </function-arg-def>
      <function-arg-def name="fileFd" type="required">
        <function-arg-description>
          output file descriptor
        </function-arg-description>
      </function-arg-def>
    </function-map-args>
    <sequence>
      <!-- Local variables -->
      <script>
        STAFCmdParamsList=[]
        STAFCmdParams=''
        STAFCmd=''
        dsconfigRC=999999
        dsconfigResult='ERROR_not_run'
        if dsPath:
          dsBinPath='%s/bin' % (dsPath)
          STAFCmd='%s/dsconfig' % (dsBinPath)
        STAFCmdParamsList.append(subcommand)
        if objectType:
          STAFCmdParamsList.append('--%s "%s" ' % (objectType,objectName))
        if optionsString:
          STAFCmdParamsList.append(' %s' % optionsString)
      </script>
      <call function="'_dsconfigCommonArgs'" />
      <script>
        STAFCmdParams=' '.join(STAFCmdParamsList)
      </script>
      <!-- check if bin file exists -->
      <call function="'isFile'">
      {
        'location' : location,
        'fileName' : STAFCmd
      }
      </call>
      <script>
        STAFCmdExist = STAXResult
      </script>
      <call function="'writeStartTagOperation'">
      { 'tagName' : 'opendsconfig',
        'fileFd'  : fileFd }
      </call>
      <!--== Log message ==-->
      <if expr="STAFCmdExist == TRUE">
        <sequence>
          <if expr="fileFd == ''">
            <sequence>
              <message>'%s : run dsconfig :' % dsInstanceHost</message>
              <message>'%s %s' % (STAFCmd, STAFCmdParams)</message>
            </sequence>
          <else>
            <sequence>
              <call function="'writeMessage'">
              { 'content' : 'Run dsconfig on %s' % dsInstanceHost,
                'fileFd'  : fileFd }
              </call>
              <call function="'writeMessage'">
              { 'content' : 'Run command : %s %s' % (STAFCmd,STAFCmdParams),
                'fileFd'  : fileFd }
              </call>
            </sequence>
          </else>
          </if>
          <!--== Run the command ==-->
          <process name="'%s: dsconfig (opends)' % location">
            <location>'%s' % (location)</location>
            <command>'%s' % (STAFCmd)</command>
            <parms>'%s' % (STAFCmdParams)</parms>
            <workdir>'%s' % dsBinPath</workdir>
            <envs>
              ['PATH=/bin:/usr/bin:%s' % dsBinPath]
            </envs>
            <stderr mode="'stdout'"/>
            <returnstdout/>
          </process>
          <script>
            dsconfigRC=RC
            dsconfigResult=STAXResult
          </script>
          <call function="'checkRC'">
            { 'returncode' : dsconfigRC,
              'result'     : dsconfigResult,
              'expected'   : [expectedRC],
              'fileFd'     : fileFd }
          </call>
        </sequence>
      <else>
          <if expr="fileFd == ''">
            <message>
              'WARNING : file does not exist on %s : %s/%s'\
              % (location,dsBinPath,STAFCmd)
            </message>
          <else>
            <call function="'writeMessage'">
            {
              'content' : 'WARNING : file does not exist on %s : %s/%s'\
                          % (location,dsBinPath,STAFCmd),
              'fileFd'  : fileFd
            }
            </call>
          </else>
          </if>
      </else>
      </if>
      <call function="'writeEndTagOperation'">{'fileFd'  : fileFd }</call>
      <return> [dsconfigRC,dsconfigResult]</return>
    </sequence>
  </function>
</stax>
opends/tests/system-tests/scenario/sample2/post_configuration.xml
@@ -44,7 +44,13 @@
    </function-map-args>
    
    <sequence>
      <!-- ================= Call preambule ======================== -->
    <!-- ================= Import Libs    ======================== -->
    <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
      file="'%s/opendscfg.xml' % (SHARED_FUNC_DIR)"/>
    <!-- ================= Call preambule ======================== -->
      <call function="'phasePreamble'">
      { 'phaseName' : 'postconfiguration',
        'fileFd'    : LOG_MAIN_FD }
@@ -70,6 +76,31 @@
          }
          </call>
          
          <call function="'dsconfig'">
          {
            'dsInstanceHost' : instance.getHost(),
            'dsPath'         : instance.getInstallDir(),
            'dsInstancePort' : instance.getLDAPPort(),
            'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
            'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
            'subcommand'     : 'list-log-publishers',
            'objectType'     : '',
            'objectName'     : '',
            'optionsString'  : '',
            'expectedRC'     : 0,
            'fileFd'         : LOG_MAIN_FD
          }
          </call>
          <call function="'writeMessage'">
          {
            'fileFd'  : LOG_MAIN_FD,
            'content' : 'dsconfig result : %s' % STAXResult
          }
          </call>
          <!-- == Write tag for xml report -->
          <call function="'writeEndTagInstance'">
          { 'fileFd'    : LOG_MAIN_FD }