<> = Updating the CUS database for IMT at Astrium = Procedure * to update the PACS EQM IMT database with the CUS procedure definitions * to update the PACS EQM IMT database with the CUS uplink table definitions * to recreate the CcsHandler template TCl scripts for the HPCSS == General: == Usually updates for the CUS database are received via email form where they have to be extracted to single files. The rest of this procedure descriptions assumes following file extensions. * .txt for the CUS procedures (modes, blocks, ...) * no extension (at least not .txt or .csv) for CUS uplink tables * .csv for CcsHandler "AOT" calls definitions All commands below assume that you are logged using the ''pacs'' account on host ''hos4-d'' and that the ''psetup'' configuration has been executed. {{{ ssh -X pacs@hos4-d psetup }}} All CUS patches are collected in the ''/home/pacs/cus'' directory tree. == Updating CUS procedures and tables == Go to the ''/home/pacs/cus'' directory and create a cus patch directory for today in the format ''patches_YYYYMMDD''. When there is more than one patches append ''A'',''B'' ... to the date to distinguish them. Copy all new CUS procedures and uplink tables to this directory. {{{ cd ~/cus mkdir patches_YYYYMMDD cd patches_YYYYMMDD cp fromeSomewhere . }}} Assuming that all CUS procedures file names and only those end with ''.txt'' following command is ingesting them to the database. {{{ cus -f -m "XXXth update for EQM IMT" -import *.txt }}} Replace ''XXXth'' with the current ordinal number for this CUS update. The same command is used to update the ''readonly'' database as well. Don't miss the parenthesis around the command otherwise your terminal session will be permamently configured to use this readonly database. {{{ ( readonlyCUS; cus -f -m "xxxth update for EQM IMT" -import *.txt ) }}} Similar commands are used to ingest the uplink calibration tables. {{{ cus -f -m "XXXth update for EQM IMT" -uploadcal tableFileName ( readonlyCUS; cus -f -m "XXXth update for EQM IMT" -uploadcal tableFileName ) }}} {X} <
> As updates to the CUS procedures can change to number and order of the telecommand sequence of an observation mode the procedure step [[#checktemplates|"Recreating TCL template scripts and comparing with a previous release"]] must be executed even if there are no updates in the parameters for the TCL template scripts.<
> {X} == Updating TCL template script requests == Create a patch directory named ''CCS_template_scripts_update_YYYYMMDD''. Go to this directory. {{{ mkdir ~/cus/CCS_template_scripts_update_YYYYMMDD cd ~/cus/CCS_template_scripts_update_YYYYMMDD }}} The way how to upgrade your TCL templates depends on the input from the operations group: * voice or email describing changes to the requested observation parameters * nice CSV files describing templates requests * Helmut's Exel sheet file '''(not described here)''' === voice or email describing changes to the requested observation parameters === Copy the '''createTemplates''' file from the last patch directory. Edit this file with your fauvorite editor. {{{ cp ~/cus/CCS_template_scripts_update_LastPatchDate/createTemplates . xemacs createTemplates }}} The file consists of single records holding ''ccshandler'' commands to create the template TCL scripts. ccshandler -template [-file=fileName] obsMode paramList [-file=fileName] Command options: * -template: mandatory option to activate template generator mode * -file: specifies the file name to store the resulting TCL procedure template. If the -file option is missing the template will be printed to standard output. * obsMode: name of the observing mode to be called * paramList: parameters for the observing mode. A parameter specification consists of the parameter name followed by an equal sign (=) followed by the parameter value followed by a semicolon (;). More than one parameter specifications must be concatenated without white space in between. Please note that the "obsMode" must be followed by a "paramList". If there are no observation parameters specify an empty list by setting a single semicolon. === nice CSV files describing templates requests === CSV files can be converted to ''createTemplates'' format by using the script /home/pacs/cus/create_CCS_template_requests. The resulting records must be merged into old ''createTemplates'' file. A typical session with two CSV input files will look like {{{ ( echo ; cat 20051020A.csv ) | ../create_CCS_template_requests - | sort > a.tmp ( echo ; cat 20051020B.csv ) | ../create_CCS_template_requests - | sort > b.tmp cat b.tmp a.tmp createTemplates | sort -u -k 3,3 -k 4,4 > c.tmp sdiff -s -w5000 c.tmp createTemplates mv c.tmp createTemplates chmod a+x createTemplates rm {a,b}.tmp }}} ~- Notes: The scripe ''create_CCS_template_requests'' ignores the first line of input so a blank line is inserted with the ''echo'' command. -~ <> == Recreating TCL template scripts and comparing with a previous release == Create a patch directory named ''CCS_template_scripts_update_YYYYMMDD'' if not created already in the previous section. Go to this directory. {{{ mkdir ~/cus/CCS_template_scripts_update_YYYYMMDD cd ~/cus/CCS_template_scripts_update_YYYYMMDD }}} Either use the '''createTemplates''' created in the previous section or copy the one from the last patch directory. {{{ # # BUT only if NO createTemplates files is created in the previous section # cp ~/cus/CCS_template_scripts_update_LastPatchDate/createTemplates . }}} Create all TCL template files by executing the ''createTemplates'' script. This will last some minutes. {{{ ./createTemplates }}} A first check for errors is the detection of empty TCL files. {{{ find . -size 0 }}} To compare these TCL template files with those generated by the previous patch {{{ cd .. ./compareTCLtemplates.sh CURRENT_PATCH_DIR PREVIOUS_PATCH_DIR | grep -v identical }}} When there are files list as being different or missing then execute the following procedure step to transfer the TCL template scripts to the HPCSS. == Transferring TCL template scripts to the HPCSS == First print out the list of different of missing TCL template scripts. {{{ ./compareTCLtemplates.sh CURRENT_PATCH_DIR PREVIOUS_PATCH_DIR | grep -v identical | a2ps -1 -P printer }}} Put the special USB stick from Stijn into an USB port of the host hos4-d. Copy all TCL template scripts to an directory on the USB stick. '''Don't forget to umount the USB stick'''. {{{ cd CURRENT_PATCH_DIR mkdir /media/usb-storage-0904B2110E0009E5:0:0:0p1/PACS_TCL_UPDATE/ cp -v *tcl /media/usb-storage-0904B2110E0009E5:0:0:0p1/PACS_TCL_UPDATE/ su -c "/bin/umount /media/usb-storage-0904B2110E0009E5:0:0:0p1/" }}}