REST API Job Commands

INFO

Add the following command after the username and password to receive more meaningful HTTP errors:

-w"\n%{http_code}\n"

This command can be added to each call.

Job Status

Request Method GET
Description

Returns the id and current status of a specified job.

URI Syntax
curl -u '<username>:<password>' -X GET 'http://<Datameer-serverIP>:<port-number>/api/job-execution/<file-id>|<uuid>|<path>/status'
Example Response

For a job that has never been run:

{
  "status": "success",
  "job-status": "_NONE"
}

For a running job:

{
  "status": "success",
  "file-id": 48,
  "job-execution-id": 3,
  "job-status": "RUNNING",
  "start-time": "Sep 28, 2018 6:44:56 PM",
  "estimate-time":"11s",
  "job-progress":"0"
}

For a completed job:

{
  "status": "success",
  "file-id": 48,
  "job-execution-id": 3,
  "job-status": "COMPLETED",
  "start-time": "Sep 28, 2018 6:44:56 PM",
  "stop-time": "Sep 28, 2018 6:44:58 PM"
}

For a completed job with errors:

{
  "status": "success",
  "file-id": 46,
  "job-execution-id": 4,
  "job-status": "COMPLETED_WITH_WARNINGS",
  "start-time": "Sep 28, 2018 10:09:47 AM",
  "stop-time": "Sep 28, 2018 10:09:52 AM"
}

For a queued job:

{
  "status": "success",
  "file-id": 48,
  "job-execution-id": 4,
  "job-status": "QUEUED",
  "start-time": null
}

For a canceled job:

INFO: If the example job had been running and was then canceled, a "start-time" would also be displayed.

{
  "status": "success",
  "file-id": 48,
  "job-execution-id": 4,
  "job-status": "CANCELED",
  "start-time": null,
  "stop-time": "Sep 28, 2018 6:58:41 PM"
}

For a triggered job:

{
  "status": "success",
  "job-execution-id": 3,
  "job-execution-user": "analyst",
  "job-execution-trigger": "RESTAPI"
}

For a job that has been stopped:

INFO: There isn't a response if the job was successfully stopped.

For an error:

{
  "status": "failure",
  "reason": "File doesn't exist or isn't accessible with current permissions"
}

Job History

Request Method GET
Description

Returns a specified number of job status results for a job.

URI Syntax
curl -u '<username>:<password>' -X GET 'http://<Datameer-serverIP>:<port-number>/rest/job-configuration/job-history/<job-configuration-id>?start=0&length=10'
Example Response
[
    {
        "id": 30,
        "jobStatus": "COMPLETED"
    },
    {
        "id": 27,
        "jobStatus": "COMPLETED"
    },
    {
        "id": 23,
        "jobStatus": "COMPLETED"
    }
]

Job Details

Request Method GET
Description

Returns data about a job including the job counters, failure count, status, start/stop time, successful record count, the jobConfigurationId, file-id, and uuid. 

URI Syntax
curl -u '<username>:<password>' -X GET 'http://<Datameer-serverIP>:<port-number>/rest/job-execution/job-details/<job-execution-id>'
Example Response
{
  "startTime": "Jul 18, 2018 1:46:38 PM",
  "stopTime": "Jul 18, 2018 1:47:03 PM",
  "jobStatus": "COMPLETED",
  "jobConfigurationId": 4,
  "file": {
    "id": 6,
    "uuid": "f8d450cd-f065-4abb-a232-27cd20c48c2b"
  },
  "successCount": 7,
  "failureCount": 0,
  "counters": {
    "IMPORT_RECORDS": 7,
    "IMPORT_PREVIEW_RECORDS": 7,
    "IMPORT_OUTPUT_BYTES": 4167,
    "IMPORT_DROPPED_SPLITS": 0,
    "IMPORT_DROPPED_RECORDS": 0
  }
} 

List Active Jobs

Request Method GET
Description

Returns a list of all the active jobs in Datameer. This list displays the job status, file name, job name, file ID, UUID, creation date, job execution ID, estimated time and start time.

URI Syntax
curl -u <username>:<password> -X GET 'http://<Datameer-serverIP>:<port-number>/rest/jobs/list-running'
Example Response
[
  {
    "jobStatus": "RUNNING",
    "fileName": "Workbook1",
    "jobName": "Workbook job",
    "fileId": 5,
    "uuid": "73b2800b-ed90-47ef-abdc-ce516a980173",
    "creationDate": 1580808994422,
    "jobExecutionId": 3,
    "dapJobConfigurationId": 4,
    "estimatedTime": 0,
    "startTime": 1582878238075
  }
]

Trigger Job

Request Method POST
Description

Triggers a job to run.

URI Syntax
curl -u '<username>:<password>' -X POST 'http://<Datameer-serverIP>:<port-number>/api/job-execution/<file-id>|<uuid>|<path>/trigger'
Example Response
{
  "status": "success",
  "job-execution-id": 11,
  "job-execution-user": "admin",
  "job-execution-trigger": "RESTAPI"
}

Sequential Trigger Job

Request Method POST
Description

Triggers multiple Datameer X jobs to run in a defined sequence. For this to happen, the workbooks within this dependency chain all have to be data-driven (which can be set in workbook configuration). The request triggers the provided artifacts, as well as all downstream dependencies. The new API version supports the setting of Workbook variables.

URI Syntax
curl -X POST -u '<user>:<password>' -d '{ variables : { "foo": "fooValue" }, "fileIds" : [4, ]}' -H "Content-Type: application/json"
Example Response
{
  "status": "success",
  "execution-plan": [
    {
      "job-configuration-name": "apache_log",
      "job-configuration-id": 3,
      "trigger": true,
      "job-execution-id": 16
    },
    {
      "job-configuration-name": "categorization",
      "job-configuration-id": 4,
      "trigger": true,
      "job-execution-id": 17
    }
  ]
}

Stop Job

Request Method POST
Description

Stops a job that is running.

URI Syntax
curl -u '<username>:<password>' -X POST 'http://<Datameer-serverIP>:<port-number>/api/job-execution/<file-id>|<uuid>|<path>/stop'
Example Response

This command doesn't return a response.

Delete Job

Request Method DELETE
Description

Removes a job from Datameer.

URI Syntax

If your file name includes " " (empty spaces), replace those spaces with "+".

curl -u '<username>:<password>' -X DELETE 'http://<Datameer-serverIP>:<port-number>/rest/data/<data-id>'
Example Response

No job or data available:

{
  "status": "failure",
  "reason": "Entity of type 'Data' with id '272' not found."
}

Job and data are available, but data has already been deleted or marked for deletion:

{
  "status": false
}

Job and data have been marked for deletion:

 {
  "status": true
}