Skip to content

Commit

Permalink
Add enpoints, experiment descriptor documentation, update changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
NaniteBased committed Oct 10, 2022
1 parent 90690a8 commit bed2f10
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 2 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
**10/10/2022** [Version 3.6.0]

- Implemented Child tasks, flow control:
- Sequence
- Parallel
- Repeat
- While
- Select
- Added Task labels
- Updated log views in dashboard
- Documentation reorganization
- Bug fixes

**30/06/2022** [Version 3.5.0 - Release A]

- Add Variables parameter to Robot Framework task
Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@

> Additional dependencies may be needed depending on your environment. For example, older Windows version may require
certain Visual C++ redistributables to be installed, and the following packages are known to be required on many Ubuntu
distributions: `gcc python3.10 python3.10-venv python3.10-dev`. Fixes for specific issues are usually easy to find on
Internet.
distributions: `gcc python3.10 python3.10-venv python3.10-dev`.

This repository includes two sets of scripts for use on Linux (`.sh`) and Windows (`.ps1`) machines. In general,
these scripts should be able to perform most of the actions required for instantiating the ELCM, however, depending
Expand Down Expand Up @@ -86,6 +85,10 @@ Detailed usage documentation can be found in the `docs` folder of this repositor
5. [Implementing Additional Tasks](/docs/3-5_TASK_IMPLEMENTATION.md)
4. [Distributed Experiments](/docs/4_DISTRIBUTED.md)

#### Appendix
1. [REST Endpoints](/docs/A1_ENDPOINTS.md)
2. [Experiment Descriptor](/docs/A2_EXPERIMENT_DESCRIPTOR.md)

## Authors

* **[Bruno Garcia Garcia](https://github.com/NaniteBased)**
Expand Down
101 changes: 101 additions & 0 deletions docs/A1_ENDPOINTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# REST Endpoints

> ⚠ The endpoints of the ELCM are not expected to be exposed to the Internet and may leak information. For user
> management and authorization always use a different front-end, such as the Dispatcher.
## Experiment management endpoints

### [POST] `/experiment/run`
> *[POST] `/api/v0/run` (Deprecated)*
Creates and queues a new experiment execution, based on the contents of the received Experiment Descriptor (JSON).
Replies with the following response JSON:
```text
{ “ExecutionId”: <id> }
```
Where <id> is a unique execution identification that can be used as input in other endpoints.

### [GET] `/execution/<id>/status`
> *[GET] `/execution/<id>/json` (Deprecated)*
Returns a JSON that contains general information about the status of the selected execution id, with the following
format:
```text
{ “Coarse”: <Global status or current stage of execution>,
“Status”: <Global status or status within the current stage>,
“PerCent”: <Percentage of completion of current stage>,
“Messages”: <List of global messages generated by the execution>,
“Verdict”: <Current or final verdict of the execution> }
```

### [GET] `/execution/<id>/logs`

Returns a JSON that contains all the log messages generated by the execution, separated by stage:
```text
{ “Status”: <Either “Success” or “Not Found”>,
“PreRun”: <Messages generated during Pre-Run stage>,
“Executor”: <Messages generated during the Run stage>,
“PostRun”: <Messages generated during Post-Run stage> }
```

### [GET] `/execution/<id>/results`

Returns a compressed file that includes the logs and all files generated by the experiment execution.

### [GET] `/execution/<id>/descriptor`

Returns a copy of the Experiment Descriptor that was used to define the execution.

### [DELETE] `/execution/<id>`
> *[GET] `/execution/<id>/cancel` (Deprecated)*
Marks the selected execution for cancellation. The execution will be cancelled after finalization of the current task.

## Facility information

### [GET] `/facility/baseSliceDescriptors`

Returns a list of available Base Slice Descriptors, with the following format:
```json
{ "SliceDescriptors": [] }
```

### [GET] `/facility/testcases`

Returns a list of available UEs, with the following format:
```text
{
"TestCases": [
{
"Name": <Name of the TestCase>,
"Distributed": <Boolean>,
"Standard": <Boolean, indicates if the experiment can be executed without additional parameters>,
"PublicCustom": <Boolean, indicates if the experiment can be customized by any user>,
"PrivateCustom": <List of emails, of the users allowed to customize the experiment>,
"Parameters": <List of configurable parameters of the experiment>
}, ...
]
}
```

### [GET] `/facility/ues`

Returns a list of available UEs, with the following format:
```json
{ "UEs": [] }
```

### [GET] `/facility/resource_status`

Returns a list of available Resources, separated by current usage status:
```json
{ "Busy": [],
"Idle": [] }
```

### [GET] `/facility/scenarios`

Returns a list of available Scenarios, with the following format:
```json
{ "Scenarios": [] }
```
21 changes: 21 additions & 0 deletions docs/A2_EXPERIMENT_DESCRIPTOR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Experiment Descriptor format

```text
{
"Application": <str, may be null>
"Automated": <bool>,
"ExclusiveExecution": <bool>,
"ExperimentType": <str>,
"Extra": <Object[str, str], may be empty>,
"NSs": <Array[Array[str]], (nsd id, vim location) pairs. May be empty>,
"Parameters": <Object[str, str], may be empty>,
"Remote": <str, may be null>,
"RemoteDescriptor": <Descriptor. Same format as an Experiment Descriptor, but without the “RemoteDescriptor” field. May be null>,
"ReservationTime": <int, may be null>,
"Scenario": <str, may be null>,
"Slice": <str, may be null>
"TestCases": <Array[str]>,
"UEs": <Array[str], may be empty>
"Version": <str>
}
```

0 comments on commit bed2f10

Please sign in to comment.