Tags:
, view all tags

CREAM Test work plan

Introduction

The CREAM testsuite is a set of python scripts that interacts with the CREAM command line tools in order to perform several functional tests.

Installation and setup

The easiest way to deploy the testsuite is to have a UI node already available, for further details refer to the Generic Installation and Configuration Guide.

The testsuite can be installed using yum creating a file called testsuites.repo in the yum.repos.d directory with the following definition:

[ETICS-name-CREAM-service-testsuite]
name=ETICS Repository of CREAM-service-testsuite
baseurl=http://etics-repository.cern.ch:8080/repository/pm/registered/repomd/name/CREAM-service-testsuite_1_0_7
protect=0
enabled=1
gpgcheck=0

and then running

yum update
yum install glite-testsuites-cream

After the installation it is suggested to check if the environment variable GLITE_LOCATION points to the correct gLite installation directory, i.e. the one containing the bin folder with the CREAM clients.

Testsuite and ETICS

The testsuite can be downloaded and build directly from the ETICS framework. For any details concerning the ETICS client installation refer to the User Guide or to the twiki site.

The following list of commands is required in order to retrieve and build the latest stable release:

etics-workspace-setup
etics-get-project org.glite
etics-checkout --config glite-testsuites-cream_R_1_0_7_0 --project-config glite_branch_3_1_0 org.glite.testsuites.cream
etics-build org.glite.testsuites.cream

Releases and Changelog

  • 1.0.3.0 (2009-02-24):
    • Fixed bug: bad termination condition in cream-monitored-* tests with failures during the submission
  • 1.0.4.0 (2009-03-05):
    • Changed command line of the CE monitor client, this version can be used only with the clients whose version is 1.11 or higher
  • 1.0.5.0 (2009-04-17):
    • Fixed minor issues
    • New options "nopurge" and "sotimeout" are available
  • 1.0.6.0 (2009-05-26):
    • Fixed man pages in rpm
    • Fixed minor issues
  • 1.0.7.0 (2009-03-02):
    • Support for event query

Work plan


Testsuite description

The set of test can be divided into two main categories, according to the type of status detection mechanism for a job:

Proxy management

Each test can be run using either an external user voms-proxy or with an internal management of the voms-proxy.

The default mechanism is using an external voms-proxy. The external voms-proxy is not renewed by the test, the user is responsible for updating that credential if required in such a way that it does not interfere with tests, for example "renaming" the new proxy into the old one.

The external voms-proxy path is defined with the environment variable X509_USER_PROXY, the main default is /tmp/x509_uuid.

With the internal management of the voms-proxy the testsuite keeps track of the renewal of that credential, the user has just to provide a valid personal certificate and private key. The environment variables required for enabling this mode are: X509_USER_CERT and X509_USER_KEY; when this mode is selected each test requires the definition of the VO to be used (option --vo) and the voms-proxy-init client must be properly configured.

Delegation management

Each test can be run either using a single delegated proxy on the CE for all the submissions or with one delegated proxy per submitted job, see --delegationType option.

The tester must be aware of using the second mode can overload the entire system, both the service and the testsuite, so the tuning of the test parameters must consider that issue.

Isolation and interference tests

One of the basic requirements for a test is to be isolated; each test handles only its own jobs and resources in general (delegated proxies, lease tokens, etc.) with no interferences from other tests.

Multiple tests can be executed in parallel in order to detect interferences on the service side; for example the cream-test-monitored-lease-expired test can be run together with cream-test-monitored-submit for discovering a wrong lease management for the jobs submitted by the latter.

Hints for test tuning

  • Due to unavoidable delays in the command scheduling, the life-time of the job submitted with the cream-test-notified-cancel has to be at least 3 times longer than the rate parameter. With shorter life-time the job can terminate before the testsuite is able to detect the change of its status.
  • In order to test the internal proxy renewal mechanism of the CREAM service it's strongly suggested to run at least one test with notifications and proxy renewal all alone, with no other tests running on the same CE.
  • It is strongly suggested to configure the socket timeout according to the latency of the network using the --sotimeout option (available since version 1.0.5)

Proposed test plan

The set of tests described in this section is used for the pre-certification of the latest version of the CREAM CE and can be considered a template for external testers. In the following the CREAM CE under test is cream-12.pd.infn.it (port 8443) with Torque as batch system and cream_A as assigned queue, the hostname and port must be replaced with the correct values according to the arrangement of the testbed; the VO dteam is used.


The simple.jdl contains:

[ executable="/bin/sleep"; arguments="180";]

The long.jdl contains:

[ executable="/bin/sleep"; arguments="1800";]

The onehoursleep contains:<verbatim>[ executable="/bin/sleep"; arguments="3600";]</verbatim>

The testsandbox.jdl contains:

