DataFlow Status - ABO

Back Office Integration Guide

Product
ABO
AFS_Version
7.9
Category
Reference Guide
language
English

This API returns the status of a Pipes and Filters process. For more information, see DataFlow chapter of the AFS Back Office User Guide.

Method

GET

Path

A "DataFlow Status" API request takes the following form:

http://${BackOfficeHost}/bo-ws/service/${Service_Number}/instance/${Service_Status}/paf/<PaF_name>/report?afs:login=login://<user_login>:<user_password>@<authentication_authority>&afs:output_version=2

Where

  • ${BackOfficeHost} is the server hosting the Back Office.
  • ${Service_Number} is the number of the desired service.
  • ${Service_Status} is the status of the desired service.
  • <paf_name> is the name of the PaF.
  • <user_login> is the login of the user.
  • <user_password> is the current password of the user.
  • <authentication_authority> is the user's authentication provider, e.g., LDAP or SAML.

API usage example:

  • host: 10.61.8.175
  • service_number: 1
  • instance_status: stable
  • PaF_name: TechPub

http://10.61.8.175/bo-ws/service/1/instance/stable/paf/TechPub/report?afs:login=login://<user>:<password>@<authentication_authority>

API responses are returned in the format indicated by the "Accept" header.

The XML result of the previous request is shown below:
<?xml version="1.0" standalone='yes'?>
<afs:value xsi:schemaLocation="http://ref.antidot.net/v7/bo/output http://ref.antidot.net/v7.4/bo/output.xsd" xsi:type="afs:ws.response"
xmlns:afs="http://ref.antidot.net/v7/bo/output"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<afs:query xsi:type="afs:ws.response.query">
<afs:locale>fr_FR</afs:locale>
<afs:parameters>
<afs:parameter xsi:type="afs:ws.response.parameter" name="afs:output_version" value="2"></afs:parameter>
</afs:parameters>
<afs:properties xsi:type="afs:dynamic"></afs:properties>
</afs:query>
<afs:result xsi:type="afs:Report">
<afs:afsVersion xsi:type="afs:AfsVersion">
<afs:build>2c03281</afs:build>
<afs:gen>7.8</afs:gen>
<afs:major>0</afs:major>
<afs:minor>3</afs:minor>
<afs:motto>Lemon Panda</afs:motto>
</afs:afsVersion>
<afs:componentEvents>
<afs:item xsi:type="afs:Event">
<afs:attachments></afs:attachments>
<afs:contents xsi:type="afs:Contents">
<afs:args></afs:args>
<afs:format>Sending configuration information to Back Office</afs:format>
</afs:contents>
<afs:context xsi:type="afs:EventProtoObjects.Context"></afs:context>
<afs:rtInfos xsi:type="afs:RunTimeInfos">
<afs:chrono>1</afs:chrono>
<afs:timestamp>1447423888</afs:timestamp>
<afs:ttlS>0</afs:ttlS>
</afs:rtInfos>
<afs:scope xsi:type="afs:EventProtoObjects.Scope">
<afs:level>VERBOSE</afs:level>
<afs:type>INFO</afs:type>
</afs:scope>
</afs:item>
<afs:item xsi:type="afs:Event">
<afs:attachments></afs:attachments>
<afs:contents xsi:type="afs:Contents">
<afs:args></afs:args>
<afs:format>Local PaF configuration is up to date</afs:format>
</afs:contents>
<afs:context xsi:type="afs:EventProtoObjects.Context"></afs:context>
<afs:rtInfos xsi:type="afs:RunTimeInfos">
<afs:chrono>2</afs:chrono>
<afs:timestamp>1447423888</afs:timestamp>
<afs:ttlS>0</afs:ttlS>
</afs:rtInfos>
<afs:scope xsi:type="afs:EventProtoObjects.Scope">
<afs:level>VERBOSE</afs:level>
<afs:type>INFO</afs:type>
</afs:scope>
</afs:item>

<!-- [...] There are as many afs:item block as there are events. -->

