Hi Kashif, On 10/03/2013 02:01 PM, Kashif Mohammad wrote: > Hi > > We are planning to move to SL6 EMI3 CREAMCE and WN next week. I was thinking of upgrading to emi3 apel publisher but I got the impression that it has still some issues. Is there any site in UK which successfully upgraded to EMI3 APEL publisher ? > > Thanks > Kashif We are successfully publishing current data with APEL3. But the problem came (and persist) with the upgrade plan referred to from here: https://twiki.cern.ch/twiki/bin/view/EMI/EMI3APELClient i.e. https://twiki.cern.ch/twiki/pub/EMI/EMI3APELClient/APEL_Client_Upgrade_Plan.pdf The upgrade plan advises us to extract from the old database a month or two of whole month records, and fit them in the new database schema. This (is supposed to) enable a clean transfer. Unfortunately, the import routine (called migrate_apel.pl) is not universally reliable for reasons TBD. Net result: system thinks we have transmitted too few records, and asks for GAP publisher for historic (overlap) months. Current months seem to work. Bug: https://ggus.eu/ws/ticket_info.php?ticket=97528 To install, use puppet to put on packages, then script to finish, see below. It has to be done big-bang style. Cheers, Steve :----------- * Script to finish on client, e.g. cream root@hepgrid5 scripts]# cat config_apel3_parser.sh.clean #!/bin/bash # -------------------------------------------------------- # Name: config_apel_parser.sh # Purpose: Configure the APEL parser # Author: Steve Jones <[log in to unmask]> # Date: 18 Sept 2013 # -------------------------------------------------------- # Secure config files chmod 600 /etc/apel/parser.cfg # Do the easy changes perl -pi -e 's/^name = .*/name = apelclient/g' /etc/apel/parser.cfg perl -pi -e 's/^hostname = .*/hostname = hepgrid95.ph.liv.ac.uk/g' /etc/apel/parser.cfg perl -pi -e 's/^username = .*/username = apelclient/g' /etc/apel/parser.cfg perl -pi -e 's/^password = .*/password = somepass/g' /etc/apel/parser.cfg perl -pi -e 's/^site_name = .*/site_name = UKI-NORTHGRID-LIV-HEP/g' /etc/apel/parser.cfg perl -pi -e 's/^lrms_server = .*/lrms_server = hepgrid96.ph.liv.ac.uk/g' /etc/apel/parser.cfg perl -pi -e 's/^lrms_server = .*/lrms_server = hepgrid96.ph.liv.ac.uk/g' /etc/apel/parser.cfg perl -pi -e 's/^type = .*/type = PBS/g' /etc/apel/parser.cfg cp /etc/apel/parser.cfg /etc/apel/parser.cfg.bak # Now do those pesky dirs perl << "XXXX" use strict; my @newLines; my $inBlah = 0; my $inBatch = 0; open(PARSER_CFG,"/etc/apel/parser.cfg") or die("No open /etc/apel/parser.cfg\n"); while(<PARSER_CFG>) { my $l = $_; chomp($l); if ($l =~ /^\[/) { $inBlah = 0; $inBatch = 0;} if ($l =~ /^\[blah\]/) { $inBlah = 1; } if ($l =~ /^\[batch\]/) { $inBatch = 1; } if ($l =~ /^dir =/) { if ($inBlah) { $l =~ s/dir \=.*/dir = \/var\/log\/cream\/accounting\//; } if ($inBatch) { $l =~ s/dir \=.*/dir = \/var\/log\/torque_accounting\//; } } push(@newLines,$l); } close(PARSER_CFG); open(PARSER_CFG,">/etc/apel/parser.cfg") or die("No open /etc/apel/parser.cfg\n"); foreach my $l (@newLines) { print (PARSER_CFG "$l\n"); } close(PARSER_CFG); XXXX * Script to finish on apelserver #!/bin/bash # -------------------------------------------------------- # Name: config_apel.sh # Purpose: Configure the APEL publisher # Author: Steve Jones <[log in to unmask]> # Date: 17 Sept 2013 # -------------------------------------------------------- # Secure config files chmod 600 /etc/apel/client.cfg chmod 600 /etc/apel/sender.cfg # Protect mysql /usr/bin/mysqladmin -u root -h localhost password somepass /usr/bin/mysqladmin -u root -h hepgrid95.ph.liv.ac.uk password somepass # Make the apelclient db /usr/bin/mysql --pass=somepass --exec "create database apelclient" # Let apel parsers commit data to this database /usr/bin/mysql --pass=somepass --exec "grant all on apelclient.* to [log in to unmask] identified by 'somepass'" /usr/bin/mysql --pass=somepass --exec "grant all on apelclient.* to [log in to unmask] identified by 'somepass'" /usr/bin/mysql --pass=somepass --exec "grant all on apelclient.* to [log in to unmask] identified by 'somepass'" /usr/bin/mysql --pass=somepass --exec "grant all on apelclient.* to [log in to unmask] identified by 'somepass'" /usr/bin/mysql --pass=somepass --exec "grant all on apelclient.* to [log in to unmask] identified by 'somepass'" /usr/bin/mysql --pass=somepass --exec "grant all on apelclient.* to [log in to unmask] identified by 'somepass'" # Load the database schema /usr/bin/mysql --pass=somepass apelclient < /usr/share/apel/client.sql # Customise the client.cfg config perl -pi -e 's/username = .*/username = root/g' /etc/apel/client.cfg perl -pi -e 's/password = .*/password = somepass/g' /etc/apel/client.cfg perl -pi -e 's/site_name = .*/site_name = UKI-NORTHGRID-LIV-HEP/g' /etc/apel/client.cfg # Customise the sender.cfg config. Use test first; maybe flip later TEST=1 if [ $TEST == 1 ]; then perl -pi -e 's/network:.*/network: TEST-NWOB/g' /etc/apel/sender.cfg perl -pi -e 's/use_ssl:.*/use_ssl: false/g' /etc/apel/sender.cfg perl -pi -e 's/destination:.*/destination: \/queue\/global.accounting.cputest.CENTRAL/g' /etc/apel/sender.cfg else perl -pi -e 's/network:.*/network: PROD/g' /etc/apel/sender.cfg perl -pi -e 's/use_ssl:.*/use_ssl: true/g' /etc/apel/sender.cfg perl -pi -e 's/destination:.*/destination: \/queue\/global.accounting.cpu.central/g' /etc/apel/sender.cfg fi # This dir is needed by the sender if [ ! -d /var/spool/apel/outgoing ]; then mkdir /var/spool/apel/outgoing fi -- Steve Jones [log in to unmask] System Administrator office: 220 High Energy Physics Division tel (int): 42334 Oliver Lodge Laboratory tel (ext): +44 (0)151 794 2334 University of Liverpool http://www.liv.ac.uk/physics/hep/