| .. This work is licensed under a |
| Creative Commons Attribution 4.0 International License. |
| .. integration-tooling: |
| |
| .. _integration-simulators: |
| |
| Simulators |
| ========== |
| |
| Simulators are regularly created for use cases. The goal of this section is to: |
| |
| - Highlight the existing Simulators |
| - Provide recommendations when starting developing a new simulator |
| |
| .. important:: |
| Before developing a new simulator, check that it does not exist...and |
| refactor/contribute to existing simulators rather than recreating new ones. |
| |
| |
| Existing simulators |
| ------------------- |
| |
| .. csv-table:: Simulators |
| :file: ./files/csv/simulators.csv |
| :widths: 10,50,20,20 |
| :delim: ; |
| :header-rows: 1 |
| |
| |
| Recommendations |
| --------------- |
| |
| The simulator code |
| .................. |
| |
| We recommend to create a dedicated repository (ask Integration team). |
| |
| .. csv-table:: Simulator repositories |
| :file: ./files/csv/repo-simulators.csv |
| :widths: 30,50,20 |
| :delim: ; |
| :header-rows: 1 |
| |
| |
| Dockerization |
| ............. |
| |
| From this repository, create a jenkins job to automatically build the dockers. |
| |
| Helm Chart |
| .......... |
| |
| It is recommended to create a helm chart in order to run the simulators. |
| |
| |
| Wrapper for simulators |
| ...................... |
| |
| 1. In order to deploy the Helm release with a simulator, place a YAML file |
| describing the Helm release in src/onaptests/templates/helm_charts. |
| |
| The structure of the YAML file should be like in the example below. |
| Dependencies contain all the charts that need to be pulled. |
| |
| .. code-block:: YAML |
| |
| # Helm release information |
| api_version: # API_VERSION |
| app_version: # APP_VERSION |
| chart_name: # SIMULATOR_NAME |
| version: # CHART_VERSION |
| |
| # Helm charts that need to be pulled |
| dependencies: |
| - name: # SIMULATOR_NAME |
| version: # CHART_VERSION |
| repository: # URL |
| local_repo_name: # REPO_NAME |
| |
| 2. Install the Helm release: |
| |
| .. code-block:: Python |
| |
| from onaptests.steps.wrapper.helm_charts import HelmChartStep |
| |
| chart = HelmChartStep( |
| cleanup = BOOLEAN, |
| chart_info_file = YAML_FILE_NAME # name, not the path |
| ) |
| chart.execute() |
| |
| 3. Start the simulator via an API call: |
| |
| .. code-block:: Python |
| |
| start = SimulatorStartStep( |
| cleanup = BOOLEAN, |
| https = BOOLEAN, |
| host = HOSTNAME, |
| port = PORT, |
| endpoint = START_ENDPOINT, # if applicable |
| method = REQUEST_METHOD, # GET, POST etc. |
| data = PAYLOAD # {"json": {...}, ...} |
| ) |
| start.execute() |
| |
| 4. Undeploy the Helm release: |
| |
| .. code-block:: Python |
| |
| chart.cleanup() |