From ee2eb17dbe52418f6bdc6201f78b9f1e8858fdcc Mon Sep 17 00:00:00 2001 From: Morgan Richomme Date: Mon, 9 Oct 2017 13:53:25 +0200 Subject: Complete framework documentation part for VNF Change-Id: I4c59adfe1cfec278e0b267cc7a05e8addd45d034 Signed-off-by: Morgan Richomme --- docs/com/pres/framework/framework.md | 97 ++++++++++++++++++++++++++++++++++-- functest/core/vnf.py | 19 +++---- 2 files changed, 100 insertions(+), 16 deletions(-) diff --git a/docs/com/pres/framework/framework.md b/docs/com/pres/framework/framework.md index dfd7a215..7979bede 100644 --- a/docs/com/pres/framework/framework.md +++ b/docs/com/pres/framework/framework.md @@ -306,15 +306,102 @@ run: -## Euphrates +## class VNF +bases: TestCase + +base model for VNF onboarding testing + + +### methods + +| Method | Purpose | +|-----------------------|---------------------------------------------------| +| prepare() | prepare VNF env (user, tenant, security group,..) | +| run(**kwargs) | run VNF test case | +| deploy_orchestrator() | deploy cloudify, ONAP, OpenBaton,... (optional) | +| deploy_vnf() | deploy the VNF | +| test_vnf() | run tests on the VNF | + + +### run(**kwargs) + +- deploys an orchestrator if needed (e.g. heat, OpenBaton, Cloudify, ONAP, Juju) +- deploys the VNF +- performs tests on the VNF + + +### prepare() + +- creates a user +- creates a Tenant/Project +- allocates admin role to the user on this tenant + + +### deploy_orchestrator() + +- deploys an orchestrator (optional) +- if this function is overridden then raise orchestratorDeploymentException if error during orchestrator deployment + + +### deploy_vnf() + +- **MUST be implemented** by vnf test cases. The details section MAY be updated in the vnf test cases. +- The deployment can be executed via a specific orchestrator or using build-in orchestrators such as heat, openbaton, cloudify, juju, ONAP, ... +- returns: + True if the VNF is properly deployed + False if the VNF is not deployed +- raises VnfDeploymentException if error during VNF deployment + + +### test_vnf() + +- **MUST be implemented** by vnf test cases. The details section MAY be updated in the vnf test cases. +- Once a VNF is deployed, it is assumed that specific test suite can be run to validate the VNF. +- returns: + True if VNF tests are PASS + False if test suite is FAIL +- raises VnfTestException if error during VNF tests + + +## Your fifth test case -### Next actions -- __to finish VNF abstraction (coverage + pylint)__ -- to publish doc API +### fifth.py -Please see [Functest Euphrates page](https://wiki.opnfv.org/display/functest/Functest+Euphrates+page) for more details +```python +#!/usr/bin/env python + +from functest.core import vnf + +class Vnf(vnf.VnfOnBoarding): + + def deploy_vnf(self): + print "Deploy your VNF here" + print "Feed orchestrator with VNF descriptor" + return 0 + + def test_vnf(self): + print "Test your VNF here" + return 0 +``` + + +### functest/ci/testcases.yaml + +```yaml +case_name: fifth +project_name: functest +criteria: 100 +blocking: true +description: '' +dependencies: + installer: '' + scenario: '' +run: + module: 'fifth' + class: 'Vnf' +``` diff --git a/functest/core/vnf.py b/functest/core/vnf.py index 517838a7..507e2765 100644 --- a/functest/core/vnf.py +++ b/functest/core/vnf.py @@ -55,16 +55,16 @@ class VnfOnBoarding(base.TestCase): """ Run of the VNF test case: - * Deploy an orchestrator if needed (e.g. heat, cloudify, ONAP), + * Deploy an orchestrator if needed (e.g. heat, cloudify, ONAP,...), * Deploy the VNF, * Perform tests on the VNF A VNF test case is successfull when the 3 steps are PASS If one of the step is FAIL, the test case is FAIL - Returns: - TestCase.EX_OK if result is 'PASS'. - TestCase.EX_TESTCASE_FAILED otherwise. + Returns: + TestCase.EX_OK if result is 'PASS'. + TestCase.EX_TESTCASE_FAILED otherwise. """ self.start_time = time.time() @@ -137,9 +137,8 @@ class VnfOnBoarding(base.TestCase): """ Deploy an orchestrator (optional). - If function overwritten - raise orchestratorDeploymentException if error during orchestrator - deployment + If this method is overriden then raise orchestratorDeploymentException + if error during orchestrator deployment """ self.__logger.info("Deploy orchestrator (if necessary)") return True @@ -152,10 +151,8 @@ class VnfOnBoarding(base.TestCase): The details section MAY be updated in the vnf test cases. The deployment can be executed via a specific orchestrator - or using nuild-in orchestrators such as: - - * heat, openbaton, cloudify (available on all scenario), - * open-o (on open-o scenarios) + or using build-in orchestrators such as heat, OpenBaton, cloudify, + juju, onap, ... Returns: True if the VNF is properly deployed -- cgit 1.2.3-korg