4865N/A<?xml version="1.0" encoding="UTF-8" standalone="no"?>
4865N/A<!DOCTYPE stax SYSTEM "/shared/stax.dtd">
4865N/A<!--
4865N/A ! CDDL HEADER START
4865N/A !
4865N/A ! The contents of this file are subject to the terms of the
4865N/A ! Common Development and Distribution License, Version 1.0 only
4865N/A ! (the "License"). You may not use this file except in compliance
4865N/A ! with the License.
4865N/A !
4865N/A ! You can obtain a copy of the license at
4865N/A ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
4865N/A ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
4865N/A ! See the License for the specific language governing permissions
4865N/A ! and limitations under the License.
4865N/A !
4865N/A ! When distributing Covered Code, include this CDDL HEADER in each
4865N/A ! file and include the License file at
4865N/A ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
4865N/A ! add the following below this CDDL HEADER, with the fields enclosed
4865N/A ! by brackets "[]" replaced with your own identifying information:
4865N/A ! Portions Copyright [yyyy] [name of copyright owner]
4865N/A !
4865N/A ! CDDL HEADER END
4865N/A !
5073N/A ! Copyright 2009-2010 Sun Microsystems, Inc.
5834N/A ! Portions Copyright 2011-2012 ForgeRock AS.
4865N/A ! -->
4865N/A<stax>
4865N/A
4865N/A <defaultcall function="fractional-replication_setup"/>
4865N/A
4865N/A <function name="fractional-replication_setup">
4865N/A <function-map-args>
4865N/A <function-arg-def name="topologyFile"
4865N/A type="optional"
4865N/A default="'%s/basic_topology.txt' % REPLICATION_CONFIG_DIR">
4865N/A <function-arg-description>
4865N/A Pathname to file describing the topology.
4865N/A </function-arg-description>
4865N/A <function-arg-property name="type" value="filepath"/>
4865N/A </function-arg-def>
4865N/A <function-arg-def name="secureReplication"
4865N/A type="optional"
4865N/A default="None">
4865N/A <function-arg-description>
4865N/A Encrypt replication channels
4865N/A </function-arg-description>
4865N/A <function-arg-property name="type" value="boolean"/>
4865N/A </function-arg-def>
4865N/A <function-arg-def name="dataFile"
4865N/A type="optional"
4865N/A default="None">
4865N/A <function-arg-description>
4865N/A Name of the data file within shared/data/fractional-replication/ for suffix
4865N/A initialisation.
4865N/A If no filename provided (default), the topology won't be initialised.
4865N/A If a filename provided, after initialisation the suffix will be
5540N/A backed up under masterBackupDir.
4865N/A </function-arg-description>
4865N/A <function-arg-property name="type" value="filename"/>
4865N/A </function-arg-def>
4865N/A <function-arg-def name="isolateLdapServers"
4865N/A type="optional"
4865N/A default="None">
4865N/A <function-arg-description>
4865N/A Break the cross-reference between Ldap Servers and Replication Servers
4865N/A (i.e. make LS1 point to RS1 exclusively, LS2 to RS2, etc.)
4865N/A </function-arg-description>
4865N/A <function-arg-property name="type" value="boolean"/>
4865N/A </function-arg-def>
4865N/A <function-arg-def name="enableDebugLogs"
4865N/A type="optional"
4865N/A default="None">
4865N/A <function-arg-description>
4865N/A Enable de debug logs
4865N/A </function-arg-description>
4865N/A <function-arg-property name="type" value="boolean"/>
4865N/A </function-arg-def>
4865N/A </function-map-args>
4865N/A
4865N/A <sequence>
4865N/A
5834N/A <block name="'fractional-replication-startup'">
4865N/A
5834N/A <testcase name="getTestCaseName('Fractional Repl Setup')">
4865N/A
5834N/A <try>
5834N/A
4865N/A <sequence>
5834N/A <call function="'testCase_Preamble'"/>
4865N/A
4865N/A <message>
5834N/A 'Create DS topology as described in %s' % topologyFile
4865N/A </message>
5834N/A
5834N/A <call function="'createTopology'">
5834N/A { 'topologyDescFile' : topologyFile,
5834N/A 'sharedDataFolder' : 'fractional-replication',
5834N/A 'splitReplicationServers' : globalSplitServers,
5834N/A 'fileExtensions' : ['template'],
4865N/A }
4865N/A </call>
5834N/A
5834N/A <call function="'checkRC'">
5834N/A { 'returncode' : RC ,
5834N/A 'result' : STAXResult
4865N/A }
4865N/A </call>
5834N/A
5834N/A <!-- Setup variables -->
5834N/A <script>
5834N/A client = _topologyServerList[0]
5834N/A clientHost = client.getHostname()
5834N/A clientPath = '%s/%s' % (client.getDir(),OPENDSNAME)
5834N/A clientDataDir = '%s' % client.getDataDir()
5834N/A
5834N/A server1 = _topologyServerList[0]
5834N/A server2 = _topologyServerList[1]
5834N/A
5834N/A master = _topologyServerList[0]
5834N/A masterHost = master.getHostname()
5834N/A masterReplicationServer = master.getChangelogServer()
5834N/A masterPath = '%s/%s' % (master.getDir(),OPENDSNAME)
5834N/A masterDataDir = master.getDataDir()
5834N/A masterTempDir = master.getTmpDir()
5834N/A synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()
5834N/A masterBackupDir = '%s/fractional-replication/master_backup' % masterTempDir
5834N/A
5834N/A consumerList = _topologyServerList[1:]
5834N/A
5834N/A domainMap = STAXGlobal({})
5834N/A schemaMap = STAXGlobal({})
5834N/A </script>
5834N/A
5834N/A <if expr="dataFile">
4865N/A <sequence>
5834N/A <script>
5834N/A importDataFile = '%s/fractional-replication/%s' % (masterDataDir, dataFile)
5834N/A </script>
5834N/A
4865N/A <message>
5834N/A 'Import data from %s into server %s:%s' \
5834N/A % (importDataFile, masterHost, master.getPort())
4865N/A </message>
5834N/A
5834N/A <!-- Import data into "master" Directory Server -->
5834N/A <call function="'ImportLdifWithScript'">
5834N/A { 'location' : masterHost,
5834N/A 'dsPath' : masterPath,
5834N/A 'backEnd' : DIRECTORY_INSTANCE_BE,
5834N/A 'ldifFile' : importDataFile
5834N/A }
5834N/A </call>
5834N/A
5834N/A <!-- Backup "master" server -->
5834N/A <call function="'backup'">
5834N/A { 'location' : masterHost,
5834N/A 'dsPath' : masterPath,
5834N/A 'backupDir' : masterBackupDir
4865N/A }
4865N/A </call>
4865N/A </sequence>
4865N/A </if>
5834N/A
5834N/A
5834N/A <!-- Start the servers in the topology -->
5834N/A <call function="'startServers'">
5834N/A [_splitServerList]
5834N/A </call>
5834N/A
5834N/A <paralleliterate var="s" in="_splitServerList">
5834N/A <sequence>
4865N/A <script>
5834N/A ls = '%s:%s' % (s.getHostname(), s.getPort())
4865N/A </script>
5834N/A
5834N/A <call function="'getSchemaDict'">
5834N/A { 'location' : s.getHostname(),
5834N/A 'dsPath' : '%s/%s' % (s.getDir(),OPENDSNAME),
5834N/A 'server' : s,
5834N/A }
5834N/A </call>
5834N/A <if expr="STAXResult">
5834N/A <script>
5834N/A schemaMap[ls] = STAXResult
5834N/A </script>
5834N/A <else>
5834N/A <sequence>
5834N/A <message>'Failed getting the schema for ' % ls</message>
5834N/A <break/>
5834N/A </sequence>
5834N/A </else>
5834N/A </if>
5834N/A </sequence>
5834N/A </paralleliterate>
5834N/A
5834N/A <if expr="len(_topologyReplServerList) != 0">
5834N/A <paralleliterate var="replServer" in="_topologyReplServerList">
5834N/A <!-- Remove userRoot backend from replication servers -->
5834N/A <sequence>
5834N/A <message>
5834N/A 'Remove userRoot backend from replication server %s:%s' % \
5834N/A (replServer.getHostname(), replServer.getPort())
5834N/A </message>
5834N/A
5834N/A <call function="'dsconfig'">
5834N/A { 'location' : replServer.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (replServer.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : replServer.getHostname(),
5834N/A 'dsInstanceAdminPort' : replServer.getAdminPort(),
5834N/A 'dsInstanceDn' : replServer.getRootDn(),
5834N/A 'dsInstancePswd' : replServer.getRootPwd(),
5834N/A 'subcommand' : 'delete-backend',
5834N/A 'objectType' : 'backend-name',
5834N/A 'objectName' : 'userRoot'
5834N/A }
5834N/A </call>
5834N/A </sequence>
5834N/A </paralleliterate>
5834N/A </if>
5834N/A
5834N/A <iterate var="server" in="_splitServerList[1:]">
5834N/A <sequence>
5834N/A <!-- Configure replication if required so by the server
5834N/A ! (i.e. server is a changelog server and/or has synchronized
5834N/A ! suffixes)
5834N/A -->
5834N/A <if expr="server.requiresSynchronization()">
4865N/A <sequence>
5834N/A <message>
5834N/A 'Instance requires REPLICATION configuration.'
5834N/A </message>
5834N/A
5834N/A <script>
5834N/A if master.isOnlyLdapServer():
5834N/A masterReplPort = None
5834N/A else:
5834N/A masterReplPort = masterReplicationServer.getPort()
5834N/A
5834N/A if server.isOnlyLdapServer():
5834N/A serverReplPort = None
5834N/A else:
5834N/A replicationServer = server.getChangelogServer()
5834N/A serverReplPort = replicationServer.getPort()
5834N/A
5834N/A if server.isOnlyReplServer():
5834N/A suffixServer = master
5834N/A else:
5834N/A suffixServer = server
5834N/A
5834N/A replicatedSuffixList = suffixServer.getSynchronizedSuffixList()
5834N/A replicatedDnList = []
5834N/A for suffix in replicatedSuffixList:
5834N/A replicatedDnList.append(suffix.getSuffixDn())
5834N/A </script>
5834N/A
5834N/A <message>
5834N/A 'Enable replication for server:\nHost: %s\nLdap port: %s\n\
5834N/A Replication port: %s\nReplicated DN list: %s' \
5834N/A % (server.getHostname(), server.getPort(),
5834N/A serverReplPort, replicatedDnList)
5834N/A </message>
5834N/A
5834N/A <call function="'enableReplication'">
5834N/A { 'location' : clientHost,
5834N/A 'dsPath' : clientPath,
5834N/A 'refInstanceHost' : masterHost,
5834N/A 'refInstanceAdminPort' : master.getAdminPort(),
5834N/A 'refInstanceDn' : master.getRootDn(),
5834N/A 'refInstancePswd' : master.getRootPwd(),
5834N/A 'refReplicationPort' : masterReplPort,
5834N/A 'refSecureReplication' : secureReplication,
5834N/A 'refOnlyLdapServer' : master.isOnlyLdapServer(),
5834N/A 'refOnlyReplServer' : master.isOnlyReplServer(),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'dsReplicationPort' : serverReplPort,
5834N/A 'dsSecureReplication' : secureReplication,
5834N/A 'dsOnlyLdapServer' : server.isOnlyLdapServer(),
5834N/A 'dsOnlyReplServer' : server.isOnlyReplServer(),
5834N/A 'replicationDnList' : replicatedDnList
4865N/A }
4865N/A </call>
4865N/A </sequence>
5834N/A </if>
5834N/A
5834N/A </sequence>
5834N/A </iterate>
5834N/A
5834N/A
5834N/A <if expr="isolateLdapServers">
5834N/A <!-- Make each Ldap Server point only to its own Replication
5834N/A ! Server.
5834N/A ! This is used by the Conflict testsuite, in order to be able
5834N/A ! to simulate conflict scenarios -->
5834N/A <paralleliterate var="server" in="_topologyServerList" indexvar="i">
4865N/A <sequence>
4865N/A <script>
5834N/A ldapServer = '%s:%s' % (server.getHostname(),
5834N/A server.getPort())
5834N/A </script>
5834N/A
5834N/A <!-- Retrieve replication-domain name -->
5834N/A <call function="'dsconfig'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'subcommand' : 'list-replication-domains',
5834N/A 'objectType' : 'provider-name',
5834N/A 'objectName' : 'Multimaster Synchronization',
5834N/A 'optionsString' : '--script-friendly'
5834N/A }
5834N/A </call>
5834N/A <if expr='RC == 0'>
5834N/A <script>
5834N/A replicationDomains = STAXResult[0][1]
5834N/A for line in replicationDomains.splitlines():
5834N/A if line.find(synchroSuffix) != -1:
5834N/A domain = line
5834N/A domainMap[ldapServer] = domain
5834N/A break
5834N/A </script>
5834N/A </if>
5834N/A
5834N/A <script>
5834N/A if globalSplitServers:
5834N/A splitServer = _topologyReplServerList[i]
5834N/A replicationServer = splitServer.getChangelogServer()
5834N/A replServer = '%s:%s' % (splitServer.getHostname(),
5834N/A replicationServer.getPort())
5834N/A else:
5834N/A replicationServer = server.getChangelogServer()
5834N/A replServer = '%s:%s' % (server.getHostname(),
5834N/A replicationServer.getPort())
5834N/A
5834N/A options = '--domain-name "%s" --set replication-server:%s' \
5834N/A % (domainMap[ldapServer], replServer)
4865N/A </script>
4865N/A <message>
5834N/A 'Removing references to other replication servers \nfor \
5834N/A domain: %s \nfrom server: %s \nkeep replication server: %s' \
5834N/A % (domain, ldapServer, replServer)
5834N/A </message>
5834N/A <!-- Remove peer RS from replicated domain -->
5834N/A <call function="'dsconfig'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'subcommand' : 'set-replication-domain-prop',
5834N/A 'objectType' : 'provider-name',
5834N/A 'objectName' : 'Multimaster Synchronization',
5834N/A 'optionsString' : options
5834N/A }
5834N/A </call>
5834N/A </sequence>
5834N/A </paralleliterate>
5834N/A </if>
5834N/A
5834N/A
5834N/A <script>
5834N/A assuredReplication = globalAssuredReplication
5834N/A </script>
5834N/A <if expr="assuredReplication">
5834N/A <paralleliterate var="server" in="_topologyServerList">
5834N/A <sequence>
5834N/A <script>
5834N/A ldapServer = '%s:%s' % (server.getHostname(),
5834N/A server.getPort())
5834N/A </script>
5834N/A
5834N/A <if expr="isolateLdapServers">
5834N/A <!-- this means the domainMap has already been filled up -->
5834N/A <script>
5834N/A domain = domainMap[ldapServer]
5834N/A </script>
5834N/A <else>
5834N/A <sequence>
5834N/A <!-- Retrieve replication-domain name -->
5834N/A <call function="'dsconfig'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'subcommand' : 'list-replication-domains',
5834N/A 'objectType' : 'provider-name',
5834N/A 'objectName' : 'Multimaster Synchronization',
5834N/A 'optionsString' : '--script-friendly'
5834N/A }
5834N/A </call>
5834N/A <if expr='RC == 0'>
5834N/A <script>
5834N/A replicationDomains = STAXResult[0][1]
5834N/A for line in replicationDomains.splitlines():
5834N/A if line.find(synchroSuffix) != -1:
5834N/A domain = line
5834N/A domainMap[ldapServer] = domain
5834N/A break
5834N/A </script>
5834N/A </if>
5834N/A </sequence>
5834N/A </else>
5834N/A </if>
5834N/A <script>
5834N/A options = '--domain-name "%s" --set assured-type:%s' \
5834N/A % (domain, assuredReplication)
5834N/A </script>
5834N/A <message>
5834N/A 'Setting replication assured-type to: %s for server: %s \
5834N/A domain: %s' % (assuredReplication, ldapServer, domain)
4865N/A </message>
4865N/A <!-- Set assured -->
4865N/A <call function="'dsconfig'">
4865N/A { 'location' : server.getHostname(),
4865N/A 'dsPath' : '%s/%s' \
4865N/A % (server.getDir(),OPENDSNAME),
4865N/A 'dsInstanceHost' : server.getHostname(),
4865N/A 'dsInstanceAdminPort' : server.getAdminPort(),
4865N/A 'dsInstanceDn' : server.getRootDn(),
4865N/A 'dsInstancePswd' : server.getRootPwd(),
4865N/A 'subcommand' : 'set-replication-domain-prop',
4865N/A 'objectType' : 'provider-name',
4865N/A 'objectName' : 'Multimaster Synchronization',
4865N/A 'optionsString' : options
4865N/A }
4865N/A </call>
5834N/A
5834N/A <if expr="assuredReplication == 'safe-data'">
5834N/A <sequence>
5834N/A <script>
5834N/A assuredDataLevel = len(_topologyServerList)
5834N/A options = '--domain-name "%s" --set assured-sd-level:%s' \
5834N/A % (domain, assuredDataLevel)
5834N/A </script>
5834N/A <message>
5834N/A 'Setting safe-data level to: %s for server: %s \
5834N/A domain: %s' % (assuredDataLevel, ldapServer, domain)
5834N/A </message>
5834N/A <!-- Set assured -->
5834N/A <call function="'dsconfig'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'subcommand' : 'set-replication-domain-prop',
5834N/A 'objectType' : 'provider-name',
5834N/A 'objectName' : 'Multimaster Synchronization',
5834N/A 'optionsString' : options
5834N/A }
5834N/A </call>
5834N/A </sequence>
5834N/A </if>
4865N/A </sequence>
5834N/A </paralleliterate>
5834N/A </if>
5834N/A
5834N/A <if expr="dataFile">
4865N/A <sequence>
5834N/A <message>
5834N/A 'Initialise topology from %s:%s' \
5834N/A % (masterHost, master.getPort())
5834N/A </message>
5834N/A
5834N/A <!-- Initialise the servers in the topology -->
5834N/A <call function="'initializeReplication'">
4865N/A { 'location' : clientHost,
4865N/A 'dsPath' : clientPath,
4865N/A 'sourceInstanceHost' : masterHost,
4865N/A 'sourceInstanceAdminPort' : master.getAdminPort(),
4865N/A 'replicationDnList' : [synchroSuffix]
4865N/A }
4865N/A </call>
5834N/A <if expr="0">
5834N/A <iterate var="server" in="consumerList">
4865N/A <sequence>
5834N/A <!-- <call function="'initializeReplication'">
5834N/A { 'location' : clientHost,
5834N/A 'dsPath' : clientPath,
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'sourceInstanceHost' : masterHost,
5834N/A 'sourceInstanceAdminPort' : master.getAdminPort(),
5834N/A 'replicationDnList' : [synchroSuffix]
5834N/A }
5834N/A </call> -->
5834N/A
5834N/A <!-- Search initialisation task to check its status -->
5834N/A <call function="'ldapSearchWithScript'">
5834N/A {
5834N/A 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(), OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstancePort' : server.getPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'dsBaseDN' : 'cn=Tasks',
5834N/A 'dsFilter' : 'ds-task-initialize-domain-dn=%s' \
5834N/A % synchroSuffix
5834N/A }
5834N/A </call>
5834N/A <script>
5834N/A searchRC = STAXResult[0][0]
5834N/A searchResult = STAXResult[0][1]
5834N/A resultLength = len(searchResult) > 0
5834N/A </script>
5834N/A <if expr="resultLength != 0">
5834N/A <sequence>
5834N/A <message>
5834N/A '++++++++ INITIALISATION TASK for %s:%s ++++++++\n%s' \
5834N/A % (server.getHostname(), server.getPort(), searchResult)
5834N/A </message>
5834N/A </sequence>
5834N/A </if>
4865N/A </sequence>
5834N/A </iterate>
4865N/A </if>
5834N/A
4865N/A </sequence>
5834N/A </if>
5834N/A
5834N/A <if expr="enableDebugLogs">
5834N/A <paralleliterate var="server" in="_topologyServerList">
5834N/A <sequence>
5834N/A <!-- Set the debug logger to "enabled" -->
5834N/A <call function="'dsconfigSet'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'objectName' : 'log-publisher',
5834N/A 'propertyType' : 'publisher',
5834N/A 'propertyName' : 'File-based Debug Logger',
5834N/A 'attributeName' : 'enabled',
5834N/A 'attributeValue' : 'true'
5834N/A }
5834N/A </call>
5834N/A <!-- Set the debug level to "info" -->
5834N/A <call function="'dsconfigSet'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'objectName' : 'log-publisher',
5834N/A 'propertyType' : 'publisher',
5834N/A 'propertyName' : 'File-based Debug Logger',
5834N/A 'attributeName' : 'default-debug-level',
5834N/A 'attributeValue' : 'info'
5834N/A }
5834N/A </call>
5834N/A <!-- Set the debug logger log file to "logs/errors" -->
5834N/A <call function="'dsconfigSet'">
5834N/A { 'location' : server.getHostname(),
5834N/A 'dsPath' : '%s/%s' \
5834N/A % (server.getDir(),OPENDSNAME),
5834N/A 'dsInstanceHost' : server.getHostname(),
5834N/A 'dsInstanceAdminPort' : server.getAdminPort(),
5834N/A 'dsInstanceDn' : server.getRootDn(),
5834N/A 'dsInstancePswd' : server.getRootPwd(),
5834N/A 'objectName' : 'log-publisher',
5834N/A 'propertyType' : 'publisher',
5834N/A 'propertyName' : 'File-based Debug Logger',
5834N/A 'attributeName' : 'log-file',
5834N/A 'attributeValue' : 'logs/errors'
5834N/A }
5834N/A </call>
5834N/A </sequence>
5834N/A </paralleliterate>
4865N/A </if>
4865N/A
5834N/A <tcstatus result="'pass'"></tcstatus>
4865N/A
5834N/A </sequence>
5834N/A
5834N/A <catch exception="'STAXException'" typevar="eType" var="eInfo">
4865N/A <sequence>
5834N/A <message log="1" level="'fatal'">
5834N/A '%s: Failed to cleanup. eInfo(%s)' % (eType,eInfo)
5834N/A </message>
5834N/A <throw exception="'STAFException.TestSuite.CleanupException'" />
4865N/A </sequence>
5834N/A </catch>
5834N/A <finally>
5834N/A <!-- Test Case postamble -->
5834N/A <call function="'testCase_Postamble'"/>
5834N/A </finally>
5834N/A
5834N/A </try>
4865N/A
5834N/A </testcase>
4865N/A
4865N/A </block>
4865N/A
4865N/A </sequence>
4865N/A
4865N/A </function>
4865N/A
4865N/A</stax>