Revision history:
$Log$
+ Revision 1.12 2006/05/05 11:52:37 jpospi
+ conditional disabling of cross-subsystem builds via "jponly" property
+
Revision 1.11 2006/01/16 17:20:25 mmulac
merge from RC15 branch
- compiles
</then>
</if>
+ <target name="lb.common" unless="setenvonly" depends="envset">
+ <if>
+ <isset property="small.memory"/>
+ <then>
+ <exec dir="${lb.subsystem.dir}" executable="${antExec}" failonerror="${failonerror}">
+ <arg line="common -Dtarget=${target} -Dsmall.memory=true -Dbootstrap=${bootstrap} -Dfailonerror=${failonerror} -Ddo.cvs.tag=${do.cvs.tag}"/>
+ </exec>
+ </then>
+ <else>
+ <ant dir="${lb.subsystem.dir}"
+ target="common"
+ inheritall="false" >
+ <property name="target" value="${target}"/>
+ </ant>
+ </else>
+ </if>
+ </target>
+
+ <target name="lb.client-interface" unless="setenvonly" depends="envset">
+ <if>
+ <isset property="small.memory"/>
+ <then>
+ <exec dir="${lb.subsystem.dir}" executable="${antExec}" failonerror="${failonerror}">
+ <arg line="client-interface -Dtarget=${target} -Dsmall.memory=true -Dbootstrap=${bootstrap} -Dfailonerror=${failonerror} -Ddo.cvs.tag=${do.cvs.tag}"/>
+ </exec>
+ </then>
+ <else>
+ <ant dir="${lb.subsystem.dir}"
+ target="client-interface"
+ inheritall="false" >
+ <property name="target" value="${target}"/>
+ </ant>
+ </else>
+ </if>
+ </target>
+
<target name="ws-interface" unless="setenvonly" depends="envset" >
<if>
<isset property="small.memory" />
</if>
</target>
- <target name="common" unless="setenvonly" depends="envset" >
+ <target name="common" unless="setenvonly" depends="envset,lb.client-interface" >
<if>
<isset property="small.memory" />
<then>
</if>
</target>
- <target name="server-common" unless="setenvonly" depends="envset, mysql, common" >
+ <target name="server-common" unless="setenvonly" depends="envset, mysql, common,lb.common" >
<if>
<isset property="small.memory" />
<then>
\begin{table}[htpb]
\centering
- \begin{tabular}{|c|l|l|p{9cm}|}
+ \begin{tabular}{|c|p{3cm}|l|p{9cm}|}
\hline
&spool directory&initiated by&description\\
\hline
\hline
- 1&lb.export.dump&lb-exporter&Export of LB job records into spool
- directory. It use glite-lb-purge utility. LB-exporter reads this
- spool directory
- in a regular manner and implement next processing of LB dumps.\\
+ 1&lb.export.dump,
+ lb.export.dump.keep&lb-exporter&
+ Export of LB job records into spool directory. It uses glite-lb-purge utility. LB-exporter reads this spool directory in a regular manner and implement next processing of LB dumps. Optionally it can keep handled dumps in lb.export.dump.keep.\\
\hline
2&lb.export.jpreg&LB server&When new job come to the LB server
it stores its
registration into the spool directory. It is responsibility of
JP-importer process to handle such registrations.\\
\hline
- 3&lb.export.jpdump&lb-exporter&LB-exporter do its processing of
- LB dumps and passes
- on it to the JP-importer using the spool directory.\\
+ 3&lb.export.jpdump,
+ lb.export.jobs,
+ lb.export.jobs.keep&lb-exporter&
+ LB-exporter do its processing of LB dumps (they are in per job form) and passes on it to the JP-importer using the spool directory lb.export.jpdump and temporary storage lb.export.jobs. It can keep the job files for futher usage.\\
\hline
4&none&jp-importer&JP importer handles registrations received from LB
server and sends it to the JP primary server front-end (using its WS
staying in a terminal state is to be purged from the LB server.
\item The LB exporter have a feature to store LB job event dumps in a
directory for further handling (e.g. for job statistic tool). This behaviour
- is controled by lb.export.jobs deployment config file clause (leave
+ is controled by lb.export.jobs.keep deployment config file clause (leave
this clause empty if you don't use dumps for futher handling).
\item The LB exporter also have a feature to keep all handled LB
dumps (in glite-lb-purge format) in filesystem. This feature is
\item JPIS -- Job Provenance Index Server
\end{itemize}
-\todo{}
\section{Test Coverage}
-\todo{}
+\todo{TBD}
%\chapter{Test Cases}
\subsubsection{Basic functionality}
\label{regjob}
-\req Running JPPS
+\req\ Running JPPS
\how
\begin{itemize}
\end{itemize}
\result Should print the OWNER value supplied.
-
\subsubsection{AuthZ check}
-\req JPPS running, a~job registered with the procedure in~\ref{regjob}
-\how
+\req\ JPPS running, a~job registered with the procedure in~\ref{regjob}
+
+\how\
Call GetJobAttributes using different user credentials
-\result
+
+\result\
Should fail with ``Permission denied'' error
\subsection{Tag recording}
-\req JPPS running, a~job registered with the procedure in~\ref{regjob}
+\label{tagreg}
+
+\subsubsection{Basic functionality}
+\req\
+JPPS running, a~job registered with the procedure in~\ref{regjob}
+
\how
\begin{itemize}
\item Call RecordTag operation:
\result
The recorded value should be returned.
-- record and retrieve more values of the same tag
+\how\ Record another values(s) of the same tag by repeating the RecordTag call
+
+\result\ GetJobAttr should return all the recorded values
+
+
+\subsubsection{AuthZ check}
+\req\ JPPS running, a~job registered with the procedure in~\ref{tagreg} \\
+\how\ Call RecordTag using different user credentials \\
+\result\ Should fail with ``Permission denied'' error \\
+
+
\subsection{File upload}
+
\subsubsection{Basic functionality}
-- call StartUpload, LB dump file type
-* check with GetJobFiles -- shoud return nothing
-- upload via ftp
-- call CommitUpload
-* check with GetJobFiles -- should return URL
-- retrieve and check the file
+\req\ JPPS running, my certificate subject amont JPPS trusted peers,
+\verb'globus-url-copy' in PATH
+
+\how
+Run the aggregate test script from \verb'org.glite.jp.primary/build'
+
+\begin{verbatim}
+$ ../examples/jpps_store_test -o 'OWNER' -d ../examples/job_template
+\end{verbatim}
+(substitute real cert.\ subject for OWNER)
+
+\result\
+The script calls JPPS operations RegisterJob and StartUpload,
+uploads an \LB\ job log generated from the template file,
+calls CommitUpload.
+
+Finally, the upload is checked by retrieving two attribute
+values: LB/Attributes:user and LB/Attributes:finalStatusk via the GetJobAttr
+call.
+Both calls should return OK and print reasonable values.
+
+%- call StartUpload, LB dump file type
+%* check with GetJobFiles -- shoud return nothing
+%- upload via ftp
+%- call CommitUpload
+%* check with GetJobFiles -- should return URL
+%- retrieve and check the file
+
+\subsubsection{Phase checks}
+\todo{salvet}
+% soubor nelze zapsat pred otevrenim operaci StartUpload
+% nelze cist pred Commitem
+% nelze zapsat po Commitu
\subsubsection{AuthZ checks}
(should fail)
-* call GetJobFiles with different credentials
-* StartUpload with different credentials
-
-- StartUpload
-* ftp upload with different credentials
+\todo{salvet}
+%* call GetJobFiles with different credentials
+%
+%* StartUpload with different credentials
+%
+%- StartUpload
+%* ftp upload with different credentials
+%
+%* ftp GET with different credentials
-* ftp GET with different credentials
\subsubsection{Cleanup}
(Foreseen test for feature which is not implemented yet)
-- call StartUpload, short timeout
-- upload via ftp
-(don't call CommitUpload)
-* uploaded file should be purged after timeout
+%- call StartUpload, short timeout
+%- upload via ftp
+%(don't call CommitUpload)
+%* uploaded file should be purged after timeout
\section{\LB\ plugin}
%\todo{honik}
\result Should print the corresponding LB attributes
-
\section{JPPS-JPIS interaction (feeds)}
-\todo{import this chapter from testplan.txt}
%set of queries (how many?) with different "triggering conditions":
%- on job registration
\result{} Expected database INSERTs in the JP-IS (last two steps).
\subsection{Multiple feeds at time}
-TODO
+\todo{TBD}
\subsection{Advanced feed features (to be implemented)}
- remove (not implemented in PS yet)
\subsection{PS-IS AuthZ}
-TODO, if any
+\todo{Not implemented yet}
\section{IS queries}
-\todo{Import from org.glite.jp.index/doc/README file}
%TBD: insert job sets via JP-IS interaction or directly?
\section{IS standalone advanced features}
-\todo{To be implemented}
+\todo{Not implemented yet}
\subsection{Server startup}