Developer's guide

This guide will help new developers to setup their environment to be able to test their modifications.

Follow the instructions  from the installation guide.

Install the complete distribution (-type all).

There are three steps that a new developer has to setup:

  1. Install AliEn
  2. Setup SVN
  3. Setup his/her own VO

The last step is to create your own VO. This will configure all the services that are needed to run a VO on your machine. This way, you will be able to run a full grid on a single node.

 

 

Once these three steps have been followed, the developer should be able to modify the code and test it with the local installation.

 

Once the components are installed and a Virtual Organization is configured, a number of AliEn Web
Services at central and remote sites
 

  • Checkout the current version directory (at the time of this is writing that is "v2-21"):

$ svn co http://svn.cern.ch/guest/AliEn/branches/v2-21 

Inside this directory there are three sub directories "admin" , "common" and "tests".
The installation process requires excuting few commands from within each of those directories, as follows:

  • v2-21/common

$ cd ~/v2-21/common

$ ~/alien/bin/alien-perl Makefile.PL
$ make
$ make install

  • v2-21/admin

$ cd ~/v2-21/admin
$ autoconf
$ ./configure
$ make install

  • Create ALIEN_TESTDIR environment variable:

export ALIEN_TESTDIR=$HOME/v2-21/tests/test

  • The last line should be executed every time that you start a new session. We suggest to add it to your default environment (like $HOME/.bashrc if you are using bash)

Now, you should have the following directories:

 
  • Installation directory ($ALIEN_ROOT). By default, $HOME/alien. Place where alien has been installed
  • AliEn home directory ($ALIEN_HOME). By default, $HOME/.alien. It will be created once you login to alien.
  • Test directory ($ALIEN_TESTDIR). $HOME/alien-tests/test/. Directory with all the tests 

 

Do the following commads:

 

$ cd $ALIEN_TESTDIR
$ ./Install.sh -create_cert
$ ./Install.sh -new_vo 
$ ./Install.sh -user_tests -no_break

The second command creates a self-signed certificate that the services will use.

The third one will configure and start the central services (mysql, ldap and AliEn)

The last one will setup the site services, and check that everything works. At the moment, some of the tests are supposed to fail. Crosscheck with http://alienbuild4.cern.ch:8888/ to compare the failing tests

 

 

Debugging Guide for AliEn developers

 

AliEn Architecture-

 

 

Note: Installing the alien distribution using the option (-type all) all the vobox, client (or working nodes) and server are installed on the same machine. This also implies that once the Virtual Organization is configured all the services i.e. Central Services and the Site Services run on the same host machine.

 
 
 

 

For Developing AliEn code-

  • AliEn directory: common/lib/AliEn
  • Add or modify or play with AliEn code.
  • Move back to the directory alien-common
  • Build AliEn again: make install
  • Restart authen: alien AuthenStart 
  • Run alien: alien -r admin 

 

Procedure to start, stop and check of various AliEn services.

For Site Services:

In General this can be performed by:

  • Start    :  alien Start[service_name]   (to start a service)
  • Stop    :   alien Stop[service_name]     (to stop a currently running service)
  • Status :  alien Status[service_name] (In case of no output after its execution, it implies that the service is running fine. In the case of some output or return statements the service is not working and need to be started)

Examples: 

  • alien StartMonitor
  • alien StopMonitor
  • alien StatusMonitor

Some of the services namely are: CE(Computing Element), PackMan(Package Manager), Monitor(ClusterMonitor), JobManager, JobOptimizer, JobInfoManager, Authen

 

For Central Services:

  • LDAP            :  $ALIEN_ROOT/etc/rc.d/init.d/alien-ldap [start] [stop]
  • MySQL(DB) : $ALIEN_ROOT/etc/rc.d/init.d/alien-mysqld [start] [stop]
  • AliEnd           :  $ALIEN_ROOT/etc/rc.d/init.d/alien-aliend [start] [stop]

 

AliEn Logs

  • All the alien-tests logs can be found in /tmp/alien_tests/current
  • Here the logs of all user-tests that fail (for example: /tmp/alien_tests/current/81.test.job_manual.015-queueInfo => log information of the test 82 that failed) 
  • as well as the output of various tests that serve as input to various other tests are present (for example: /tmp/alien_tests/current/file_quota.05-agentUploadFailure.b.input serves as input for test file_quota.05-agentUploadFailure.b). 
  • AliEn log directory for rest of the services is /tmp/[host_name]/log
  • All the jobs' logs can be found at /tmp/[host_name]/log/proc/7200/183185/ . The name of the file has the structure proc.[jobId].out
  •  

 

    Join to Savannah group for AliEn developers

    Go to E-Groups page, login with your cern account and subscribe to mailing lists of:

     

    Members of AliEn2 group

    • alice-lcg-task-force
    • - Discussion list of the ALICE LCG task force for distributing computing
    • alien-developers     -
    • List of all the alien developers