[
executable="/bin/cp";
arguments="grid-mapfile out-`date +%s%N`-`whoami`.txt";
inputsandbox={
   "gsiftp://cream-12.pd.infn.it/etc/grid-security/grid-mapfile"
};
outputsandbox={
   "out*.txt"
};
outputsandboxbasedesturi="gsiftp://cream-12.pd.infn.it/tmp";
epilogue="/bin/sleep";
epiloguearguments="60";
]

The log4py.conf contains:

[Default]
Format: %T %L %C [%F] - %M
Target: cream-test-cream-12.log
Ansi: False
LogLevel: Debug

Simple submission with polling
cream-test-monitored-submit -r 30 -n 1000 -m 50 -C 50 -l log4py.conf -j simple.jdl -R cream-12.pd.infn.it:8443/cream-pbs-cream_A 
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy
Simple submission with notifications
cream-test-notified-submit -r 30 -n 1000 -m 50 -C 50 -p 9000 -l log4py.conf -j simple.jdl -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy
Submission and cancellation with polling
cream-test-monitored-cancel -r 30 -n 1000 -m 50 -C 50 -l log4py.conf -j simple.jdl -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy.
Submission and cancellation with notifications
cream-test-notified-cancel -r 30 -n 1000 -m 50 -C 50 -p 9000 -l log4py.conf -j simple.jdl -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy.
Submission with polling and sandbox transfer
cream-test-monitored-submit -r 30 -n 1000 -m 50 -C 50 -l log4py.conf -j testsandbox.jdl -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy. The output sandbox on the CE must be checked and removed manually.
Submission with notifications and sandbox transfer
cream-test-notified-submit -r 30 -n 1000 -m 50 -C 50 -p 9000 -l log4py.conf -j testsandbox.jdl -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy. The output sandbox on the CE must be checked and removed manually.
Simple submission with polling and proxy renewal
cream-test-monitored-submit -r 60 -n 50 -m 10 -C 10 -l log4py.conf -j long.jdl --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required
Simple submission with notifications and proxy renewal
cream-test-notified-submit -r 60 -n 50 -m 10 -C 10 -p 9000 -l log4py.conf -j long.jdl --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required.
Simple submission with polling and proxy expired
cream-test-monitored-proxy-expired -r 60 -n 50 -m 10 -C 10 -l log4py.conf --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required.
Simple submission with polling and lease expired
cream-test-monitored-lease-expired -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1200 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy. One lease token is defined for all jobs.
Simple submission with notifications and lease expired
cream-test-notified-lease-expired -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1200 -p 9000 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy.One lease token is defined for all jobs
Simple submission with polling, lease expired and proxy renewal
cream-test-monitored-lease-expired -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1800 --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required.One lease token is defined for all jobs.
Simple submission with notifications, lease expired and proxy renewal
cream-test-notified-lease-expired -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1800 -p 9000 --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required.One lease token is defined for all jobs.
Simple submission with polling and lease updated
cream-test-monitored-lease-updated -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1200 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy.One lease token is defined for all jobs.
Simple submission with notifications and lease updated
cream-test-notified-lease-updated -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1200 -p 9000 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The renewal process is disabled, the variable X509_USER_PROXY must point to a 12-hours long proxy.One lease token is defined for all jobs.
Simple submission with polling, lease updated and proxy renewal
cream-test-monitored-lease-updated -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1800 --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required.One lease token is defined for all jobs.
Simple submission with notifications, lease updated and proxy renewal
cream-test-notified-lease-updated -r 60 -n 50 -m 10 -C 10 -l log4py.conf -W 1800 -p 9000 --vo dteam --valid 00:20 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required.One lease token is defined for all jobs.
Proxy renewal for job in IDLE
cream-test-monitored-submit -r 60 -n $TOTAL -m $PART -C $PART -l log4py.conf -j onehoursleep.jdl --vo dteam --valid 00:45 -R cream-12.pd.infn.it:8443/cream-pbs-cream_A
The variables X509_USER_CERT and X509_USER_KEY must point to the location of the user certificate and private key, passphrase is required. The variable $PART is an integer greater than the number of jobs which can be run concurrently in the batch system, the variable $TOTAL is a multiple of $PART.

Missing tests

  • Logging and Bookkeeping integration: tests of the notifications sent by the job wrapper to the local logger (if installed) and in the next future for direct CREAM-LB integration.

  • Shallow resubmission support: tests for token handling.

Contacts

For any trouble concerning the test suite or the test plan please contacts: cream-support@lists.infn.it

Edit | Attach | PDF | History: r31 | r5 < r4 < r3 < r2 | Backlinks | Raw View | More topic actions...
Topic revision: r3 - 2011-10-27 - TWikiAdminUser
 

  • Edit
  • Attach
This site is powered by the TWiki collaboration platformCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback