GDMP
GDMP Installation
GDMP Heart Beat Installation
 
 

_____________________________________________________________________________________________________________________________________
 

GDMP Installation

1. Install globus 2.0Beta

2. Install GDMP ( suppose you install gdmp as user "gdmp_admin". don't user "root" to install GDMP)

check out GDMP from CVS

 > cvs -d :pserver:anonymous@cdcvs.fnal.gov:/cvs/cd_read_only login

When prompted for a password, type

   anoncvs

 >cvs -d :pserver:anonymous@cdcvs.fnal.gov:/cvs/cd_read_only checkout -r <gdmp_version> gdmp

     let say we use gdmp version gdmp_3_0_alpha2

3. Build GDMP (lets say checkout gdmp in /opt/gdmp/build/gdmp_3_0_alpha2 directory and globus 2.0b is installted in /opt/globus)

 > cd /opt/gdmp/build/gdmp_3_0_alpha2/gdmp

 > ./bootstrap

 > setenv GLOBUS_LOCATION /opt/globus

 > ./configure  --prefix=/opt/gdmp/install/gdmp_3_0_alpha2

      If you want to build GDMP with objectivity then

 > ./configure  --prefix=/opt/gdmp/install/gdmp_3_0_alpha2 \
        --with-objectivity=yes --with-objectivity-install=<objectivity_install_path>

 > make

      If you get error like libtool has a different version then do this

 > rm libtool

 > ln -s $GLOBUS_LOCATION/sbin/libtool-gcc32dbgpthr libtool

 > make

      You may get warnings like globus lib files <xyz> was moved. just ignore theose

 > make install

   After this you should have these executable in your /opt/gdmp/install/gdmp_3_0_alpha2/bin directory

/opt/gdmp/install/gdmp_3_0_alpha2/bin

                                       gdmp_catalogue_cleanup
                                        gdmp_get_catalogue
                                        gdmp_ping
                                        gdmp_register_local_file
                                        gdmp_server
                                        gdmp_filter_catalogue
                                        gdmp_host_subscribe
                                        gdmp_publish_catalogue
                                        gdmp_replicate_get
                                        gdmp_stage_complete

4. setup GDMP server ( you need user "root" to do this). add the following line in /etc/services

    file   gdmp-server  2000/tcp  # GDMP Server

   add the following line in /etc/inetd.conf

   gdmp-server  stream tcp nowait  gdmp_admin /opt/gdmp/install/gdmp_3_0_alpha2/utils/gdmp_server_start

5. restart the inetd server

   /etc/rc.d/init.d/inet restart

6. GDMP Configuration:

   As GDMP uses the CERN CA certificate, so you can either setup your globus to allow CERN CA certificates or you can use your Globus CA issued host certificate as
   GDMP server cert. For setting globus to allow CERN CA do this Save the following files in /etc/grid-security/certificates directory

   http://home.fnal.gov/~muzaffar/gdmp/c35c1972.0
   http://home.fnal.gov/~muzaffar/gdmp/c35c1972.crl_url
   http://home.fnal.gov/~muzaffar/gdmp/c35c1972.signing_policy

   OR If you want to use a Globus CA issued cert/key (e.g. your host cert or any other cert/key which was generated grid-cert-request with -nopw option) then just copy
   both cert and key files GDMP_CONFIG_DIR/gdmp_server.proxy

  cat hostcert.pem hostkey.pem > GDMP_CONFIG_DIR/gdmp_server.proxy

   Edit /opt/gdmp/install/gdmp_3_0_alpha2/etc/gdmp.conf file. GDMP will automatically set these parameters but if these are not correct then pls change

     - GDMP installation directory:
      GDMP_INSTALL_DIR=/opt/gdmp/install/gdmp_3_0_alpha2

      - Port number on which local GDMP server is listening
      GDMP_PORT_NUMBER=2000

      - Globus installation path
      GLOBUS_LOCATION=/opt/globus

      - Objectivity install path
      OBJECTIVITY_DIR=<objectivity_install_path>

      - GDMP configuration directory
      GDMP_CONFIG_DIR=/opt/gdmp/install/gdmp_3_0_alpha2/etc

      - GDMP var directory path
      GDMP_VAR_DIR=/opt/gdmp/install/gdmp_3_0_alpha2/var

      - GDMP tmp directory path, this should be writeable fr world (better change it to /tmp)
      GDMP_TMP_DIR=/opt/gdmp/install/gdmp_3_0_alpha2/tmp

      - GDMP grid-mapfile path. In this file put the globus certificate CN of all the users who
        are allowed to use this installation of GDMP. You can also create your own grid-mapfile
        in GDMP_CONFIG_DIR directory
      GDMP_GRID_MAPFILE=/etc/grid-security/grid-mapfile
 

      - Virtual organization (VO) name. Now single installation of GDMP can be shared by many users and many organizations. For each VO create an gdmp/etc/<vo>  directory and put gdmp.conf and gdmp_server.proxy file in it. You can restrict users to only use GDMP for perticular VOs, e.g. if you want that a user "usera1" can only use gdmp for VO cms and atlas then create two different  grid-mapfile, one in gdmp/etc/cms and one in gdmp/etc/atlas  and put the user's CN in  these grid-mapfiles and also change the value of GDMP_GRID_MAPFILE in these gdmp.conf

        files to point to its own grid-mapfile.
      GDMP_VIRTUAL_ORG=

      - GDMP server proxy file path. Now you can use any valid globus certificate/key for GDMP server (as long as it was created with -nopw option i.e no password) or you can also use host certificate/key. You have to create a valid proxy file out of these certificate key pair. To create proxy file from your host certificate do this

cat /etc/grid-security/hostcert.pem /etc/grid-security/hostkey.pem > gdmp/etc/gdmp_server.proxy

(don't forget to save the old gdmp/etc/gdmp_server.proxy first)

  permissions on ths file should be 600 i.e readable and writeable by gdmp_admin only.

 GDMP_SERVER_PROXY=/opt/gdmp/install/gdmp_3_0_alpha2/etc/gdmp_server.proxy

      - GDMP server name. If you have used host certificate then you can either leave it blank or change it to

      host@<your_host_name>
      GDMP_SERVICE_NAME=GDMP_Server

   e.g you want two VOs (cms, atlas) to use single installation of GDMP on host gdmp.domain.com. then

 - first create two directory

        mkdir gdmp/etc/cms
        mkdir gdmp/etc/atlas

  - create two grid-mapfiles

       gdmp/etc/cms/grid-mapfile
        gdmp/etc/atlas/grid-mapfile
 

      - if both VOs wants to use their own certificates then they can provide cert/key files and you can create a proxy file from those and put that in gdmp/etc/cms and gdmp/etc/atlas directories. Otherwise you can use the GDMP_Server proxy file.

      - you can create gdmp.conf files for both VO's to use different root directories set the different parameters in these gdmp.conf files to point to correct location e.g
        change the

       - GDMP_VIRTUAL_ORG=cms   OR
          GDMP_VIRTUAL_ORG=atlas

       - GDMP_SERVICE_NAME=GDMP_Server    OR
          GDMP_SERVICE_NAME=<provided by VO>

        - GDMP_SERVER_PROXY=<gdmp/etc/cms/gdmp_server.proxy>    OR
          GDMP_SERVER_PROXY=<gdmp/etc/atlas/gdmp_server.proxy>  OR
          GDMP_SERVER_PROXY=<gdmp/etc/gdmp_server.proxy>

        - GDMP_CONFIG_DIR=<gdmp/etc/cms>   OR
          GDMP_CONFIG_DIR=<gdmp/etc/atlas>   OR
          GDMP_CONFIG_DIR=<gdmp/etc>
        - GDMP_GRID_MAPFILE=<gdmp/etc/cms/grid-mapfile>  OR
          GDMP_GRID_MAPFILE=<gdmp/etc/atlas/grid-mapfile>

 You have to set these parameters

Compulsory Parameters:

      Set your host name

      GDMP_LOCAL_HOST=<set_your_host_name>

      e.g.
      GDMP_LOCAL_HOST=shahzad.fnal.gov

      Set your domain name

     GDMP_LOCAL_DOMAIN=<set_your_domain_name>

     e.g.
     GDMP_LOCAL_DOMAIN=fnal.gov

      Root directory where your flatfiles are going to be stored
 

      GDMP_FLATFILE_ROOT_DIR=<flatfile_root_dir>

      If you want to use Replica Catalogue the set these parameters too

      GDMP_REP_CAT_MANAGER_DN=<RC manager DN>
      GDMP_REP_CAT_MANAGER_PWD=<RC manager password>
      GDMP_REP_CAT_FLATFILE_COLL_URL=<URL collection for flat files>
      GDMP_REP_CAT_URL=<RC URL>

      e.g
      GDMP_REP_CAT_MANAGER_DN=cn=Manager, dc=shahzad, dc=fnal, dc=gov
      GDMP_REP_CAT_MANAGER_PWD=xyz
      GDMP_REP_CAT_FLATFILE_COLL_URL=ldap://shahzad.fnal.gov:2010/lc=FlatFile Collection,rc=WP2 Test Replica Catalog, dc=shahzad, dc=fnal, dc=gov
      GDMP_REP_CAT_URL=ldap://shahzad.fnal.gov:2010/rc=WP2 Test Replica Catalog, dc=shahzad, dc=fnal, dc=gov

      If you build GDMP with Objectivity then
 

     GDMP_OBJY_ROOT_DIR=<root directory where your Objectivity DB files will be stored>
      OO_FD_BOOT=<Objectivity Federation boot file path>
      GDMP_REP_CAT_OBJECTIVITY_COLL_URL=<URL collection for objectivity files>

      e.g
      GDMP_REP_CAT_OBJECTIVITY_COLL_URL=ldap://shahzad.fnal.gov:2010/lc=OBJYFile Collection,rc=WP2 Test Replica Catalog, dc=shahzad, dc=fnal, dc=gov

      Optional Parameters:
      To support staging files from MSS system

      GDMP_STAGE_FROM_MSS=           #Path of script used to stage a file from MSS. 2 args will be pass to this script
                                     #1) the relative_file_path
                                     #2) the root_dir
                                     #This script should copy the required file from MSS to root_dir/relative_path
                                     #when file is staged successfully this script should run
                                     #GDMP_INSTALL_DIR/bin/gdmp_stage_complete -f relative_file_path
                                     #See GDMP Uer Guide, Chapter Mass Storage Support

     GDMP_STAGE_TO_MSS=              #path of script used to migrate a file to MSS. 2 args will be passed to this script
                                     #1) the relative_file_path
                                     #2) the root_dir
                                     #This script should copy the required file from root_dir/relative_path to MSS

     If you want to give your files your own logical file names then provide this script

     GDMP_FILE_CATALOG_SCRIPT=       #A script to get a listing of files in a perticular directory.
                                     #This script will be executed with 2 args passed to it
                                     #1) directory 'dir', for which the listing needed
                                     #2) file name 'file', in which the listing should be stored
                                     #This script should create a file in which each line should have the format
                                     #filetype:unique_logical_file_name:full_file_path
                                     #filetype = could be any filetype which is understandable by gdmp.
                                     #           One can use "default"
                                     #unique_logical_file_name = If one wants to assign his own LFN, then he/she
                                     #           can provide these LFN in the 2nd feild. If "automatic" is set for
                                     #           LFN then gdmp will create a unique file name for you. which will be
                                     #           For Flat Files:
                                     #           GDMP_LOCAL_HOST_<file_full_path>, where
                                     #           each "." in <file_full_path> will be replaced to "_."
                                     #           each "_" in <file_full_path> will be replaced to "__"
                                     #           each "/" in <file_full_path> will be replaced to "."
                                     #           For Objectivity Files:
                                     #           DBSysName.DBID
                                     #full_file_path = full path for each files in the directory 'dir'
                                     #If no value is set for this script then GDMP_INSTALL_DIR/utils/create_file_export_catalog
                                     #will be used as default script which will create a listing of all files in a 'dir' with
                                     #filetype = default
                                     #LFN      = automatic
                                     #ldap://shahzad.fnal.gov:2010/rc=WP2 Test Replica Catalog, dc=shahzad, dc=fnal, dc=gov
 
 

     File transfer notification script:

     GDMP_NOTIFICATION_FOR_REPLICATE_GET=
                                     #Name of the script which you want to run when a file is transfered by other gdmp server from your side.
                                     #This is a notification for your server that a file has been transfer by a perticular gdmp server.
                                     #let say when a file "file1" is transfered by a remote gdmp server "gdmpA" then at the end of successfull
                                     #transfer gdmp server "gdmpA" will send a notification message to your server that file "file1" is
                                     #successfully transfered. Your GDMP server then try to run this GDMP_NOTIFICATION_FOR_REPLICATE_GET script
                                     #with args
                                     #GDMP_NOTIFICATION_FOR_REPLICATE_GET  <file_name> <remote_gdmp_server>
                                     # <file_name> = Name of file which is transfered by <remote_gdmp_server>
                                     # <remote_gdmp_server> = Host name of remote server
                                     #One can write this script to delete the local file from disk to make disk space
 
 

     File publish notification script:

     GDMP_NOTIFICATION_FOR_PUBLISH_CATALOGUE=
                                     #Name of the script which you want to run when files are published by any gdmp host to your gdmp server
                                     #This is a notification for your server that a some one has published files for you.
                                     #let say a gdmp remote server "gdmpA" has published some files to your gdmp server then this script
                                     #will be called for you. The Args to this script are
                                     #GDMP_NOTIFICATION_FOR_PUBLISH_CATALOGUE <gdmp_host> <filetype> <import_catalog_path>
                                     # <gdmp_host> = GDMP host which has published files
                                     # <filetype> = Type of file which were published e.g objectivity or flatfile
                                     # <import_catalog_path> = Temp Import catalog path which has the list of files which were published
                                     #                         It has only those files which are currently published.
                                     #One can use this script to automatically start the file transfer
                                     #e.g If a Production site's gdmp server GDMP1 is publishing files to GDMP server GDMP2, and GDMP2 wants to
                                     #transfer these files as soon as they published then a small perl script will do this job for you
                                     #wrote a script, let say replicate.pl and add these lines in it
                                     ##!/usr/local/bin/perl
                                     ##if GDMP_VIRTUAL_ORG is empty in GDMP_CONFIG_FILE then remoe the
                                     ##-s <GDMP_VIRTUAL_ORG>
                                     #if("GDMP1" eq shift){
                                     #  'gdmp/bin/gdmp_replicate_get -s <GDMP_VIRTUAL_ORG> -t shift -c shift';
                                     #}
                                     #
                                     #And set the GDMP_NOTIFICATION_FOR_PUBLISH_CATALOGUE in gdmp.conf file to point to replicate.pl

     Note: Don't enclose any value in "" in gdmp.conf file

7. GDMP Usage:

   - Once your server is running then you can run other gdmp commands to talk to different gdmp servers
   - You must have a valid grid proxy ( to get one run grid-proxy-init )
   - Your GDMP Server CN should be available in /etc/grid-security/grid-mapfile of remote sites.
   - set system environment variable GDMP_CONFIG_FILE to point to the gdmp.conf file. If you want to use gdmp for VO cms then set GDMP_CONFIG_FILE to gdmp/etc/cms/gdmp.conf or if you want to use it for atlas then set GDMP_CONFIG_FILE to gdmp/etc/atlas/gdmp.conf
   - Your globus certificate CN must be properly added in the GDMP_GRID_MAPFILE file ( i.e either is
     gdmp/etc/<vo>/grid-mapfile or /etc/grid-security/grid-mapfile )
 

   1) gdmp_ping [-h] [-r <remote_host>] [-p <remote_port>] [-a]
       -h  = To print the help message
       -r  = Remote Host name ( if not used then GDMP_LOCAL_HOST is used)
       -p  = Remote port on which the remote gdmp host is listening
             ( if not used then GDMP_PORT_NUMBER will be used)
       -a  = Optional: If not provided then user will be checked for authentication if provided

       Ths will try to check that remote or local gdmp server is up and user is allowed to use
       it or not.
       e.g if a user "user1" at gdmp server GDMPA wants to ping a gdmp server GDMPB:2000 then

      gdmp_ping -r GDMPB -p 2000

       will check that either GDMPB:2000 is up and users is authenticated user or not.
       For proper authentcation, user's CN must be in local GDMP_GRID_MAPFILE and
       GDMP server's CN must be in the /etc/grid-security/grid-mapfile on remote site.
       gdmp_ping without any arguments will check the local gdmp server, user's CN must be
       in the local GDMP_GRID_MAPFILE

   2) gdmp_host_subscribe [-h] -r <remote_host> -p <remote_port> [-c]
       -h  = To print the help message
       -r  = Remote Host name
       -p  = Remote port on which the remote gdmp host is listening
       -c  = To check that either you are subscribed to reote host or not

       This command will add your gdmp entry in the GDMP_INSTALL_DIR/etc/<vo>/host_list file
       of remote system. Now whenever remote site will publish any thing you will also get a
       notification. Remote site can also run the same command to subscribe their host with
       your gdmp server

   3) gdmp_get_catalogue [-h] -r <remote_host> -p <remote_port> [-t filetype]
      To get list of published files from a remote site
       -h , -p , -r are same as above
       -t  = optional argument. default value is "flatfile". One can also provide "objectivity", if gdmp was build with Objectivity

       This command is used to get all the files information of a perticular type which
       has been published by a remote host. If remote host has not yet publish any thing
       then you will not get any informaton. when ever a site publishes any thing, it
       will make that information persistence by storing it in an export catalog.
       gdmp_get_catalogue tries to get the etc/export_catalog on the remote gdmp server.
       The new information will be added in GDMP_INSTALL_DIR/etc/<vo>/import_catalogue.

   4) gdmp_register_local_file [-h] [-t filetype] -p <pfn>|-d <directory>
       -h and -t has the same meanimng as above.
       -p  = If you want to register a single file then -p should be the file full path.
             Only those files can be registered which are
             for flatfile= exists in GDMP_FLATFILE_ROOT_DIR
             for Objectivity = exists in GDMP_OBJY_ROOT_DIR

       -d  = only one of -p or -d can be provided. To register all files in a perticular directory.

       -t  = same type of file. default is flatfile.

       This command is used to register all those files which one wants to publish. Only
       those files will be publish which are registered. After registering file, you can
       migrate files to MSS and delete them from the disk, but there should be some script
       GDMP_STAGE_FROM_MSS which can stage a file from MSS and put it in original place on disk.
       All registered files information is stored in GDMP_INSTALL_DIR/etc/<vo>/local_file_catalogue

   5) gdmp_publish_catalogue [-h] [-t filetype]
       -h and -t has the same meaning as describe above.

       This command will publish all those files of type "filetype" which are newly
       registered, i.e not already been published, to all the gdmp host which had
       subscribed to you ( i.e each uncommented entry in GDMP_INSTALL_DIR/etc/<vo>/host_list file).
       All files information, which have been published are stored in
       GDMP_INSTALL_DIR/etc/<vo>/export_catalogue.
       The sites which receive this notification of publishing will add this newly
       published info in their GDMP_INSTALL_DIR/etc/<vo>/import_catalogue
 

   6) gdmp_replicate_get [-h] [-t filetype] [-c import_catalog] [-i fileid] [-r remotehost] [-p remoetport]

       -c  = import catalog file path. default one is gdmp/etc/<vo>/import_catalogue
       -i  = File ID to transfer. This file must exists in the import_catalogue
             you provided or in default import catalogue
       -r  = remote host from where this file should be obtained
       -p  = remote port on which the remote gdmp server is listening
       -t  = type of the file. default is flatfile other possible values are "objectivity"

       If no argument is provided then this command will try to transfer all flat files
       which are in GDMP_INSTALL_DIR/etc/<vo>/import_catalogue
       gdmp_replicate_get -t objectivity
       will try to transfer all objectivity files which are in GDMP_INSTALL_DIR/etc/<vo>/import_catalogue

   7) gdmp_catalog_cleanup  [-h] [-c import_catalog] [-t filetype]
       This command will be executed after running the gdmp_replicate_get. It will delete
       those entries from GDMP_INSTALL_DIR/etc/<vo>/import_catalogue which were
       successfully transfered. Here -t has default value "all", which mean delete all
       type of files info which has been transfered.
       -t flatfile will only cleanup import_catalogue for flatfile
       -t objectivity will only cleanup import_catalogue for objectivity

   8) gdmp_stage_complete  [-h] -f file_relative_path

       -f  = file relative path

       This command will be called by the GDMP_STAGE_FROM_MSS when a file is staged from MSS
       to DISK. The GDMP_STAGE_FROM_MSS should pass the first argument passed to the script
       at the time of staging. e.g if one wants to stage a dir1/dir2/file, which exists in
       GDMP_FLATFILE_ROOT_DIR then the GDMP_STAGE_FROM_MSS will be executed by gdmp as
       > GDMP_STAGE_FROM_MSS  dir1/dir2/file  GDMP_FLATFILE_ROOT_DIR
       when this script completes the staging then it should run the gdmp_stage_complete as
       > gdmp_stage_complete -f dir1/dir2/file

