Complete framework documentation part for VNF 79/44679/1
authorMorgan Richomme <morgan.richomme@orange.com>
Mon, 9 Oct 2017 11:53:25 +0000 (13:53 +0200)
committerCedric Ollivier <cedric.ollivier@orange.com>
Tue, 10 Oct 2017 13:24:02 +0000 (13:24 +0000)
Change-Id: I4c59adfe1cfec278e0b267cc7a05e8addd45d034
Signed-off-by: Morgan Richomme <morgan.richomme@orange.com>
(cherry picked from commit ee2eb17dbe52418f6bdc6201f78b9f1e8858fdcc)

docs/com/pres/framework/framework.md
functest/core/vnf.py

index dfd7a21..7979bed 100644 (file)
@@ -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'
+```
 
 
 
index 517838a..507e276 100644 (file)
@@ -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