</afs:componentEvents>
<afs:componentStatus>CONFIGURATION_ERROR</afs:componentStatus> <!-- This is where you get the PaF status -->
<afs:host xsi:type="afs:Host">
<afs:datacenter>My datacenter</afs:datacenter>
<afs:hostname>myhostname</afs:hostname>
</afs:host>
<afs:managedServices>
<afs:item xsi:type="afs:Instance">
<afs:id>1</afs:id>
<afs:status>stable</afs:status>
</afs:item>
</afs:managedServices>
<afs:type>PAF</afs:type>
<afs:PaF xsi:type="afs:PipesFiltersProtos.PaF">
<afs:id xsi:type="afs:PaFUri">
<afs:infos xsi:type="afs:PaFInfos">
<afs:baseDir>/usr/local/afs7/PaF/TestPaf</afs:baseDir>
<afs:startmode>MANUAL_START</afs:startmode>
</afs:infos>
<afs:name>TestPaf</afs:name>
<afs:si xsi:type="afs:Instance">
<afs:id>1</afs:id>
<afs:status>stable</afs:status>
</afs:si>
</afs:id>
<afs:pipes>
<afs:item xsi:type="afs:Pipe">
<afs:name>Pipe1</afs:name>
<afs:pipeItems>
<afs:item xsi:type="afs:PipeItem">
<afs:args></afs:args>
<afs:comment>mime_type</afs:comment>
<afs:conditionExt xsi:type="afs:Condition">
<afs:switchExt xsi:type="afs:Switch">
<afs:cases>
<afs:item xsi:type="afs:Case">
<afs:type>UPDATE</afs:type>
<afs:updateExt xsi:type="afs:Update">
<afs:type>STATUS</afs:type>
<afs:value>CHECKOUT</afs:value>
</afs:updateExt>
<afs:value>afs:default_action_name</afs:value>
</afs:item>
</afs:cases>
<afs:type>MIME_TYPE</afs:type>
</afs:switchExt>
<afs:type>SWITCH</afs:type>
</afs:conditionExt>
<afs:enabled>true</afs:enabled>
<afs:exe>afs_switch</afs:exe>
<afs:instances></afs:instances>
<afs:isSource>true</afs:isSource>
<afs:maxInstances>0</afs:maxInstances>
<afs:minInstances>0</afs:minInstances>
<afs:predecessors></afs:predecessors>
<afs:successors></afs:successors>
<afs:type>CONDITION</afs:type>
<afs:uri>mime_type_1</afs:uri>
</afs:item>
</afs:pipeItems>
<afs:post></afs:post>
<afs:pre></afs:pre>
<afs:reset>false</afs:reset>
<afs:run>ONCE</afs:run>
<afs:uri>urn:afs:pipe_1</afs:uri>
</afs:item>
</afs:pipes>
</afs:PaF>
<afs:PaFId>25</afs:PaFId>
<afs:checkOutQueue xsi:type="afs:WaitQueue">
<afs:avg>0</afs:avg>
<afs:cur>0</afs:cur>
<afs:max>0</afs:max>
<afs:min>0</afs:min>
</afs:checkOutQueue>
<afs:endDate>1447423888</afs:endDate>
<afs:id xsi:type="afs:PaFUri">
<afs:infos xsi:type="afs:PaFInfos">
<afs:baseDir>/usr/local/afs7/PaF/TestPaf</afs:baseDir>
<afs:startmode>MANUAL_START</afs:startmode>
</afs:infos>
<afs:name>TestPaf</afs:name>
<afs:si xsi:type="afs:Instance">
<afs:id>1</afs:id>
<afs:status>stable</afs:status>
</afs:si>
</afs:id>
<afs:jobId>48</afs:jobId>
<afs:load>1.29 1.43 0.90</afs:load>
<afs:location xsi:type="afs:Location">
<afs:datacenter xsi:type="afs:DataCenter">
<afs:id>My datacenter</afs:id>
<afs:labels></afs:labels>
</afs:datacenter>
<afs:hostname>myhostname</afs:hostname>
<afs:path>/usr/local/afs7/PaF/TestPaf</afs:path>
</afs:location>
<afs:maxMemoryMb>24</afs:maxMemoryMb>
<afs:memoryMb>24</afs:memoryMb>
<afs:metrics xsi:type="afs:Metrics">
<afs:counters xsi:type="afs:MetricsCounters">
<afs:aux>0</afs:aux>
<afs:deleted>0</afs:deleted>
<afs:failed>0</afs:failed>
<afs:ko>0</afs:ko>
<afs:new>0</afs:new>
<afs:ok>0</afs:ok>
<afs:processed>0</afs:processed>
<afs:rejected>0</afs:rejected>
<afs:schedulerSpeed>0</afs:schedulerSpeed>
<afs:speed>0</afs:speed>
<afs:totalKo>0</afs:totalKo>
<afs:totalOk>0</afs:totalOk>
<afs:totalWait>0</afs:totalWait>
<afs:updated>0</afs:updated>
</afs:counters>
</afs:metrics>
<afs:mode>CONFIGURATION_ERROR</afs:mode>
<afs:paFManagerPid>0</afs:paFManagerPid>
<afs:pipes>
<afs:item xsi:type="afs:PipeStatus">
<afs:enabled>false</afs:enabled>
<afs:filters>
<afs:item xsi:type="afs:FilterStatus">
<afs:avgDurationMs>0</afs:avgDurationMs>
<afs:comment>mime_type</afs:comment>
<afs:enabled>true</afs:enabled>
<afs:firstDocumentDelta>0</afs:firstDocumentDelta>
<afs:instances></afs:instances>
<afs:lastDocumentDelta>0</afs:lastDocumentDelta>
<afs:maxDurationMs>0</afs:maxDurationMs>
<afs:maxdocId>0</afs:maxdocId>
<afs:minDurationMs>0</afs:minDurationMs>
<afs:mindocId>0</afs:mindocId>
<afs:mode>WAITING</afs:mode>
<afs:processed>0</afs:processed>
<afs:scheduled>0</afs:scheduled>
<afs:status>OK</afs:status>
<afs:totalDuration>0</afs:totalDuration>
<afs:type>NO_FILTER</afs:type>
<afs:uri>mime_type_1</afs:uri>
<afs:waitQueue xsi:type="afs:WaitQueue">
<afs:avg>0</afs:avg>
<afs:cur>0</afs:cur>
<afs:max>0</afs:max>
<afs:min>0</afs:min>
</afs:waitQueue>
</afs:item>
</afs:filters>
<afs:metrics xsi:type="afs:Metrics">
<afs:counters xsi:type="afs:MetricsCounters">
<afs:aux>0</afs:aux>
<afs:deleted>0</afs:deleted>
<afs:failed>0</afs:failed>
<afs:ko>0</afs:ko>
<afs:new>0</afs:new>
<afs:ok>0</afs:ok>
<afs:processed>0</afs:processed>
<afs:rejected>0</afs:rejected>
<afs:schedulerSpeed>0</afs:schedulerSpeed>
<afs:speed>0</afs:speed>
<afs:totalKo>0</afs:totalKo>
<afs:totalOk>0</afs:totalOk>
<afs:totalWait>0</afs:totalWait>
<afs:updated>0</afs:updated>
</afs:counters>
</afs:metrics>
<afs:mode>WAITING</afs:mode>
<afs:name>Pipe1</afs:name>
<afs:status>OK</afs:status>
</afs:item>
</afs:pipes>
<afs:protoVersion xsi:type="afs:AfsVersion">
<afs:build>2c03281</afs:build>
<afs:gen>7.8</afs:gen>
<afs:major>0</afs:major>
<afs:minor>3</afs:minor>
<afs:motto>Lemon Panda</afs:motto>
</afs:protoVersion>
<afs:secured>false</afs:secured>
<afs:startDate>1447423888</afs:startDate>
<afs:status>OK</afs:status>
<afs:uptime>0</afs:uptime>
<afs:version>7.8.0.3 build 2c03281</afs:version>
</afs:result>
</afs:value>

Possible values of the <componentStatus> parameter:

  • RUNNING -> the PaF is running
  • DEGRADED -> some documents are in failure, but the PaF is still running
  • ERROR -> PaF is ended with some documents failed
  • MUTE -> the PaF has crashed
  • SUCCESS -> PaF process successful
  • STOPPED -> PaF process stopped
  • PRE_ERROR -> Error in PRE scripts
  • POST_ERROR -> Error in POST scripts
  • CONFIGURATION_ERROR -> Error in PaF configuration
  • REPLY_DB_ERROR -> Error while transferring reply database
  • PRE_NOMINAL_EXIT -> PRE script requested a clean exit
  • POST_NOMINAL_EXIT -> POST script requested a clean exit