Deploying Statistica Models
This page guides to deploy Statistica models in TIBCO ModelOps by running the modelops-client Python script from a Windows Command Prompt.
Contents
Background
Statistica is a Windows-based Statistical and Predictive Analytics / Data Mining software that is used to author Data science and analytic reporting workspaces (that is, binary files with a .sdm extension). The software is commonly used to provide analytic manufacturing support through SPC and Process-Monitoring specific techniques, including GxP compliant analytic reporting for the pharmaceutical and medical device industries.
TIBCO ModelOps is a Data science model management and operationalization platform that serves as a file repository to version control model artifacts. It also allows you to configure and deploy data channels, scoring flows, and scoring pipelines to cloud environments.
In the context of TIBCO ModelOps, Statistica workspaces with workflows containing one defined input and one defined output Statistica nodes are referred to as Statistica models. Such models can be deployed, scored, and evaluated in TIBCO ModelOps.
The modelops-client script provides five simple commands.
help
version
display
deploy
delete
These commands can be called from a client machine (that is, say a Statistica model authoring machine).
The help command can be used to learn about the other available commands and their usage.
The version, display, deploy and delete commands communicate with a running instance of TIBCO ModelOps to perform their functionality.
Prerequisites
The following prerequisites must be installed on the machine before running the modelops-client script from a Command Prompt.
- Python (version 3.6 or above)
- Statistica Engine (version 14.0.0.15)
Note: When you obtain third-party software or services, it is your responsibility to ensure you understand the license terms associated with such third-party software or services and comply with such terms.
Statistica Engine is available as a zip file and can be downloaded using the link provided above. Once downloaded, unzip it to start using the Statistica Engine executable (stat.exe).
Both python and stat executables must be added to the System Path variable and should be available for execution from anywhere on the Command Prompt. Meaning, using the following commands from the Command Prompt should work without any issues showing the versions of the respective programs.
python --version
Python 3.10.6
stat --version
Statistica Engine 14.0.0.15
Note:
-
The deploy command supported by the modelops-client script expects Statistica Engine to be available for automatic Avro schema generation from Statistica models. Model input and output schema in Avro format are required to score models on the TIBCO ModelOps server.
-
Commands like version, delete, and display do not require this dependency and work as-is on other OS platforms outside of Windows. But the core functionality to automatically import and deploy Statistica model artifacts in TIBCO ModelOps is provided by the deploy command.
Installing the “requests” module before running modelops-client script
The modelops-client script has a dependency on Python requests module. Verify or automatically fulfill this requirement using the following command.
pip install requests
Note:
If pip does not work, then download get-pip.py using curl.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
If curl is not available, download and install it from here, curl
Then running the following command should get pip installations working on your machine.
py get-pip.py
More detailed instructions on how to install pip are at pip installation
Note: When you obtain third-party software or services, it is your responsibility to ensure you understand the license terms associated with such third-party software or services and comply with such terms.
Running modelops-client script commands
Copy the modelops-client.py to a convenient location on the client machine and run the following commands from that location. For example, if the script was copied directly to c drive, open the Command Prompt and change to c:\> before using the following commands.
1. help
python modelops-client.py --help
usage: modelops-client.py [-h] {display,deploy,delete,version} ...
Execute Statistica models in TIBCO ModelOps.
positional arguments: {display,deploy,delete,version}
display Display running data sources and sinks, environments, and currently running jobs
deploy Create and deploy the required artifacts for scoring a Statistica model
delete Delete a project and its contents or cancel a running job
version Display TIBCO ModelOps server version
optional arguments:
-h, --help show this help message and exit
2. version
python modelops-client.py version --help
usage: modelops-client.py version [-h] [--address ADDRESS] [--password PASSWORD] [--verbose VERBOSE] [--user USER]
optional arguments:
-h, --help show this help message and exit
--address ADDRESS, -a ADDRESS
TIBCO ModelOps URL (default http://localhost:2185)
--password PASSWORD, -p PASSWORD
Password
--verbose VERBOSE, -v VERBOSE
Verbose logging for diagnostic purposes
--user USER, -u USER Username (default=admin)
Example:
python modelops-client.py version \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin
Note: There is a prompt for typing in Password. If you prefer to directly provide the password with the command, use the –password (or -p) parameter. It is advisable to type in your password at the prompt for better security.
Password:
Version: 1.3.0
Timestamp: 2021-06-24 10:49:34 UTC
Name: TIBCO ModelOps Server
Git URL: https://github.com/tibco/ep-modelops.git/modelops-server
Git Commit: 0226f42bbd9dafa47622603bb4771633c9d74162
3. display
python modelops-client.py display --help
usage: modelops-client.py display [-h] [--address ADDRESS] [--channel CHANNEL] [--job JOB] [--password PASSWORD] [--verbose VERBOSE] [--user USER]
optional arguments:
-h, --help show this help message and exit
--address ADDRESS, -a ADDRESS
TIBCO ModelOps URL (default=http://localhost:2185)
--channel CHANNEL, -c CHANNEL
Data channel name
--job JOB, -j JOB Job name
--password PASSWORD, -p PASSWORD
Password
--verbose VERBOSE, -v VERBOSE
--user USER, -u USER Username (default=admin)
Example:
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin
Note: Password for the command was provided at the prompt.
Password:
Available environments (4):
---------------------------
Development
Production
Testing
Data-Channels
Running jobs (8):
------------------
python-source
kafka-credit-rating-sink
Audit-kafka-datasource
audit-source
iris-kafka-source
race-car-kafka-source-4-pipeline-a-thon
Audit-kafka-datasink
race-car-kafka-sink-4-pipeline-a-thon
Data channels (8):
-------------------
Name: python-source
ID: kafka-datasource-8xsv7
Type: SOURCE
Environment: datachannels
Name: kafka-credit-rating-sink
ID: kafka-datasink-jc456
Type: SINK
Environment: datachannels
Name: audit-source
ID: kafka-datasource-96dnx
Type: SOURCE
Environment: datachannels
Name: Audit-kafka-datasource
ID: kafka-datasource-5gbv8
Type: SOURCE
Environment: datachannels
Name: iris-kafka-source
ID: kafka-datasource-24wcc
Type: SOURCE
Environment: development
Name: race-car-kafka-source-4-pipeline-a-thon
ID: kafka-datasource-fhmwr
Type: SOURCE
Environment: production
Name: Audit-kafka-datasink
ID: kafka-datasink-5hfrx
Type: SINK
Environment: datachannels
Name: race-car-kafka-sink-4-pipeline-a-thon
ID: kafka-datasink-fmc7f
Type: SINK
Environment: production
Use the –channel or -c argument to retrieve details of a data channel along with its JSON schema
Example 1 (SOURCE):
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--channel "kafka-credit-rating-source"
Note: Password for the command was provided at the prompt.
Password:
Data channels (1):
------------------
Name: kafka-credit-rating-source
ID: kafka-datasource-7dw5z
Type: SOURCE
Environment: testing
JSON schema:
{
"additionalProperties": false,
"properties": {
"Age": {
"format": "double",
"ordinal": 13,
"type": "number"
},
"Amount_of_Credit": {
"format": "double",
"ordinal": 5,
"type": "number"
},
"Balance_of_Current_Account": {
"ordinal": 1,
"type": "string"
},
"Credit_Rating": {
"ordinal": 0,
"type": "string"
},
"Credit_Rating_EXPECTED": {
"ordinal": 18,
"type": "string"
},
"Duration_of_Credit": {
"format": "double",
"ordinal": 2,
"type": "number"
},
"Employed_by_Current_Employer_for": {
"ordinal": 7,
"type": "string"
},
"Further_running_credits": {
"ordinal": 14,
"type": "string"
},
"Gender": {
"ordinal": 10,
"type": "string"
},
"Installment_in_percent_of_Available_Income": {
"ordinal": 8,
"type": "string"
},
"Living_in_Current_Household_for": {
"ordinal": 11,
"type": "string"
},
"Marital_Status": {
"ordinal": 9,
"type": "string"
},
"Most_Valuable_Assets": {
"ordinal": 12,
"type": "string"
},
"Number_of_previous_credits_at_this_bank": {
"ordinal": 16,
"type": "string"
},
"Occupation": {
"ordinal": 17,
"type": "string"
},
"Payment_of_Previous_Credits": {
"ordinal": 3,
"type": "string"
},
"Purpose_of_Credit": {
"ordinal": 4,
"type": "string"
},
"Type_of_Apartment": {
"ordinal": 15,
"type": "string"
},
"Value_of_Savings": {
"ordinal": 6,
"type": "string"
}
},
"required": [
"Credit_Rating",
"Balance_of_Current_Account",
"Duration_of_Credit",
"Payment_of_Previous_Credits",
"Purpose_of_Credit",
"Amount_of_Credit",
"Value_of_Savings",
"Employed_by_Current_Employer_for",
"Installment_in_percent_of_Available_Income",
"Marital_Status",
"Gender",
"Living_in_Current_Household_for",
"Most_Valuable_Assets",
"Age",
"Further_running_credits",
"Type_of_Apartment",
"Number_of_previous_credits_at_this_bank",
"Occupation",
"Credit_Rating_EXPECTED"
],
"title": "Credit_Rating_Challenger_Input_Schema",
"type": "object"
}
Example 2 (SINK)
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/
--user admin
--channel "kafka-credit-rating-sink"
Note: Password for the command was provided at the prompt.
Password:
Data channels (1):
------------------
Name: kafka-credit-rating-sink
ID: kafka-datasink-jc456
Type: SINK
Environment: datachannels
JSON schema:
{
"additionalProperties": false,
"properties": {
"Boosted_Classification_TreesPred": {
"ordinal": 1,
"type": "string"
},
"Boosted_Classification_TreesRes": {
"ordinal": 2,
"type": "string"
},
"Boosted_Classification_Treesbad": {
"format": "double",
"ordinal": 3,
"type": "number"
},
"Boosted_Classification_Treesgood": {
"format": "double",
"ordinal": 4,
"type": "number"
},
"Credit_Rating": {
"ordinal": 0,
"type": "string"
}
},
"required": [
"Credit_Rating",
"Boosted_Classification_TreesPred",
"Boosted_Classification_TreesRes",
"Boosted_Classification_Treesbad",
"Boosted_Classification_Treesgood"
],
"title": "Credit_Rating_Challenger_Output_Schema",
"type": "object"
}
Use the –job or -j argument and provide a job name to get its current status
Example 1 (source-channel):
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--job "race-car-kafka-source-4-pipeline-a-thon"
Note: Password for the command was provided at the prompt.
Password:
Job status:
-----------
race-car-kafka-source-4-pipeline-a-thon is RUNNING
Job Status response:
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "kafka-datasource-fhmwr",
"jobName": "race-car-kafka-source-4-pipeline-a-thon",
"specification": "kafka-datasource",
"version": "latest",
"namespace": "datachannels",
"externalNamespaces": [],
"durationMinutes": 0,
"username": "admin",
"additionalData": "{\"jobName\":\"race-car-kafka-source-4-pipeline-a-thon\",\"userName\":\"admin\",\"jobDescription\":\"Race car Kafka source channel to use for pipeline-a-thon projects.\",\"artifactRevisionId\":null,\"arti
factCheckOutId\":\"4801c21a4be941d6ae4af0d023d57a5e\",\"artifactName\":\"/kafka-source-race.datachannel\",\"artifactProjectName\":\"kafka-data-channel\",\"artifactAuthor\":\"admin\",\"artifactCreatedOn\":\"2021-06-24 17:24:33.0
18 GMT\",\"artifactUpdatedOn\":\"2021-06-24 17:24:39.758 GMT\",\"deployTime\":\"Thu Jun 24 2021 12:28:36 GMT-0500\"}",
"status": "RUNNING",
"trace": true,
"tasks": [
{
"@class": "com.tibco.ep.ams.model.response.TaskRecord",
"taskIdentifier": "kafka-datasource-fhmwr",
"status": "RUNNING",
"creationTimestamp": "2021-06-24T17:28:37Z",
"message": "Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0"
}
]
}
Example 2 (scoring-pipeline):
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--job "I-P-CM-C-O"
Note: Password for the command was provided at the prompt.
Password:
Job status:
-----------
I-P-CM-C-O is RUNNING
Job Status response:
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-rhgq9",
"jobName": "I-P-CM-C-O",
"specification": "scoringpipeline",
"version": "latest",
"namespace": "datachannels",
"externalNamespaces": [],
"durationMinutes": 0,
"username": "admin",
"additionalData": "{\"jobName\":\"I-P-CM-C-O\",\"userName\":\"admin\",\"jobDescription\":\"\",\"artifactRevisionId\":null,\"artifactCheckOutId\":\"335e5fb39a404aac81747e0ebe104735\",\"artifactName\":\"/i-p-c-cm-o.scoringpipeline
\",\"artifactProjectName\":\"Sachin\",\"artifactAuthor\":\"admin\",\"artifactCreatedOn\":\"2021-06-29 11:07:43.238 GMT\",\"artifactUpdatedOn\":\"2021-06-29 11:08:29.497 GMT\",\"deployTime\":\"Tue Jun 29 2021 16:39:35 GMT+0530\"}",
"status": "RUNNING",
"trace": true,
"tasks": [
{
"@class": "com.tibco.ep.ams.model.response.TaskRecord",
"taskIdentifier": "scoringpipeline-rhgq9",
"status": "RUNNING",
"creationTimestamp": "2021-06-29T11:09:36Z",
"message": "Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0"
}
]
}
4. deploy
python modelops-client.py deploy --help
usage: modelops-client.py deploy [-h] [--address ADDRESS] [--debug DEBUG] [--duration DURATION] [--environment ENVIRONMENT] [--file FILE] [--password PASSWORD] [--project PROJECT] [--save SAVE] [--source SOURCE] [--sink SINK]
[--verbose VERBOSE] [--user USER]
optional arguments:
-h, --help show this help message and exit
--address ADDRESS, -a ADDRESS
TIBCO ModelOps URL (default=http://localhost:2185)
--debug DEBUG, -d DEBUG
Flag to enable debug diagnostics
--duration DURATION, -r DURATION
Duration (minutes) to run the scoring pipeline (default=0 to run forever)
--environment ENVIRONMENT, -e ENVIRONMENT
Target environment. Multiple environment names must be comma-separated. (default=Development)
--file FILE, -f FILE Model file
--password PASSWORD, -p PASSWORD
Password
--project PROJECT, -n PROJECT
User-provided project name
--save SAVE, -s SAVE Flag to save or auto-delete the project in TIBCO ModelOps (default=True)
--source SOURCE, -i SOURCE
Source channel name
--sink SINK, -o SINK Sink channel name
--verbose VERBOSE, -v VERBOSE
Verbose logging for diagnostic purposes
--user USER, -u USER Username (default = admin)
Deploying a Statistica model without the project name parameter
When using the deploy command without a project name, the program creates a time-stamped project folder in TIBCO ModelOps using the provided model file name. For example, if a model file named “credit rating.sdm” was intended to be deployed to TIBCO ModelOps, the program internally creates a project name similar to credit-rating-0123456789. Note the deployment time stamp added at the end of the project name to uniquely identify it.
If a project name argument is provided, then the program uses the same name and imports all created model artifacts into it.
Warning: If a project with the same name as provided by the user already exists in TIBCO ModelOps, its contents are automatically updated during the import process.
Example 1
python modelops-client.py deploy \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--environment Development \
--file "C:\ModelOps\credit-rating.sdm" \
--source "kafka-credit-rating-source" \
--sink "kafka-credit-rating-sink" \
--duration 30
Note: Password for the command was provided at the prompt.
Password:
Creating temporary model folders...
Temp folder path: C:\Users\kgunasek\AppData\Local\Temp\STAT-modelops-client-u7lgqd6p
Generating model schemas...
Creating scoring flow...
Creating scoring pipeline...
Creating meta-data file to bind model with schemas, scoring flow and pipeline...
Importing model artifacts zip file...
Deleting C:\Users\kgunasek\AppData\Local\Temp\STAT-modelops-client-u7lgqd6p
Deploying scoring pipeline...
In approve scoring pipeline!
In checkout scoring pipeline!
-----------------------------------------------------------------------------------
Scheduled deployment job name: credit-rating-1625192455-scoring-pipeline-1625192470
-----------------------------------------------------------------------------------
Deploy scoring pipeline response:
{
"status": 0,
"startRow": 0,
"endRow": 1,
"totalRows": 1,
"errorCode": null,
"errorMessage": null,
"responseMessage": null,
"record": [
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-6pw2d",
"externalNamespaces": [],
"durationMinutes": 0,
"status": "PENDING",
"trace": false,
"tasks": []
}
]
}
Check the job status of the scheduled job
After a few seconds, run the display command with the scheduled pipeline deployment job name returned by the previous deploy command. The pipeline should be in a RUNNING state.
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--job "credit-rating-1625192455-scoring-pipeline-1625192470"
Note: Password for the command was provided at the prompt.
Password:
Job status:
-----------
credit-rating-1625192455-scoring-pipeline-1625192470 is RUNNING
Job Status response:
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-6pw2d",
"jobName": "credit-rating-1625192455-scoring-pipeline-1625192470",
"specification": "scoringpipeline",
"version": "latest",
"namespace": "development",
"externalNamespaces": [],
"durationMinutes": 30,
"username": "admin",
"additionalData": "{\"jobName\": \"credit-rating-1625192455-scoring-pipeline-1625192470\", \"userName\": \"admin\", \"jobDescription\": \"Scoring pipeline deployed using Statistica integration script.\", \"artifactRevisionId\": nul
l, \"artifactCheckOutId\": \"89744a136df345e4b8ba47b0226988dd\", \"artifactName\": \"/credit-rating.scoringpipeline\", \"artifactProjectName\": \"credit-rating-1625192455\", \"artifactAuthor\": \"admin\", \"deployTime\": \"2021-07-02 0
2:21:10.409 GMT\"}",
"status": "RUNNING",
"trace": true,
"tasks": [
{
"@class": "com.tibco.ep.ams.model.response.TaskRecord",
"taskIdentifier": "scoringpipeline-6pw2d",
"status": "RUNNING",
"creationTimestamp": "2021-07-02T02:21:13Z",
"message": "Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0"
}
]
}
Example 2
In this example, we provide the project name using the –project argument.
python modelops-client.py deploy \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--environment Development \
--file "C:\ModelOps\credit-rating.sdm" \
--source "kafka-credit-rating-source" \
--sink "kafka-credit-rating-sink" \
--project "credit rating scoring test" \
--duration 30
Note: Password for the command was provided at the prompt.
Password:
Creating temporary model folders...
Temp folder path: C:\Users\kgunasek\AppData\Local\Temp\STAT-modelops-client-xmp0iol5
Generating model schemas...
Creating scoring flow...
Creating scoring pipeline...
Creating meta-data file to bind model with schemas, scoring flow and pipeline...
Importing model artifacts zip file...
Deleting C:\Users\kgunasek\AppData\Local\Temp\STAT-modelops-client-xmp0iol5
Deploying scoring pipeline...
In approve scoring pipeline!
In checkout scoring pipeline!
-------------------------------------------------------------------------------------
Scheduled deployment job name: credit rating scoring test-scoring-pipeline-1625194110
-------------------------------------------------------------------------------------
Deploy scoring pipeline response:
{
"status": 0,
"startRow": 0,
"endRow": 1,
"totalRows": 1,
"errorCode": null,
"errorMessage": null,
"responseMessage": null,
"record": [
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-fd6r7",
"externalNamespaces": [],
"durationMinutes": 0,
"status": "PENDING",
"trace": false,
"tasks": []
}
]
}
Check the job status of the scheduled job
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--job "credit rating scoring test-scoring-pipeline-625194110"
Note: Password for the command was provided at the prompt.
Password:
Job status:
-----------
credit rating scoring test-scoring-pipeline-1625194110 is RUNNING
Job Status response:
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-fd6r7",
"jobName": "credit rating scoring test-scoring-pipeline-1625194110",
"specification": "scoringpipeline",
"version": "latest",
"namespace": "development",
"externalNamespaces": [],
"durationMinutes": 30,
"username": "admin",
"additionalData": "{\"jobName\": \"credit rating scoring test-scoring-pipeline-1625194110\", \"userName\": \"admin\", \"jobDescription\": \"Scoring pipeline deployed using Statistica integration script.\", \"artifactRevisionId\": n
ull, \"artifactCheckOutId\": \"96e8ee02a82542818b9e570c86d59e54\", \"artifactName\": \"/credit-rating.scoringpipeline\", \"artifactProjectName\": \"credit rating scoring test\", \"artifactAuthor\": \"admin\", \"deployTime\": \"2021-07-
02 02:48:30.655 GMT\"}",
"status": "RUNNING",
"trace": true,
"tasks": [
{
"@class": "com.tibco.ep.ams.model.response.TaskRecord",
"taskIdentifier": "scoringpipeline-6pw2d",
"status": "RUNNING",
"creationTimestamp": "2021-07-02T02:48:33Z",
"message": "Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0"
}
]
}
5. delete
python modelops-client.py delete --help
usage: modelops-client.py delete [-h] [--address ADDRESS] [--job JOB] [--password PASSWORD] [--project PROJECT] [--verbose VERBOSE] [--user USER]
optional arguments:
-h, --help show this help message and exit
--address ADDRESS, -a ADDRESS
TIBCO ModelOps URL (default http://localhost:2185)
--job JOB, -j JOB Running job identifier
--password PASSWORD, -p PASSWORD
Password
--project PROJECT, -n PROJECT
Project name
--verbose VERBOSE, -v VERBOSE
Verbose logging for diagnostic purposes
--user USER, -u USER Username (default=admin)
The delete command can be used to either remove a project created on server or delete a running job that was started by you.
python modelops-client.py delete \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--project "credit rating scoring test" \
--job race-car-pipleline-test3
Note: Password for the command was provided at the prompt. If a job name was not provided the program mentions that, and also provides a list of running jobs to look at and consider for deletion.
Password:
Deleting project [credit rating scoring test] on server...
User has permissions to delete job race-car-pipleline-test3
The job id is scoringpipeline-kc45d
Job status:
-----------
race-car-pipleline-test3 is RUNNING
Job Status response:
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-kc45d",
"jobName": "race-car-pipleline-test3",
"specification": "scoringpipeline",
"version": "latest",
"namespace": "development",
"externalNamespaces": [],
"durationMinutes": 0,
"username": "admin",
"additionalData": "{\"jobName\":\"race-car-pipleline-test3\",\"userName\":\"admin\",\"jobDescription\":\"\",\"artifactRevisionId\":null,\"artifactCheckOutId\":\"79ab474c09804a81a4ce4d95479a69fa\",\"artifactName\":\"/racecar.scoringpipeline\",\"artifactProjectName\":\"admin-racecar\",\"artifactAuthor\":\"admin\",\"artifactCreatedOn\":\"2021-07-02 23:21:37.188 GMT\",\"artifactUpdatedOn\":\"2021-07-02 23:22:19.252 GMT\",\"deployTime\":\"Fri Jul 02
2021 18:23:01 GMT-0500\"}",
"status": "RUNNING",
"trace": true,
"tasks": [
{
"@class": "com.tibco.ep.ams.model.response.TaskRecord",
"taskIdentifier": "scoringpipeline-kc45d",
"status": "RUNNING",
"creationTimestamp": "2021-07-02T23:23:04Z",
"message": "Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0"
}
]
}
The immediate job status returned after deleting (that is, canceling) the job is RUNNING. We can confirm the cancellation status of the job by running the display command after a few seconds.
python modelops-client.py display \
--address https://modelops-server.qamodelops.streamingaz.tibcocloud.com/ \
--user admin \
--job race-car-pipleline-test3
Note: Password for the command was provided at the prompt.
Password:
Job status:
-----------
race-car-pipleline-test3 - CANCELLED
Job Status response:
{
"@class": "com.tibco.ep.ams.model.response.JobStatusRecord",
"jobIdentifier": "scoringpipeline-kc45d",
"jobName": "race-car-pipleline-test3",
"specification": "scoringpipeline",
"version": "latest",
"namespace": "development",
"externalNamespaces": [],
"durationMinutes": 0,
"username": "admin",
"additionalData": "{\"jobName\":\"race-car-pipleline-test3\",\"userName\":\"admin\",\"jobDescription\":\"\",\"artifactRevisionId\":null,\"artifactCheckOutId\":\"79ab474c09804a81a4ce4d95479a69fa\",\"artifactName\":\"/racecar
.scoringpipeline\",\"artifactProjectName\":\"admin-racecar\",\"artifactAuthor\":\"admin\",\"artifactCreatedOn\":\"2021-07-02 23:21:37.188 GMT\",\"artifactUpdatedOn\":\"2021-07-02 23:22:19.252 GMT\",\"deployTime\":\"Fri Jul 02
2021 18:23:01 GMT-0500\"}",
"status": "CANCELLED",
"trace": true,
"tasks": [
{
"@class": "com.tibco.ep.ams.model.response.TaskRecord",
"taskIdentifier": "scoringpipeline-kc45d",
"status": "CANCELLED",
"creationTimestamp": "2021-07-02T23:23:04Z",
"completionTimestamp": "2021-07-06T16:15:37Z",
"message": "Tasks Completed: 3 (Failed: 0, Cancelled 1), Skipped: 0"
}
]
}