__DEFS__ # NetDRMS local site configuration info. # # This file contains configurable parameters that allow NetDRMS sites to customize their DRMS installation. By editing this file, you can specify which resources to use, such as the PostgreSQL database host, you can specify arguments to certain programs, like arguments that control how often SUMS purges expired Storage Units, and you can enable/disable certain features, like remoteSUMS. Each line that is not a comment contains two columns of information. The first column contains the name of a parameter and the second contains its value. To customize your installation, you would edit the value in the second column. # # Once you have edited this file, you must run the configure script, which parses this file to create macros and constants and such that are used by the various DRMS components. These data are stored in files which are then either compiled into binaries or loaded by scripts. The configure script accomplishes much of this work by calling localize.py. The resulting files are stored in the localization directory. # The name of the NetDRMS database (e.g., sdac_drms, nso_drms); this is also the prefix of the SUMS database, # which is constructed by appending "_sums" to the prefix. DRMS_DATABASE mydb # The database user account that cgi programs access when they need to read from or write to database relations. WEB_DBUSER apache # The host machine of the database server you will be accessing; if # the DRMS server and client reside on different subnets, then the host # name should be a fully qualified domain name (FQDN). # A value of 'localhost' can be used, but it is only appropriate if you # are running in a single-user environment, such as on a laptop. In # this case, the client and the server are the same machine, so # it is not necessary to specify a host name for the server. DBSERVER_HOST localhost # The port number for the DRMS database server - the default of 5432 is a # good choice, unless it is already in use. DRMS_DBPORT 5432 # A 15-bit numerical site identifier. Values < 16384 (0x4000) are for # NetDRMS sites that create Storage Units for public export / distribution. # They must be unique across all DRMS sites. Values >= 16384 are for private # use and need not be unique across sites. DRMS_SITE_CODE 0x4000 # The directory that contains log files for DRMS programs. DRMS_LOG_DIR /usr/local/logs/drms # The directory that contains file locks for DRMS programs. DRMS_LOCK_DIR /usr/local/locks # The database user name of the postgres administrative account; this is normally "postgres" # if you have followed the PostgreSQL installation suggestions. POSTGRES_ADMIN postgres # The following entries are specific to the SUMS configuration # The linux user account used to run the SUMS server and sum_rm. It is also the default name of the DB user that # these SUMS applications use when logging-in to the SUMS database. SUMS_MANAGER production # The DRMS database user account that has row-deletion permissions for ALL DRMS data-series DB record tables (the record # table for a data-series has the same name, albeit lower-case-folded, as the name of the data-series, i.e., # the record table for the data-series hmi.M_45s is hmi.m_45s). sum_rm connects to the DRMS database as this user # when it deletes DRMS records (for the archive == -1 feature). DRMS_ADMIN_DB_USER sumsadmin # The SUMS DB user who has read-only access to the SUMS database. SUMS_READONLY_DB_USER readonlyuser # The linux group name for users permitted to add data to SUMS Storage Units; not # currently used in code, but should match the group ownership of # the SUMS root directories /SUM* SUMS_GROUP drms # The host of the default SUMS server you will be using; this is the # the machine that the SUMS storage units are mounted on, not necessarily # the machine serving the PostgreSQL SUMS database. SUMS_SERVER_HOST localhost # The machine hosting the SUMS database. SUMS_DB_HOST localhost # The port number for the DRMS database server - the default of 5434 should be okay # unless it is in use already. SUMS_DBPORT 5434 # The number of sum_svc processes, per sum service (e.g., SUM_get, SUM_alloc) to start, # by default, when multi-SUMS starts up. SUM_NUMSUM 1 # The maximum number of sum_svc processes, per sums service. SUM_MAXNUMSUM 8 # The base directory for SUMS logs and configuration files; used by # sum_svc and sum_rm. SUMS_LOG_BASEDIR /usr/local/logs/SUM # The directory in which sum_chmown, a root setuid program, # is installed; must be mounted locally on the machine on which the # SUMS partition are mounted; used by base/sums/apps/sum_svc_proc.c SUMS_BIN_BASEDIR /usr/local/bin # If set to 1, then SUMS includes a tape-archive system. SUMS_TAPE_AVAILABLE 0 # If set to 1, then SUMS has more than one partition set. SUMS_MULTIPLE_PARTNSETS 0 # If AUTOSELCOMP is 1, then the configure script will automatically select # the 'best' compiler for use with the make system (choosing icc over gcc). # Set this to 0 to permit manual selection via the JSOC_COMPILER and JSOC_FCOMPILER # environment variables, or via editing of make_basic.mk AUTOSELCOMP (1) ############################### # TABLE OF PRODUCTION USERS # These parameters are used by lib DRMS to identify a database table (not a data series) # that lists the database users that are 'production users'. These users have privileges # that ordinary users do not. For example, production users can reduce the retention of # data series that the production user does not own. # The host:port of the machine serving as the db server that contains the production-user table. #PRODUSER_DBHOST hmidb:5432 # The name of database on the database host that contains the production-user table. #PRODUSER_DBNAME jsoc # The name of the production-user table #PRODUSER_PRODTAB su_production.produsers # The name of the column that contains the list of production users in the production-user table. #PRODUSER_COLUSER username # # END TABLE OF PRODUCTION USERS ############################### ############################### # Parameters for sum_rm # This is the percentage at which all disk partitions are to be kept free. # If not specified, this defaults to 3. For example, setting PART_PERCENT_FREE = 5 will allow all partitions to # fill to 95% full. Dividing the number of unused blocks by the total number of blocks, and rounding up, # will result in the number specified by PART_PERCENT_FREE. SUMRM_PART_PERCENT_FREE 3 # The value is the number of seconds to sleep between iterations of the main loop in sum_rm. SUMRM_SLEEP 300 # The value is the log file (opened only at sum_rm startup; the sum_rm pid is appended to this file name). SUMRM_LOG /tmp/sum_rm.log # The value is the email address of the recipient to be notified in case of a problem. # SUMRM_MAIL president@whitehouse.gov # If the value is set to anything other than 0, then sum_rm is rendered inactive. Otherwise, sum_rm is active. SUMRM_NOOP 0 # The value designates the linux user who is allowed to run sum_rm. SUMRM_USER production # This pair of parameters defines a window of time, during which sum_rm will become torpid - in this # window, sum_rm will not scan for SUs to delete, not will it delete any SUs. Each value is an integer, 0-23, that # represents an hour of the day. For example, if NORUN_START=8 and NORUN_STOP=10, then between 8am and 10am # local time, sum_rm will be dormant. To disable this behavior, set both parameters to the same value. SUMRM_NORUN_START 0 SUMRM_NORUN_STOP 0 JMD_IS_INSTALLED 0 # If the JMD is installed, then this parameter is the root URL to the JMD cgi interface. JMD_URL http://localhost:8080/JMD/JMD ############################### ############################### # Parameters for remote sums - these parameters allow configuration of the remote-sums components # The CGI of the site that maps requested SUs to sites that provide those SUs. The CGI # maps the SU site code to a NetDRMS site's SU-path CGI (the cgi that provides # paths for SUNUMs). RS_SITE_INFO_URL http://jsoc.stanford.edu/cgi-bin/rssites.sh # The database table that lists the remote sites, their site codes, and their base urls that provide access to the rs.py CGI. # Each site that provides SUs to other sites must have a rs.py CGI that provides the scp path to the site requesting the SUs. RS_SITE_TABLE drms.rs_sites # The database table used by rsumsd.py daemon running at the receiving site to track remote-site SU requests. RS_REQUEST_TABLE drms.rs_requests # The database table used by rsumsd.py daemon running at the receiving site to track SU downloads. RS_SU_TABLE drms.rs_sus # The name of the database that contains the three previous tables. RS_DBNAME mydb # The database host that contains the database identified by RS_DBNAME. RS_DBHOST localhost # The database user that manages remote sums programs. RS_DBUSER user # The port on the database host used by rsumsd.py to access the database identified by RS_DBNAME. RS_DBPORT 5432 # The (advisory) lockfile used by rsumsd.py to prevent multiple instances of rsumsd.py from running. RS_LOCKFILE /usr/share/drms/locks/remotesums.lck # The directory in which remote-sums log files are written. RS_LOGDIR /usr/share/drms/logs/rsums # The number of seconds after which a storage-unit scp download will time-out. RS_DLTIMEOUT 120 # The number of seconds after which a new remote-sums fetch will time-out if the daemon has not started a download within this interval. RS_REQTIMEOUT 300 # The maximum number of simultaneously storage unit downloads to process at once. RS_MAXTHREADS 216 # The path to executables run by the remote-sums system. RS_BINPATH /opt/drms/bin/linux_x86_64 # The number of SCP worker threads. RS_N_WORKERS 4 # The temporary directory into which Storage Units are downloaded. This should be on the same file system # in which the SUMS directories are located. RS_TMPDIR /tmp # If more than this number of SUs are awaiting download, then an ScpWorker will initiate a download. RS_SCP_MAXSUS 48 # If the cumulative payload exceeds this many MB, then an ScpWorker will initiate a download. RS_SCP_MAXPAYLOAD 512 # If an ScpWorker is idle for at least this many seconds, and there are SUs pending a download, # then an ScpWorker will initiate a download. RS_SCP_TIMEOUT 2 # The default expiration date for all SUs ingested by Remote SUMS. If the SU being ingested is part of a data series, then Remote SUMS obtains the expiration for the SU from the data series' definition instead. As an alternative to RS_SU_EXPIRATION, RS_SU_LIFESPAN can be used to specify the expiration date of newly ingested SUs. RS_SU_EXPIRATION takes predent over RS_SU_LIFESPAN. RS_SU_EXPIRATION 2018-10-15 # The default lifespan ("retention time"), in days, of a newly ingested SU. If the SU being ingested is part of a data series, then Remote SUMS obtains the lifespan for the SU from the data series' definition instead. As an alternative to RS_SU_LIFESPAN, RS_SU_EXPIRATION can be used to specify the lifespan of newly ingested SUs. RS_SU_EXPIRATION takes predent over RS_SU_LIFESPAN. RS_SU_LIFESPAN 28 # The default value of the archive flag for newly ingested SUs. If the SU being ingested is part of a data series, then Remote SUMS obtains the archive flag from the data series' definition instead. The truth value can be one of several character strings that implies TRUE or FALSE. RS_SU_ARCHIVE no # The default value of the tapegroup for newly ingested SUs. If the SU being ingested is part of a data series, then Remote SUMS obtains the tapegroup from the data series' definition instead. RS_SU_TAPEGROUP 0 ##### Storage Unit Steward ##### # The (advisory) lockfile used by the SU steward to prevent multiple instances of the steward from running. SS_LOCKFILE /usr/share/drms/locks/sustewie.lck # Each partition is scrubbed until its percent usage falls below the low-water mark. SS_LOW_WATER 90 # Partition scrubbing is initiated only after partition percent usage rises above the high-water mark. SS_HIGH_WATER 95 # The number of SUs in a partition that are deleted at one time. SUs are deleted one chunk at a time until the partition usage falls below the low-water mark. SS_SU_CHUNK 4096 # The interval, in seconds, between flushing/caching expired SU lists (use a smaller number if the system experience a high rate of SU expiration) SS_SLEEP_INTERVAL 300 # The time interval, in seconds, between updates to the per-partition cache of expired # SUs. This value applies to all partitions that are scrubbed. For each partition, a # steward thread queries its cache to select the next SUs to delete (which are sorted by # increasing expiration date). SS_REHYDRATE_INTERVAL 3600 ##### Storage Unit Steward ##### # If set to 1, then this DRMS allows access by the public to series defined in the internal database (SERVER). WL_HASWL 0 # The file that contains a list of internal series that are accessible to external users. WL_FILE /usr/share/drms/whitelist.txt # The paths to various binaries. BIN_EXPORT /opt/drms/bin SCRIPTS_EXPORT /opt/drms/scripts EXPORT_PRODUCTION_DB_USER netdrms_production EXPORT_LOG_DIR /opt/exports/logs EXPORT_LOCK_DIR /opt/exports/tmp EXPORT_HANDLE_DIR /opt/exports # The DRMS database table that contains the pending export requests. Unless you have a fully functional export system # (you don't), set this to the empty string EXPORT_PENDING_REQUESTS_TABLE "" # The number of minutes, after which a pending export request expires EXPORT_PENDING_REQUESTS_TIME_OUT 60 EXPORT_PENDING_REQUESTS_MAX_TABLE "" EXPORT_ADDRESS_INFO_FN "" EXPORT_ADDRESS_INFO_INSERT_FN "" EXPORT_ADDRESS_INFO_UPDATE_FN "" EXPORT_ADDRESS_INFO_DELETE_FN "" EXPORT_USER_INFO_TABLE "" EXPORT_USER_INFO_FN "" EXPORT_USER_INFO_INSERT_FN "" EXPORT_USER_INFO_UPDATE_FN "" EXPORT_USER_INFO_DELETE_FN "" EXPORT_USER_UNREGISTER_FN "" # The Python binary must be at least version 2.7. 3.x binaries will work. BIN_PY /usr/bin/python BIN_PY3 /usr/bin/python3 # The number of minutes after which a new email registration attempt will time-out if the registering user does # not respond to the verification email sent to them. REGEMAIL_TIMEOUT 5 ############## MT SUMS ############## # These are parameters needed when using the multi-threaded SUMS daemon. # Use the MT SUMS daemon (which serves SUM_infoArray() requests). SUMS_USEMTSUMS 0 # Use the MT SUMS daemon for the SUM_open() and SUM_close() API function. SUMS_USEMTSUMS_CONNECTION 0 # Use the MT SUMS daemon for the SUM_infoArray() API function. SUMS_USEMTSUMS_INFO 0 # Use the MT SUMS daemon for the SUM_get() API function. SUMS_USEMTSUMS_GET 0 # Use the MT SUMS daemon for the SUM_alloc() and SUM_alloc2() API function. SUMS_USEMTSUMS_ALLOC 0 # Use the MT SUMS daemon for the SUM_put() API function. SUMS_USEMTSUMS_PUT 0 # Use the MT SUMS daemon for the SUM_delete_series() API function. SUMS_USEMTSUMS_DELETESUS 0 # Use the MT SUMS daemon for the SUM_open() and SUM_close() API function. SUMS_USEMTSUMS_ALL 0 # The maximum number of SUs to process in parallel. SUMSD_MAX_THREADS 32 # The port to be used by the MT SUMS daemon for incoming requests. SUMSD_LISTENPORT 6002 # The amount of time, in minutes, sumsd.py will wait for a client response; after this interval elapses without a client resopnse sumsd.py will destroy the client connection SUMS_MT_CLIENT_RESP_TIMEOUT 1440 ############ END MT SUMS ############ # The Slony server configure file. This is used only if you are generating Slony logs to distribute DRMS series data # to subscribing mirror sites. SLONY_CONFIG /opt/netdrms/proj/replication/etc/repserver.cfg # Ephemeris tables for rings project JPL_EPHEM_TABLEDIR /opt/netdrms/tables SOHO_EPHEM_TABLE /opt/netdrms/tables ############################### __MAKE__ # Third-party libraries required in order to make NetDRMS binaries. Specify # a default and also machine-specific locations (if desired). The default will # be used if no machine-specific entry exists. # *** PostgreSQL *** # defaults # PostgreSQL API headers (must contain libpq-fe.h) POSTGRES_INCS:X86_64 /usr/include POSTGRES_INCS:AVX /usr/include # the location of the PostgreSQL libs; likely to be either # /usr/lib or /usr/lib64 or /usr/local/pgsql/lib POSTGRES_LIBS:X86_64 /usr/lib64 POSTGRES_LIBS:AVX /usr/lib64 # actual library names POSTGRES_LIB pq # machine-specific # The following is an example: # POSTGRES_LIBS:N02 /usr/lib64 # *** end PostgreSQL *** # *** CFITSIO *** # defaults # CFITSIO API headers (must contain fitsio.h) CFITSIO_INCS:X86_64 /usr/local/include CFITSIO_INCS:AVX /usr/local/include # the location of the cfitsio libraries CFITSIO_LIBS:X86_64 /usr/local/lib64 CFITSIO_LIBS:AVX /usr/local/lib64 # actual library names CFITSIO_LIB cfitsio # machine-specific # The following is an example: # CFITSIO_LIBS:N02 /usr/lib64 # *** end CFITSIO *** #################### TAR #################### # Tar library needed by JMD. TAR_INCS:X86_64 /usr/include TAR_INCS:AVX /usr/include TAR_LIBS:X86_64 /usr/lib64 TAR_LIBS:AVX /usr/lib64 ################## END TAR ##################