Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

 


Info
titleComponents

Installation of Catalog QT requires multiple components to be installed and configured to be fully operational. This is due to the fact that numerous, external, components are required during build procedure and during runtime. All these elements are described below.

...

In order to install CLI components you need to install and configure gSOAP 2.8 library. Please follow instructions here, and make sure gSOAP library is available in your system:                          gsoapgsoap_2.8.70.zip

It's a good idea to provide separate module for gSOAP library that sets some basic locations

...

Current version of Catalog QT requires at least imasIMAS/3.2023.02/ualAL/34.81.35 . Make sure to have IMAS properly  properly installed and configured at your target host.

Installation of CLI tools

Checking out repository

Please note that this manual describes steps for building codes based on branch - R2-newLL it is assumed that codes will use New Low Level features.

Installation of CLI tools

Checking out repository

Make sure you can Make sure you can access repository: https://gforge6.eufus.eu/svn/catalog_qt, before proceeding any further.

...

Warning
titleCatalogQT version

Since now, I am referring to sources inside: https://gforge6.eufus.eu/svn/catalog_qt/branches/R1.0.imas

 

Creating db schema

Before compiling the code, make sure you can create db schema and that you can access it as user. You can create DB schema following way

R2-newLL


Info

In following section I assume that

Code Block
$HOST_NAME            - points to location of MySQL/MariaDB server
user_with_root_access - is a name of MySQL's user name with root privileges
$UAL_USER     
Code Block
> cd docs/dbschema > mysql -h $HOST_NAME -u $UAL_USER itmcatalog -p < create_db.sql   # You have to alter table where some config info is stored make sure to call   > cat alter_00.sql | \
      
sed 's|@FULL_PATH_FOR_STORAGE@|/this/is/the/location/where/all/users/can/write|' > \ alter_00_modified.sql
  - is the name of the user who has access to itm_scheduler_db
    
mysql
 
-h
 
itmmysql1
 
-u
 
ual_user_s
 
itmcatalog
 
-p
 
<
 
alter_00_modified.sql   #
 
/this/is/the/location/where/all/users/can/write
 
-
 
is
 
a
 
place
 
on
 
your
 
machine
 
(where
 
users
 
are
 
calling #
(this user is create using create_scheduler_db.sql script)

I am using -p option while calling mysql - it means that you will be asked for password each time you want to log in to MySQL machine. Thus, it is not possible to use following samples in batch mode.

Creating DB schema

Catalog QT tool requires multiple databases to run properly.

  • Scheduler DB - this database defines all the machine dependent libraries
  • Machine DB - this database contains data from the pulse file for given machine (there might be many machine databases)

Creating scheduler DB schema

Before compiling the code, make sure you can create db schema and that you can access it as user. You can create DB schema following way

Code Block
> cd docs/dbschema
> mysql -h $HOST_NAME -u user_with_root_access itm_scheduler_db -p < drop_scheduler_user.sql
> mysql -h $HOST_NAME -u user_with_root_access itm_scheduler_db -p < create_scheduler_db.sql
 
# Make sure you can access itm_scheduler_db DB

> mysql -h $HOST_NAME -u $UAL_USER itm_scheduler_db -p
Enter password: 
...
...
mysql> show tables;
+----------------------------+
| Tables_in_itm_scheduler_db |
+----------------------------+
| access_list                |
| db_authorization           |
| scheduler                  |
| token_list                 |
+----------------------------+

Creating machine dependent DB schema

For each machine (e.g.: pedestalwestjettc) you have to have separate database schema.

Code Block
> cd docs/dbschema

# this script will produce SQL script for creating machine
# dependent databases

> ./create_db.sh --db-user=ual_user_001 \
                 --db-name=jettc \
                   --host-name=$HOST_NAME \
                 --schema-name=itm_catalog_001 \
                scheduler application). Each user has to have write
#                                             --ws-address=https://address.of.itmcatalog.installation/itmcatalog/api \
                 --storage=/this/is/the/location/where/all/users/can/write/to

