\item \texttt{GLITE\_LB\_EXPORT\_ENABLED} -- set to \texttt{true} for export to JP, installed glite-lb-client and glite-jp-client are needed (default: \texttt{false})
\item \texttt{GLITE\_LB\_EXPORT\_JPPS} -- Job Provenance Primary Storage where to export purged jobs, required if export to JP is enabled
\item \texttt{GLITE\_LB\_RTM\_ENABLED} -- enable settings for Real Time Monitor - indexes and additional access (default: false)
-\item \texttt{GLITE\_LB\_RTM\_DN} -- DNs using to get notifications from \LB server\\
-(default: \texttt{heppc24.hep.ph.ic.ac.uk} machine certificate)
-\item \texttt{GLITE\_LB\_SUPER\_USERS} -- additional super-users (default: empty)
\item \texttt{GLITE\_LB\_TYPE} -- type of the \LB service: server, proxy, both (default: autodetect, \LB node only: 'server', WMS node only: proxy, \LB and WMS: 'both')
\item \texttt{GLITE\_LB\_INDEX\_OWNER} -- when specified, add (\texttt{true}) or drop (\texttt{false}) 'owner' index (default: 'owner' index not touched)
\item \texttt{GLITE\_LB\_MSG\_BROKER} -- URL of the MSG broker, 'auto' for looking in BDII, 'false' for disabling MSG notifications (default: auto)
\item \texttt{LCG\_GFAL\_INFOSYS} -- BDII servers (default: lcg-bdii.cern.ch:2170)
\end{itemize}
+Authorization:
+\begin{itemize}
+\item \texttt{GLITE\_LB\_SUPER\_USERS} -- additional super-users (default: empty)
+\item \texttt{GLITE\_LB\_WMS\_DN} -- DNs of WMS servers (default: empty)
+\item \texttt{GLITE\_LB\_RTM\_DN} -- DNs using to get notifications from \LB server\\
+(default: \texttt{heppc24.hep.ph.ic.ac.uk} machine certificate)
+\item \texttt{GLITE\_LB\_AUTHZ\_<category>} -- more detailed tuning of access grants, see Section~\ref{inst:authz} (default: empty, '.*' for logging and job registrations)
+\end{itemize}
+
Additional helper or legacy parameters for \LB:
\begin{itemize}
\item \texttt{GLITE\_LB\_LOCATION} -- \LB prefix (default: \texttt{/opt/glite} or \texttt{/usr})
In addition to those, YAIM LB module uses following parameters:
\texttt{INSTALL\_ROOT}, \texttt{GLITE\_LOCATION\_VAR}, \texttt{GLITE\_USER}, \texttt{SITE\_EMAIL}.
-Lists separated by comma (\texttt{GLITE\_LB\_RTM\_DN} and \texttt{GLITE\_LB\_SUPER\_USERS}).
+Lists are separated by comma.
\subsubsection{Migration to a different OS version}
\label{inst:OSmigration}
# L&B configuration
#
-# L&B super users (separated by comma)
-GLITE_LB_SUPER_USERS=
# L&B service type (server/proxy/both), overrided by YAIM when needed
GLITE_LB_TYPE=
# configure glite-LB to be used with Real Time Monitor (harvester)
GLITE_LB_RTM_ENABLED='false'
-# Real Time Monitoring identities (separated by comma)
-GLITE_LB_RTM_DN='/C=UK/O=eScience/OU=Imperial/L=Physics/CN=heppc24.hep.ph.ic.ac.uk/Email=janusz.martyniak@imperial.ac.uk'
# MSG publish
GLITE_LB_MSG_BROKER='true'
GLITE_LB_MSG_NETWORK='PROD'
LCG_GFAL_INFOSYS='lcg-bdii.cern.ch:2170'
+# L&B authorization (items in list separated by comma)
+GLITE_LB_SUPER_USERS=
+GLITE_LB_WMS_DN=
+GLITE_LB_RTM_DN='/C=UK/O=eScience/OU=Imperial/L=Physics/CN=heppc24.hep.ph.ic.ac.uk/Email=janusz.martyniak@imperial.ac.uk'
+GLITE_LB_AUTHZ_ADMIN_ACCESS=
+GLITE_LB_AUTHZ_READ_ALL=
+GLITE_LB_AUTHZ_READ_PURGE=
+GLITE_LB_AUTHZ_STATUS_FOR_MONITORING=
+GLITE_LB_AUTHZ_GET_STATISTICS=
+GLITE_LB_AUTHZ_GRANT_OWNERSHIP=
+GLITE_LB_AUTHZ_REGISTER_JOBS=".*"
+GLITE_LB_AUTHZ_LOG_WMS_EVENTS=".*"
+GLITE_LB_AUTHZ_LOG_CE_EVENTS=".*"
+GLITE_LB_AUTHZ_LOG_GENERAL_EVENTS=".*"
+
#
# additional options
#
function config_glite_lb_authz() {
superusers="$1"
rtm="$2"
+ wms="$GLITE_LB_WMS_DN"
- superusers="`echo \"$superusers\" | tr ',' '\n' | grep -v ^$ | sed 's/\(.*\)/\trule permit {\n\t\tsubject = \"\1\"\n\t}/'`"
- rtm="`echo \"$rtm\" | tr ',' '\n' | grep -v ^$ | sed 's/\(.*\)/\trule permit {\n\t\tsubject = \"\1\"\n\t}/'`"
authconf="$GLITE_LB_LOCATION_ETC/glite-lb/glite-lb-authz.conf"
cat <<EOF > "$authconf".new
resource "LB" {
-
-action "ADMIN_ACCESS" {
-$superusers
-}
-
-action "READ_ALL" {
-$rtm
-}
-
-action "REGISTER_JOBS" {
- rule permit {
- subject = ".*"
- }
-}
-
-action "LOG_WMS_EVENTS" {
- rule permit {
- subject = ".*"
- }
-}
-
-action "LOG_CE_EVENTS" {
- rule permit {
- subject = ".*"
- }
-}
-
-action "LOG_GENERAL_EVENTS" {
- rule permit {
- subject = ".*"
- }
+EOF
+ for section in ADMIN_ACCESS STATUS_FOR_MONITORING GET_STATISTICS REGISTER_JOBS READ_ALL PURGE GRANT_OWNERSHIP LOG_WMS_EVENTS LOG_CE_EVENTS LOG_GENERAL_EVENTS; do
+ eval value=\"$`echo GLITE_LB_AUTHZ_$section`\"
+ case "$section" in
+ ADMIN_ACCESS) value="$value,$superusers" ;;
+ READ_ALL) value="$value,$wms,$rtm" ;;
+ PURGE) value="$value,$wms" ;;
+ LOG_WMS_EVENTS) value="$value,$wms" ;;
+ esac
+ value="`echo \"$value\" | tr ',' '\n' | grep -v ^$ | sed 's/\(.*\)/\trule permit {\n\t\tsubject = \"\1\"\n\t}/'`"
+ cat <<EOF >> "$authconf".new
+
+action "$section" {
+$value
}
+EOF
+ done
+ cat <<EOF >> "$authconf".new
}
EOF
+
# something changed
if test -f "$authconf"; then
diff -w "$authconf" "$authconf".new >/dev/null