Example of GDMP Configuration for Multiple User:
  lets say we want to use GDMP installation /opt/gdmp on shahzad.fnal.gov:2000 for two
  VOs ( cms and atlas). There are 4 users who wants to use these

  usera => cms only
  userb => atlas only
  userc => for both i.e cms and atlas
  userd => no VO but default area

  we should have these files
  /opt/gdmp/etc/gdmp.conf  ( should atleast have )

      GDMP_INSTALL_DIR=/opt/gdmp
      GDMP_LOCAL_HOST=shahzad.fnal.gov
      GDMP_LOCAL_DOMAIN=fnal.gov
      GDMP_PORT_NUMBER=2000
      GDMP_FLATFILE_ROOT_DIR=/data/flatfile
      GDMP_SERVICE_NAME=GDMP_Server
      GDMP_VIRTUAL_ORG=
      GDMP_GRID_MAPFILE=/opt/gdmp/etc/grid-mapfile

  /opt/gdmp/etc/grid-mapfile
      "CN string of user userd"
      "CN strings of remote gdmp servers which are allowed to talk to this gdmp server"

  /opt/gdmp/etc/gdmp_server.proxy
     This could be one which is provided with GDMP or you can replace it with your own
     If you use your own then modify the GDMP_SERVICE_NAME in /opt/gdmp/etc/gdmp.conf

  /opt/gdmp/etc/cms/gdmp.conf  ( should atleast have )

      GDMP_INSTALL_DIR=/opt/gdmp
      GDMP_LOCAL_HOST=shahzad.fnal.gov
      GDMP_LOCAL_DOMAIN=fnal.gov
      GDMP_PORT_NUMBER=2000
      GDMP_FLATFILE_ROOT_DIR=/data/flatfile/<cmsfiles>
      GDMP_SERVICE_NAME=GDMP_Server
      GDMP_VIRTUAL_ORG=cms
      GDMP_GRID_MAPFILE=/opt/gdmp/etc/cms/grid-mapfile

  /opt/gdmp/etc/cms/grid-mapfile

      "CN string of user usera"
      "CN string of user userc"
      "CN strings of remote gdmp servers which are allowed to talk to this gdmp server"

  /opt/gdmp/etc/cms/gdmp_server.proxy

     This could be one which is provided with GDMP or you can replace it with your own
     If you use your own then modify the GDMP_SERVICE_NAME in /opt/gdmp/etc/cms/gdmp.conf

  /opt/gdmp/etc/atlas/gdmp.conf  ( should atleast have )

      GDMP_INSTALL_DIR=/opt/gdmp
      GDMP_LOCAL_HOST=shahzad.fnal.gov
      GDMP_LOCAL_DOMAIN=fnal.gov
      GDMP_PORT_NUMBER=2000
      GDMP_FLATFILE_ROOT_DIR=/data/flatfile/<atlasfiles>
      GDMP_SERVICE_NAME=GDMP_Server

      GDMP_VIRTUAL_ORG=atlas
      GDMP_GRID_MAPFILE=/opt/gdmp/etc/atlas/grid-mapfile
 

  /opt/gdmp/etc/atlas/grid-mapfile

      "CN string of user userb"
      "CN string of user userc"
      "CN strings of remote gdmp servers which are allowed to connect to this gdmp server"

  /opt/gdmp/etc/atlas/gdmp_server.proxy

     This could be one which is provided with GDMP or you can replace it with your own
     If you use your own then modify the GDMP_SERVICE_NAME in /opt/gdmp/etc/cms/gdmp.conf

  usera has to set the GDMP_CONFIG_FILE to /opt/gdmp/etc/cms/gdmp.conf

  userb has to set the GDMP_CONFIG_FILE to /opt/gdmp/etc/atlas/gdmp.conf

  userc has to set the GDMP_CONFIG_FILE to /opt/gdmp/etc/atlas/gdmp.conf or
        /opt/gdmp/etc/cms/gdmp.conf depending on the vo he/she wants to use

  userd has to set the GDMP_CONFIG_FILE to /opt/gdmp/etc/gdmp.conf
 