> mysql -h $HOST_NAME -u user_with_root_access -p < drop_db_user_modified.sql
> mysql -h $HOST_NAME -u user_with_root_access -p < create_db_modified.sql

# Once database is created, make sure you can log in

> mysql -h $HOST_NAME -u ual_user_001 -p itm_catalog_001
Enter password: 
...
...
mysql> show tables;
+---------------------------+
| Tables_in_itm_catalog_001 |
+---------------------------+
| annotations       access there.
 
> mysql -h $HOST_NAME -u $UAL_USER itmcatalog -p <|
| alter_00_modified.sql
 
 
# make sure to create list of variables that are stored inside DB
 
> xsltproc ./getFieldsIMAS.xsl \
      $IMAS_HOME/core/installer/src/$IMAS_VERSION/ual/$UAL_VERSION/xml/IDSDef.xml | \
catalog_parameters        |
| entry                     |
| entry_data       grep "summary" > \
      variables.sql|
>| mysqlintervals -h $HOST_NAME -u $UAL_USER itmcatalog -p < variables.sql
 
# double check that all tables are in proper place
 
> mysql -h $HOST_NAME -u $UAL_USER itmcatalog -p
> ...
> mysql> show tables;
+----------------------+
| Tables_in_itmcatalog |
+----------------------+
| annotations|
| machines                  |
| outcome                   |
| catalog_parameters scheduler          |
| entry      |
| users         |
| entry_data           |
| intervalsvariables                 |
| machines     +---------------------------+
10 rows in set (0.00 sec)

Populating database with variables

Each machine DB has to be populated with variables that are supposed to be stored inside DB. At the moment, machine dependent DB has to store all the names of fields stored inside summary IDS. This can be done following way

Code Block

> xsltproc ./getFieldsIMAS.xsl \
      $IMAS_HOME/core/installer/src/$IMAS_VERSION/ual/$UAL_VERSION/xml/IDSDef.xml | |\
| outcome     grep "summary" > \
      |
| scheduler            |
| users                |
| variables            |
+variables.sql

> mysql -h $HOST_NAME -u ual_user_001 itm_catalog_001 -p < variables.sql

# Make sure you can see variables inside DB

> mysql -h $HOST_NAME -u ual_user_001 itm_catalog_001 -p
Enter password: 
...
...
mysql> select count(*) from variables;
+----------+
| count(*) |
+--------------+
|     2511 |
+----------+
101 rowsrow in set (0.00 sec)

Compilation of CLI tools

Warning
titlegSOAP and WSDL

gSOAP library requires WSDL location used for compilation of the codes. It is not possible to proceed any further without server components. This is related to the fact that gSOAP library requires WSDL location, where SOAP based specification is stored.

...

Make sure to change directory to branches/R1.0.imasR2-newLL.

Code Block
# Make sure to load IMAS environment - following command may be system dependent
> module load imasimasenv
> imasdb test
 
# For bash
 
> export CATALOG_QT_HOME=`pwd`
> export CATALOG_QT_STORAGE=/this/is/the/location/where/all/users/can/write/to
> export CATALOG_QT_DB_PROPERTIES=${CATALOG_QT_HOME}/dbAPI
 
# For tcsh
> setenv CATALOG_QT_HOME `pwd`
> setenv CATALOG_QT_STORAGE /this/is/the/location/where/all/users/can/write/to
> setenv CATALOG_QT_DB_PROPERTIES ${CATALOG_QT_HOME}/dbAPI
 
# setting target machine
#
# unfortunately, there are few places where machine dependent locations are used
# at the moment, two options are available:
#
# setenv MACHINE gateway
# setenv MACHINE jet
#
# it might be, we need yet another one, with new machine settings
 
# make sure to create and properly configure gSOAP module
# this way, you will be able to use pkg-config, etc.
> module load gsoap/2.8
> make

...


Installation of UI - web client

...