% see status.tex.T
\input{status}
-\begin{figure}[hb]
+\begin{figure}[h]
\centering
\includegraphics[width=.6\hsize]{images/wms2-jobstat}
\caption{\LB\ job state diagram}
% default values can be read especially from org.glite.lb.common/src/param.c
% and apropriate header files
-\begin{tabularx}{\textwidth}{lX}
+\begin{tabularx}{\textwidth}{l>{\raggedright\arraybackslash}X}
GLITE\_WMS\_LOG\_DESTINATION &
% see also glite/lb/log_proto.h (org.glite.lb.common/interface/log_proto.h)
- address of \verb'glite-lb-logd' daemon (for logging events),
- in form \verb'hostname:port',
- default value is \verb'localhost:9002'\\
+ address of the \texttt{glite-lb-logd} daemon (for logging events),
+ in form \texttt{hostname:port},
+ default value is \texttt{localhost:9002}\\
GLITE\_WMS\_LOG\_TIMEOUT &
% see also glite/lb/timeouts.h (org.glite.lb.common/interface/timeouts.h)
timeout (in seconds) for asynchronous logging,
- default value is \verb'120' seconds,
- maximum value is \verb'300' seconds \\
+ default value is \texttt{120} seconds,
+ maximum value is \texttt{300} seconds \\
GLITE\_WMS\_LOG\_SYNC\_TIMEOUT &
% see also glite/lb/timeouts.h (org.glite.lb.common/interface/timeouts.h)
timeout (in seconds) for synchronous logging,
- default value is \verb'120' seconds,
- maximum value is \verb'600' seconds \\
+ default value is \texttt{120} seconds,
+ maximum value is \texttt{600} seconds \\
GLITE\_WMS\_NOTIF\_SERVER &
- address of \verb'glite-lb-bkserver' daemon (for receiving notifications)
- in form \verb'hostname:port', for receiving notifications,
+ address of the \texttt{glite-lb-bkserver} daemon (for receiving notifications)
+ in form \texttt{hostname:port}, for receiving notifications,
there is no default value,
- mandatory for \verb'glite-lb-notify' \\
+ mandatory for \texttt{glite-lb-notify} \\
GLITE\_WMS\_NOTIF\_TIMEOUT &
% see also glite/lb/timeouts.h (org.glite.lb.common/interface/timeouts.h)
timeout (in seconds) for notification registration,
- default value is \verb'120' seconds,
- maximum value is \verb'1800' seconds \\
+ default value is \texttt{120} seconds,
+ maximum value is \texttt{1800} seconds \\
GLITE\_WMS\_QUERY\_SERVER &
- address of \verb'glite-lb-bkserver' daemon (for queries),
- in form \verb'hostname:port',
+ address of the \texttt{glite-lb-bkserver} daemon (for queries),
+ in form \texttt{hostname:port},
there is no default value \\
GLITE\_WMS\_QUERY\_TIMEOUT &
% see also glite/lb/timeouts.h (org.glite.lb.common/interface/timeouts.h)
timeout (in seconds) for queries,
- default value is \verb'120' seconds,
- maximum value is \verb'1800' seconds \\
+ default value is \texttt{120} seconds,
+ maximum value is \texttt{1800} seconds \\
GLITE\_WMS\_LBPROXY\_STORE\_SOCK &
UNIX socket location for logging to LB Proxy,
- default value is \verb'/tmp/lb_proxy_store.sock' \\
+ default value is \texttt{/tmp/lb\_proxy\_store.sock} \\
GLITE\_WMS\_LBPROXY\_SERVE\_SOCK &
UNIX socket location for queries to LB Proxy,
- default value is \verb'/tmp/lb_proxy_serve.sock' \\
+ default value is \texttt{/tmp/lb\_proxy\_serve.sock} \\
GLITE\_WMS\_LBPROXY\_USER &
user credentials (DN) when communicating with LB Proxy,
there is no default value \\
-X509\_USER\_CERT and X509\_USER\_KEY &
- location of user credentials,
- default values are \verb'~/.globus/usercert.pem' and \verb'~/.globus/userkey.pem' \\
+X509\_USER\_CERT, X509\_USER\_KEY &
+ location of user credentials (certificate and private key),
+ default values are \texttt{~/.globus/user{cert,key}.pem} \\
GLOBUS\_HOSTNAME &
hostname to appear as event origin, useful only for debugging,
default value is hostname \\
QUERY\_SERVER\_OVERRIDE &
values defined in QUERY\_SERVER will override also values in jobid in queries,
useful for debugging only,
- default value \verb'no' \\
+ default value \texttt{no} \\
QUERY\_JOBS\_LIMIT &
maximal size of results for query on jobs,
- default value is \verb'0' (unlimited) \\
+ default value is \texttt{0} (unlimited) \\
QUERY\_EVENTS\_LIMIT &
maximal size of results for query on events,
- default value is \verb'0' (unlimited) \\
+ default value is \texttt{0} (unlimited) \\
QUERY\_RESULTS &
specifies behavior of query functions when size limit is reached,
- value can be \verb'None' (no results are returned),
- \verb'All' (all results are returned, even if over specified limit),
- \verb'Limited' (size of results is limited to size specified by QUERY\_JOBS\_LIMIT
+ value can be \texttt{None} (no results are returned),
+ \texttt{All} (all results are returned, even if over specified limit),
+ \texttt{Limited} (size of results is limited to size specified by QUERY\_JOBS\_LIMIT
or QUERY\_EVENTS\_LIMIT) \\
CONNPOOL\_SIZE &
maximal number of open connections in logging library,
for developers only,
- default value is \verb'50' \\
+ default value is \texttt{50} \\
\end{tabularx}
For backward compatibility, all \verb'GLITE_WMS_*' variables can be prefixed by
\verb'EDG_WL_' instead, for example \verb'EDG_WL_LOG_DESTINATION'.
+
% stavovy automat
% obrazek: stavovy diagram
-\begin{figure}
+\begin{figure}[ht]
\centering
\includegraphics[width=.6\hsize]{images/wms2-jobstat}
\caption{\LB\ job state diagram}
clocks.
\fi
%
-\begin{table}[h]
+\begin{table}[ht]
\begin{center}
\begin{tabular}{rlrl}
1.&WM: Accept&
The approach is quite general---any finite pass through any state
diagram (finite directed graph) can be encoded in this way.
-\begin{figure}
+\begin{figure}[ht]
\centering
\includegraphics[scale=.833]{images/seqtree}
\caption{Job state sequence in the CE failure scenario, arranged into a~tree.
are shown in Figures~\ref{f:comp-gather} (gathering and transferring
\LB events) and~\ref{f:comp-query} (\LB query and notification services).
-\begin{figure}
+\begin{figure}[ht]
\centering
\includegraphics[scale=.5]{images/LB-components-gather}
\caption{\LB components involved in gathering and transferring the events}
the CE counter becomes irrelevant (as the job control is on WM now),
and the WM counter is incremented again.
-\begin{table}[h]
+\begin{table}[ht]
\begin{center}
\begin{tabular}{rlrl}
1:x&WM: Accept&
\subsection{User interaction}
-\begin{figure}
+\begin{figure}[ht]
\centering
\includegraphics[scale=.5]{images/LB-components-query}
\caption{\LB queries and notifications}
can be found in Section \ref{s:lb-tools}.
-\subsubsection{Retrieving information}
+\subsubsection{Querying information}
+%\TODO{prejmenovat, aby v nazvy byly Queries}
-\TODO{prejmenovat, aby v nazvy byly Queries}
-
-From the user point of view, the information retrieval is the most
-important interaction with the \LB service.
+From the user point of view, the information retrieval (\emph{query}) is the
+most important interaction with the \LB service.
%dotazy na stav
The typical \LB usage are queries on the high-level job state information.
indicates how fast we are able to ``generate'' events in the feeding
program.
-\begin{table}[h]
+\begin{table}[ht]
\begin{tabular}{l|r}
{\bf Component} & {\bf Job throughput (jobs/day)} \\
\hline
- is it documented how a user should submit a ticket/bug, e.g. what
information is useful to debug the problem?
-- co muze uzivatel udelat sam (vystup z jakych prikazu), co s pomoci administratora (odkaz do LBAG)
+- co muze uzivatel udelat sam (vystup z jakych prikazu),
+ co s pomoci administratora (odkaz do LBAG), apod.
- kam poslat email, kde submitnout bug a pod.
\end{verbatim}
\subsubsection{Example: Changing Job Access Control List}
\label{e:change-acl}
-In order to change an ACL for a job a special event \verb'ChangeACL' is used. This
-event can be logged by the job owner using the \verb'glite-lb-logevent' command
-(see also Sect.~\ref{glite-lb-logevent}). General template for changing the ACL
-is as follows:
+In order to change the Access Control List (ACL) for a job, a special event
+\verb'ChangeACL' is used. This event can be logged by the job owner using the
+\verb'glite-lb-logevent' command (see also Sect.~\ref{glite-lb-logevent}).
+General template for changing the ACL is as follows:
\begin{verbatim}
-glite-lb-logevent -e ChangeACL -s UserInterface -p --permission 1
+glite-lb-logevent -e ChangeACL -s UserInterface -p --permission 1
-j <job_id>
--user_id <user_id>
--user_id_type <user_id_type>
where
-\begin{tabularx}{\textwidth}{lX}
-\verb'<job_id>' & specifies the job to change \\
-\verb'<user_id>' & specifies the user to use, can be either an X.500 name
- (subject name) or a VOMS group (of the form
- VO:Group)\\
-\verb'<user_id_type>' & \verb'0' or \verb'1', indicating \verb'user_id'
+\begin{tabularx}{\textwidth}{>{\texttt}lX}
+<job\_id> & specifies the job to change \\
+<user\_id> & specifies the user to use, can be either an X.500 name
+ (subject name) or a VOMS group (of the form VO:Group)\\
+<user\_id\_type> & \texttt{0} or \texttt{1}, indicating \texttt{user\_id}
specifies X.500 name or VOMS group, respectively \\
-\verb'<permission_type>' & \verb'0' or \verb'1', indicating the user is
+<permission\_type> & \texttt{0} or \texttt{1}, indicating the user is
\textit{allowed} or \textit{denied}, respectively \\
-\verb'<operation>' & \verb'0' or \verb'1' indicating the record carried in
- the event shall be added or removed, respectively from
- the ACL \\
+<operation> & \texttt{0} or \texttt{1} indicating the record carried in
+ the event shall be added or removed, respectively from
+ the ACL \\
\end{tabularx}
-Adding a user specified by his or her subject name to the ACL (\verb'user_id' =
-subject name, \verb'user_id_type' = 0, \verb'permission_type' = 0,
-\verb'operation' = 0):
+
+Adding a user specified by his or her subject name to the ACL \\
+(\verb'user_id' = subject name, \verb'user_id_type' = 0,
+\verb'permission_type' = 0, \verb'operation' = 0):
\begin{verbatim}
glite-lb-logevent -e ChangeACL -s UserInterface -p --permission 1 \
--user_id_type 0 --permission_type 0 --operation 0
\end{verbatim}
-Removing a user specified by his or her subject name from the ACL (\verb'user_id' =
-subject name, \verb'user_id_type' = 0, \verb'permission_type' = 0,
-\verb'operation' = 1):
+
+Removing a user specified by his or her subject name from the ACL \\
+(\verb'user_id' = subject name, \verb'user_id_type' = 0,
+\verb'permission_type' = 0, \verb'operation' = 1):
\begin{verbatim}
glite-lb-logevent -e ChangeACL -s UserInterface -p --permission 1 \
--user_id_type 0 --permission_type 0 --operation 1
\end{verbatim}
-Adding a VOMS group to the ACL (\verb'user_id' = VOMS group,
-\verb'user_id_type' = 1, \verb'permission_type' = 0, \verb'operation' = 0):
+
+Adding a VOMS group to the ACL \\
+(\verb'user_id' = VOMS group, \verb'user_id_type' = 1,
+\verb'permission_type' = 0, \verb'operation' = 0):
\begin{verbatim}
glite-lb-logevent -e ChangeACL -s UserInterface -p --permission 1 \
--user_id_type 1 --permission_type 0 --operation 0
\end{verbatim}
+
Denying a particular user from accessing information about the job, can be
combined e.g. with VOMS groups (\verb'user_id' = subject name,
\verb'user_id_type' = 0, \verb'permission_type' = 1, \verb'operation' = 0):
};
@@@}
-Events for gLite world:
+\subsection*{Events for gLite world:}
\begin{tabularx}{\textwidth}{l>{\bfseries}lX}
@@@{
if ($flesh ne $event->{flesh}->{$e}) {
$flesh = $event->{flesh}->{$e};
- gen "\\end{tabularx}\n";
- gen " Events for $flesh world:\n\n";
+ gen "\\end{tabularx}\n\n";
+ gen "\\subsection*{Events for $flesh world:}\n\n";
gen "\\begin{tabularx}{\\textwidth}{l>{\\bfseries}lX}\n";
$fleshno += 100;
$eventno = $fleshno;
For action \verb'receive', command usage is:
\begin{verbatim}
- glite-lb-notify receive [ { -s socket_fd | -a fake_addr } ] [-t requested_validity ]
- [-i timeout] [-f field1,field2,...] [notifid]
+ glite-lb-notify receive [ { -s socket_fd | -a fake_addr } ] [-i timeout]
+ [-t requested_validity ] [-f field1,field2,...] [notifid]
\end{verbatim}
For action \verb'drop', command usage is:
system by registering a notification on any state change of this job
and waiting for notification.
-Register notification for given jobid
-(\verb'https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q'),
+Register notification for a given jobid
+%(\verb'https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q'),
with validity 2 hours (7200 seconds):
\begin{verbatim}
- GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 bin/glite-lb-notify new \
- -j https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q -t 7200
+ GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 glite-lb-notify new \
+ -j https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q -t 7200
\end{verbatim}
- returns:
+returns:
\begin{verbatim}
- notification ID: https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
+ notification ID: https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
\end{verbatim}
Wait for notification (with timeout 120 seconds):
\begin{verbatim}
- GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 bin/glite-lb-notify receive \
- -i 120 https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
+ GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 glite-lb-notify receive \
+ -i 120 https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
\end{verbatim}
returns:
\begin{verbatim}
- notification is valid until: '2008-07-29 15:04:41' (1217343881)
- https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Waiting
- /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
- https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Ready
- /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
- https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Scheduled
- /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
- https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Running
- /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
+ notification is valid until: '2008-07-29 15:04:41' (1217343881)
+ https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Waiting
+ /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
+ https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Ready
+ /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
+ https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Scheduled
+ /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
+ https://skurut68-2.cesnet.cz:9100/D1qbFGwvXLnd927JOcja1Q Running
+ /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
\end{verbatim}
Destroy notification:
\begin{verbatim}
- GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 bin/glite-lb-notify drop \
- https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
+ GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 glite-lb-notify drop \
+ https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
\end{verbatim}
\subsubsection{Example: Waiting for notifications on all user's jobs}
Register notification for user (DN obtained by \verb'grid-proxy-info -subject'):
\begin{verbatim}
- GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 bin/glite-lb-notify new \
- -o "/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda"
+ GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 glite-lb-notify new \
+ -o "/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda"
\end{verbatim}
- returns:
+returns:
\begin{verbatim}
- notification ID: https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
+ notification ID: https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
\end{verbatim}
And continue with \verb'glite-lb-notify receive' similarly to previous example.
serving job):
\begin{verbatim}
- GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 bin/glite-lb-notify receive \
- -i 240 -f destination,location \
- https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
+ GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 glite-lb-notify receive \
+ -i 240 -f destination,location \
+ https://skurut68-2.cesnet.cz:9100/NOTIF:tOsgB19Wz-M884anZufyUw
\end{verbatim}
returns:
\begin{verbatim}
- notification is valid until: '2008-07-29 15:43:41' (1217346221)
+ notification is valid until: '2008-07-29 15:43:41' (1217346221)
https://skurut68-2.cesnet.cz:9100/qbRFxDFCg2qO4-9WYBiiig Waiting
(null) NetworkServer/erebor.ics.muni.cz/
\subsubsection{Example: Waiting for more notifications on one socket}
-Foloving example demonstrates possibility to reuse existing socket for receiving
-multiple notifications. Perl script \verb'./examples/notify.pl' (available in
+The foloving example demonstrates possibility to reuse existing socket for receiving
+multiple notifications. Perl script \verb'notify.pl' (available in
examples directory) creates socket, which is then reused for all
\verb'glite-lb-notify' commands.
\begin{verbatim}
-GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 NOTIFY_CMD=bin/glite-lb-notify \
- ./examples/notify.pl -o "/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda"
+GLITE_WMS_NOTIF_SERVER=skurut68-2.cesnet.cz:9100 NOTIFY_CMD=glite-lb-notify \
+ ./notify.pl -o "/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda"
\end{verbatim}
- returns:
+returns:
\begin{verbatim}
notification ID: https://skurut68-2.cesnet.cz:9100/NOTIF:EO73rjsmexEZJXuSoSZVDg
got connection
https://skurut68-2.cesnet.cz:9100/ANceuj5fXdtaCCkfnhBIXQ Submitted
/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
-bin/glite-lb-notify: Connection timed out (read message)
+glite-lb-notify: Connection timed out (read message)
got connection
https://skurut68-2.cesnet.cz:9100/p2jBsy5WkFItY284lW2o8A Submitted
/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
-bin/glite-lb-notify: Connection timed out (read message)
+glite-lb-notify: Connection timed out (read message)
got connection
https://skurut68-2.cesnet.cz:9100/p2jBsy5WkFItY284lW2o8A Waiting
/DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Miroslav Ruda
}
@@@}
\end{tabularx}
+
\endinput
+