XPRESSO
- Welcome to XPRESSO!
- About XPRESSO
- Getting Started with XPRESSO
- Quick Start
- Setting up your Test Environment
- Defining your Lab Resources
- Job Creation, Execution & Test Results
- Tracking Events
- Integrating XPRESSO with other Tools and Services
- System Administrator Tasks
- Working with APIs
- Change Log
- Glossary
Job(s), Bundle(s), and Profile(s) REST APIs
About XPRESSO Job(s), Bundle(s), and Profile(s) REST APIs
XPRESSO provides the following public REST APIs to retrieve Job(s), Bundle(s), and Profile(s) information:
Retrieve Jobs
Returns jobs defined under group.
- URL:
/api/v1/jobs
- Method:
GET
- Permission Required: No permission required.
- Group: retrieved from
headers
- Success Response
- Condition: Authorized User.
- Code:
200 OK
- Response example:json
Copy
[ { "uuid": "af0cfb5f-9323-4b72-a979-639d2343b0b7", "name": "Jobs_VIRL_genie_libs_refact", "harness": "pyATS", "job_file": "/path/to/job_file.py", "description": "", "support_mailers": "support@mailer.com", "interest_lists": "", "profiles": [ { "uuid": "00caa38b-961c-439a-a740-666721022b73", "name": "DEFAULT", "is_default": true, "priority": 4, "config_state": "ENABLED", "date_created": "2019-08-13T19:08:54.914958Z", "interest_lists": "", "engine_instance": { "uuid": "75e32472-e6d9-425f-be88-49be550c2ef1", "name": "jenkins", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "cc78c21a-dc61-4722-9a77-89eb46558ab7", "name": "genie_libs_refact", "harness": "pyATS", "path": "/path/to/harness", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "SJC", "bldg": "ALL", "support_liveview": true, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 40, "name": "PYTHONPATH", "value": "/path/to/pythonpath/", "deleted": false } ], "jobargs": [ { "id": 10, "job_arg": 13, "name": "-trigger_groups", "value": "And('pyats', Not('physical'))", "flag": false, "inherits": false, "deleted": false } ], "testbeds": [ { "id": 40, "name": "pyATS_pod14_shared", "uuid": "2966f51c-097d-45fb-8a88-ee60240693be", "devices": [ { "name": "CW1", "uuid": "89278718-7f06-4c6c-b01b-1bb2ac559c66", "deleted": false }, { "name": "CD2", "uuid": "0f4e436e-6129-4eb3-b2e0-a698d028d7be", "deleted": false }, { "name": "IGNORE", "uuid": "84154126-64f1-4443-a156-ec49772d4f72", "deleted": false }, { "name": "jump_host", "uuid": "6258332a-4369-422f-ae70-29013ddf2d45", "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": false, "clean": false } ], "metadata": [ { "id": 30, "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "topologies": [], "support_mailers": "support@mailer.com", "created_by": "user", "deleted": false } ], "args": [ { "id": 13, "name": "-trigger_groups", "code_name": "-trigger_groups", "deleted": false, "default_value": null, "description": "", "immutable": false, "flag": false } ], "config_state": "ENABLED", "site": null, "bldg": null, "date_created": "2019-08-13T19:08:53.957028Z", "deleted": false, "created_by": "user" } ]
Retrieve Job
Return job information.
- URL:
/api/v1/jobs/:uuid
- Method:
GET
- Permission Required: No permission required. User needs to be a member of the group that owns the job.
- Group: retrieved from
headers
- Success Response
- Condition: If job exists and Authorized User is a member of the group.
- Code:
200 OK
- Response example:json
Copy
{ "uuid": "ee9a90bf-97cd-41c2-b9f5-68add0318020", "name": "MyJob", "harness": "pyATS", "job_file": "/path/to/job_file.py", "description": "This is a test job", "support_mailers": "support@mailer.com", "interest_lists": "", "profiles": [ { "uuid": "91861a31-86a4-4a37-b49b-00f92347cdba", "name": "DEFAULT", "is_default": true, "priority": 4, "config_state": "ENABLED", "date_created": "2019-05-27T15:50:27.120833Z", "interest_lists": "", "engine_instance": { "uuid": "849d3767-f5a7-4e35-9819-a747103476c0", "name": "ExecEngine", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "036c33a7-ecaf-4d11-8480-f68db2ed63a9", "name": "TestHarness", "harness": "pyATS", "path": "/path/to/pyATS", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "OTT", "bldg": "ALL", "support_liveview": false, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 6, "name": "TEST_NO_VALUE", "value": null, "deleted": false }, { "id": 5, "name": "TEST_WITH_VALUE", "value": "test123", "deleted": false } ], "jobargs": [], "testbeds": [ { "id": 3, "name": "My-N7K-Testbed", "uuid": "169d1e3e-e438-4a20-bd54-f3196efe18e3", "devices": [ { "name": "P1", "uuid": "ace5ddf4-2b5f-480f-8b73-373677573b09", "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": true, "clean": false } ], "metadata": [ { "id": 7, "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "topologies": [], "support_mailers": "support@mailer.com", "created_by": "test_user", "deleted": false } ], "args": [ { "id": 2, "name": "--my_arg", "code_name": "--my_arg", "deleted": false, "default_value": "my value", "description": "", "immutable": false, "flag": false } ], "config_state": "ENABLED", "date_created": "2019-05-24T17:26:05.818388Z", "deleted": false, "created_by": "test_user" }
- Error Response
- Condition: If job does not exist with provided
uuid
- Code:
404 NOT FOUND
- Response example:
{ detail: 'Not Found' }
- Condition: If job does not exist with provided
Retrieve Bundles
Returns bundles defined under group.
- URL:
/api/v1/bundles
- Method:
GET
- Permission Required: No permission required.
- Group: retrieved from
headers
- Success Response
- Condition: Authorized User.
- Code:
200 OK
- Response example:json
Copy
[ { "uuid": "23c900f9-eb8c-40ad-9268-cb4205d7a617", "name": "firstbundle", "description": "created a new bundle", "deleted": false, "profiles": [ { "job": { "uuid": "ddc7fe54-ee75-4a8d-a543-23ff36c9b8ea", "name": "Job_VIRL" }, "uuid": "b7672128-d6c1-40b3-b30c-80fa50edca03", "name": "DEFAULT", "is_default": true, "priority": 4, "date_created": "2019-08-13T19:03:26.710399Z", "interest_lists": "", "engine_instance": { "uuid": "75e32472-e6d9-425f-be88-49be550c2ef1", "name": "jenkins", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "189f30a8-c475-4303-b638-77cc93f4073b", "name": "harness_env", "harness": "pyATS", "path": "/path/to/harness_env/", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "SJC", "bldg": "ALL", "support_liveview": true, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 39, "name": "PYTHONPATH", "value": "/path/to/PYTHONPATH/:/path/to/PYTHONPATH/pypi/", "deleted": false } ], "jobargs": [ { "id": 9, "job_arg": 12, "name": "-trigger_groups", "value": "And('pyats', Not('physical'))", "flag": false, "inherits": false, "deleted": false } ], "testbeds": [ { "id": 42, "name": "GICT-pyATS_pod12_shared-7chuTf", "uuid": "22a5dd98-63e1-46b1-b0c1-88833b24da14", "devices": [ { "name": "CE1", "uuid": "b23d3c09-6d46-4b70-a4f2-ef5e66a372d8", "deleted": false }, { "name": "CE2", "uuid": "8a19ac76-2822-4130-acca-5b92cd11468d", "deleted": false }, { "name": "IGNORE", "uuid": "b97f15fa-4fde-40a8-8b50-7dc847fb250d", "deleted": false }, { "name": "jump_host", "uuid": "ec613612-611e-4867-8091-59fc0f82c3d2", "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": false, "clean": false }, { "id": 37, "name": "pyATS_pod13_shared", "uuid": "dacba4c8-22ff-4b5b-b4a4-4d69376b8b90", "devices": [], "clean_instruction": null, "deleted": false, "queue": false, "clean": false } ], "metadata": [ { "id": 29, "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "config_state": "ENABLED", "topologies": [], "support_mailers": "support@mailer.com", "created_by": "user", "deleted": false }, { "job": { "uuid": "af0cfb5f-9323-4b72-a979-639d2343b0b7", "name": "Jobs_VIRL_genie_libs_refact" }, "uuid": "00caa38b-961c-439a-a740-666721022b73", "name": "DEFAULT", "is_default": true, "priority": 4, "date_created": "2019-08-13T19:08:54.914958Z", "interest_lists": "", "engine_instance": { "uuid": "75e32472-e6d9-425f-be88-49be550c2ef1", "name": "jenkins", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "cc78c21a-dc61-4722-9a77-89eb46558ab7", "name": "genie_libs_refact", "harness": "pyATS", "path": "/path/to/genie_libs_refact", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "SJC", "bldg": "ALL", "support_liveview": true, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 40, "name": "PYTHONPATH", "value": "/path/to/PYTHONPATH/pypi/", "deleted": false } ], "jobargs": [ { "id": 10, "job_arg": 13, "name": "-trigger_groups", "value": "And('pyats', Not('physical'))", "flag": false, "inherits": false, "deleted": false } ], "testbeds": [ { "id": 40, "name": "pyATS_pod14_shared", "uuid": "2966f51c-097d-45fb-8a88-ee60240693be", "devices": [ { "name": "CW1", "uuid": "89278718-7f06-4c6c-b01b-1bb2ac559c66", "deleted": false }, { "name": "CD2", "uuid": "0f4e436e-6129-4eb3-b2e0-a698d028d7be", "deleted": false }, { "name": "IGNORE", "uuid": "84154126-64f1-4443-a156-ec49772d4f72", "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": false, "clean": false } ], "metadata": [ { "id": 30, "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "config_state": "ENABLED", "topologies": [], "support_mailers": "support@mailer.com", "created_by": "user", "deleted": false } ], "profile_ids": [ "b7672128-d6c1-40b3-b30c-80fa50edca03", "00caa38b-961c-439a-a740-666721022b73" ], "created_by": "user2", "date_created": "2019-08-26T19:42:28.868779Z" } ]
Retrieve Bundle
Return bundle information.
- URL:
/api/v1/bundles/:bundle_id
- Method:
GET
- Permission Required: No permission required. User needs to be a member of the group that owns the bundle.
- Group: retrieved from
headers
- Success Response
- Condition: If bundle exists and Authorized User is a member of the group.
- Code:
200 OK
- Response example:json
Copy
{ "uuid": "23c900f9-eb8c-40ad-9268-cb4205d7a617", "name": "firstbundle", "description": "created a new bundle", "deleted": false, "profiles": [ { "job": { "uuid": "ddc7fe54-ee75-4a8d-a543-23ff36c9b8ea", "name": "Job_VIRL" }, "uuid": "b7672128-d6c1-40b3-b30c-80fa50edca03", "name": "DEFAULT", "is_default": true, "priority": 4, "date_created": "2019-08-13T19:03:26.710399Z", "interest_lists": "", "engine_instance": { "uuid": "75e32472-e6d9-425f-be88-49be550c2ef1", "name": "jenkins", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "189f30a8-c475-4303-b638-77cc93f4073b", "name": "harness_env", "harness": "pyATS", "path": "/path/to/harness_env", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "SJC", "bldg": "ALL", "support_liveview": true, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 39, "profile": "b7672128-d6c1-40b3-b30c-80fa50edca03", "name": "PYTHONPATH", "value": "/path/to/genie_group:/path/to/genie_group/pypi/", "deleted": false } ], "jobargs": [ { "id": 9, "profile": "b7672128-d6c1-40b3-b30c-80fa50edca03", "job_arg": 12, "name": "-trigger_groups", "value": "And('pyats', Not('physical'))", "flag": false, "inherits": false, "deleted": false } ], "testbeds": [ { "id": 42, "profile": "b7672128-d6c1-40b3-b30c-80fa50edca03", "name": "GICT-pyATS_pod12_shared-7chuTf", "uuid": "22a5dd98-63e1-46b1-b0c1-88833b24da14", "devices": [ { "name": "CEW1", "uuid": "b23d3c09-6d46-4b70-a4f2-ef5e66a372d8", "testbed": 42, "deleted": false }, { "name": "CEW2", "uuid": "8a19ac76-2822-4130-acca-5b92cd11468d", "testbed": 42, "deleted": false }, { "name": "IGNORE", "uuid": "b97f15fa-4fde-40a8-8b50-7dc847fb250d", "testbed": 42, "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": false, "clean": false }, { "id": 37, "profile": "b7672128-d6c1-40b3-b30c-80fa50edca03", "name": "pyATS_pod13_shared", "uuid": "dacba4c8-22ff-4b5b-b4a4-4d69376b8b90", "devices": [], "clean_instruction": null, "deleted": false, "queue": false, "clean": false }, { "id": 39, "profile": "b7672128-d6c1-40b3-b30c-80fa50edca03", "name": "pyATS_pod8_shared", "uuid": "db1d4a02-1df2-4a7a-afe8-a14fac2a8ac1", "devices": [], "clean_instruction": null, "deleted": false, "queue": false, "clean": false } ], "metadata": [ { "id": 29, "profile": "b7672128-d6c1-40b3-b30c-80fa50edca03", "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "config_state": "ENABLED", "topologies": [], "support_mailers": "support@mailer.com", "created_by": "user", "deleted": false } ], "profile_ids": [ "b7672128-d6c1-40b3-b30c-80fa50edca03", "00caa38b-961c-439a-a740-666721022b73" ], "created_by": "super_user", "date_created": "2019-08-26T19:42:28.868779Z", "tags": [] }
- Error Response
- Condition: If bundle does not exist with provided
bundle_id
- Code:
404 NOT FOUND
- Response example:
{ detail: 'Not Found' }
- Condition: If bundle does not exist with provided
Retrieve Profiles
Returns profiles defined under group.
- URL:
/api/v1/profiles
- Method:
GET
- Permission Required: No permission required.
- Group: retrieved from
headers
- Success Response
- Condition: Authorized User.
- Code:
200 OK
- Response example:json
Copy
[ { "job": { "uuid": "ee9a90bf-97cd-41c2-b9f5-68add0318020", "name": "MyJob" }, "uuid": "91861a31-86a4-4a37-b49b-00f92347cdba", "name": "DEFAULT", "is_default": true, "priority": 4, "date_created": "2019-05-27T15:50:27.120833Z", "interest_lists": "", "engine_instance": { "uuid": "849d3767-f5a7-4e35-9819-a747103476c0", "name": "ExecEngine", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "036c33a7-ecaf-4d11-8480-f68db2ed63a9", "name": "TestHarness", "harness": "pyATS", "path": "/path/to/pyATS", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "OTT", "bldg": "ALL", "support_liveview": false, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 6, "name": "TEST_NO_VALUE", "value": null, "deleted": false }, { "id": 5, "name": "TEST_WITH_VALUE", "value": "test123", "deleted": false } ], "jobargs": [], "testbeds": [ { "id": 3, "name": "My-N7K-Testbed", "uuid": "169d1e3e-e438-4a20-bd54-f3196efe18e3", "devices": [ { "name": "PW1", "uuid": "ace5ddf4-2b5f-480f-8b73-373677573b09", "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": true, "clean": false } ], "metadata": [ { "id": 7, "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "config_state": "ENABLED", "topologies": [], "support_mailers": "support@mailer.com", "created_by": "user", "deleted": false } ]
Retrieve Profile
Returns profile information.
- URL:
/api/v1/profile/:uuid
- Method:
GET
- Permission Required: No permission required. User needs to be a member of the group that owns the profile.
- Group: retrieved from
headers
- Success Response
- Condition: If profile exists and Authorized User is a member of the group.
- Code:
200 OK
- Response example:json
Copy
{ "job": { "uuid": "ee9a90bf-97cd-41c2-b9f5-68add0318020", "name": "MyJob" }, "uuid": "91861a31-86a4-4a37-b49b-00f92347cdba", "name": "DEFAULT", "is_default": true, "priority": 4, "date_created": "2019-05-27T15:50:27.120833Z", "interest_lists": "", "engine_instance": { "uuid": "849d3767-f5a7-4e35-9819-a747103476c0", "name": "ExecEngine", "deleted": false }, "enginefields": [], "harness_instances": [ { "uuid": "036c33a7-ecaf-4d11-8480-f68db2ed63a9", "name": "TestHarness", "harness": "pyATS", "path": "/path/to/pyATS", "config_state": "ENABLED", "oper_state": "ONLINE", "site": "OTT", "bldg": "ALL", "support_liveview": false, "config": "", "deleted": false } ], "harnessfields": [], "max_run_time": 43200, "envargs": [ { "id": 6, "name": "TEST_NO_VALUE", "value": null, "deleted": false }, { "id": 5, "name": "TEST_WITH_VALUE", "value": "test123", "deleted": false } ], "jobargs": [], "testbeds": [ { "id": 3, "profile": "91861a31-86a4-4a37-b49b-00f92347cdba", "name": "My-N7K-Testbed", "uuid": "169d1e3e-e438-4a20-bd54-f3196efe18e3", "devices": [ { "name": "P1", "uuid": "ace5ddf4-2b5f-480f-8b73-373677573b09", "testbed": 3, "deleted": false } ], "clean_instruction": null, "deleted": false, "queue": false, "clean": false } ], "metadata": [ { "id": 7, "profile": "91861a31-86a4-4a37-b49b-00f92347cdba", "metaclass": "coverageType", "identifier": "Sanity", "deleted": false } ], "config_state": "ENABLED", "topologies": [], "support_mailers": "test_user@cisco.com", "created_by": "test_user", "deleted": false, "tags": [] }
- Error Response
- Condition: If profile does not exist with provided
uuid
- Code:
404 NOT FOUND
- Response example:
{ detail: 'Not Found' }
- Condition: If profile does not exist with provided