From 18d4e7f43bf6ed383b4982d3f6915e82ba203ea3 Mon Sep 17 00:00:00 2001 From: Miruna Paun Date: Thu, 29 Aug 2019 11:17:57 +0200 Subject: Updates and clarification of AF-TH manual. Change-Id: I8d59b9eacf0b652ff6cf4075406ce036f79fd6be --- .../doc/automation_framework_test_harness.xml | 674 ++++++++++++--------- .../doc/components.xml | 59 +- .../doc/getting_started.xml | 167 +++-- .../doc/overview.xml | 18 +- .../doc/troubleshooting_guide.xml | 36 +- 5 files changed, 542 insertions(+), 412 deletions(-) (limited to 'doc') diff --git a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/automation_framework_test_harness.xml b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/automation_framework_test_harness.xml index d7771bc..2aea23d 100644 --- a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/automation_framework_test_harness.xml +++ b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/automation_framework_test_harness.xml @@ -147,8 +147,8 @@ Python script for running the test case. The /vnf folder contains Python scripts for - onboarding and offboarding a VNF bundle or image, instantiating a VNF, - controlling a VNF instance or destroying an existing one. + onboarding and offboarding a VNF image, instantiating a VNF, controlling a + VNF instance or destroying an existing one. The eneaUcpeMgr.py file acts as a library for the (Python) Automation Framework scripts. It contains common functions @@ -159,14 +159,16 @@ The Python unit-test class defined in the unittestSuite.py script provides a way to automate - the execution of specific test cases for each supported Python script. - This class requires a test suite configuration JSON file that contains a - dictionary list of the Python scripts to be processed. Each dictionary - must contain the path of the Python script to be loaded and the path to - the file describing the test cases to be performed against the - designated script. - - Steps for running the Python unit-test suite onto the uCPE Manager + the execution of specific test cases for each supported Python + script. + + This class requires a test suite configuration JSON file that + contains a dictionary list of the Python scripts to be processed. Each + dictionary must contain the path of the Python script to be loaded and + the path to the file describing the test cases to be performed against + the designated script. + + Steps for running the Python unit-test suite on the uCPE Manager are provided below.
@@ -197,16 +199,16 @@ Options:
- Configuring Unit-Test JSON File<remark>Starting from this - section onward NOTHING has been proofed</remark> + Configuring Unit-Test JSON File - The unit-test suite JSON configuration file contains a list of - dictionaries, each dictionary indicating the path of the Python module - to load and the test cases configuration file to be executed against + The Unit-Test suite JSON configuration file contains a list of + dictionaries. Each dictionary indicates the path of the Python module + to load and the test case's configuration file to be executed against the loaded module. - Sample unit-test configuration file describing the Fortigate - deployment scenario, fortigateDeploy.json: + Below is a sample unit-test configuration file, describing the + Fortigate deployment scenario + fortigateDeploy.json: [ { @@ -237,8 +239,11 @@ Options: "config": "config/controlVNFI.json", "module": "../vnf/controlVNFI.py" } -]Sample unit-test configuration file describing the Fortigate - cleanup scenario, fortigateCleanup.json: +] + + Below is a sample unit-test configuration file, describing the + Fortigate cleanup scenario + fortigateCleanup.json: [ { @@ -263,19 +268,19 @@ Options: } ] - "config" key contains the path to the test cases configuration - file. + The config key contains the path to the test + case's configuration file. - "module" key contains the path to the Python script to be - executed. + The module key contains the path to the + Python script to be executed.
Unit-Test Configuration Options - The unit-test behavior can be tweaked in a number of ways - through the following options set through the eneaUcpeMgr.py - file:# Defaults for the framework + Unit-test behavior can be tweaked through setting any of the + following options. This is done through the + eneaUcpeMgr.py file:# Defaults for the framework username = "admin" password = "admin" host = None @@ -296,47 +301,116 @@ failfast = True # DEBUG 10 # NOTSET 0 fileLoggingLevel = logging.DEBUG -consoleLoggingLevel = logging.INFOusername - user to be used - when authenticating to uCPE Manager; this can be overwritten by - setting the Python unit-test suite command line option -u. +consoleLoggingLevel = logging.INFO + + + eneaUcpeMgr.py Options + + + + + + + + + + + Option + + Description + + + + + + username + + The user authentication used to log into the uCPE + Manager. This can be overwritten by setting the Python + unit-test suite command line option + -u. + + + + password + + The password used to log into the uCPE Manager. This + can be overwritten by setting the Python unit-test suite + command line option -p. + + + + host + + The IP address of the uCPE Manager host. This can be + overwritten by setting the Python unit-test suite command + line option -H. + + + + devicename - password - password to be used when authenticating to uCPE - Manager; this can be overwritten by setting the Python unit-test suite - command line option -p. + The name of the vCPE agent against which tests will + be performed. This can be overwritten by setting the Python + unit-test suite command line option + -n. + - host - IP address of the uCPE Manager host; this can be - overwritten by setting the Python unit-test suite command line option - -H. + + ftpUsername - devicename - name of the VCPE agent to perform the tests - against; this can be overwritten by setting the Python unit-test suite - command line option -n. + The user authentication used for the FTP connection + when onboarding a VNF image. This can be overwritten by + setting the Python script command line option + -f. + - ftpUsername - user to be used for the FTP connection when - onboarding a VNF bundle/image; this can be overwritten by setting the - Python script command line option -f. + + ftpPassword - ftpPassword - password to be used for the FTP connection when - onboarding a VNF bundle/image; this can be overwritten by setting the - Python script command line option -w. + The password used for the FTP connection when + onboarding a VNF image. This can be overwritten by setting + the Python script command line option + -w. + - ftpPort - port to be used for the FTP connection when onboarding - a VNF bundle/image; this can be overwritten by setting the Python - script command line option -P. + + ftpPort - failfast - describes the unit-test execution behavior on the - first error or failure encountered. + The port used for the FTP connection when onboarding + a VNF image. This can be overwritten by setting the Python + script command line option -P. + - fileLoggingLevel - sets the file logging level. + + failfast - consoleLoggingLevel - sets the console logging level. + Describes the unit-test execution behavior on the + first error or failure encountered. + + + + fileLoggingLevel + + Sets the file logging level. + + + + consoleLoggingLevel + + Sets the console logging level. + + + +
Python Unit-Test Suite Logging Logging messages are displayed in the console and also saved to - the specified log file depending on the chosen logging level. + the specified log file. They are shown depending on the chosen logging + level. Logging messages are ranked by their severity level:CRITICAL 50 @@ -344,24 +418,29 @@ ERROR 40 WARNING 30 INFO 20 DEBUG 10 -NOTSET 0Logging messages which are less severe than the - logging level set will be ignored. +NOTSET 0 - Setting console logging level to INFO is done through the - consoleLoggingLevel option:consoleLoggingLevel = logging.INFOSetting - file logging level to DEBUG is done through the fileLoggingLevel - option:fileLoggingLevel = logging.DEBUG + + Logging messages less severe than the set logging level will + be ignored. + + + Setting the console logging level to INFO is done through the + consoleLoggingLevel option:consoleLoggingLevel = logging.INFOSetting + the file logging level to DEBUG is done through the + fileLoggingLevel option:fileLoggingLevel = logging.DEBUG
Running Python Unit-Test Suite - Sample unit-test command line options for running the Fortigate - deployment scenario: + Below you'll find sample unit-test command line options for + running the Fortigate deployment + scenario: $ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s fortigateDeploy.json -d "Fortigate deployment scenario"Setting - console logging level to DEBUG:consoleLoggingLevel = logging.DEBUGconsoleLoggingLevel = logging.DEBUGExpected Output:2019-03-07 18:03:20,791 - DEBUG: Started logging Running Fortigate deployment scenario... @@ -493,11 +572,12 @@ Ran 12 tests in 33.328s OK - Sample unit-test command line options for running the Fortigate - cleanup scenario:$ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s + Below you'll find sample unit-test command line options for + running the Fortigate cleanup + scenario:$ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s fortigateCleanup.json -d "Fortigate cleanup scenario" - Setting console logging level to INFO: consoleLoggingLevel = logging.INFO + Setting the console logging level to INFO: consoleLoggingLevel = logging.INFO Expected Output:Running Fortigate cleanup scenario... @@ -540,7 +620,8 @@ OK
Adding a uCPE Device - Adds a uCPE device to the uCPE manager. + Steps for adding, configuring and running a uCPE device onto the + uCPE manager are described below .
Script Options @@ -548,7 +629,7 @@ OK $ python addDevice.py -h Usage: addDevice.py [options] -Add a uCPE in Enea uCPE Manager. +Add a uCPE device in Enea uCPE Manager. Options: --version show program's version number and exit @@ -568,10 +649,10 @@ Options:
Configuring the JSON File - The add device suite JSON configuration file should contain a - list of dictionaries, each dictionary indicating the test case name - and the test case arguments passed to the addDevice Python - module. + The JSON configuration file needed for adding a uCPE device + should contain a list of dictionaries. Each dictionary indicates the + test case name and the arguments passed to the + addDevice Python module. Sample configuration file in JSON format: @@ -583,7 +664,8 @@ Options: } ] - Sample intelc3850-2.json configuration + Sample + intelc3850-2.json configuration file: { @@ -602,8 +684,8 @@ Options:
Running the Python Module - The addDevice Python module can be executed individually by - running the following command line: + The addDevice Python module can be executed + independently by running the following command: $ python addDevice.py -u admin -p admin -H localhost -f config/device.json 2019-03-07 17:33:10,755 - DEBUG: Started logging @@ -619,7 +701,8 @@ Options:
Removing a uCPE Device - Removes a uCPE device from uCPE manager. + Steps for removing a uCPE device from the uCPE manager are + described below.
Script Options @@ -647,10 +730,10 @@ Options:
Configuring the JSON File - The remove device suite JSON configuration file should contain a - list of dictionaries, each dictionary indicating the test case name - and the test case arguments passed to the removeDevice Python - module. + The JSON configuration file needed to remove a uCPE device + should contain a list of dictionaries. Each dictionary indicates the + test case name and the arguments passed to the + removeDevice Python module. Sample unit-test JSON file format: @@ -662,7 +745,8 @@ Options: } ] - Sample intelc3850-2.json configuration + Sample + intelc3850-2.json configuration file: { @@ -673,8 +757,8 @@ Options:
Running the Python Module - The removeDevice Python module can be executed individually by - running the following command line: + The removeDevice Python module can be + executed individually by running the following command: $ python removeDevice.py -u admin -p admin -H localhost -f ../../lab_config/intelc3850-2/intelc3850-2.json @@ -693,8 +777,8 @@ host
Waiting a uCPE Device - Wait for uCPE to connect to the Enea uCPE Manager after - installation. + Steps and details for how to Wait a uCPE device to connect to the + uCPE Manager after installation, are described below.
Script Options @@ -725,10 +809,10 @@ Options:
Configuring the JSON File - The wait device suite JSON configuration file should contain a - list of dictionaries, each dictionary indicating the test case name - and the test case arguments passed to the waitDeviceUp Python - module. + The JSON configuration file needed to wait a uCPE device should + contain a list of dictionaries. Each dictionary indicates the test + case name and the test case arguments passed to the + waitDeviceUp Python module. Sample unit-test JSON file format: @@ -740,7 +824,8 @@ Options: } ] - Sample intelc3850-2.json configuration + Sample + intelc3850-2.json configuration file: { @@ -751,8 +836,9 @@ Options:
Running the Python Module - The waitDeviceUp Python module can be executed individually by - running the following command line:$ python waitDeviceUp.py -u admin -p admin -H localhost -t 60 -f + The waitDeviceUp Python module can be + executed individually by running the following command + line:$ python waitDeviceUp.py -u admin -p admin -H localhost -t 60 -f ../../lab_config/intelc3850-2/intelc3850-2.json 2019-03-07 18:03:21,132 - DEBUG: Started logging 2019-03-07 18:03:21,133 - INFO: Wait uCPE device @@ -766,16 +852,16 @@ Options:
-
- Binding a network interface + Binding a Network Interface - Binds a physical network interface to a DPDK or SR-IOV. - + How to Bind a physical network interface to a DPDK or SR-IOV is + detailed below.
Script Options @@ -875,10 +961,10 @@ format
Configuring the JSON File - The bind network interface suite JSON configuration file should - contain a list of dictionaries, each dictionary indicating the test - case name and the test case arguments passed to the - bindNetworkInterface Python module. + The JSON configuration file needed to bind a physical network + interface should contain a list of dictionaries. Each dictionary + indicates the test case name and the test case arguments passed to the + bindNetworkInterface Python module. Sample unit-test JSON file format:[ @@ -890,12 +976,14 @@ format "name": "Bind wan NIC to DPDK ", "args": "-f ../../lab_config/intelc3850-2/wan_nic.json" } -]Sample lan_nic.json configuration +]Sample + lan_nic.json configuration file:{ "name": "0000:01:00.1", "type": "dpdk", "subType": "igb_uio" -}Sample wan_nic.json configuration +}Sample + wan_nic.json configuration file:{ "name": "0000:03:00.2", "type": "dpdk", @@ -906,8 +994,8 @@ format
Running the Python Module - The bindNetworkInterface Python module can be executed - individually by running the following command line: + The bindNetworkInterface Python module can be + executed individually by running the following command line: $ python bindNetworkInterface.py -u admin -p admin -H localhost -f ../../lab_config/intelc3850-2/lan_nic.json -n intelc3850-2 @@ -925,7 +1013,8 @@ format
Unbinding a Network Interface - Unbinds a physical network interface from DPDK or SR-IOV. + How to Unbind a physical network interface from a DPDK or SR-IOV + is described below.
Script Options @@ -956,10 +1045,10 @@ Options:
Configuring the JSON File - The unbind network interface suite JSON configuration file - should contain a list of dictionaries, each dictionary indicating the + The JSON configuration file needed to unbind a network interface + should contain a list of dictionaries. Each dictionary indicates the test case name and the test case arguments passed to the - unbindNetworkInterface Python module. + unbindNetworkInterface Python module. Sample unit-test JSON file format:[ @@ -974,16 +1063,16 @@ Unbinds a physical interface to the DPDK or SR-IOV } ] - Sample lan_nic.json configuration - file: + Sample lan_nic.json + configuration file: { "name": "0000:01:00.1", "type": "dpdk" } - Sample wan_nic.json configuration - file: + Sample wan_nic.json + configuration file: { "name": "0000:03:00.2", @@ -995,8 +1084,9 @@ Unbinds a physical interface to the DPDK or SR-IOV
Running the Python Module - The unbindNetworkInterface Python module can be executed - individually by running the following command line: + The unbindNetworkInterface Python module + can be executed individually by running the following command + line: $ python unbindNetworkInterface.py -u admin -p admin -H localhost -f ../../lab_config/intelc3850-2/lan_nic.json -n intelc3850-2 @@ -1013,13 +1103,14 @@ Unbinds a physical interface to the DPDK or SR-IOV
Getting a Network Interface - - List the network interfaces for a device. -
- Script Options - -$ python getNetworkInterfaces.py -h + Details and steps on how to List the network interfaces for a + device, are described below. + +
+ Script Options + + $ python getNetworkInterfaces.py -h 2019-07-04 16:35:50,496 - DEBUG: Started logging 2019-07-04 16:35:50,496 - INFO: Dump NICs Usage: getNetworkInterfaces.py [options] @@ -1030,19 +1121,20 @@ Options: -u USERNAME, --username=USERNAME Enea uCPE Manager login username -p PASSWORD, --password=PASSWORD Enea uCPE Manager login password -H HOST, --host=HOST Enea uCPE Manager host name or IP address - -n DEVICENAME, --device-name=DEVICENAME Name of the uCPE to get network interfaces from + -n DEVICENAME, --device-name=DEVICENAME Name of the uCPE to get network / + interfaces from Mandatory options: - -H/--host, -n/--device-name - -
+ -H/--host, -n/--device-name
+
+ +
+ Running the Python Module + + The getNetworkInterfaces Python module can be + executed individually by running the following command: -
- Running the Python Module - The getNetworkInterfaces Python module can be executed individually - by running the following command: - -$ python getNetworkInterfaces.py -H localhost -n intelc3850-2 + $ python getNetworkInterfaces.py -H localhost -n intelc3850-2 2019-07-04 16:03:47,580 - DEBUG: Started logging 2019-07-04 16:03:47,580 - INFO: Dump NICs 2019-07-04 16:03:47,609 - DEBUG: Login successful on host 'localhost' @@ -1086,15 +1178,14 @@ $ python getNetworkInterfaces.py -H localhost -n intelc3850-2 2019-07-04 16:03:48,013 - DEBUG: 2019-07-04 16:03:48,013 - INFO: Done 2019-07-04 16:03:48,029 - DEBUG: Logging out and exiting... - +
-
-
Create an OVS Network Bridge - Create an OVS Bridge on a device. + Instructions on how to Create an OVS Bridge on a device are + detailed below.
Script Options @@ -1124,10 +1215,10 @@ Options:
Configuring the JSON File - The new network bridge suite JSON configuration file should - contain a list of dictionaries, each dictionary indicating the test - case name and the test case arguments passed to the newNetworkBridge - Python module. + The JSON configuration file needed to create a new network + bridge should contain a list of dictionaries. Each dictionary + indicates the test case name and the test case arguments passed to the + newNetworkBridge Python module. Sample unit-test JSON file format: @@ -1143,16 +1234,16 @@ Options: } ] - Sample lan_br.json configuration - file: + Sample lan_br.json + configuration file: { "name": "lan_br", "interfaces": ["0000:01:00.1"] } - Sample wan_br.json configuration - file: + Sample wan_br.json + configuration file: { "name": "wan_br", @@ -1163,8 +1254,8 @@ Options:
Running the Python Module - The newNetworkBridge Python module can be executed individually - by running the following command line: + The newNetworkBridge Python module can be + executed individually by running the following command line: $ python newNetworkBridge.py -u admin -p admin -H localhost -f ../../lab_config/intelc3850-2/lan_br.json -n intelc3850-2 @@ -1182,7 +1273,8 @@ Options:
Delete an OVS Network Bridge - Delete an OVS Bridge from a device. + How to Delete an OVS Bridge from a device is detailed in the + following.
Script Options @@ -1212,10 +1304,10 @@ Options:
Configuring the JSON File - The delete network bridge suite JSON configuration file should - contain a list of dictionaries, each dictionary indicating the test - case name and the test case arguments passed to the delNetworkBridge - Python module. + The JSON configuration file needed to delete a network bridge + should contain a list of dictionaries. Each dictionary indicates the + test case name and the test case arguments passed to the + delNetworkBridge Python module. Sample unit-test JSON file format: @@ -1231,15 +1323,15 @@ Options: } ] - Sample lan_br.json configuration - file: + Sample lan_br.json + configuration file: { "name" : "lan_br" } - Sample wan_br.json configuration - file: + Sample wan_br.json + configuration file: { "name" : "wan_br" @@ -1249,8 +1341,8 @@ Options:
Running the Python Module - The delNetworkBridge Python module can be executed individually - by running the following command line: + The delNetworkBridge Python module can be + executed individually by running the following command line: $ python delNetworkBridge.py -u admin -p admin -H localhost -f ../../lab_config/intelc3850-2/lan_br.json -n intelc3850-2 @@ -1266,9 +1358,10 @@ Options:
- Onboard a VNF Bundle + Onboard a VNF Image - Onboard a VNF to Enea uCPE Manager. + The specifics of how to Onboard a VNF image onto the Enea uCPE + Manager is detailed below.
Script Options @@ -1302,10 +1395,10 @@ Options:
Configuring the JSON File - The onboard VNF suite JSON configuration file should contain a - list of dictionaries, each dictionary indicating the test case name - and the test case arguments passed to the onboardVNF Python - module. + The JSON configuration file needed to onboard a VNF image should + contain a list of dictionaries. Each dictionary indicates the test + case name and the test case arguments passed to the + onboardVNF Python module. Sample unit-test JSON file format:[ @@ -1319,8 +1412,8 @@ Options:
Running the Python Module - The onboardVNF Python module can be executed individually by - running the following command line: + The onboardVNF Python module can be + executed individually by running the following command line: $ python onboardVNF.py -u admin -p admin -f ftp -w ftp -H localhost -b ../../vnf_images/Fortigate.zip @@ -1337,10 +1430,10 @@ Options:
- Onboard a VNF Image + Onboard a VNF Image Raw - Onboard a VNF image in Enea uCPE Manager based upon its raw - constituents. + How to Onboard a VNF image in the uCPE Manager based upon its raw + constituents, is detailed in depth below.
Script Options @@ -1365,21 +1458,21 @@ Options: -P FTPPORT, --ftpPort=FTPPORT FTP port -i IMAGEPATH, --imagePath=IMAGEPATH - VNF image path - -b IMAGEINFO, --imageInfo=IMAGEINFO - File name of VNF image information in JSON format + VNF bundle image path + -b BUNDLEINFO, --bundleInfo=BUNDLEINFO + File name of VNF bundle information in JSON format Mandatory options: - -H/--host, -b/--imageInfo, -i/--imagePath + -H/--host, -b/--bundleInfo, -i/--imagePath
Configuring the JSON File - The onboard VNF image suite JSON configuration file should - contain a list of dictionaries, each dictionary indicating the test - case name and the test case arguments passed to the onboardVNFRaw - Python module. + The JSON configuration file needed to onboard a VNF image Raw + should contain a list of dictionaries. Each dictionary indicates the + test case name and the test case arguments passed to the + onboardVNFRaw Python module. Sample unit-test JSON file format: @@ -1392,7 +1485,8 @@ Options: } ] - Sample fortigateImage.json configuration + Sample + fortigateImage.json configuration file:{ "name" : "fortigateImage", "version" : "1.0", @@ -1434,8 +1528,8 @@ Options:
Running the Python Module - The onboardVNFRaw Python module can be executed individually by - running the following command line: + The onboardVNFRaw Python module can be + executed individually by running the following command line: $ python onboardVNFRaw.py -u admin -p admin -f ftp -w ftp -H localhost -b b ../../vnf_config/fortigateImage/fortigateImage.json -i @@ -1455,7 +1549,8 @@ Options:
Offboard a VNF - Offboard a VNF from Enea uCPE Manager. + Steps on how to Offboard a VNF from the uCPE Manager are detailed + below.
Script Options @@ -1483,10 +1578,10 @@ Options:
Configuring the JSON File - The offboard VNF suite JSON configuration file should contain a - list of dictionaries, each dictionary indicating the test case name - and the test case arguments passed to the offboardVNF Python - module. + The JSON configuration file needed to offboard a VNF should + contain a list of dictionaries. Each dictionary indicates the test + case name and the test case arguments passed to the + offboardVNF Python module. Sample unit-test JSON file format: @@ -1502,8 +1597,8 @@ Options:
Running the Python Module - The offboardVNF Python module can be executed individually by - running the following command line: + The offboardVNF Python module can be + executed individually by running the following command line: $ python offboardVNF.py -u admin -p admin -H localhost -n fortigateImage 2019-03-07 17:33:56,523 - DEBUG: Started logging @@ -1520,7 +1615,7 @@ Options:
Instantiate a VNF - Instantiate a VNF via Enea uCPE Manager. + Instantiating a VNF via the uCPE Manager is detailed below.
Script Options @@ -1552,10 +1647,10 @@ Options:
Configuring the JSON File - The instantiate VNF suite JSON configuration file should contain - a list of dictionaries, each dictionary indicating the test case name - and the test case arguments passed to the instantiateVNFI Python - module. + The JSON configuration file needed to instantiate a VNF should + contain a list of dictionaries. Each dictionary indicates the test + case name and the test case arguments passed to the + instantiateVNFI Python module. Sample unit-test JSON file format: @@ -1575,8 +1670,8 @@ Options:
Running the Python Module - The instantiateVNFI Python module can be executed individually - by running the following command line: + The instantiateVNFI Python module can be + executed individually by running the following command line: $ python instantiateVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -t fortigateImage -f ../../vnf_config/fortigateImage/fortigateFWInstance.json @@ -1599,7 +1694,8 @@ License("vnf_config/fortigateImage/fortigateLicense.lic")
Control a VNF Instance - Controls a VNF instance from Enea uCPE Manager. + How to Control a VNF instance from the Enea uCPE Manager is + detailed below.
Script Options @@ -1631,10 +1727,10 @@ Options:
Configuring the JSON File - The control VNF instance suite JSON configuration file should - contain a list of dictionaries, each dictionary indicating the test - case name and the test case arguments passed to the controlVNFI Python - module. + The JSON configuration file needed to control a VNF instance + should contain a list of dictionaries. Each dictionary indicates the + test case name and the test case arguments passed to the + controlVNFI Python module. Sample unit-test JSON file format: @@ -1662,8 +1758,8 @@ Options:
Running the Python Module - The controlVNFI Python module can be executed individually by - running the following command line: + The controlVNFI Python module can be + executed individually by running the following command line: $ python controlVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -i fortigateFWInstance -c stop @@ -1682,7 +1778,8 @@ fortigateFWInstance -c stop
Destroy a VNF Instance - Destroys a VNF instance from Enea uCPE Manager. + Steps and options on how to Destroy a VNF instance from the Enea + uCPE Manager are described below.
Script Options @@ -1712,10 +1809,10 @@ Options:
Configuring the JSON File - The destroy VNF instance suite JSON configuration file should - contain a list of dictionaries, each dictionary indicating the test - case name and the test case arguments passed to the destroyVNFI Python - module. + The JSON configuration file needed to destroy a VNF instance + should contain a list of dictionaries. Each dictionary indicates the + test case name and the test case arguments passed to the + destroyVNFI Python module. Sample unit-test JSON file format:[ @@ -1729,8 +1826,8 @@ Options:
Running the Python Module - The destroyVNFI Python module can be executed individually by - running the following command line: + The destroyVNFI Python module can be + executed individually by running the following command line: $ python destroyVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -i fortigateFWInstance @@ -1750,72 +1847,87 @@ fortigateFWInstance
Test Harness - All Test Harness sources are under <AF-TH-install-dir> - directory, except under the automation_framework sub-directory. See - chapter 4 for a complete tree listing. + All Test Harness sources are under the + <AF-TH-install-dir> directory and the host file + is the Ansible inventory file. See the complete tree listing at the + beginning of this chapter for details. The Ansible based Test Harness represents an example of how to structure all the files needed for creating automated test cases using the - AF and provides a way to implement them. The ansible.cfg file contains an - example of the Ansible default configuration. It offers the possibility to - display the Ansible console output in different ways, by setting the - stdout_callback to selective or debug. Default is set to selective to - print only certain tasks. It is recommended to switch on debug when a test - fails. By setting any_errors_fatal to True, task failures will be - considered fatal errors (the play execution will stop). The hosts file is - the Ansible inventory file. - - All the Playbooks that are executing AF python modules are run on - localhost. New entries have to be created for direct communication over - SSH with the boards, like [fortigateFW] example. The setup_env.sh script - sets up the "testHarness" test environment by creating testHarness-venv - python virtualenv, installing requests needed by Automation Framework - python modules and installing Ansible. The playbooks directory contains - all the implemented Ansible Playbooks. For details please refer to chapter - "Sample Test Cases" from the Enea NFV Access System Test Specification - document. - - The uCPEM_config directory stores JSON configuration files needed - for the setup of the uCPE Manager used by TH. One configuration file is - needed per uCPE Manager installation to be used in the TH. The vnf_image - directory stores the VNF Images needed by the Ansible Playbooks (i.e. the - sample test cases). - - The lab_config directory stores the JSON configuration files related - to a device (devices, NICs and bridges). Each subfolder should be named - exactly like the device name and should contain all the related - configuration files needed for the test cases to be run on it. - - The vnf_config directory stores the configuration files related to a - VNF Descriptor. Typically these include a VNF Image JSON, VNF Instance - JSON, VNF license and any other files required by the type of the VNF. - Each subfolder should be named exactly like the name of the VNF Descriptor - and should contain all the related configuration files needed for test - cases to be run using this VNF. - - The log directory is created when the setup_env.sh is run. When test - cases are ran, the Ansible and the Python logs are stored in ansible.log - and debug.log files, respectively. + AF and provides a way to implement them. The + ansible.cfg file contains an example of the Ansible + default configuration. It offers the possibility to display the Ansible + console output in different ways, by setting the + stdout_callback option to selective + or debug. The default value for this option is set to + selective to print only certain tasks. It is + recommended to switch to debug when a test fails. By + setting the parameter any_errors_fatal to + True, task failures will be considered fatal errors + (the play execution will stop). and why would this stop of play + execution help in this debugging scenario + + All Playbooks that execute AF python modules run on + localhost. New entries have to be created for direct + communication over SSH with the boards, as done in the + [fortigateFW] example. + + The setup_env.sh script sets up the + testHarness test environment by creating + testHarness-venv python virtualenv, executing requests + needed by Automation Framework python modules and installing Ansible. The + playbooks directory contains all the implemented Ansible Playbooks. For + more details please refer to chapter "Sample Test Cases" from the Enea NFV + Access System Test Specification document need an olink to that + chapter here.. + + The uCPEM_config directory stores JSON + configuration files needed for the setup of the uCPE Manager used by TH. + One configuration file is needed per uCPE Manager installation, to be used + in the TH. The vnf_image directory stores the VNF + Images needed by the Ansible Playbooks (i.e. the sample test + cases). + + The lab_config directory stores the JSON + configuration files related to a device (devicesclarify this + please, what devices do you mean?, NICs and bridges). Each + subfolder should be named exactly like the device name and should contain + all the related configuration files needed for the test cases to be run on + it. + + The vnf_config directory stores the configuration + files related to a VNF Descriptor. Typically these include a VNF Image + JSON, VNF Instance JSON, VNF license and any other files required by the + type of the VNF. Each subfolder should be named exactly like the name of + the VNF Descriptor and should contain all the related configuration files + needed for test cases to be run using this VNF. + + The log directory is created when the + setup_env.sh is run. When test cases are run, the + Ansible and the Python logs are stored in the + ansible.log and debug.log files, + respectively.
Extending functionality - Test Suites - To extend the functionality of the Test Harness it is typically - needed that the functionlity of the Automation Framework be also + Extending the functionality of the Test Harness, typically + requires the functionality of the Automation Framework to also be extended to cover additional uCPE Manager REST Northbound APIs. The extension of the Automation Framework will result in new Python modules that have to be created. Additional Python modules, that are not related to the functionality of the Automation Framework, could be easily integrated - into Test Harness to aid in the creation of more complex test cases. - Using the TH one can implement test cases that are run directly on the + into the Test Harness to aid in the creation of more complex test cases. + Using the TH, test cases can be implemented that run directly on the boards with Enea NFV Access, over SSH. For a better understanding of the Test Harness functionality and how to extend the test suites, please refer to the chapter "Sample Test - Cases" from the Enea NFV Access System Test Specification document and - the TH code source. + Cases" from the Enea NFV Access System Test Specification document + olink to the chapter needed here.and the TH code + source.
- + \ No newline at end of file diff --git a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/components.xml b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/components.xml index 2fecf5b..28abdd3 100644 --- a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/components.xml +++ b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/components.xml @@ -20,8 +20,8 @@
Enea NFV Access - The Enea NFV Access is comprised of the Enea NFV Access Run time - Platform and the Enea uCPE Manager. + Enea NFV Access is comprised of the Enea uCPE Manager and the Enea + NFV Access Run Time Platform.
Enea uCPE Manager @@ -32,25 +32,29 @@ used in testing. For more on Enea uCPE Manager installation instructions, please - refer to chapter "Getting Started with Enea uCPE Manager" from the Enea - NFV Access Getting Started manual. + refer to the section on how to Install the Enea uCPE Manager in + .
- Enea NFV Access Run time Platform + Enea NFV Access Run Time Platform - One or more uCPE devices running the NFV Access Run Time Platform - are required as hosts running the VNF(s). The uCPE device is known to - the uCPE Manager as the "VcpeAgent" device module. + One or more uCPE devices running the Enea NFV Access Run Time + Platform are required as hosts to run the VNF(s). The uCPE device is + known to the uCPE Manager as the "VcpeAgent" device module. - Adding a VcpeAgent device can be done via one of two - methods: + Adding a VcpeAgent device can be done via two methods: Through the uCPE Manager GUI. Add the device using the - appropriate parameters by launching the UI under Devices -> - Manage in the main screen. + appropriate parameters by launching the UI under + Devices -> Manage in the + main screen. @@ -60,8 +64,11 @@ For more on Enea NFV Access installation instructions, please - refer to chapter "Getting Started with Enea NFV Access" from the Enea - NFV Access Getting Started manual. + refer to chapter Getting Started with Enea NFV Access in + .
@@ -74,9 +81,9 @@ unit-test suite that is able to automatically run test-cases defined for each available Python script. - In either case, it is desirable to use a third system (instead of + In either case, it is desirable to use a different host (instead of running the tests on the same system as the uCPE Manager) in order to - ensure that uCPE Manager is setup and installed correctly in terms of + ensure that the uCPE Manager is setup and installed correctly in terms of allowing external users to access it and use it effectively.
@@ -94,25 +101,31 @@ VNF, Device and Network Smoke Test Cases. A sample test suite - that acts as basic smoke tests for the Enea NFV Access and also as a + that acts as basic smoke tests for Enea NFV Access and also as a sanity-check test suite for the AF and TH. VNF Deployment and Lifecycle. A sample test suite that verifies - the instantiation, lifecycle control and destruction of a VNF for the - Enea NFV Access. + the instantiation, lifecycle control and destruction of a VNF for Enea + NFV Access.
- Service Creation and Lifecycle: A sample test suite that + Service Creation and Lifecycle. A sample test suite that contains complex test cases showcasing service creation and lifecycle management. - For details about the test suites or test cases please refer to the - chapter "Sample Test Cases" from the Enea NFV Access System Test - Specification document. + For details about the test suites or test cases please refer to + chapter Sample Test Cases in . + + this olink needs to be fixed it points to getting started not the + test spec manual, an olinkdb update is needed to know why.
\ No newline at end of file diff --git a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/getting_started.xml b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/getting_started.xml index 34c9308..e4aaa6b 100644 --- a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/getting_started.xml +++ b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/getting_started.xml @@ -11,19 +11,19 @@ - Python 2.7 + Python 2.7. - EPEL Repository installed:sudo yum install epel-release + EPEL Repository:sudo yum install epel-release - PIP package manager installed: sudo yum -y install python-pip + PIP package manager: sudo yum -y install python-pip - Virtualenv tool installed: sudo pip install virtualenv + Virtualenv tool: sudo pip install virtualenv @@ -31,7 +31,8 @@ The Automation Framework and Test Harness installation may be done on the same machine used for uCPE Manager installation, although this is not encouraged. For more details see chapter - 3.2. + 3.2.what chapter of what book is this link refering + to?
@@ -47,11 +48,13 @@ fileref="images/environment_basicsetup.png" scale="35" /> - The following enviroment setup is needed for running all the - tests defined in the Enea NFV Access System Test Specification - document: + The following enviroment setup is needed for running all tests + defined in the Enea NFV Access System Test Specification manual: - Lab Network + olink to the book needed here. + + Lab Network + Requirements DHCP enabled. @@ -61,32 +64,36 @@ - uCPE Manager host + uCPE Manager Host + Requirements - + Running CentOS 7. - Connected to Lab Network. + Connected to the Lab Network. uCPE Manager installed. - For details on how to install the uCPE Manager, see "Getting - Started with Enea uCPE Manager" from the Enea NFV Access Getting - Started manual. + For details on how to install the uCPE Manager, see Install the Enea uCPE Manager in + . - 1st uCPE - device + uCPE device + Requirements - Minimum 4 Physical Network Devices. + Minimum of 4 Physical Network Devices. @@ -94,23 +101,24 @@ - 2 Physical connections to Lab Network. + 2 Physical connections to the Lab Network. - Enea NFV Access Run Time Platform installed. + Enea NFV Access Run-Time Platform installed. For information on how to install Enea NFV Access refer to Getting Started with Enea NFV Access - in . + targetptr="plat-release-content">Getting Started with Enea NFV + Access in .
- Lab setup overview for ChainedVNFsService Setup + Lab Setup Overview for ChainedVNFsService @@ -121,24 +129,10 @@
- Changes to 1st uCPE - device - - - - 16GB RAM and 8 cores (Intel C3000 or Xeon D). - - - - 1 Physical connection back to back with the - 2nd uCPE device. - - - - 2nd uCPE - device + uCPE device 1 and 2 + Requirements - Minimum 4 Physical Network Devices. + Minimum of 4 Physical Network Devices. @@ -146,25 +140,16 @@ - 2 Physical connections to Lab Network. + 2 Physical connections to the Lab Network. - 1 Physical connection back to back with the - 1st uCPE device. + 1 Physical connection back to back between both uCPE + devices. - Enea NFV Access installed. - - - For information on how to install Enea NFV Access, refer to - Getting Started with Enea NFV - Access. - + Enea NFV Access Run-Time Platform installed.
@@ -172,23 +157,29 @@
Installation and Initial Setup - Unzip the nfvaccess22_af-th.zip archive file, - provided by Enea, on a supported host machine. The directory in which the - archive has been unpacked will be denoted as - <AF-TH-installdir>. + + + Unzip the nfvaccess22_af-th.zip archive + file, provided by Enea, on a supported host machine. - Enter the <AF-TH-install-dir> directory and - run the setup_env.sh script to do the initial setup - of the Test Harness environment: source - setup_env.sh. + The directory in which the archive has been unpacked will be + denoted as <AF-TH-installdir>. + - Setup the uCPE Manager which will be used by the TH: + + Enter the <AF-TH-install-dir> directory + and run the setup_env.sh script to do the initial + setup of the Test Harness environment: source setup_env.sh + - - Create the uCPE Manager JSON config file in the - <AF-TH-install-dir>/uCPEM_config/ - directory:{ + Set up the uCPE Manager which will be used by the TH: + + + + Create the uCPE Manager JSON config file in the + <AF-TH-install-dir>/uCPEM_config/ + directory:{ "ucpe_usr":"uCPE Manager Username", "ucpe_pass":"uCPE Manager Password", "ucpe_host":"uCPE Manager IP/Hostname", @@ -196,28 +187,36 @@ "ftp_pass":"FTP Password", "ftp_port":"FTP Port" }See the - <AF-TH-install-dir>/uCPEM_config/ucpem01.json - file as an example. - - - - Run the setupuCPEManager.yml Ansible - Playbook with the JSON config path as parameter: ansible-playbook playbooks/setupuCPEManager.yml -e\ + <AF-TH-install-dir>/uCPEM_config/ucpem01.json + file as an example. + + + + Run the setupuCPEManager.yml Ansible + Playbook with the JSON config path as a parameter: + ansible-playbook playbooks/setupuCPEManager.yml -e\ "@uCPEM_config/<config_name>.json" - Example ansible-playbook playbooks/setupuCPEManager.yml -e\ + Example ansible-playbook playbooks/setupuCPEManager.yml -e\ "@uCPEM_config/ucpem01.json" + + - Note that the steps presented in this sub-chapter are to be executed - only once, for the initial setup of the TH environment. Afterwards, each - session ends by closing the Python virtual environment (source - <AF-THinstall-dir>/testHarness/bin/deactivate) and - subsequent use of the installation requires activating the Python virtual - enviroment before using the Automation Framework and Test Harness - (source - <AF-THinstall-dir>/testHarness/bin/activate). + + The steps presented in this section are to be executed only once, + for the initial setup of the TH environment. + + + After the initial setup, each session ends by closing the Python + virtual environment: source + <AF-THinstall-dir>/testHarness/bin/deactivate. + + Subsequent use of the installation requires activating the Python + virtual enviroment before using the Automation Framework and Test Harness: + source + <AF-THinstall-dir>/testHarness/bin/activate. Furthermore, if a user wants to use a new uCPE Manager instance for a new session, the user also has to re-run the diff --git a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/overview.xml b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/overview.xml index ab10fe9..69d5f0e 100644 --- a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/overview.xml +++ b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/overview.xml @@ -3,20 +3,20 @@ Overview This document describes the Automation Framework and Test Harness for - the Enea NFV Access, along with providing instructions regarding - the necessary steps to run these software tools. + Enea NFV Access, along with instructions regarding the necessary steps to + run these software tools.
Description The Automation Framework provides a way for driving configuration with Python scripting. It complements the Enea uCPE Manager GUI and uses - the northbound REST APIs, given for full availability of the Enea uCPE + the northbound REST APIs, given to provide full usability of the Enea uCPE Manager features. The Test Harness is based on running Ansible Playbooks to complete different test cases, which make use of the Automation Framework Python - modules and/or direct commands on the uCPE devices running Enea NFV + modules and/or direct commands on the uCPE devices running the Enea NFV Access Run Time Platform.
@@ -41,8 +41,8 @@ Enea NFV Access - Enea NFV Access (with ODM) Runtime Platform and Enea uCPE - Manager. + The Enea NFV Access (with ODM) Runtime Platform and the + Enea uCPE Manager. @@ -174,16 +174,16 @@ VCPE - Virtual Customer Premises Equipment + Virtual Customer Premises Equipment. VNF - Virtualized Network Function + Virtualized Network Function.
- + \ No newline at end of file diff --git a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/troubleshooting_guide.xml b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/troubleshooting_guide.xml index 2f0509b..f51fe11 100644 --- a/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/troubleshooting_guide.xml +++ b/doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/troubleshooting_guide.xml @@ -3,35 +3,41 @@ Troubleshooting Guide The following are best practices and possible solutions to problems - that may occur during operation. + that may occur during operation: All the Playbooks have to be run from the root directory of the - Test Harness to avoid failures such as "File not found!", because the - paths to the needed configuration files are hardcoded into the + Test Harness (TH) to avoid failures such as "File not found!", since the + paths to the required configuration files are hardcoded into the Playbooks. - If the setup_env.sh fails, for debugging, remove &> - /dev/null from the failed command. Then the output of the command will - be printed, and will not be redirected to /dev/null anymore. + If the setup_env.sh fails, for debugging remove + &> /dev/null from the failed command. The + output of the command will be printed, and will not be redirected to + /dev/null anymore. - When setup the uCPE Manager to be used by the TH using - setupuCPEManager.yml Playbook, if the uCPE username/password/host are - wrong or are missing, all the Sample test cases will fail. If the FTP - username/password/port are wrong or are missing, the tests that requires - file transfer to uCPE Manager will fail. + When setting up the uCPE Manager to be used by the TH through the + setupuCPEManager.yml Playbook, if the uCPE + username/password/host are incorrect or are missing, all the Sample test + cases will fail. If the FTP username/password/port are wrong or are + missing, the tests that require file transfer to the uCPE Manager will + fail. - Ansible logs are not written into the log/ansible.log file when - the stdout_callback is set to selective in the ansible.cfg. For - debugging, check the python logs from log/debug.log file or change the - stdout_callback to debug and rerun the test. + Ansible logs are not written into the + log/ansible.log file when the + stdout_callback is set to + selective in the ansible.cfg file. + For debugging, check the python logs from the + log/debug.log file or change the + stdout_callback to debug and rerun + the test. \ No newline at end of file -- cgit v1.2.3-54-g00ecf