Interface

Interface #

Interface to GHA #

Interface to GitHub Actions uses GHA REST API and implements methods to:

  • start a run,
  • get the status of a run,
  • cancel a run (normal or force).

Interface to Testbeds #

The HFR uses existing set of testbeds and communicates with them via ssh channel using bash commands. It implements methods to:

  • get the status of testbed(s)
  • find an available testbed,
  • unreserve a testbed.

The data structure #

The operational status of all testbeds is represented by a list where each item represents one testbed.

[
    Testbed(
        name=str(),
        node=str(),
        tg=dict(),
        status=str(),
        pre_reserved_by=str(),
        job=str(),
        run_id=str()
    ),
    Testbed()
]

Testbed

  • name - The name of the testbed as it is defined in its topology file.
  • node - node-arch identificator, e.g.: 2n-spr.
  • tg - All necessary information about the testbed’s traffic generator as it is defined in the topology file. This information is used to communicate with the testbed.
  • status - The status of the testbed:
    • available,
    • pre-reserved (by HFR),
    • reserved,
    • unreachable.
  • pre_reserved_by - HFR ID of a run which is planned for this testbed. Note that the run can finally run on a different testbed as pre-reserved for it.
  • job - the job name (only for status == reserved, otherwise None).
  • run_id - The ID of a run (only for status == reserved, otherwise None).

Example (no run on this testbed):

        "tb": {
            "name": "lf_2n_zn2_testbed210",
            "node": "2n-zn2",
            "tg": {
                "type": "TG",
                "subtype": "TREX",
                "model": "Amd-EpycZen2",
                "host": "10.30.51.61",
                "arch": "x86_64",
                "port": 6001,
                "username": "testuser",
                "password": "Csit1234"
            },
            "status": "available",
            "pre_reserved_by": "0796401351",
            "job": null,
            "run_id": null

Data presentation #

Presentation of data produced by tests run by testing jobs.

See C-Dash