Status

 DRAFT

Submitter
Contributors
Proposed ReleaseDublin
JIRA Ticket(s)

VVP-120 - Getting issue details... STATUS


Abstract


The core component of the VNF Validation Program (VVP) is the validation scripts that verify that a set of HEAT templates adhere to the ONAP requirements specified in the VNF Requirement's HEAT section.  As of the Casablanca release, there are two methods for executing the validation scripts provided with VVP:

  • Execute via the command-line (including setting up the necessary Python environment and dependencies)
  • Deploy a huge multi-container, web platform that can both execute and manage the engagement of VNF HEAT validation

While executing the validation scripts from the command line is helpful when it comes to developing VNFs for ONAP, especially if you are working in larger teams, having tools locally on your own machine is not ideal, because no one else has direct access to your toolchain. Taking into consideration, that the current web platform is gonna get deprecated due to its size and complexity, there will be no way to directly map the changes done to the source code to the test results, which makes it harder to find bugs quickly. Also, there is most likely always management involved in the development process, especially when it comes to actual business. There will be no way of tracking the progress of a VNF development process at a high level. The VVP-web approach should address this gaps.

Although there is a lot of functionality involved with this approach, the final product should be a one-click deployment with minimal needs in terms of resources and infrastructure.

After seeing a demo of the Stand-alone VVP Tool I added some additional proposals on the reports that are getting generated by the application.

Rationale/Goals

  • Allow users to deploy a web-based validation platform with one click.
  • Provide a version-controlled validation with history and reports on the status of the VNF.
  • Enable users to validate HEAT templates that are not under git by simply uploading them as a ZIP file.
  • Allow non-technical users to get an overview of the VNF development process by using a measurement feature.
  • Ensure that the core validation-scripts remain modular and independent of the application. The implementation of the web platform should not impact the scripts being used in other scenarios such as a web app, docker container, etc.
  • Allow Operators/Service Providers to extend and execute additional validations based on their specific needs and ONAP implementations.
  • Ensure the application is portable across a wide range of operating systems and environments by proving it as a container based environment.


Use Cases

ID

VVP-Web-1

Title

Simple Heat validation

Description

A user wants to validate a set of HEAT templates

Primary Actor

User

Preconditions

VVP-web is set up on a server accessible from the user's workstation.

Main Success Scenarios

  1. The user accesses the web page
  2. The user uploads the HEAT template to the server
  3. The server runs the validation scripts in the background
  4. The server prompts the user with a results page that concludes all test runs

Exception Scenarios

4. The report lists all passed and failed tests and provides the following additional details for the violations:

    1. The file or files with the violation. A link to the file.
    2. The name/ID of the validation that failed
    3. A detailed error message
    4. (Proposal) The requirement(s) ID and text that was violated. This will be pulled directly from the JSON export of the VNF Requirements project
    5. (Proposal) Suggested resolution steps that may aid in correcting the issue

Post Conditions

The user gets a report that shows the current state of the VNF regarding the fulfilment of the ONAP requirements.

ID

VVP-Web-2

Title

VNF project 1

Description

A team from a VNF provider develops a VNF for an operator

Primary Actor

Developer

Preconditions

VVP-web is set up on a server accessible from all team members local workstations.

Main Success Scenarios

  1. The developer changes some code.
  2. The developer pushes the code to the vvp-web server.
  3. The server registers that new code got pushed.
  4. The server runs the vvp-validation-scripts in the background
  5. The developer goes to the project overview page.
  6. The developer clicks on the latest run which is referenced by the commit ID it is linked to
  7. The developer accesses the validation report
  8. The developer sees all tests passed. No further action needed.

Exception Scenarios

  1. The developer changes some code.
  2. The developer pushes the code to the vvp-web server.
  3. The server registers that new code got pushed.
  4. The server runs the vvp-validation-scripts in the background
  5. The developer goes to the project overview page.
  6. The developer clicks on the latest run which is referenced by the commit ID it is linked to
  7. The developer accesses the validation report
  8. The report contains failed tests and provides the following additional details for the violations:
    1. The file or files with the violation. A link to the file.
    2. The name/ID of the validation that failed
    3. A detailed error message
    4. (Proposal) The requirement(s) ID and text that was violated. This will be pulled directly from the JSON export of the VNF Requirements project
    5. (Proposal) Suggested resolution steps that may aid in correcting the issue
  9. The developer analyses the violations
  10. The developer fixes the violations
  11. Starts again at 2.

