README
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
========================================================================= How to use the TGrid/TAlien/TAlienFile class V1.1 - [email protected] ========================================================================= TGrid-Plugin: TAlien ==================== To connect to Alien you have to connect to a running API service of your virtual organization. Creating <gGrid> instance: a) // connecting to an API service TGrid::Connect("alien://pcapiserv01.cern.ch:9000","aliprod); // connecting to an API service which is defined already by the environment variables: export alien_API_HOST=... export alien_API_PORT=... export alien_API_USER=... TGrid::Connect("alien://"); // connect to an API service with an authentication token established previously with gShellq. b) TGrid::Connect("alien://",0,0,"t"); In case a) the authentication is private to the process, while case b) shares the authentication(session) with the shell, which has established the session previously. Notice that a) is not thread-safe, while b) is! If you have executed TGrid::Connect(), the gGrid global variable should be set != 0. Some examples: - change the working directory gGrid->Cd("/alice/"); // => returns 1 for success, 0 for error - get the working directory printf("GRID Working is %d",gGrid->Pwd()); - list a directory TGridResult* result = gGrid->Ls("/alice"); Int_t i=0; while (result->GetFileName(i)) printf("File %s\n",result->GetFileName(i++)); TGridResult* result = gGrid->Ls("/alice"); Int_t i=0; while (result->GetFileName(i)) printf("File %s\n",result->GetFileName(i++)); - get all file permissions - using the GetKey function TGridResult* result = gGrid->Ls("/alice","-la"); while (result->GetFileName(i))\ printf("The permissions are %s\n",result->GetKey(i++,"permissions") // => the defined keys for GetKey can be seen using result->Print(); - query files under a certain namespace tree TGridResult* result = gGrid->Query("/alice/,"*.root"); You can execute any existing command via the Command interface: TGridResult* result = gGrid->Command("ls -la /",0,2); // '0' switches of the output of stdout and stderr to the terminal // '2' selects the result stream to be returned as TGridResult* : '0' returns stdout, '1' returns stderr, '2' returns the result structure -> This command is equivalent to: gGrid->Ls("/","-la"); You can print the stdout of the last command via: gGrid->Stdout(); You can print the stderr of the last command via: gGrid->Stderr(); To see the result structure of a command, you can just use the 'Print' function for the TGridResult: result->Print(); TFile-Plugin: TAlienFile ======================== Files stored in Alien can be opened with the catalogue LFN or a GUID. To open a file by LFN use: TFile* myfile = TFile::Open("alien:///alice/cern.ch/file.root"); or TFile* myfile = TFile::Open("/alien/alice/cern.ch/file.root"); To open a file by GUID use: TFile* myfile = TFile::Open("alien://<guid>"); To address a certain storage element add to the URL "?se=ALICE::CERN::Castor"; f.e. TFile::Open("/alien/alice/cern.ch/file.root?se=ALICE::CERN::Castor"); To open a ZIP file in an archive, use: TFile::Open("/alien7alice/cern.ch/archivefile.zip#file.root"); - this assumes, that archivefile.zip is an UNCOMPRESSED zip archive containing 'file.root'. - remember, that archives need to have the suffix '.zip' to be understood as such.