This is a checklist of jobs to implement AIDA on the LCLS CA network, as will be used for LCLS BC2 and ongoing. Specifically, the primary problem is that the bootstrap URL of AIDA will not be visible from the LCLS CA network, so this URL must change, and references to it must change.

ERR System,
==========
Problem: Err system bootstraps by accessing the CORBA init file
errEvent.conf from URL http://www.slac.stanford.edu/grp/cd/soft/slaconly/aida/errEvent.conf,
over HTTP, but HTTP protocol is not permitted through the controls
network router, and therefore a client on the CA network can't load
contents of a URL of a Web server on the SCCS PUB network.

Soln:

A) Allow HTTP through the router.
As implemented: Rejected by systems grp. in long term better to remove dependency on SCCS ntwk, but for generla case of data accessibility from LCLS CA to public internet maybe we can get proxy server?

B) Change the URL of the errEvent.conf to one that is accessible from
the DMZ:
As implemented: Going with this soln.

For Java:
1) Create a symlink from a URL that is accessible from the CA
network, to the errEvent.conf file on AFS. This solves the issue
of creating two separate instances of the file, and so avoid
possibility of branching.
As implemented: The file in question is in fact ooc_CosEventService.conf. This file
was in grp/cd/soft/slacsonly/confsys (not the same as NameServer*.ior files below. So,
that means we should do cleanup). http://mccas0.slac.stanford.edu/aida/ooc_CosEventServer.conf
TODO Cleanup: replace mccas0/aida with mccas0/slaconly, then that forms the equivalent of grp/cd/soft/slaconly. This would replace the 3 symlinks for NameServer*.IOR and ooc_CosEventServer.conf with 1 general one.

2) For Java: Modify Err.java, which contains a hard coded reference
to
http://www.slac.stanford.edu/grp/cd/soft/slaconly/confsys/ooc_CosEventService.conf,
to instead point to the new URL defined in 1) above, by seeing
if a environment variable (CONFIGPATHNAME) is set, and if so,
overriding the default.
DONE.

For c/c++:

3) Put the oocCosEventServer.conf file in some place accessible
from CA: copy
/afs/slac/www/grp/cd/soft/slaconly/confsys/ooc_CosEventService.conf
to /usr/local/lcls/package/err/ooc_CosEventService.conf on lcls-srv01.

4) For C/C++; change err.cc so that optionally, given existence of
environment variable, it accesses the .conf file at the path
given by the variable.

5) Define OOCCONFPATH IN aidaSetEnv.csh to be
/usr/local/lcls/package/err/ooc_CosEventService.conf if not [ -d
/afs/slac/g/cd/soft ];

6) copy aidaSetEnv.csh to /usr/local/lcls/physics/package/common/script/.

Possible Problems for existing clients:
--------------------------------------
Can't think of any.

Mid Term: Modify the PEPII release system so that its remote
distribution support can distribute these .conf files above to the
LCLS NFS filesystem.

INFRASTRUCTURE
==============
Problem: Software packages on LCLS NFS in /usr/local/lcls/package are
both internal and external.

Soln: Move internal packages like aida to
/usr/local/lcls/physics/package/
DONE.

AIDA
====
Problems:

1) Jar files aida.jar, err.jar and except.jar,and 3 Orbacus jars, on
AFS are inaccessible because /afs filesystem is not accessible from
LCLS NFS.

Solns to 1):