Post Conditions

The developer developed a fully ONAP compliant VNF.

ID

VVP-Web-3

Title

VNF project 2

Description

A team from a VNF provider develops a VNF for an operator

Primary Actor

Project Manager

Preconditions

VVP-web is set up on a server accessible from all team members local workstations.

Main Success Scenarios

  1. The project manager wants to determine the progress of the project.
  2. The project manager navigates to the project overview page
  3. The project manager looks at the graph at the very top of the page, showing the number of tests failed, skipped and passed over time/commits

Exception Scenarios


Post Conditions

The project manager has an overview of how the development is progressing.

ID

VVP-Web-4

Title

VNF LFN certification

Description

VVP-web as an LFN certification portal, where VNF providers can certify there VNF as ONAP compliant

Primary Actor

LFN member

Preconditions

VVP-web is implemented as a certification portal like OPNVFs "verified program"

Main Success Scenarios

  1. A member of the Linux foundation developed a VNF that should run with ONAP
  2. He wants to provide this VNF to the ONAP community, which requires an ONAP compliant certificate
  3. To get this certificate he visits the VVP certification website
  4. He logs in with his Linux foundation ID
  5. He uploads his HEAT templates and starts the validation
  6. If the validation was successful the platform automatically issues a certificate for the VNF he provided and includes into the list of certified VNFs

Exception Scenarios


Post Conditions

Everyone that wants to set up a VNF with ONAP can now visit the portal and search for his desired VNF to check if its ONAP certified and there for compliant with the requirements

ID

VVP-Web-5

Title

VNF LFN live certification

Description

VVP-web as an LFN certification portal, where Operators can check the live status of any open VNF

Primary Actor

LFN member

Preconditions

VVP-web is implemented as a certification portal like OPNVFs "verified program"

Main Success Scenarios

  1. A member of the Linux Foundation wants to check the compliance status of a VNF project
  2. He visits the VVP certification portal and logs in to his LFN account
  3. He browses the open VNF projects list and clicks on the project he is interested in
  4. The project summary with a historical view of the test status and the current state of compliance is shown

Exception Scenarios


Post Conditions

Anyone can check the live status of any open VNF projects that are tracked in the portal

ID

VVP-Web-6

Title

VNF LFN certification collaboration platform 1

Description

VVP-web as a collaboration platform with certification capabilities

Primary Actor

LFN member

Preconditions

VVP-web is implemented as a certification portal like OPNVFs "verified program"

Main Success Scenarios

  1. A member of the Linux Foundation starts a new open source VNF project
  2. He creates a repository on any externally accessible Git instance
  3. He visits the VVP certification portal and logs in with his Linux Foundation ID
  4. He creates the VNF project again and links the repository containing the source code with the VVP certification project
  5. He makes the project publically accessible

Exception Scenarios


Post Conditions

Anyone can check the live status of the VNF project.

ID

VVP-Web-7

Title

VNF LFN certification collaboration platform 2

Description

VVP-web as a collaboration platform with certification capabilities

Primary Actor

VNF provider developer team

Preconditions

VVP-web is implemented as a certification portal like OPNVFs "verified program"

Main Success Scenarios

  1. A VNF provider develops a VNF for a single vendor
  2. The team sets up the VNf project on an internal Git instance which can be accessed from outside the internal network
  3. The team sets up the VNF project on the VVP certification platform as a private project
  4. The team gives access rights to all developers and the responsible staff from the operator

Exception Scenarios


Post Conditions

The responsible employees form the operator can check the state of the prroject live on the certifiaction platform.

Also the VNF project gets a live certification which indicates whether it is ONAP compliant or not.

Noone that is not involved in the project can see or access the project.


Features

A set of seed code has been developed that addresses the majority of features and use cases described.  As part of the community process, all aspects can be reviewed and evolved.  The following table summarizes the initially proposed features for Dublin and their current status. Some items are addressed as part of the seed code while others will be addressed in Dublin if the proposal is accepted.

