% 
% Licensed to the Apache Software Foundation (ASF) under one
% or more contributor license agreements.  See the NOTICE file
% distributed with this work for additional information
% regarding copyright ownership.  The ASF licenses this file
% to you under the Apache License, Version 2.0 (the
% "License"); you may not use this file except in compliance
% with the License.  You may obtain a copy of the License at
% 
%   http://www.apache.org/licenses/LICENSE-2.0
% 
% Unless required by applicable law or agreed to in writing,
% software distributed under the License is distributed on an
% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
% KIND, either express or implied.  See the License for the
% specific language governing permissions and limitations
% under the License.
% 

    \section{Services Page}
    \label{ws:services-page}
        This page shows details of all services.           

        The Services page contains the following columns: 
        \begin{description}

            \item[Id] \hfill \\
              This is the unique numeric DUCC id of the service.  This ID is hyperlinked to a
              \hyperref[sec:ws-service-details]{Service Details} page with extended
              details on the service.  Note that for some types of services, DUCC may not
              know more about the service than is shown on the main page.

            \item[Name] \hfill \\
              This is the unique service endpoint of the service.  
              
            \item[Type] \hfill \\
              This is the service type, which is one of
              \begin{itemize}
                \item Registered
                \item Ping-Only
              \end{itemize}
              
            \item[State] \hfill \\
              This is the state of the service with respect to the service manager.  It is a
              consolidated state over all the service instances.  Valid states are
              \begin{description}
                \item[Available] At least one service instance is responding to the service
                  pinger, indicating it is functional.
                \item[Initializing] No service instances are available for use yet but at least one instance
                  is in its UIMA {\em initializing} phase.
                \item[Waiting] At least one service instance is in Running state, potentially available for use,
                  but no response has been received from the service pinger.  This usually occurs during the
                  start-up of a service.  If a service stops responding to its pinger after becoming
                  available, the state can regress to Waiting.
                \item[NotAvailable] No service instance is running or initializing. 
                \item[Stopping] The service has been stopped for some reason, but not all 
                  instances have terminated.  This is an intermediate state between Available and
                  NotAvailable to signify that the service is no longer available but not all its
                  resources have been returned yet.
              \end{description}

              DUCC will start dependent jobs ONLY if it's services are in state Available.  Otherwise
              DUCC attempts to start the service, and if successful, allows the job to start.  

              If a job is already running and a service becomes other than Available, the
              \hyperref[sec:ws.jobs-page]{jobs page} indicates the service is not available but the job is 
              allowed to continue.
              
            \item[Pinger] \hfill \\
              This indicates whether the Service Manager is running a pinger for the service.  This column
              does not imply the ping is successful; see the ``health'' column for ping status.
              
            \item[Health] \hfill \\
              {\em Health} is a status returned by each pinger and is the result of that pinger's
              evaluation of the state of the service.  It is shown as on of
              \begin{itemize}
                \item {\em Good}
                \item {\em Poor}
              \end{itemize}
              Both terms are highly subjective.  Pingers may return a summary of the underlying
              data used to label a service as good or bad.  That status is shown as a hover over
              this field.
              
            \item[Instances] \hfill \\
              This is the number of instances (processes) currently registered for the service.  

            \item[Deployments] \hfill \\
              This is the number of actual instances deployed for the service.  Note that this may
              be greater, or less, than the number of registered instances, if the service owner
              decides to temporarily start or stop additional instances.

            \item[User] \hfill \\
              This is the userid of the service owner.
              
            \item[Class] \hfill \\
              This is the scheduling class the service is running in. 
              
              If a service is registered as ``ping-only'', no resources are allocated for it.  This
              is shown as a class of {\tt ping-only}.
              
            \item[Size] \hfill \\
              This is the memory size, in GB, of each service instance

            \item[Jobs] \hfill \\
              This is the number of jobs currently using the service.  The IDs of the jobs are
              shown as hovers over this field.

            \item[Services] \hfill \\
              Services may themselves depend on other services.  This field shows the number of
              services dependent on this service.  The dependent service IDs are shown with a 
              hover over the field.

            \item[Reservations] \hfill \\
              This field shows the number of
              managed reservations dependent on this service. The IDs of the managed reservations
              are shown as a hover over the field.

              
            \item[Description] \hfill \\
              This is the description string from the --description string from submit.
        \end{description}
