From 526832994b72c18bf8affabf5cc656a341a00f93 Mon Sep 17 00:00:00 2001 From: Miruna Paun Date: Wed, 28 Aug 2019 17:28:04 +0200 Subject: Updating the test spec manual. Change-Id: I8bc4686cc7785c108aaba7633dea50cd6ae55550 --- .../doc/configuration.xml | 19 +- .../doc/overview.xml | 9 +- .../doc/sample_test_cases.xml | 280 +++++++++++++-------- 3 files changed, 195 insertions(+), 113 deletions(-) diff --git a/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml b/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml index d1415c2..1be36cb 100644 --- a/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml +++ b/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml @@ -5,28 +5,29 @@
Test Objects - The test objects for the Test Harness are considered to be the Enea - NFV Access and Enea uCPE Manager installations performed as indicated in - chapter 3 of the Enea NFV Access Automation Framework and Test Harness - User Guide. + The test objects for the Test Harness are the Enea NFV Access and + Enea uCPE Manager installations performed as indicated in chapter 3 of the + Enea NFV Access Automation Framework and Test Harness User + Guide.olink needed.
Test Environment - To setup the required Test Harness environment please refer to the + To set up the required Test Harness environment please refer to the "Environment" chapter from the Enea NFV Access Automation Framework and - Test Harness User Guide. + Test Harness User Guide.olink needed.
- Preconditions and Execution Steps + Preconditions and Execution Please refer to the "Prerequisites" and "Installation and Initial Setup" chapters from Enea NFV Access Automation Framework and Test Harness - User Guide. + User Guide olinks needed. for more details. For detailed execution steps of the sample test cases included with - the Test Harness please see chapter 3 in this document. + the Test Harness please see chapter 3 in this document. xref to + the next chapter needed.
\ No newline at end of file diff --git a/doc/book-enea-nfv-access-system-test-specification/doc/overview.xml b/doc/book-enea-nfv-access-system-test-specification/doc/overview.xml index f89f8bd..d23a073 100644 --- a/doc/book-enea-nfv-access-system-test-specification/doc/overview.xml +++ b/doc/book-enea-nfv-access-system-test-specification/doc/overview.xml @@ -2,10 +2,9 @@ Overview - The scope of this document is to describe the Test Harness (TH) sample - test cases for System Testing of Enea NFV Access. Furthermore, this document - shall also describe the necessary environment setup to run these tests - successfully. + This document describes the Test Harness (TH) sample test cases for + the System Testing of Enea NFV Access, and the necessary environment setup + to run these tests successfully.
Definitions and Acronyms @@ -28,7 +27,7 @@ Enea NFV Access - The Enea NFV Access (with ODM) Run-time Platform and the + The Enea NFV Access (with ODM) Run-Time Platform and the Enea uCPE Manager. diff --git a/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml b/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml index ec2e592..30322ac 100644 --- a/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml +++ b/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml @@ -13,28 +13,35 @@ TH.
- VNF - Onboard_VNF_Image + VNF - Onboard_VNF_Image<remark>all titles are formated with + underscores can this be changed or should it be left as + is?</remark> Description: Onboarding a VNF Image into the uCPE Manager. For details please refer to: - <AF-TH-install-dir>/playbooks/onboardVNFImage.yml + + + <AF-TH-install-dir>/playbooks/onboardVNFImage.yml + - <AF-TH-install-dir>/automation_framework/vnf/onboardVNFRaw.py + + <AF-TH-install-dir>/automation_framework/vnf/onboardVNFRaw.py + + Preconditions: Add the VNF Image in the vnf_image folder - in QCOW2 format: <AF-TH-install-dir>/vnf_image/<VNF-Image-name>.qcow2 + in the QCOW2 format: <AF-TH-install-dir>/vnf_image/<VNF-Image-name>.qcow2 A VNF Image JSON configuration file is created: - <AF-TH-install-dir>/vnf_config/<VNF-Descriptor-name>/<VNF-Descriptor-name>.json. - - Example:<AF-TH-install-dir>/vnf_config/fortigateImage/fortigateImage.json + <AF-TH-install-dir>/vnf_config/<VNF-Descriptor-name>/<VNF-Descriptor-name>.jsonExample:<AF-TH-install-dir>/vnf_config/fortigateImage/fortigateImage.json @@ -46,7 +53,7 @@ vnfd=<VNF-Descriptor-name>" Result: Output of the test case - run using the Test Harness: # Onboard VNF Image task result + run using the Test Harness:# Onboard VNF Image task result <VNF-Descriptor-name> successfully onboarded!Note: The test will not fail if the VNF Image is already onboarded. The output will instead contain: # debug <VNF-Descriptor-name> already onboarded! @@ -59,13 +66,19 @@ vnfd=<VNF-Descriptor-name>" Description: Onboarding a VNF Bundle into the uCPE Manager. For details please refer to: - <AF-TH-install-dir>/playbooks/onboardVNFBundle.yml + + + <AF-TH-install-dir>/playbooks/onboardVNFBundle.yml + - <AF-TH-install-dir>/automation_framework/vnf/onboardVNF.py + + <AF-TH-install-dir>/automation_framework/vnf/onboardVNF.py + + Precondition: Add the VNF Bundle in the vnf_image folder in the zip format: - <AF-TH-install-dir>/vnf_image/<VNF-Bundle-name>.zip. + <AF-TH-install-dir>/vnf_image/<VNF-Bundle-name>.zip Action: Run the onboardVNFBundle.yml Ansible Playbook with the @@ -85,9 +98,15 @@ vnfd=<VNF-Descriptor-name>" Description: Removing a VNF Descriptor from the uCPE Manager. For details please refer to: - <AF-TH-install-dir>/playbooks/offboardVNF.yml + + + <AF-TH-install-dir>/playbooks/offboardVNF.yml + - <AF-TH-install-dir>/automation_framework/vnf/offboardVNF.py. + + <AF-TH-install-dir>/automation_framework/vnf/offboardVNF.py + + Precondition: The VNF has been previously onboarded in the uCPE Manager instance. @@ -111,13 +130,18 @@ vnfd=<VNF-Descriptor-name>" Description: Adding a uCPE device to the uCPE Manager. For details please refer to: - <AF-TH-install-dir>/playbooks/addDevice.yml + + + <AF-TH-install-dir>/playbooks/addDevice.yml + - <AF-TH-install-dir>/automation_framework/device/addDevice.py. + + <AF-TH-install-dir>/automation_framework/device/addDevice.py + + Precondition: A device JSON - configuration file must be created: - <AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json. + configuration file must be created: <AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json Example: <AF-TH-install-dir>/lab_config/intelc3850-2/intelc3850-2.json @@ -139,9 +163,15 @@ vnfd=<VNF-Descriptor-name>" Description: Removing a uCPE device from the uCPE Manager. For details please refer to: - <AF-TH-install-dir>/playbooks/removeDevice.yml + + + <AF-TH-install-dir>/playbooks/removeDevice.yml + - <AF-TH-install-dir>/automation_framework/device/removeDevice.py. + + <AF-TH-install-dir>/automation_framework/device/removeDevice.py + + Preconditions: @@ -175,9 +205,15 @@ vnfd=<VNF-Descriptor-name>" Description: Binding a physical network interface (NIC) to a device. For details please refer to: - <AF-TH-install-dir>/playbooks/bindNIC.yml + + + <AF-TH-install-dir>/playbooks/bindNIC.yml + - <AF-TH-install-dir>/automation_framework/network/bindNetworkInterface.py. + + <AF-TH-install-dir>/automation_framework/network/bindNetworkInterface.py + + Preconditions: @@ -188,8 +224,7 @@ vnfd=<VNF-Descriptor-name>" - A NIC JSON configuration file must exist: - <AF-TH-install-dir>/lab_config/<Device-name>/<NIC>.json. + A NIC JSON configuration file must exist: <AF-TH-install-dir>/lab_config/<Device-name>/<NIC>.json Example: <AF-TH-install-dir>/lab_config/intelc3850-2/wan_nic.json <AF-TH-install-dir>/lab_config/intelc3850-2/lan_nic.json @@ -202,7 +237,7 @@ vnfd=<VNF-Descriptor-name>" <NIC> as extra-vars: ansible-playbook playbooks/bindNIC.yml -e "device=<Device-name> nic=<NIC>" Result: Output of the test case - run using the Test Harness: # Bind NIC task result + run using the Test Harness:# Bind NIC task result <NIC> binded successfully! Note: The test will not fail if the NIC is already bound, it will be unbound and bound again with the provided @@ -216,9 +251,15 @@ vnfd=<VNF-Descriptor-name>" network interface (NIC) from a device. For details please refer to: - <AF-TH-install-dir>/playbooks/unbindNIC.yml + + + <AF-TH-install-dir>/playbooks/unbindNIC.yml + - <AF-TH-install-dir>/automation_framework/network/unbindNetworkInterface.py. + + <AF-TH-install-dir>/automation_framework/network/unbindNetworkInterface.py + + Preconditions: @@ -228,8 +269,7 @@ vnfd=<VNF-Descriptor-name>" - A NIC JSON configuration file exists: - <AF-TH-install-dir>/lab_config/<Device-name>/<NIC>.json + A NIC JSON configuration file exists: <AF-TH-install-dir>/lab_config/<Device-name>/<NIC>.json @@ -252,19 +292,24 @@ vnfd=<VNF-Descriptor-name>" Description: Creating an OVS network bridge on a uCPE device. For details please refer to: - <AF-TH-install-dir>/playbooks/addBridge.yml + + + <AF-TH-install-dir>/playbooks/addBridge.yml + - <AF-TH-install-dir>/automation_framework/network/newNetworkBridge.py. + + <AF-TH-install-dir>/automation_framework/network/newNetworkBridge.py + + - Precondition: + Preconditions: A NIC is bound to a device in a uCPE Manager instance. - A Bridge JSON configuration file is created: - <AF-TH-install-dir>/lab_config/<Device-name>/<Bridge-name>.json + A Bridge JSON configuration file exists:<AF-TH-install-dir>/lab_config/<Device-name>/<Bridge-name>.json Example:<AF-TH-install-dir>/lab_config/intelc3850-2/wan_br.json <AF-TH-install-dir>/lab_config/intelc3850-2/lan_br.json @@ -280,7 +325,7 @@ vnfd=<VNF-Descriptor-name>" run using the Test Harness: # Add Bridge task result <Bridge-name> network bridge was added!Note: The test will not fail if there already - exists a bridge with the same name, it will be deleted and the bridge + exists a bridge with the same name. It will be deleted and the bridge will be created again with the provided configuration.
@@ -290,18 +335,23 @@ vnfd=<VNF-Descriptor-name>" Description: Removing an OVS network bridge from a uCPE device. For details please refer to: - <AF-TH-install-dir>/playbooks/deleteBridge.yml + + + <AF-TH-install-dir>/playbooks/deleteBridge.yml + - <AF-TH-install-dir>/automation_framework/network/delNetworkBridge.py. + + <AF-TH-install-dir>/automation_framework/network/delNetworkBridge.py + + - Preconditions: + Preconditions: - A Bridge is created in a uCPE Manager instance. + A Bridge exists in a uCPE Manager instance. - A Bridge JSON configuration file exists: - <AF-TH-install-dir>/lab_config/<Device-name>/<Bridge-name>.json. + A Bridge JSON configuration file exists: <AF-TH-install-dir>/lab_config/<Device-name>/<Bridge-name>.json Action: Run the deleteBridge.yml Ansible Playbook with the @@ -331,9 +381,15 @@ bridge=<Bridge-name>" Description: Creating a VNF instance on a uCPE device. For details please refer to: - <AF-TH-install-dir>/playbooks/instantiateVNFI.yml + + + <AF-TH-install-dir>/playbooks/instantiateVNFI.yml + - <AF-TH-install-dir>/automation_framework/vnf/instantiateVNFI.py. + + <AF-TH-install-dir>/automation_framework/vnf/instantiateVNFI.py + + Preconditions: @@ -342,8 +398,7 @@ bridge=<Bridge-name>" - A VNFI JSON configuration file is created: - <AF-TH-install-dir>/vnf_config/<VNF-Descriptor-name>/<VNFI-name>.json + A VNFI JSON configuration file exists: <AF-TH-install-dir>/vnf_config/<VNF-Descriptor-name>/<VNFI-name>.json Example: <AF-TH-install-dir>/vnf_config/fortigateImage/fortigateFWInstance.json @@ -359,8 +414,8 @@ vnfd=<VNF-Descriptor-name> vnfi=<VNFI-name>" Result: Output of the test case run using the Test Harness: # Instantiate VNF task result <VNFI-name> was instantiated!Note: The test will not fail when the VNF - instance already exists. The output will contain: # debug + role="bold">Note: The test will not fail if the VNF instance + already exists. The output will instead contain: # debug <VNFI-name> already exists!
@@ -371,9 +426,15 @@ vnfd=<VNF-Descriptor-name> vnfi=<VNFI-name>" of a VNF instance (Pause, Resume, Stop, Start). For details please refer to: - <AF-TH-install-dir>/playbooks/controlVNFI.yml + + + <AF-TH-install-dir>/playbooks/controlVNFI.yml + - <AF-TH-install-dir>/automation_framework/vnf/controlVNFI.py. + + <AF-TH-install-dir>/automation_framework/vnf/controlVNFI.py + + Precondition: A VNF is instantiated on a uCPE device. @@ -390,9 +451,9 @@ vnfi=<VNFI-name> status=<Command>"Where Command = run using the Test Harness: # Change VNFI Status task result <VNFI-name> status was set to <Command>Note: The test will not fail if the VNF instance - does not exist or when the specified command is not valid. Depending on + does not exist or if the specified command is not valid. Depending on the case, the output will contain: # debug -<VNFI-name> was not found!# debug +<VNFI-name> was not found!or# debug Invalid VNF Instance control command specified - <Command> @@ -402,9 +463,15 @@ Invalid VNF Instance control command specified - <Command>Description: Destroying a VNF instance from a uCPE device. For details please refer to: - <AF-TH-install-dir>/playbooks/destroyVNFI.yml + + + <AF-TH-install-dir>/playbooks/destroyVNFI.yml + - <AF-TH-install-dir>/automation_framework/vnf/destroyVNFI.py. + + <AF-TH-install-dir>/automation_framework/vnf/destroyVNFI.py + + Precondition: A VNF is instantiated on a uCPE device. @@ -416,8 +483,8 @@ Invalid VNF Instance control command specified - <Command>Result: Output of the test case run using the Test Harness:# Destroy VNFI task result <VNFI-name> was destroyed!Note: The test will not fail when the VNF - instance does not exist. The output will contain: # debug + role="bold">Note: The test will not fail if the VNF instance + does not exist. The output will instead contain: # debug <VNFI-name> was not found! @@ -431,9 +498,9 @@ Invalid VNF Instance control command specified - <Command>
- Fortigate_VNF_as_a_Firewall + Fortigate VNF as a Firewall - This test case was implemented in 2 different ways to exemplify + This test case was implemented in two different ways to exemplify both methods supported by the AF and TH to deploy such services. Prerequisites needed in order to deploy the FortiGate VNF as a @@ -445,19 +512,19 @@ Invalid VNF Instance control command specified - <Command> - Add a device. + Add a uCPE device. - Bind 2 physical interfaces, wan_nic (this - physical interface has to be connected to Lab Network) and + Bind 2 physical interfaces: wan_nic (this + physical interface has to be connected to the Lab Network) and lan_nic. - Create 2 bridges, wan_br (using + Create 2 bridges: wan_br (using the wan_nic interface) and lan_br - (using lan_nic interface). + (using the lan_nic interface). @@ -466,8 +533,9 @@ Invalid VNF Instance control command specified - <Command> - For more information please refer to "FortiGate VNF as a Firewall" - chapter from the "Enea NFV Access Example Use-cases" manual. + For more information please refer to the "FortiGate VNF as a + Firewall" chapter from the "Enea NFV Access Example Use-cases" manual. + olink needed here The license and configuration files for the FortiGate VNF are not included in the TH and should be obtained from Enea. @@ -476,7 +544,7 @@ Invalid VNF Instance control command specified - <Command>FortigateFWInstance Test Description: Instantiate the - FortiGate VNF as a Firewall and test it using isolated network + FortiGate VNF as a Firewall and test it using an isolated network namespace. This example was implemented with the "Test Harness" method, @@ -510,7 +578,7 @@ Invalid VNF Instance control command specified - <Command> - Device JSON configuration file is created: + The device JSON configuration file is created: <AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json. @@ -526,42 +594,55 @@ ansible_user=root ansible_pass=root NIC JSON configuration files are created: - <AF-TH-install-dir>/lab_config/<Device-name>/wan_nic.json + + + <AF-TH-install-dir>/lab_config/<Device-name>/wan_nic.json + - <AF-TH-install-dir>/lab_config/<Device-name>/lan_nic.json + + <AF-TH-install-dir>/lab_config/<Device-name>/lan_nic.json + + Bridge JSON configuration files are created: - <AF-TH-install-dir>/lab_config/<Device-name>/wan_br.json + + + <AF-TH-install-dir>/lab_config/<Device-name>/wan_br.json + - <AF-TH-install-dir>/lab_config/<Device-name>/lan_br.json + + <AF-TH-install-dir>/lab_config/<Device-name>/lan_br.json + + - Download the FortiGate VNF Firewall basic configuration from - Enea, copy it into the + Download the FortiGate VNF Firewall basic configuration file + from Enea, copy it into the <AF-TH-install-dir>/vnf_config/fortigateImage - directory and rename it to - fortigateFW.conf. + directory and rename it to + fortigateFW.conf. - Retrieve the FortiGate VNF license from Fortinet or Enea, - copy it into the + Retrieve the FortiGate VNF license file from Fortinet or + Enea, copy it into the <AF-TH-install-dir>/vnf_config/fortigateImage directory and rename it to fortigateLicense.lic. - Please refer to "FortiGate VNF as a Firewall" chapter from - the Enea NFV Access Example Use-cases manual. + Please refer to the "FortiGate VNF as a Firewall" chapter + from the Enea NFV Access Example Use-cases + manual.olink - Action: Run the instantiateFortigateFW.yml Ansible Playbook - with the <Device-name> as + Action: Run the + instantiateFortigateFW.yml Ansible Playbook with + the <Device-name> as extra-vars:ansible-playbook playbooks/fortigateFWService/instantiateFortigateFW.yml \ -e "device=<Device-name>" @@ -570,7 +651,7 @@ ansible_user=root ansible_pass=root FortigateFWInstance tested successfully! Cleanup: Run the - cleanupFortigateFWInstance.yml Ansible Playbook + cleanupFortigateFWInstance.yml Ansible Playbook with the <Device-name> as extra-vars: ansible-playbook playbooks/fortigateFWService/cleanupFortigateFWInstance.yml \ -e "device=<Device-name>" @@ -611,14 +692,13 @@ FortigateFWInstance tested successfully! - Device JSON configuration file is created: - + The device JSON configuration file is created: <AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json. - NIC JSON configuration files are created: + The NIC JSON configuration files are created: <AF-TH-install-dir>/lab_config/<Device-name>/wan_nic.json @@ -626,7 +706,7 @@ FortigateFWInstance tested successfully! - Bridge JSON configuration files are created: + The Bridge JSON configuration files are created: <AF-TH-install-dir>/lab_config/<Device-name>/wan_br.json @@ -653,7 +733,8 @@ FortigateFWInstance tested successfully! The "FortiGate VNF as a Firewall" chapter from the Enea - NFV Access Example Use-cases manual. + NFV Access Example Use-cases manual.olink + needed @@ -722,18 +803,18 @@ FortigateFW Scenario deployed successfully! - Devices JSON configuration files are created, e.g.: + The device JSON configuration file(s) is created, e.g.: <AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json. Add device settings in the hosts Ansible - inventory file under [chainedVNFs], keeping both - devices, the "site1" and "site2" entries, and updating the values - for ansible_host, - ansible_port, ansible_user and - ansible_pass, as applicable. + inventory file under [chainedVNFs]. Keep both + devices, the "site1" and "site2" entries, and update the values for + ansible_host, ansible_port, + ansible_user and ansible_pass, + as applicable. Example: @@ -803,8 +884,8 @@ ansible_pass=root - Retrieve the FortiGate VNF license from Fortinet or Enea, copy - it into the + Retrieve the FortiGate VNF license file from Fortinet or Enea, + copy it into the <AF-TH-install-dir>/vnf_config/fortigateFWImage directory and rename it to fortigateLicense.lic. @@ -819,19 +900,20 @@ ansible_pass=root - Retrieve vSRX-domain-update-script from - Enea and copy it into the junipervSRXImage + Retrieve the vSRX-domain-update-script + from Enea and copy it into the junipervSRXImage directory. Please refer to the "VNF Chaining Example Use-case" chapter from the Enea NFV Access Example Use-cases manual for additional - information about the preconditions. + information about preconditions.olink to this + chapter Action: Run the - chainedVNFsService.yml Ansible Playbook as follows: - ansible-playbook playbooks/chainedVNFsService/chainedVNFsService.yml \ + chainedVNFsService.yml Ansible Playbook as + follows:ansible-playbook playbooks/chainedVNFsService/chainedVNFsService.yml \ -e "site1=inteld1521-1 site2=inteld1521-2 arch=XeonD" Note that "arch" may either be { XeonD | AtomC } depending on the -- cgit v1.2.3-54-g00ecf