FeaureIDDescriptionStatus
F-1Support Validation of ZIP files

COMPLETE

F-2Support Validation of Git repositories

COMPLETE

F-3Provide results page which concludes the validation

COMPLETE

F-4Provide repository overview page, which provides a history on all ever done changes and validation runs for the Git repository

COMPLETE

F-5

Implement GitWeb to allow users to check the changes done to the VNF in a given commit associated with a validation run

COMPLETE

F-6Provide a repository analytics graph to track progress

COMPLETE

F-7Use the reports generated by the core scripts (provide a download function for Excel and CSV)

DUBLIN

F-8Brand the web application according to the ONAP standards

DUBLIN

F-9Allow users to link their own Git instance instead of using the built-in one (e.g. company GitLab etc.)

DUBLIN

F-10Extended analytics capabilities for the repository summary page

DUBLIN

F-11Implement an user management using Linux Foundation accounts

DUBLIN CRITICAL

F-12Integrate the web portal as a part of the LFN

DUBLIN

F-13Implement a database that holds certification information for every project created on the platform

DUBLIN

F-14Implement a certification utility, that issues certificates for VNFs that are compliant with the ONAP VNF requirements

DUBLIN

F-15Enable the linkage of multiple repositories to one certification project

DUBLIN

F-16Provide a searchable list of the VNFs that got certified using the portal with commit or version of the VNF that got checked (maybe create a fingerprint of each checked VNF to guarantee the certified code not being changed without knowledge)

DUBLIN

F-17Implement named projects as a new way of collaboration on VNF certification.

DUBLIN

F-18Implement an access rights system, which allows project owners to restrict the visibility of their certification projects to only specific Linux Foundation accounts or the public.

DUBLIN

F-19Introduce a groups feature that can depict companies or organizations. A group should be mapped to the Linux Foundation accounts of the members.

DUBLIN PROPOSAL

F-20Provide an open API

DUBLIN CRITICAL


Screenshots

The following screenshots are based on the seed code implementation, and subject to further review, feedback, and updates.


Simple HEAT validation





Git repository





  • No labels

5 Comments

  1. Thanks for putting this together.  A few questions on the use cases...

    1) Can the site be pointed at multiple repos?   If so, how does the VNF provider find a given VNF among the configured repos?

    2) If a user is simply uploading a zip file is a history or record kept of it the results?

    3) Is the assumption for Dublin that there would be no authentication or registration involved?  If so, how would a new repos be configured with the portal?

    4) Can you elaborate a bit on the frameworks/libraries you used to build this? 

  2. Trevor Lovett thank you for your questions.

    1) I am not sure what you mean by that exactly. If you mean, if the "project" page with the concluded results can have multiple repositories linked, this is currently not possible but would be a good idea for an improvement under Dublin.

    2) The result is kept and will be accessible under /result/run_uid.

    3) Currently, you generate a repository by going to the main page and press on the "git" button. The repository is identified by a unique ID, which can be used to access the repository. The ID is complex enough, that it provides security by obscurity, so we decided on not to use any form of authentication or registration for this first version. Anyone that has the UID of a repository can access it. Due to the small changes to the scope of this tool recently I would agree on the fact, that a registration and authentication module might be needed. This is why I put it as a question and marked it as a proposal. We should discuss this today in the weekly.

    4) I gonna add the information directly to the main post.

    1. Re: #1 - Yes, that is the use case I'm referring to.  It would seem to be useful to be able to search and view the list of onboarded VNFs that have been validated

      1. Yeah, I completely agree. To enable this feature with multiple users from different projects working on one VVP-web instance we the application would need an authentication and registration module and user-based access restriction for projects.

  3. I just updated the use cases to reflect what Morgan Richomme proposed in the weekly yesterday. I also added on the features list what I think has to be done in order to realize the proposal (plus some proposal features that are not needed for core functionality I guess).

    Please feel free to provide some feedback and discuss the proposals further.

    I gonna add some technical details about the current prototype later this day. I am still working on some graphics to illustrate how it works in the current prototype version.