_______________________________________________________________________________________________________________
 

GDMP Heart Beat Installation

1. Get the gdmp heart beat tar file
 
http://home.fnal.gov/~muzaffar/gdmp/gdmp_hb_scripts.tar.gz

2. unzip it
 
> gunzip -c gdmp_hb_scripts.tar.gz | tar xvf -

> cd gdmp_hb_scripts
 

3. Install the scripts
 
You should have /usr/local/bin/perl  available, otherwise edit all
   "*.pl" files and change the first line according to your perl installation
 
> ./install-scripts.pl

4. Edit the gdmphb.conf file according to your environment.
 
Read comments in gdmphb.conf for more information. Normally you have to set these parameters

   GDMP_CONFIG_FILE=<gdmp.conf file path>
   GDMP_HEART_BEAT_FILE=<a tmp file path of size ~100MB to use for transfer>
   UPDATE_REPLICA_CATALOG_FOR_PUBLISH=NO
   UPDATE_REPLICA_CATALOG_FOR_REPLICATE=NO
   FILTER_REPLICATE_HOST=<host names for which you want to start the gdmp_replicate_get command>
   MAIL_ADDRESS=<email address at which you want to receive email about the grid-proxy expiration>
 
 
   You only need to do either setp (a) or (b)

   a) If you want configure your GDMP heart beat to publish tmp files only then you have to run
      the gdmp_hb_publish.pl script only

      > ./gdmp_hb_publish.pl ./gdmphb.conf >& log &

      gdmp_hb_publish.pl will make links
     GDMP_FLATFILE_ROOT_DIR/GDMP_Heart_Beat_<GDMP_LOCAL_HOST>_<some_number> => GDMP_HEART_BEAT_FILE
      register it in GDMP and then publish it ( all the hosts which were subscribed to your GDMP server will get this publish information)
 
   b) If you want to configuare you GDMP heart beat to replicate the published files then you have to edit the GDMP_CONFIG_FILE file too. Change the following parameters in GDMP_CONFIG_FILE file

      GDMP_STAGE_TO_MSS=<gdmp_hb_scripts path>/gdmp_hb_deletereplica.pl
      GDMP_NOTIFICATION_FOR_PUBLISH_CATALOGUE=<gdmp_hb_scripts path>/gdmp_hb_replicate.pl
 
      GDMP will when receive some publish information from other GDMP hosts it will runGDMP_NOTIFICATION_FOR_PUBLISH_CATALOGUE script which in our case is gdmp_hb_replicate.pl.  gdmp_hb_replicate.pl will checks that either the publish files are on FILTER_REPLICATE_HOSTor not. If they were published from FILTER_REPLICATE_HOST then it will strat the gdmp_replicate_get command to replicate these files. At the end gdmp_replicate_get runs

      GDMP_STAGE_TO_MSS to migrate the files on MSS but as we have changed this value to gdmp_hb_deletereplica.pl, so at the end the tmp file will be delete from the local disk.