This function creates the topology required by the Test Group/Suite.
Topology Description file
Specifies whether the instance should be initialised with some default data.
Specifies a relative folder that holds the shared data for the tests
{ 'groupDataDir' : sharedDataFolder }
'SINGLE instance deployment: read parameters from config.py'
'MULTIPLE instance deployment: read parameters from %s' % topologyDescFile
{ 'file' : topologyDescFile }
'Number of server instances required by the deployment: %s' % len(_topologyServerList)
{ 'dsHost' : server.getHostname(),
'dsDir' : server.getDir(),
'dsPort' : server.getPort(),
'dsSslPort' : server.getSslPort(),
'dsJmxPort' : server.getJmxPort(),
'dsBindDN' : server.getRootDn(),
'dsBindPwd' : server.getRootPwd(),
'dsBaseDN' : server.getBaseDn()
}
This function prepares locally the necessary
files to create an instance: data zip file and OpenDS zip file.
Specifies a relative folder that holds the shared data for the test group
{ 'location' : STAXServiceMachine,
'entry' : localTestsGroupDir,
'attribute' : 'TYPE' }
'Copy ldif data files locally to %s.' % localTestsGroupDir
{ 'location' : STAXServiceMachine,
'srcfolder' : testsGroupDir,
'destfolder' : localTestsGroupDir,
'extension' : 'ldif'
}
'Copy ldif data files locally to %s.' % quickStartLocalTestsGroupDir
{ 'location' : STAXServiceMachine,
'srcfolder' : quickStartGroupDir,
'destfolder' : quickStartLocalTestsGroupDir,
'extension' : 'ldif'
}
'Copy pwd data files locally to %s.' % localTestsGroupDir
{ 'location' : STAXServiceMachine,
'srcfolder' : testsGroupDir,
'destfolder' : localTestsGroupDir,
'extension' : 'pwd'
}
'Copy gz data files locally to %s.' % localTestsGroupDir
{ 'location' : STAXServiceMachine,
'srcfolder' : testsGroupDir,
'destfolder' : localTestsGroupDir,
'extension' : 'gz'
}
'Copy java class files locally to %s.' % javaLocalDir
{ 'location' : STAXServiceMachine,
'srcfolder' : javaSharedDir,
'destfolder' : javaLocalDir,
'extension' : 'class'
}
'Delete %s/testdata.zip' % logsTempDir
{ 'location' : STAXServiceMachine,
'filename' : '%s/testdata.zip' % logsTempDir
}
'Zip up local data directory to %s/testdata.zip' % logsTempDir
{ 'location' : STAXServiceMachine,
'zipfile' : '%s/testdata.zip' % logsTempDir ,
'folder' : '%s' % localTestsGroupDir ,
'relativeto' : logsTestDataDir
}
'Zip up local quickstart directory to %s/testdata.zip' % logsTempDir
{ 'location' : STAXServiceMachine,
'zipfile' : '%s/testdata.zip' % logsTempDir ,
'folder' : '%s' % quickStartLocalTestsGroupDir ,
'relativeto' : logsTestDataDir
}
'Zip up local java class files to %s/testdata.zip' % logsTempDir
{ 'location' : STAXServiceMachine,
'zipfile' : '%s/testdata.zip' % logsTempDir ,
'folder' : '%s' % javaLocalDir ,
'relativeto' : logsTestDataDir
}
'Test data is already created.'
This function creates an instance on a given host.
It copies both data and OpenDS zip files onto the host,
unzips them, and configures OpenDS.
Hostname where the instance is to be created
Directory where OpenDS will be installed
Directory Server port number
Directory Server SSL port number
Directory Server JMX port number
Directory Manager DN
Directory Server SSL port number
Directory Server base suffix dn
'Create instance in host %s at directory %s' % (dsHost,dsDir)
'Delete folder %s/%s on host %s' % (dsDir,OPENDSNAME,dsHost)
{ 'location' : dsHost,
'foldername' : '%s/%s' % (dsDir,OPENDSNAME)
}
'Create folder %s on host %s' % (dsDir,dsHost)
{ 'location' : dsHost,
'foldername' : '%s' % dsDir
}
'Copy %s/testdata.zip to %s on %s' % (logsTestDataDir,dsDir,dsHost)
{ 'srcfile' : '%s/testdata.zip' % logsTempDir,
'destfile' : '%s/testdata.zip' % dsDir,
'remotehost' : dsHost
}
'Extract contents of test data %s on %s' % (dsDir,dsHost)
{ 'location' : dsHost,
'zipfile' : '%s/testdata.zip' % dsDir,
'unzipdir' : dsDir
}
'Copy DS zip archive %s/%s to %s' % (logsTempDir,ZIPNAME,dsHost)
{ 'srcfile' : '%s/%s' % (ZIPPATH,ZIPNAME),
'destfile' : '%s/%s' % (dsDir,ZIPNAME),
'remotehost' : dsHost
}
'Extract DS zip archive to %s on %s' % (dsDir,dsHost)
{ 'location' : dsHost,
'zipfile' : '%s/%s' % (dsDir,ZIPNAME),
'unzipdir' : dsDir
}
mylog
'Set up DS on %s : %s/%s' % (dsHost,dsDir,OPENDSNAME)
{ 'location' : dsHost,
'dsPath' : '%s/%s' % (dsDir, OPENDSNAME),
'dsPort' : dsPort,
'dsJmxPort' : dsJmxPort,
'dsBindDN' : dsBindDN,
'dsBindPwd' : dsBindPwd,
'dsBaseDN' : dsBaseDN,
'dsEnableWindowsService' : enableWindowsService,
'dsDoNotStart' : 'true'
}
{ 'returncode' : RC ,
'result' : STAXResult
}
'Instance created.'
'Failed to create instance.'
This function configures replication in a given server.
Map containing a Server class instance representing the server to configure.
'Configure replication on server on host %s at directory %s' % (syncserver.getHostname(),syncserver.getDir())
'Copy %s file from %s to %s' % (filename,logsTestDataDir,dataDir)
{ 'srcfile' : filePath,
'destfile' : '%s/%s' % (dataDir,filename),
'remotehost' : syncserver.getHostname()
}
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath
}
{ 'returncode' : RC ,
'result' : STAXResult
}
'Add replication configuration entries in %s' % remoteFilePath
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsInstanceHost' : syncserver.getHostname(),
'dsInstancePort' : syncserver.getPort(),
'dsInstanceDn' : syncserver.getRootDn(),
'dsInstancePswd' : syncserver.getRootPwd(),
'entryToBeAdded' : remoteFilePath
}
{ 'returncode' : RC,
'result' : STAXResult
}
{ 'location' : syncserver.getHostname(),
'dsHost' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsPort' : syncserver.getPort(),
'dsBindDN' : syncserver.getRootDn(),
'dsBindPwd' : syncserver.getRootPwd()
}
{ 'returncode' : RC ,
'result' : STAXResult
}
This function configures replication in a given server.
Server class instance representing the server to configure.
'Configure replication on server on host %s at directory %s' % (syncserver.getHostname(),syncserver.getDir())
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath
}
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsInstanceHost' : syncserver.getHostname(),
'dsInstancePort' : syncserver.getPort(),
'dsInstanceDn' : syncserver.getRootDn(),
'dsInstancePswd' : syncserver.getRootPwd(),
'entryToBeAdded' : '%s/%s/replication/workaround-2201.ldif' % (syncserver.getDir(), relativeDataDir) }
'List synchronization providers'
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsInstanceHost' : syncserver.getHostname(),
'dsInstancePort' : syncserver.getPort(),
'dsInstanceDn' : syncserver.getRootDn(),
'dsInstancePswd' : syncserver.getRootPwd()
}
'Create replication server listening on port: %s' % replicationServer.getPort()
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsInstanceHost' : syncserver.getHostname(),
'dsInstancePort' : syncserver.getPort(),
'dsInstanceDn' : syncserver.getRootDn(),
'dsInstancePswd' : syncserver.getRootPwd(),
'replicationPort' : replicationServer.getPort(),
'replicationServerId' : replicationServer.getId(),
'replicationServerList' : replicationServer.getChangelogServerList()
}
'Create domain name for suffix: %s' % suffix.getSuffixDn()
{ 'location' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsInstanceHost' : syncserver.getHostname(),
'dsInstancePort' : syncserver.getPort(),
'dsInstanceDn' : syncserver.getRootDn(),
'dsInstancePswd' : syncserver.getRootPwd(),
'domainName' : 'SUFFIX-%s' % i,
'replicationDn' : suffix.getSuffixDn(),
'serverId' : suffix.getId(),
'replicationServerList' : suffix.getChangelogServerList()
}
{ 'location' : syncserver.getHostname(),
'dsHost' : syncserver.getHostname(),
'dsPath' : syncserverPath,
'dsPort' : syncserver.getPort(),
'dsBindDN' : syncserver.getRootDn(),
'dsBindPwd' : syncserver.getRootPwd()
}
This function enables replication between servers using dsreplication.
Location of target host
Pathname to installation root
Directory server hostname or IP address
Directory server port number
Bind DN
Bind password
Replication port number
Encrypt communications over dsReplicationPort (secure replication)
Reference Directory server hostname or IP address
Reference Directory server port number
Reference server Bind DN
Reference server Bind password
Reference server Replication port number
Encrypt communications over refReplicationPort (secure replication)
DN of the replicated suffix
Global Administrator UID
Global Administrator password
Do not enable schema replication
Take the refInstanceHost as the source for the schema initialisation
Expected return code value. Default value is 0
{ 'name' : 'Enable Replication',
'location' : location,
'command' : STAFCmd,
'arguments' : STAFCmdParams
}
{ 'returncode' : STAXCode,
'result' : STAXReason,
'expected' : expectedRC
}
STAXReason
This function initializes replicated suffixes with the contents
of a source server using dsreplication.
Location of target host
Pathname to installation root
Directory server hostname or IP address
Directory server port number
Source Directory server hostname or IP address
Source Directory server port number
DN of the replicated suffix
Global Administrator UID
Global Administrator password
Expected return code value. Default value is 0
{ 'name' : 'Initialize Replication',
'location' : location,
'command' : STAFCmd,
'arguments' : STAFCmdParams
}
{ 'returncode' : STAXCode,
'result' : STAXReason,
'expected' : expectedRC
}
STAXReason
This function disables replication for a given baseDN on a server using dsreplication.
Location of target host
Pathname to installation root
Directory server hostname or IP address
Directory server port number
DN of the replicated suffix
Global Administrator UID
Global Administrator password
Expected return code value. Default value is 0
{ 'name' : 'Disable Replication',
'location' : location,
'command' : STAFCmd,
'arguments' : STAFCmdParams
}
{ 'returncode' : STAXCode,
'result' : STAXReason,
'expected' : expectedRC
}
STAXReason
This function reads the topology from a given file.
It parses the topology description file and sets _topologyServerList, a list of the servers
that form the topology.
File containing the topology description.
'Parse file %s for topology parameters' % file
This function removes an instance on a given host.
Hostname where the instance is to be created
Directory where OpenDS will be installed
'Removing instance %s/%s on host %s' % (dsDir,OPENDSNAME,dsHost)
'Delete staging data file %s/testdata.zip' % dsDir
{ 'location' : dsHost,
'filename' : '%s/testdata.zip' % dsDir
}
'Delete staging data folder %s/shared' % dsDir
{ 'location' : dsHost,
'foldername' : '%s/shared' % dsDir
}
'Delete OPENDS zip file %s/%s' % (dsDir,ZIPNAME)
{ 'location' : dsHost,
'filename' : '%s/%s' % (dsDir,ZIPNAME) }
{ 'returncode' : RC ,
'result' : STAXResult
}
'Instance removed.'
'Failed to remove instance.'
This function removes the topology created for the Test Group/Suite.
Tells whether it is a single (i.e. parameters read from config.py) or
a multiple-instance topology (i.e. parameters read from topology desc file).
{ 'dsHost' : server.getHostname(),
'dsDir' : server.getDir()
}