DONE 1.i) Short term, copy
/afs/slac/g/cd/soft/ref/package/{aida,err,execpt}/lib/*.jar to
/usr/local/lcls/physics/package/

Mid term soln: Adapt PEPII distcribution to copy these files
from their respective places in /afs/slac/g/cd/soft/ref, to
/usr/local/lcls/physics/package, when they are released.

DONE 1.ii) Copy Corba jar files from /afs/slac/package/iona... to
/usr/local/lcls/package/iona/orbacus/prod/JOB/lib

DONE 1.iii) Modify aidasetup.m, so that if on LCLS NFS, the
javaclasspath points to the jar /usr/local/lcls/physics/package
rather than /afs/slac/.
As implemented;
Made changes to aidasetup.m in /usr/local/lcls/toos/matlab/matlab-scripts/!
Named file aidasetuplclsprod.m, so that aidasetup.m can be worked on independently
to find commands that can identify whether it is being run on LCLS CA network to
set path accordingly.
Followup: Why dir called matlab-scripts? Suggest matlab-scripts is the temp area;
we should have script/ also, as on AFS, and put it behind matlab-script in the MATLABPATH.

2) NameServerPROD.ior file accessed over HTTP on www.slac.stanford.edu,
will not be accessible to clients, because the HTTP protocol is not
permitted through the controls network router, and therefore a client
on the CA network can't load contents of a URL of a Web server on the
SCCS PUB network.

Constraints:
CAN'T just copy NameServerPROD.ior file to a place on LCLS NFS, since
each time the Aida Nameserver starts, it creates a new IOR file.

Also, existing Aida clients, eg PEPII physicists' PCs, have java.opts
files with the existing URL, and these mustn't break.

Soln to 2):

DONE (JZ) 2.i) Create a symlink from a URL that is accessible from the CA
network, to the directory on AFS.

Matlab:

DONE 2.ii.a) edit a java.opts file now in /usr/local/lcls/tools/matlab to use
-DAIDA_NAMESERVER_IOR_URL=<url Jingchen provides>

2.ii.b) Put the java.opts file now in /usr/local/lcls/tools/matlab instead in
$MATLABROOT/bin/$ARCH, per
http://www.mathworks.com/support/solutions/data/1-18I2C.html

2.ii.c) Figure out what executable is actually run for
matlab in LCLS prod, since if it's still going to be a
version of /afs/slac/g/lcls/tools/script/matlab copied over
to LCLS NFS, then the part of that script which manipulates
java.opts should be removed.
DONE. java.opts moved to the right place per 2.ii.b above.

Java:

2.iii) Edit /afs/slac/g/cd/soft/ref/package/aida/common/script/aidaSetEnv.csh
such that, if being executed in LCLS NFS, then assign AIDA_NAMESERVER_IOR_URL
to that on mccas0, otherwise continue to assign it to place in SLAC web server:

if ( -d /afs/slac/package ) then
setenv AIDA_NAMESERVER_IOR_URL
http://www.slac.stanford.edu/grp/cd/soft/slaconly/aida/NameServer$\{AIDA_MODE}.ior
else
setenv AIDA_NAMESERVER_IOR_URL <URL jingchen gives>
endif

2.iv) Release aidaSetEnv.csh (in the cdsoft release system, then copy it to
/usr/local/lcls/physics/package/aida/common/script

Matlab startup on LCLS prod:
==========================

Problem:

1) aidasetup.m file called by aidainit.m called by StartLCLS.m
file for LCLS prod, presently references jar files on AFS, as described in 1) above.

Soln:

DONE 1.i) Create aidasetuplclsprod.m, cloned from
/afs/slac/g/cd/soft/ref/package/aida/common/script/ to reference LCLS
NFS locations of jar files when on LCLC prod specifically.
As implemented: in fact did not change file name, so that existing matlab scripts
that call aidainit.m do not need to be changed.
Followup: Accept matlab-script/ dir as the dir in which we just get LCLS prod going,
but use the same named dir "script/", as on AFS, for the true, modified files that
behave appropriately whether being used on AFS (dev) or on LCLS prod.

NOTDONE 1.ii) Create aidainitlclsprod.m, cloned from aidainit.m, to call
aidasetuplclsprod.m
As implemented: Not done, since that would have meant changing all matlab script users.
Instead modified, see comment above.

NOTDONE 1.iii) Clone StartLCLS.m to StartLCLSProd.m, and instead of calling
aidainit.m, call aidainitlclsprod.m
As implemented: Not done, java.opts takes care of part of StartLCLS.m, but not doing the aidainit or lclslca parts. Also aidainit doesn't need to be changed.

TODO 15/Nov/2007

1) Create startup.m which does aidainit and lclslca, so replacing matlab -m StartLCLS.m

2) Replace aidasetup.m with classpath.txt

3) create bash aidalist script in /usr/local/lcls/physics/package/aida/script as that on AFS, so can get names at command line.

4) create aidalist.m for aidalist inside matlab. Add help.

5) fix aidaget.m so it has help.
Create aget.m to supercede aidaget.m, more friendly args, don't add MODE=5 on the quiet.

6) Still should change c/c++ version of Err.cc to change URL of Orbacus Event Service conf file (3,4,5,6 above)

7) Create Aida client side only java environment setup, to replace aidaSetEnv.csh, per 2.iii and 2.iv above.

CLEANUP

  • Remove aida, err, except, from /usr/local/lcls/package/
  • Debbie will then want to change the Eclipse plugins for aida, err
    and except (or the CLASSPATH she creates before running Eclipse).
  • No labels