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:
      [
        {
          "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:
      {
        "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' }

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:
      [
        {
          "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:
      {
        "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' }

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:
      [
        {
          "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:
      {
        "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' }