Subscribe
Accepted Solution

REST interface for data source job status

[ Edited ]

We rely heavily on WFA and OCUM to manage our NetApp storage, from reporting to simple operational tasks.

 

Our WFA 4.1 Windows instance has a data source job that routinely pulls storage data from OCUM. This is pretty normal I think?

 

We rely heavily on this data source job, and we need to be sure it runs properly. I was wondering if anyone knew of a way to use REST to pull the data source job status from WFA? I know I can go to this URL, and it gets me a list of data sources that I've defined:

https://WFA_SERVER_NAME/rest/data_sources/

 

Here is an example of the OCUM data source from that URL:

 

<dataSource name="OCUM71RC1_PROD" schema="cm_storage">
   <type>OnCommand Unified Manager - 7.0,7.1 (MYSQL)</type>
   <ip>OCUM_SERVER_NAME</ip>
   <port>3306</port>
   <interval>5</interval>
   <atom:link rel="acquire" href="https://WFA_SERVER_NAME/rest/data_sources/OCUM71RC1_PROD/cm_storage/jobs"/>
   <atom:link rel="remove-data-source" href="https://WFA_SERVER_NAME/rest/data_sources/OCUM71RC1_PROD"/>
   <atom:link rel="edit-data-source" href="https://WFA_SERVER_NAME/rest/data_sources/OCUM71RC1_PROD"/>
   <atom:link rel="self" href="https://WFA_SERVER_NAME/rest/data_sources/OCUM71RC1_PROD/cm_storage"/>
   <atom:link rel="last_acquisition_jobs_by_type" href="https://WFA_SERVER_NAME/rest/data_sources/type/UID/jobs"/>
   <atom:link rel="data-source-type" href="https://WFA_SERVER_NAME/rest/data_source_types/UID"/>
   <atom:link rel="list" href="https://WFA_SERVER_NAME/rest/data_sources"/>
   <atom:link rel="acquire-data-source-by-name" href="https://WFA_SERVER_NAME/rest/data_sources/OCUM71RC1_PROD/jobs"/>
</dataSource>

 

I've obsfuscated some of the data above.

 

I took my browser and went through each of these hrefs, but couldn't find anything relavent to the data source job status. Does anyone know if this is exposed elsewhere?

 

 

Re: REST interface for data source job status

[ Edited ]

Unknown for the REST query, but you may configure a user (Administration > Users, right-click on the user and Edit or click to highlight and click the Pencil to edit) and set the Notify on: "Acquisition failure" checkbox.  WFA will send that user an email if acquisition fails.

Re: REST interface for data source job status

@jauling_chou

 

If you browse to the https://servername/rest/docs you get a pretty good dynamic layout of the REST information that is available in your current version. I believe you may be able to get what you are interested in through the:

/data_sources/{name}/{schema}/jobs/{job_id}

 

this will return an aquisitionJob element which contains parameters for start time, duration and status among other things. You will of course need to programatically determine the job_id you are after but that information is all attainable. 

 

 

-Nick

Re: REST interface for data source job status

Hi,

 

Yes you can query the job status of a data source using the REST API.

Check the Swagger interfact for browsing the WFA REST API's using your browser:

 

https://<%wfa_server%>/rest/docs/

 

You first need to find the UUID of the datasource using:

 

https://<%wfa_server%>/rest/data_sources

 

find the datasource by name then get the UUID and pass that into the following URI.

 

https://<%wfa_server%>/rest/data_sources/type/<%uuid%>/jobs

 

If you click the "Try it out" button you can view the aquisition job and status for that datasource.

 

wfa_datasource_rest.png

 

EG for my environment the URI is:

 

https://wfa.testlab.local/rest/data_sources/type/d3483508-8a4a-42c3-aa78-112b317f2edf/jobs

 

The REST output is:

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<collection xmlns:atom="http://www.w3.org/2005/Atom">
  <acquisitionJob jobId="29740">
    <jobStatus>
      <plannedExecution>21/02/2018 9:05:07 AM</plannedExecution>
      <startTime>21/02/2018 9:05:10 AM</startTime>
      <duration>6</duration>
      <scheduleType>Recurring</scheduleType>
      <status>COMPLETED</status>
    </jobStatus>
    <dataSource name="OCUM" schema="cm_storage">
      <type>OnCommand Unified Manager - 7.0,7.1 (MYSQL)</type>
      <ip>testoc71.testlab.local</ip>
      <port>3306</port>
      <interval>30</interval>
      <atom:link rel="acquire" href="https://wfa.testlab.local/rest/data_sources/OCUM/cm_storage/jobs"/>
      <atom:link rel="remove-data-source" href="https://wfa.testlab.local/rest/data_sources/OCUM"/>
      <atom:link rel="edit-data-source" href="https://wfa.testlab.local/rest/data_sources/OCUM"/>
      <atom:link rel="self" href="https://wfa.testlab.local/rest/data_sources/OCUM/cm_storage"/>
      <atom:link rel="last_acquisition_jobs_by_type" href="https://wfa.testlab.local/rest/data_sources/type/d3483508-8a4a-42c3-aa78-112b317f2edf/jobs"/>
      <atom:link rel="data-source-type" href="https://wfa.testlab.local/rest/data_source_types/d3483508-8a4a-42c3-aa78-112b317f2edf"/>
      <atom:link rel="list" href="https://wfa.testlab.local/rest/data_sources"/>
      <atom:link rel="acquire-data-source-by-name" href="https://wfa.testlab.local/rest/data_sources/OCUM/jobs"/>
    </dataSource>
    <atom:link rel="acquisition-job-by-name" href="https://wfa.testlab.local/rest/data_sources/OCUM/jobs/29740"/>
    <atom:link rel="self" href="https://wfa.testlab.local/rest/data_sources/OCUM/cm_storage/jobs/29740"/>
  </acquisitionJob>
</collection>

You could write a script or workflow (on a scheuduled basis) that alerts you if the datastore acquisition status is not 'completed'

 

Hope this helps

 

/Matt

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

Re: REST interface for data source job status

Thanks everyone for the quick response to my question!

 

I admit, I did look at https://<%wfa_server%>/rest/data_sources/type/<%uuid%>/jobs, but for whatever reason, I failed to see the status field in the XML output. Thanks to @mbeattie for confirming that error messages are displayed too, which speeds troubleshooting.

 

I also took advice from @marzec and also populated the email notification field for a user, which is the quickest way to get alerts for now, until I make use of the status URL.

 

Thanks again everyone!