Table of Contents |
Test Planning for OOF Optimization Service Design Framework (OOF-OSDF)
The test structure here has been adapted from Policy Team's CSIT Functional Test Cases created by Pamela Dragosh
Abbreviations Used
The following abbreviations are used in the functional test case description below since there may be substantial repetition along with clarification notes associated with some terms:
OOF-OSDF Beijing Release CSIT Functional Test Cases
Id | Description | Pre-conditions | Test Steps | Expected Results |
A: Health Checks for OOF-OSDF Components and Dependencies (Policy and OOF-HAS API) | ||||
A.1 | Perform health check for the OOF-OSDF components using Health Check API
| [OSDF Manager] Server and authentication details should be configured at $OOF_HOME/config/feature-healthcheck.properties | SIMPLE-GET-HEALTH-CHECK-API | HTTP-200-TRUE |
A.2 | CHECK-REQ-OR-OPTIONAL
| [Policy Emulator] | SIMPLE-GET-HEALTH-CHECK-API | HTTP-200-TRUE |
B: Fetch Data from Emulators (valid and invalid data, via GET and POST) | ||||
B.1 | Retrieve response corresponding to "valid request" from HAS-API emulator
| [OOF-HAS API – container or emulator] EMULATORS-OR-SERVICES-ARE-UP | SIMPLE-GET-POST-TO-EMULATORS-OR-SERVICES TODO: Payloads and Endpoint | Should receive response for valid request TODO: Payloads |
B.2 | Retrieve response corresponding to "valid policy query" from Policy emulator
| [Policy] | SIMPLE-GET-POST-TO-EMULATORS-OR-SERVICES TODO: Payloads and Endpoint | Should receive response for valid policy query TODO: Payloads |
B.3 | CHECK-REQ-OR-OPTIONAL | [Policy Emulator] | SIMPLE-GET-POST-TO-EMULATORS-OR-SERVICES TODO: Payloads and Endpoint | Should receive corresponding responses TODO: Payloads |
C: Run Complete Requests for Different Applications | ||||
C.1 | SO → OSDF → HAS (well formatted request) | [Policy Emulator] | SIMPLE-GET-POST-TO-EMULATORS-OR-SERVICES TODO: Payloads, Endpoint, and Call-Back URL | Should receive a valid Conductor reponse TODO: Payloads |
C.2 | CHECK-REQ-OR-OPTIONAL | [Policy Emulator] [OOF-HAS API – container or emulator] EMULATORS-OR-SERVICES-ARE-UP | SIMPLE-GET-POST-TO-EMULATORS-OR-SERVICES TODO: Payloads, Endpoint, and Call-Back URL | Should receive a RequestError or an error from Conductor TODO: Payloads |
Example Request/Response Payloads for OOF-OSDF Functional Test Cases
Test Planning for OOF Homing and Allocation Service (OOF-HAS)
All Functional Test Cases described here below will be automatized in the CSIT ONAP integration environment. OOF-HAS is a data driven component, this means that test cases and related results have dependency on A&AI network database content. For this reason OOF-HAS Functional Test cases divided in 2 groups according to OOF-HAS functionality definition status and dependency from A&AI: Test cases marked in Green are those that will be delivered as first set of Functional Test cases as they have limited dependencies on A&AI data set, those marked in white will be scoped by ONAP Beijing delivery final test steps where all components have better stability in the scope of Beijing release.
Note: for the moment we consider the whole OOF component as the contribution of 2 Docker Containers:
- OSDF : handling “R” interface, which is invoked by SO
- OOF-HAS: handling the internal “R’” interface, which in invoked by OSDF
Id | Description | Pre-conditions | Test Steps | Expected Results |
N.1 | Name: OOF-HAS Healthcheck Interface (R’). Perform healthcheck for OOF-HAS using Healthcheck REST API | 1. OOF-HAS docker image is up and running 2. OOF-HAS configuration is performed 3. MUSIC (real ONAP) docker image is up and running 4. Music is prepopulated with Healthcheck row | Robot Framework is sending a REST call to OOF-HAS API – healthcheck Method - GET Endpoint: http://$(hostname ):8091/v1/plans/healthcheck | OOF-HAS should respond with HTTP 200 and body containing "true" |
N.2 | Name: OOF-HAS Wrong Version Interface (R’). Perform sanity sending a plan with wrong Version | 1. OOF-HAS docker image is up and running 2. OOF-HAS configuration is performed 3. MUSIC (real ONAP) docker image is up and running 4. Music is prepopulated with Healthcheck row | Robot Framework is sending a REST call to OOF-HAS API – to Post a Plan Method - POST Endpoint: http://$(hostname ):8091/v1/plans | OOF-HAS should respond with HTTP 200 and body containing "the error reason" |
N.3 | Name: OOF-HAS Missing Demand Section Interface (R’). Perform Sanity sending a plan with missing Demand Section | 1. OOF-HAS docker image is up and running 2. OOF-HAS configuration is performed 3. MUSIC (real ONAP) docker image is up and running 4. Music is prepopulated with Healthcheck row | Robot Framework is sending a REST call to OOF-HAS API – to Post a Plan Method - POST Endpoint: http://$(hostname ):8091/v1/plans | OOF-HAS should respond with HTTP 200 and body containing "the error reason" |
N.4 | Name: OOF-HAS Wrong Constraint Interface (R’). Perform sanity sending a plan with wrong Constraints | 1. OOF-HAS docker image is up and running 2. OOF-HAS configuration is performed 3. MUSIC (real ONAP) docker image is up and running 4. A&AI simulator docker image is up and running and it is populated in such a way that OOF cache can be built | Robot Framework is sending a REST call to OOF-HAS API – to Post a Plan Method - POST Endpoint: http://$(hostname ):8091/v1/plans | OOF-HAS should respond with HTTP 200 and body containing "the error reason" |
N.5 | Name: OOF-HAS Correct plan no result Interface (R’). Send a correct plan requiring vCPE Optimization request for a set of Candidates and constraints that cannot be satisfied | 1. OOF-HAS docker image is up and running 2. OOF-HAS configuration is performed 3. MUSIC (real ONAP) docker image is up and running 4. A&AI simulator docker image is up and running and it is populated in such a way that OOF cache can be built and that a set of recommendations can be returned | Robot Framework is sending a REST call to OOF-HAS API – to Post a Plan Method - POST Endpoint: http://$(hostname ):8091/v1/plans | OOF-HAS should respond with HTTP 200 and body containing the plan acceptance (i.e. the plan is in “template” status and a unique identifier) |
Robot Framework is sending a REST call to OOF-HAS API – to GET a final recommendations Method - GET Endpoint: http://$(hostname ):8091/v1/plans/<planId> | OOF-HAS should respond with HTTP 200 and body containing NO recommendations (i.e. the plan is in “done” status and no resources are returned back) | |||
N.6 | Name: Correct Plan with recommendations Interface (R’). Send a plan requiring vCPE Optimization request for a set of Candidates | 1. OOF-HAS docker image is up and running 2. OOF-HAS configuration is performed 3. MUSIC (real ONAP) docker image is up and running 4. A&AI simulator docker image is up and running and it is populated in such a way that OOF cache can be built and that a set of recommendations can be returned | Robot Framework is sending a REST call to OOF-HAS API – to Post a Plan Method - POST Endpoint: http://$(hostname ):8091/v1/plans | OOF-HAS should respond with HTTP 200 and body containing the plan acceptance (i.e. the plan is in “template” status and a unique identifier) |
Robot Framework is sending a REST call to OOF-HAS API – to GET a final recommendations Method - GET Endpoint: http://$(hostname ):8091/v1/plans/<planId> | OOF-HAS should respond with HTTP 200 and body containing the plan recommendations (i.e. the plan is in “done” status and a set of optimized vCPEs is returned to the caller ) | |||
Appendix A: Overview of ONAP Testing Requirements
TODO
Appendix B: Overview of OOF Scope
TODO
Overview of OOF-OSDF Scope
General Description
The OOF-OSDF is meant to provide an environment for creating policy-driven optimization applications in a declarative manner easily. It also provides an execution environment for these models to be interpreted and run. Additionally, it supports external, custom optimizers such as the HAS application by providing various levels of functionality to the optimization applications. For example, the OSDF may fetch and translate policies for HAS, or it may fetch policies and data for another application.
Technical Description for OOF-OSDF Functionality related to OOF-HAS
The OOF-OSDF is provides the following functionality to support OOF-HAS:
- Provide an end point for SO to make homing requests
- Ensure authentication and validate the incoming request payload based on a model (Python Schematics model based on the SO-OOF API)
- Fetch policies relevant to the SO's request (e.g. based on specific use case such as vCPE) and ensure that the policies are valid (well formed and contain required attributes)
- Send response to SO that the request is accepted and is in processing (or send an error response)
- Create a "template" (request payload) for OOF-HAS and submit the request to OOF-HAS
- Periodically poll OOF-HAS for request processing status and optimization solution (with a configurable timeout) and validate the response based on a model (Python Schematics model)
- Post the optimization solution to the call-back URL specified in the request from SO in the format defined by SO-OOF API (or send an error response)
Overview of OOF-HAS Scope
General Description
TODO
Technical Description for OOF-HAS Functionality
TODO
Appendix C: Resources and Links
- Notes on creating a CSIT test script: https://wiki.onap.org/display/DW/Creating+a+CSIT+Test
Policy Team's CSIT Functional Test Cases by Pamela Dragosh. The OOF-OSDF test cases are adapted from that page.
- Slides on Platform Maturity Requirements for Beijing Release: https://wiki.onap.org/download/attachments/16002054/Platform%20Maturity%20Level%20proposal%2013Dec2017v2.pdf?version=1&modificationDate=1513625784000&api=v2
- Current Individual Project Commitment for supporting Platform Maturity Requirements for Beijing Release:
https://wiki.onap.org/display/DW/Beijing+Release+Platform+Maturity
ONAP 4 level CI/CD architecture: Integration (5/11/2017)