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() } 'Instance requires REPLICATION configuration.' [server] 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' } 'Delete %s/testdata.zip' % logsTempDir { 'location' : STAXServiceMachine, 'filename' : '%s/testdata.zip' % logsTempDir } 'Zip up local data directory %s/testdata.zip' % logsTempDir { 'location' : STAXServiceMachine, 'zipfile' : '%s/testdata.zip' % logsTempDir , 'folder' : '%s' % localTestsGroupDir , 'relativeto' : logsTestDataDir } 'Zip up local quickstart directory %s/testdata.zip' % logsTempDir { 'location' : STAXServiceMachine, 'zipfile' : '%s/testdata.zip' % logsTempDir , 'folder' : '%s' % quickStartLocalTestsGroupDir , '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 } { '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 } 'Create synchronization provider' { '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 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() }