summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2019-08-29 11:17:57 +0200
committerMiruna Paun <Miruna.Paun@enea.com>2019-08-29 17:29:44 +0200
commit18d4e7f43bf6ed383b4982d3f6915e82ba203ea3 (patch)
tree9707e1af6582fc0397c29cfd190140d3177f2022
parent56f3c6dd01f77801fda66d476e3acae22c8049db (diff)
downloadel_releases-nfv-access-18d4e7f43bf6ed383b4982d3f6915e82ba203ea3.tar.gz
Updates and clarification of AF-TH manual.
Change-Id: I8d59b9eacf0b652ff6cf4075406ce036f79fd6be
-rw-r--r--doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/automation_framework_test_harness.xml674
-rw-r--r--doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/components.xml59
-rw-r--r--doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/getting_started.xml167
-rw-r--r--doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/overview.xml18
-rw-r--r--doc/book-enea-nfv-access-auto-fw-th-user-guide/doc/troubleshooting_guide.xml36
5 files changed, 542 insertions, 412 deletions
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 @@
147 Python script for running the test case.</para> 147 Python script for running the test case.</para>
148 148
149 <para>The <literal>/vnf</literal> folder contains Python scripts for 149 <para>The <literal>/vnf</literal> folder contains Python scripts for
150 onboarding and offboarding a VNF bundle or image, instantiating a VNF, 150 onboarding and offboarding a VNF image, instantiating a VNF, controlling a
151 controlling a VNF instance or destroying an existing one.</para> 151 VNF instance or destroying an existing one.</para>
152 152
153 <para>The <filename>eneaUcpeMgr.py</filename> file acts as a library for 153 <para>The <filename>eneaUcpeMgr.py</filename> file acts as a library for
154 the (Python) Automation Framework scripts. It contains common functions 154 the (Python) Automation Framework scripts. It contains common functions
@@ -159,14 +159,16 @@
159 159
160 <para>The Python unit-test class defined in the 160 <para>The Python unit-test class defined in the
161 <filename>unittestSuite.py</filename> script provides a way to automate 161 <filename>unittestSuite.py</filename> script provides a way to automate
162 the execution of specific test cases for each supported Python script. 162 the execution of specific test cases for each supported Python
163 This class requires a test suite configuration JSON file that contains a 163 script.</para>
164 dictionary list of the Python scripts to be processed. Each dictionary 164
165 must contain the path of the Python script to be loaded and the path to 165 <para>This class requires a test suite configuration JSON file that
166 the file describing the test cases to be performed against the 166 contains a dictionary list of the Python scripts to be processed. Each
167 designated script.</para> 167 dictionary must contain the path of the Python script to be loaded and
168 168 the path to the file describing the test cases to be performed against
169 <para>Steps for running the Python unit-test suite onto the uCPE Manager 169 the designated script.</para>
170
171 <para>Steps for running the Python unit-test suite on the uCPE Manager
170 are provided below.</para> 172 are provided below.</para>
171 173
172 <section id="script_opts"> 174 <section id="script_opts">
@@ -197,16 +199,16 @@ Options:
197 </section> 199 </section>
198 200
199 <section id="config_ut_json"> 201 <section id="config_ut_json">
200 <title>Configuring Unit-Test JSON File<remark>Starting from this 202 <title>Configuring Unit-Test JSON File</title>
201 section onward NOTHING has been proofed</remark></title>
202 203
203 <para>The unit-test suite JSON configuration file contains a list of 204 <para>The Unit-Test suite JSON configuration file contains a list of
204 dictionaries, each dictionary indicating the path of the Python module 205 dictionaries. Each dictionary indicates the path of the Python module
205 to load and the test cases configuration file to be executed against 206 to load and the test case's configuration file to be executed against
206 the loaded module.</para> 207 the loaded module.</para>
207 208
208 <para>Sample unit-test configuration file describing the Fortigate 209 <para>Below is a sample unit-test configuration file, describing the
209 deployment scenario, fortigateDeploy.json:</para> 210 Fortigate <emphasis role="bold">deployment</emphasis> scenario
211 <filename>fortigateDeploy.json</filename>:</para>
210 212
211 <para><programlisting>[ 213 <para><programlisting>[
212 { 214 {
@@ -237,8 +239,11 @@ Options:
237 "config": "config/controlVNFI.json", 239 "config": "config/controlVNFI.json",
238 "module": "../vnf/controlVNFI.py" 240 "module": "../vnf/controlVNFI.py"
239 } 241 }
240]</programlisting>Sample unit-test configuration file describing the Fortigate 242]</programlisting></para>
241 cleanup scenario, fortigateCleanup.json:</para> 243
244 <para>Below is a sample unit-test configuration file, describing the
245 Fortigate <emphasis role="bold">cleanup</emphasis> scenario
246 <filename>fortigateCleanup.json</filename>:</para>
242 247
243 <programlisting>[ 248 <programlisting>[
244 { 249 {
@@ -263,19 +268,19 @@ Options:
263 } 268 }
264]</programlisting> 269]</programlisting>
265 270
266 <para>"config" key contains the path to the test cases configuration 271 <para>The <literal>config</literal> key contains the path to the test
267 file.</para> 272 case's configuration file.</para>
268 273
269 <para>"module" key contains the path to the Python script to be 274 <para>The <literal>module</literal> key contains the path to the
270 executed.</para> 275 Python script to be executed.</para>
271 </section> 276 </section>
272 277
273 <section id="ut_config_opts"> 278 <section id="ut_config_opts">
274 <title>Unit-Test Configuration Options</title> 279 <title>Unit-Test Configuration Options</title>
275 280
276 <para>The unit-test behavior can be tweaked in a number of ways 281 <para>Unit-test behavior can be tweaked through setting any of the
277 through the following options set through the eneaUcpeMgr.py 282 following options. This is done through the
278 file:<programlisting># Defaults for the framework 283 <filename>eneaUcpeMgr.py</filename> file:<programlisting># Defaults for the framework
279username = "admin" 284username = "admin"
280password = "admin" 285password = "admin"
281host = None 286host = None
@@ -296,47 +301,116 @@ failfast = True
296# DEBUG 10 301# DEBUG 10
297# NOTSET 0 302# NOTSET 0
298fileLoggingLevel = logging.DEBUG 303fileLoggingLevel = logging.DEBUG
299consoleLoggingLevel = logging.INFO</programlisting>username - user to be used 304consoleLoggingLevel = logging.INFO</programlisting></para>
300 when authenticating to uCPE Manager; this can be overwritten by 305
301 setting the Python unit-test suite command line option -u.</para> 306 <para><table>
307 <title>eneaUcpeMgr.py Options</title>
308
309 <tgroup cols="2">
310 <colspec align="left" />
311
312 <colspec colwidth="2*" />
313
314 <colspec colwidth="5*" />
315
316 <thead>
317 <row>
318 <entry align="center">Option</entry>
319
320 <entry align="center">Description</entry>
321 </row>
322 </thead>
323
324 <tbody>
325 <row>
326 <entry><literal>username</literal></entry>
327
328 <entry>The user authentication used to log into the uCPE
329 Manager. This can be overwritten by setting the Python
330 unit-test suite command line option
331 <literal>-u</literal>.</entry>
332 </row>
333
334 <row>
335 <entry><literal>password</literal></entry>
336
337 <entry>The password used to log into the uCPE Manager. This
338 can be overwritten by setting the Python unit-test suite
339 command line option <literal>-p</literal>.</entry>
340 </row>
341
342 <row>
343 <entry><literal>host</literal></entry>
344
345 <entry>The IP address of the uCPE Manager host. This can be
346 overwritten by setting the Python unit-test suite command
347 line option <literal>-H</literal>.</entry>
348 </row>
349
350 <row>
351 <entry><literal>devicename</literal></entry>
302 352
303 <para>password - password to be used when authenticating to uCPE 353 <entry>The name of the vCPE agent against which tests will
304 Manager; this can be overwritten by setting the Python unit-test suite 354 be performed. This can be overwritten by setting the Python
305 command line option -p.</para> 355 unit-test suite command line option
356 <literal>-n</literal>.</entry>
357 </row>
306 358
307 <para>host - IP address of the uCPE Manager host; this can be 359 <row>
308 overwritten by setting the Python unit-test suite command line option 360 <entry><literal>ftpUsername</literal></entry>
309 -H.</para>
310 361
311 <para>devicename - name of the VCPE agent to perform the tests 362 <entry>The user authentication used for the FTP connection
312 against; this can be overwritten by setting the Python unit-test suite 363 when onboarding a VNF image. This can be overwritten by
313 command line option -n.</para> 364 setting the Python script command line option
365 <literal>-f</literal>.</entry>
366 </row>
314 367
315 <para>ftpUsername - user to be used for the FTP connection when 368 <row>
316 onboarding a VNF bundle/image; this can be overwritten by setting the 369 <entry><literal>ftpPassword</literal></entry>
317 Python script command line option -f.</para>
318 370
319 <para>ftpPassword - password to be used for the FTP connection when 371 <entry>The password used for the FTP connection when
320 onboarding a VNF bundle/image; this can be overwritten by setting the 372 onboarding a VNF image. This can be overwritten by setting
321 Python script command line option -w.</para> 373 the Python script command line option
374 <literal><literal>-w</literal></literal>.</entry>
375 </row>
322 376
323 <para>ftpPort - port to be used for the FTP connection when onboarding 377 <row>
324 a VNF bundle/image; this can be overwritten by setting the Python 378 <entry><literal>ftpPort</literal></entry>
325 script command line option -P.</para>
326 379
327 <para>failfast - describes the unit-test execution behavior on the 380 <entry>The port used for the FTP connection when onboarding
328 first error or failure encountered.</para> 381 a VNF image. This can be overwritten by setting the Python
382 script command line option <literal>-P</literal>.</entry>
383 </row>
329 384
330 <para>fileLoggingLevel - sets the file logging level.</para> 385 <row>
386 <entry><literal>failfast</literal></entry>
331 387
332 <para>consoleLoggingLevel - sets the console logging level.</para> 388 <entry>Describes the unit-test execution behavior on the
389 first error or failure encountered.</entry>
390 </row>
391
392 <row>
393 <entry><literal>fileLoggingLevel</literal></entry>
394
395 <entry>Sets the file logging level.</entry>
396 </row>
397
398 <row>
399 <entry><literal>consoleLoggingLevel</literal></entry>
400
401 <entry>Sets the console logging level.</entry>
402 </row>
403 </tbody>
404 </tgroup>
405 </table></para>
333 </section> 406 </section>
334 407
335 <section id="ut_suite_log"> 408 <section id="ut_suite_log">
336 <title>Python Unit-Test Suite Logging</title> 409 <title>Python Unit-Test Suite Logging</title>
337 410
338 <para>Logging messages are displayed in the console and also saved to 411 <para>Logging messages are displayed in the console and also saved to
339 the specified log file depending on the chosen logging level.</para> 412 the specified log file. They are shown depending on the chosen logging
413 level.</para>
340 414
341 <para>Logging messages are ranked by their severity 415 <para>Logging messages are ranked by their severity
342 level:<programlisting>CRITICAL 50 416 level:<programlisting>CRITICAL 50
@@ -344,24 +418,29 @@ ERROR 40
344WARNING 30 418WARNING 30
345INFO 20 419INFO 20
346DEBUG 10 420DEBUG 10
347NOTSET 0</programlisting>Logging messages which are less severe than the 421NOTSET 0</programlisting></para>
348 logging level set will be ignored.</para>
349 422
350 <para>Setting console logging level to INFO is done through the 423 <note>
351 consoleLoggingLevel option:<programlisting>consoleLoggingLevel = logging.INFO</programlisting>Setting 424 <para>Logging messages less severe than the set logging level will
352 file logging level to DEBUG is done through the fileLoggingLevel 425 be ignored.</para>
353 option:<programlisting>fileLoggingLevel = logging.DEBUG</programlisting></para> 426 </note>
427
428 <para>Setting the console logging level to INFO is done through the
429 <literal>consoleLoggingLevel</literal> option:<programlisting>consoleLoggingLevel = logging.INFO</programlisting>Setting
430 the file logging level to DEBUG is done through the
431 <literal>fileLoggingLevel</literal> option:<programlisting>fileLoggingLevel = logging.DEBUG</programlisting></para>
354 </section> 432 </section>
355 433
356 <section id="run_ut_suite"> 434 <section id="run_ut_suite">
357 <title>Running Python Unit-Test Suite</title> 435 <title>Running Python Unit-Test Suite</title>
358 436
359 <para>Sample unit-test command line options for running the Fortigate 437 <para>Below you'll find sample unit-test command line options for
360 deployment scenario:</para> 438 running the Fortigate <emphasis role="bold">deployment</emphasis>
439 scenario:</para>
361 440
362 <para><programlisting>$ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s 441 <para><programlisting>$ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s
363fortigateDeploy.json -d "Fortigate deployment scenario"</programlisting>Setting 442fortigateDeploy.json -d "Fortigate deployment scenario"</programlisting>Setting
364 console logging level to DEBUG:<programlisting>consoleLoggingLevel = logging.DEBUG</programlisting><emphasis 443 the console logging level to DEBUG:<programlisting>consoleLoggingLevel = logging.DEBUG</programlisting><emphasis
365 role="bold">Expected Output:</emphasis><programlisting>2019-03-07 18:03:20,791 - DEBUG: Started logging 444 role="bold">Expected Output:</emphasis><programlisting>2019-03-07 18:03:20,791 - DEBUG: Started logging
366 445
367Running Fortigate deployment scenario... 446Running Fortigate deployment scenario...
@@ -493,11 +572,12 @@ Ran 12 tests in 33.328s
493 572
494OK</programlisting></para> 573OK</programlisting></para>
495 574
496 <para>Sample unit-test command line options for running the Fortigate 575 <para>Below you'll find sample unit-test command line options for
497 cleanup scenario:<programlisting>$ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s 576 running the Fortigate <emphasis role="bold">cleanup</emphasis>
577 scenario:<programlisting>$ python unittestSuite.py -u admin -p admin -H localhost -n intelc3850-2 -s
498fortigateCleanup.json -d "Fortigate cleanup scenario"</programlisting></para> 578fortigateCleanup.json -d "Fortigate cleanup scenario"</programlisting></para>
499 579
500 <para>Setting console logging level to INFO: <programlisting>consoleLoggingLevel = logging.INFO</programlisting></para> 580 <para>Setting the console logging level to INFO: <programlisting>consoleLoggingLevel = logging.INFO</programlisting></para>
501 581
502 <para><emphasis role="bold">Expected 582 <para><emphasis role="bold">Expected
503 Output:</emphasis><programlisting>Running Fortigate cleanup scenario... 583 Output:</emphasis><programlisting>Running Fortigate cleanup scenario...
@@ -540,7 +620,8 @@ OK</programlisting></para>
540 <section id="add_ucpe_device"> 620 <section id="add_ucpe_device">
541 <title>Adding a uCPE Device</title> 621 <title>Adding a uCPE Device</title>
542 622
543 <para>Adds a uCPE device to the uCPE manager.</para> 623 <para>Steps for adding, configuring and running a uCPE device onto the
624 uCPE manager are described below .</para>
544 625
545 <section id="opts_add_device"> 626 <section id="opts_add_device">
546 <title>Script Options</title> 627 <title>Script Options</title>
@@ -548,7 +629,7 @@ OK</programlisting></para>
548 <programlisting>$ python addDevice.py -h 629 <programlisting>$ python addDevice.py -h
549Usage: addDevice.py [options] 630Usage: addDevice.py [options]
550 631
551Add a uCPE in Enea uCPE Manager. 632Add a uCPE device in Enea uCPE Manager.
552 633
553Options: 634Options:
554 --version show program's version number and exit 635 --version show program's version number and exit
@@ -568,10 +649,10 @@ Options:
568 <section id="config_json_adddev"> 649 <section id="config_json_adddev">
569 <title>Configuring the JSON File</title> 650 <title>Configuring the JSON File</title>
570 651
571 <para>The add device suite JSON configuration file should contain a 652 <para>The JSON configuration file needed for adding a uCPE device
572 list of dictionaries, each dictionary indicating the test case name 653 should contain a list of dictionaries. Each dictionary indicates the
573 and the test case arguments passed to the addDevice Python 654 test case name and the arguments passed to the
574 module.</para> 655 <literal>addDevice</literal> Python module.</para>
575 656
576 <para><emphasis role="bold">Sample configuration file in JSON 657 <para><emphasis role="bold">Sample configuration file in JSON
577 format:</emphasis></para> 658 format:</emphasis></para>
@@ -583,7 +664,8 @@ Options:
583 } 664 }
584]</programlisting> 665]</programlisting>
585 666
586 <para><emphasis role="bold">Sample intelc3850-2.json configuration 667 <para><emphasis role="bold">Sample
668 <filename>intelc3850-2.json</filename> configuration
587 file:</emphasis></para> 669 file:</emphasis></para>
588 670
589 <programlisting>{ 671 <programlisting>{
@@ -602,8 +684,8 @@ Options:
602 <section id="run_py_mod"> 684 <section id="run_py_mod">
603 <title>Running the Python Module</title> 685 <title>Running the Python Module</title>
604 686
605 <para>The addDevice Python module can be executed individually by 687 <para>The <filename>addDevice</filename> Python module can be executed
606 running the following command line:</para> 688 independently by running the following command:</para>
607 689
608 <programlisting>$ python addDevice.py -u admin -p admin -H localhost -f config/device.json 690 <programlisting>$ python addDevice.py -u admin -p admin -H localhost -f config/device.json
6092019-03-07 17:33:10,755 - DEBUG: Started logging 6912019-03-07 17:33:10,755 - DEBUG: Started logging
@@ -619,7 +701,8 @@ Options:
619 <section id="remove_ucpe_device"> 701 <section id="remove_ucpe_device">
620 <title>Removing a uCPE Device</title> 702 <title>Removing a uCPE Device</title>
621 703
622 <para>Removes a uCPE device from uCPE manager.</para> 704 <para>Steps for removing a uCPE device from the uCPE manager are
705 described below.</para>
623 706
624 <section id="rem_script_opts"> 707 <section id="rem_script_opts">
625 <title>Script Options</title> 708 <title>Script Options</title>
@@ -647,10 +730,10 @@ Options:
647 <section id="config_json_rem"> 730 <section id="config_json_rem">
648 <title>Configuring the JSON File</title> 731 <title>Configuring the JSON File</title>
649 732
650 <para>The remove device suite JSON configuration file should contain a 733 <para>The JSON configuration file needed to remove a uCPE device
651 list of dictionaries, each dictionary indicating the test case name 734 should contain a list of dictionaries. Each dictionary indicates the
652 and the test case arguments passed to the removeDevice Python 735 test case name and the arguments passed to the
653 module.</para> 736 <filename>removeDevice</filename> Python module.</para>
654 737
655 <para><emphasis role="bold">Sample unit-test JSON file 738 <para><emphasis role="bold">Sample unit-test JSON file
656 format:</emphasis></para> 739 format:</emphasis></para>
@@ -662,7 +745,8 @@ Options:
662 } 745 }
663]</programlisting> 746]</programlisting>
664 747
665 <para><emphasis role="bold">Sample intelc3850-2.json configuration 748 <para><emphasis role="bold">Sample
749 <filename>intelc3850-2.json</filename> configuration
666 file:</emphasis></para> 750 file:</emphasis></para>
667 751
668 <programlisting>{ 752 <programlisting>{
@@ -673,8 +757,8 @@ Options:
673 <section id="Run_py_mod_rem"> 757 <section id="Run_py_mod_rem">
674 <title>Running the Python Module</title> 758 <title>Running the Python Module</title>
675 759
676 <para>The removeDevice Python module can be executed individually by 760 <para>The <filename>removeDevice</filename> Python module can be
677 running the following command line:</para> 761 executed individually by running the following command:</para>
678 762
679 <programlisting>$ python removeDevice.py -u admin -p admin -H localhost -f 763 <programlisting>$ python removeDevice.py -u admin -p admin -H localhost -f
680../../lab_config/intelc3850-2/intelc3850-2.json 764../../lab_config/intelc3850-2/intelc3850-2.json
@@ -693,8 +777,8 @@ host
693 <section id="wait_ucpe_device"> 777 <section id="wait_ucpe_device">
694 <title>Waiting a uCPE Device</title> 778 <title>Waiting a uCPE Device</title>
695 779
696 <para>Wait for uCPE to connect to the Enea uCPE Manager after 780 <para>Steps and details for how to Wait a uCPE device to connect to the
697 installation.</para> 781 uCPE Manager after installation, are described below.</para>
698 782
699 <section id="wait_script_opts"> 783 <section id="wait_script_opts">
700 <title>Script Options</title> 784 <title>Script Options</title>
@@ -725,10 +809,10 @@ Options:
725 <section id="config_json_wait"> 809 <section id="config_json_wait">
726 <title>Configuring the JSON File</title> 810 <title>Configuring the JSON File</title>
727 811
728 <para>The wait device suite JSON configuration file should contain a 812 <para>The JSON configuration file needed to wait a uCPE device should
729 list of dictionaries, each dictionary indicating the test case name 813 contain a list of dictionaries. Each dictionary indicates the test
730 and the test case arguments passed to the waitDeviceUp Python 814 case name and the test case arguments passed to the
731 module.</para> 815 <filename>waitDeviceUp</filename> Python module.</para>
732 816
733 <para><emphasis role="bold">Sample unit-test JSON file 817 <para><emphasis role="bold">Sample unit-test JSON file
734 format:</emphasis></para> 818 format:</emphasis></para>
@@ -740,7 +824,8 @@ Options:
740 } 824 }
741]</programlisting> 825]</programlisting>
742 826
743 <para><emphasis role="bold">Sample intelc3850-2.json configuration 827 <para><emphasis role="bold">Sample
828 <filename>intelc3850-2.json</filename> configuration
744 file:</emphasis></para> 829 file:</emphasis></para>
745 830
746 <programlisting>{ 831 <programlisting>{
@@ -751,8 +836,9 @@ Options:
751 <section id="runpy_mod_wait"> 836 <section id="runpy_mod_wait">
752 <title>Running the Python Module</title> 837 <title>Running the Python Module</title>
753 838
754 <para>The waitDeviceUp Python module can be executed individually by 839 <para>The <filename>waitDeviceUp</filename> Python module can be
755 running the following command line:<programlisting>$ python waitDeviceUp.py -u admin -p admin -H localhost -t 60 -f 840 executed individually by running the following command
841 line:<programlisting>$ python waitDeviceUp.py -u admin -p admin -H localhost -t 60 -f
756../../lab_config/intelc3850-2/intelc3850-2.json 842../../lab_config/intelc3850-2/intelc3850-2.json
7572019-03-07 18:03:21,132 - DEBUG: Started logging 8432019-03-07 18:03:21,132 - DEBUG: Started logging
7582019-03-07 18:03:21,133 - INFO: Wait uCPE device 8442019-03-07 18:03:21,133 - INFO: Wait uCPE device
@@ -766,16 +852,16 @@ Options:
766 </section> 852 </section>
767 </section> 853 </section>
768 854
769 <section id="print_ucpe_log"> 855 <section id="print_ucpe_log">
770 <title>Printing the uCPE Device log</title> 856 <title>Printing the uCPE Device Log</title>
771 857
772 <para>Print the events log for a specific uCPE device installed in Enea uCPE Manager.</para> 858 <para>Steps and details on how to Print the events log for a specific
859 uCPE device installed in the uCPE Manager, are explained below.</para>
773 860
774 <section id="print_script_opts"> 861 <section id="print_script_opts">
775 <title>Script Options</title> 862 <title>Script Options</title>
776 863
777 <programlisting> 864 <programlisting>$ python getEventsForUcpe.py -h
778$ python getEventsForUcpe.py -h
779Usage: getEventsForUcpe.py [options] 865Usage: getEventsForUcpe.py [options]
780 866
781Print the events log for a specific uCPE installed in Enea uCPE Manager. 867Print the events log for a specific uCPE installed in Enea uCPE Manager.
@@ -790,17 +876,17 @@ Options:
790-s SEVERITY, --severity=SEVERITY Event severity level (Critical|Major|Minor) 876-s SEVERITY, --severity=SEVERITY Event severity level (Critical|Major|Minor)
791 877
792Mandatory options: 878Mandatory options:
793-H/--host, -f/--file 879-H/--host, -f/--file </programlisting>
794 </programlisting> 880 </section>
795 </section> 881
796 882 <section id="config_json_log">
797 <section id="config_json_log"> 883 <title>Configuring the JSON File</title>
798 <title>Configuring the JSON File</title> 884
799 885 <para><emphasis role="bold">Sample
800 <para><emphasis role="bold">Sample <filename>intelc3850-2.json</filename> 886 <filename>intelc3850-2.json</filename> configuration
801 configuration file:</emphasis></para> 887 file:</emphasis></para>
802 888
803 <programlisting>{ 889 <programlisting>{
804"name": "intelc3850-2", 890"name": "intelc3850-2",
805"description": "", 891"description": "",
806"address": "172.24.12.114", 892"address": "172.24.12.114",
@@ -811,14 +897,15 @@ Mandatory options:
811"passphrase": null, 897"passphrase": null,
812"maintMode": "false" 898"maintMode": "false"
813 }</programlisting> 899 }</programlisting>
814 </section> 900 </section>
815 901
816 <section id="runpy_mod_log"> 902 <section id="runpy_mod_log">
817 <title>Running the Python Module</title> 903 <title>Running the Python Module</title>
818 904
819 <para>The <literal>getEventsForUcpe</literal> Python module can be executed 905 <para>The <literal>getEventsForUcpe</literal> Python module can be
820 individually by running the following command:</para> 906 executed individually by running the following command:</para>
821 <programlisting> 907
908 <programlisting>
822$ python getEventsForUcpe.py -H localhost -f \ 909$ python getEventsForUcpe.py -H localhost -f \
823../../lab_config/intelc3850-2/intelc3850-2.json 910../../lab_config/intelc3850-2/intelc3850-2.json
824 911
@@ -836,15 +923,14 @@ Events on device: intelc3850-2 and severity: 1000
8362019-07-04 13:48:31,469 - INFO: Done 9232019-07-04 13:48:31,469 - INFO: Done
8372019-07-04 13:48:31,488 - DEBUG: Logging out and exiting... 9242019-07-04 13:48:31,488 - DEBUG: Logging out and exiting...
838 </programlisting> 925 </programlisting>
839 </section> 926 </section>
840 927 </section>
841 </section>
842 928
843 <section id="bind_ucpe_device"> 929 <section id="bind_ucpe_device">
844 <title>Binding a network interface</title> 930 <title>Binding a Network Interface</title>
845 931
846 <para>Binds a physical network interface to a DPDK or SR-IOV. 932 <para>How to Bind a physical network interface to a DPDK or SR-IOV is
847 </para> 933 detailed below.</para>
848 934
849 <section id="script_opts_bind"> 935 <section id="script_opts_bind">
850 <title>Script Options</title> 936 <title>Script Options</title>
@@ -875,10 +961,10 @@ format
875 <section id="bind_config"> 961 <section id="bind_config">
876 <title>Configuring the JSON File</title> 962 <title>Configuring the JSON File</title>
877 963
878 <para>The bind network interface suite JSON configuration file should 964 <para>The JSON configuration file needed to bind a physical network
879 contain a list of dictionaries, each dictionary indicating the test 965 interface should contain a list of dictionaries. Each dictionary
880 case name and the test case arguments passed to the 966 indicates the test case name and the test case arguments passed to the
881 bindNetworkInterface Python module.</para> 967 <filename>bindNetworkInterface</filename> Python module.</para>
882 968
883 <para><emphasis role="bold">Sample unit-test JSON file 969 <para><emphasis role="bold">Sample unit-test JSON file
884 format:</emphasis><programlisting>[ 970 format:</emphasis><programlisting>[
@@ -890,12 +976,14 @@ format
890 "name": "Bind wan NIC to DPDK ", 976 "name": "Bind wan NIC to DPDK ",
891 "args": "-f ../../lab_config/intelc3850-2/wan_nic.json" 977 "args": "-f ../../lab_config/intelc3850-2/wan_nic.json"
892 } 978 }
893]</programlisting><emphasis role="bold">Sample lan_nic.json configuration 979]</programlisting><emphasis role="bold">Sample
980 <filename>lan_nic.json</filename> configuration
894 file:</emphasis><programlisting>{ 981 file:</emphasis><programlisting>{
895 "name": "0000:01:00.1", 982 "name": "0000:01:00.1",
896 "type": "dpdk", 983 "type": "dpdk",
897 "subType": "igb_uio" 984 "subType": "igb_uio"
898}</programlisting><emphasis role="bold">Sample wan_nic.json configuration 985}</programlisting><emphasis role="bold">Sample
986 <filename>wan_nic.json</filename> configuration
899 file:</emphasis><programlisting>{ 987 file:</emphasis><programlisting>{
900 "name": "0000:03:00.2", 988 "name": "0000:03:00.2",
901 "type": "dpdk", 989 "type": "dpdk",
@@ -906,8 +994,8 @@ format
906 <section id="runpy_bind"> 994 <section id="runpy_bind">
907 <title>Running the Python Module</title> 995 <title>Running the Python Module</title>
908 996
909 <para>The <literal>bindNetworkInterface</literal> Python module can be executed 997 <para>The <literal>bindNetworkInterface</literal> Python module can be
910 individually by running the following command line:</para> 998 executed individually by running the following command line:</para>
911 999
912 <programlisting>$ python bindNetworkInterface.py -u admin -p admin -H localhost -f 1000 <programlisting>$ python bindNetworkInterface.py -u admin -p admin -H localhost -f
913../../lab_config/intelc3850-2/lan_nic.json -n intelc3850-2 1001../../lab_config/intelc3850-2/lan_nic.json -n intelc3850-2
@@ -925,7 +1013,8 @@ format
925 <section id="unbind_ucpe_device"> 1013 <section id="unbind_ucpe_device">
926 <title>Unbinding a Network Interface</title> 1014 <title>Unbinding a Network Interface</title>
927 1015
928 <para>Unbinds a physical network interface from DPDK or SR-IOV.</para> 1016 <para>How to Unbind a physical network interface from a DPDK or SR-IOV
1017 is described below.</para>
929 1018
930 <section id="script_opts_unbind"> 1019 <section id="script_opts_unbind">
931 <title>Script Options</title> 1020 <title>Script Options</title>
@@ -956,10 +1045,10 @@ Options:
956 <section id="json_unbind"> 1045 <section id="json_unbind">
957 <title>Configuring the JSON File</title> 1046 <title>Configuring the JSON File</title>
958 1047
959 <para>The unbind network interface suite JSON configuration file 1048 <para>The JSON configuration file needed to unbind a network interface
960 should contain a list of dictionaries, each dictionary indicating the 1049 should contain a list of dictionaries. Each dictionary indicates the
961 test case name and the test case arguments passed to the 1050 test case name and the test case arguments passed to the
962 unbindNetworkInterface Python module.</para> 1051 <filename>unbindNetworkInterface</filename> Python module.</para>
963 1052
964 <para><emphasis role="bold">Sample unit-test JSON file 1053 <para><emphasis role="bold">Sample unit-test JSON file
965 format:</emphasis><programlisting>[ 1054 format:</emphasis><programlisting>[
@@ -974,16 +1063,16 @@ Unbinds a physical interface to the DPDK or SR-IOV
974 } 1063 }
975]</programlisting></para> 1064]</programlisting></para>
976 1065
977 <para><emphasis role="bold">Sample lan_nic.json configuration 1066 <para><emphasis role="bold">Sample <filename>lan_nic.json</filename>
978 file:</emphasis></para> 1067 configuration file:</emphasis></para>
979 1068
980 <programlisting>{ 1069 <programlisting>{
981 "name": "0000:01:00.1", 1070 "name": "0000:01:00.1",
982 "type": "dpdk" 1071 "type": "dpdk"
983}</programlisting> 1072}</programlisting>
984 1073
985 <para><emphasis role="bold">Sample wan_nic.json configuration 1074 <para><emphasis role="bold">Sample <filename>wan_nic.json</filename>
986 file:</emphasis></para> 1075 configuration file:</emphasis></para>
987 1076
988 <programlisting>{ 1077 <programlisting>{
989 "name": "0000:03:00.2", 1078 "name": "0000:03:00.2",
@@ -995,8 +1084,9 @@ Unbinds a physical interface to the DPDK or SR-IOV
995 <section id="pymod_unbind"> 1084 <section id="pymod_unbind">
996 <title>Running the Python Module</title> 1085 <title>Running the Python Module</title>
997 1086
998 <para>The unbindNetworkInterface Python module can be executed 1087 <para>The <filename>unbindNetworkInterface</filename> Python module
999 individually by running the following command line:</para> 1088 can be executed individually by running the following command
1089 line:</para>
1000 1090
1001 <programlisting>$ python unbindNetworkInterface.py -u admin -p admin -H localhost -f 1091 <programlisting>$ python unbindNetworkInterface.py -u admin -p admin -H localhost -f
1002../../lab_config/intelc3850-2/lan_nic.json -n intelc3850-2 1092../../lab_config/intelc3850-2/lan_nic.json -n intelc3850-2
@@ -1013,13 +1103,14 @@ Unbinds a physical interface to the DPDK or SR-IOV
1013 1103
1014 <section id="get_network_interface"> 1104 <section id="get_network_interface">
1015 <title>Getting a Network Interface</title> 1105 <title>Getting a Network Interface</title>
1016
1017 <para>List the network interfaces for a device.</para>
1018 1106
1019 <section id="script_opts_interface"> 1107 <para>Details and steps on how to List the network interfaces for a
1020 <title>Script Options</title> 1108 device, are described below.</para>
1021 <programlisting> 1109
1022$ python getNetworkInterfaces.py -h 1110 <section id="script_opts_interface">
1111 <title>Script Options</title>
1112
1113 <programlisting>$ python getNetworkInterfaces.py -h
10232019-07-04 16:35:50,496 - DEBUG: Started logging 11142019-07-04 16:35:50,496 - DEBUG: Started logging
10242019-07-04 16:35:50,496 - INFO: Dump NICs 11152019-07-04 16:35:50,496 - INFO: Dump NICs
1025Usage: getNetworkInterfaces.py [options] 1116Usage: getNetworkInterfaces.py [options]
@@ -1030,19 +1121,20 @@ Options:
1030 -u USERNAME, --username=USERNAME Enea uCPE Manager login username 1121 -u USERNAME, --username=USERNAME Enea uCPE Manager login username
1031 -p PASSWORD, --password=PASSWORD Enea uCPE Manager login password 1122 -p PASSWORD, --password=PASSWORD Enea uCPE Manager login password
1032 -H HOST, --host=HOST Enea uCPE Manager host name or IP address 1123 -H HOST, --host=HOST Enea uCPE Manager host name or IP address
1033 -n DEVICENAME, --device-name=DEVICENAME Name of the uCPE to get network interfaces from 1124 -n DEVICENAME, --device-name=DEVICENAME Name of the uCPE to get network /
1125 interfaces from
1034 1126
1035 Mandatory options: 1127 Mandatory options:
1036 -H/--host, -n/--device-name 1128 -H/--host, -n/--device-name</programlisting>
1037 </programlisting> 1129 </section>
1038 </section> 1130
1131 <section id="runpy_net_interface">
1132 <title>Running the Python Module</title>
1133
1134 <para>The <literal>getNetworkInterfaces</literal> Python module can be
1135 executed individually by running the following command:</para>
1039 1136
1040 <section id="runpy_net_interface"> 1137 <programlisting>$ python getNetworkInterfaces.py -H localhost -n intelc3850-2
1041 <title>Running the Python Module</title>
1042 <para>The <literal>getNetworkInterfaces</literal> Python module can be executed individually
1043 by running the following command:</para>
1044 <programlisting>
1045$ python getNetworkInterfaces.py -H localhost -n intelc3850-2
10462019-07-04 16:03:47,580 - DEBUG: Started logging 11382019-07-04 16:03:47,580 - DEBUG: Started logging
10472019-07-04 16:03:47,580 - INFO: Dump NICs 11392019-07-04 16:03:47,580 - INFO: Dump NICs
10482019-07-04 16:03:47,609 - DEBUG: Login successful on host 'localhost' 11402019-07-04 16:03:47,609 - DEBUG: Login successful on host 'localhost'
@@ -1086,15 +1178,14 @@ $ python getNetworkInterfaces.py -H localhost -n intelc3850-2
10862019-07-04 16:03:48,013 - DEBUG: 11782019-07-04 16:03:48,013 - DEBUG:
10872019-07-04 16:03:48,013 - INFO: Done 11792019-07-04 16:03:48,013 - INFO: Done
10882019-07-04 16:03:48,029 - DEBUG: Logging out and exiting...</programlisting> 11802019-07-04 16:03:48,029 - DEBUG: Logging out and exiting...</programlisting>
1089 1181 </section>
1090 </section> 1182 </section>
1091 1183
1092</section>
1093
1094 <section id="create_ovs_net_bridge"> 1184 <section id="create_ovs_net_bridge">
1095 <title>Create an OVS Network Bridge</title> 1185 <title>Create an OVS Network Bridge</title>
1096 1186
1097 <para>Create an OVS Bridge on a device.</para> 1187 <para>Instructions on how to Create an OVS Bridge on a device are
1188 detailed below.</para>
1098 1189
1099 <section id="script_opts_creovs"> 1190 <section id="script_opts_creovs">
1100 <title>Script Options</title> 1191 <title>Script Options</title>
@@ -1124,10 +1215,10 @@ Options:
1124 <section id="json_creovs"> 1215 <section id="json_creovs">
1125 <title>Configuring the JSON File</title> 1216 <title>Configuring the JSON File</title>
1126 1217
1127 <para>The new network bridge suite JSON configuration file should 1218 <para>The JSON configuration file needed to create a new network
1128 contain a list of dictionaries, each dictionary indicating the test 1219 bridge should contain a list of dictionaries. Each dictionary
1129 case name and the test case arguments passed to the newNetworkBridge 1220 indicates the test case name and the test case arguments passed to the
1130 Python module.</para> 1221 <literal>newNetworkBridge</literal> Python module.</para>
1131 1222
1132 <para><emphasis role="bold">Sample unit-test JSON file 1223 <para><emphasis role="bold">Sample unit-test JSON file
1133 format:</emphasis></para> 1224 format:</emphasis></para>
@@ -1143,16 +1234,16 @@ Options:
1143 } 1234 }
1144]</programlisting> 1235]</programlisting>
1145 1236
1146 <para><emphasis role="bold">Sample lan_br.json configuration 1237 <para><emphasis role="bold">Sample <filename>lan_br.json</filename>
1147 file:</emphasis></para> 1238 configuration file:</emphasis></para>
1148 1239
1149 <programlisting>{ 1240 <programlisting>{
1150 "name": "lan_br", 1241 "name": "lan_br",
1151 "interfaces": ["0000:01:00.1"] 1242 "interfaces": ["0000:01:00.1"]
1152}</programlisting> 1243}</programlisting>
1153 1244
1154 <para><emphasis role="bold">Sample wan_br.json configuration 1245 <para><emphasis role="bold">Sample <filename>wan_br.json</filename>
1155 file:</emphasis></para> 1246 configuration file:</emphasis></para>
1156 1247
1157 <programlisting>{ 1248 <programlisting>{
1158 "name": "wan_br", 1249 "name": "wan_br",
@@ -1163,8 +1254,8 @@ Options:
1163 <section id="pymod_creovs"> 1254 <section id="pymod_creovs">
1164 <title>Running the Python Module</title> 1255 <title>Running the Python Module</title>
1165 1256
1166 <para>The newNetworkBridge Python module can be executed individually 1257 <para>The <filename>newNetworkBridge</filename> Python module can be
1167 by running the following command line:</para> 1258 executed individually by running the following command line:</para>
1168 1259
1169 <programlisting>$ python newNetworkBridge.py -u admin -p admin -H localhost -f 1260 <programlisting>$ python newNetworkBridge.py -u admin -p admin -H localhost -f
1170../../lab_config/intelc3850-2/lan_br.json -n intelc3850-2 1261../../lab_config/intelc3850-2/lan_br.json -n intelc3850-2
@@ -1182,7 +1273,8 @@ Options:
1182 <section id="delete_ovs_net_bridge"> 1273 <section id="delete_ovs_net_bridge">
1183 <title>Delete an OVS Network Bridge</title> 1274 <title>Delete an OVS Network Bridge</title>
1184 1275
1185 <para>Delete an OVS Bridge from a device.</para> 1276 <para>How to Delete an OVS Bridge from a device is detailed in the
1277 following.</para>
1186 1278
1187 <section id="script_opts_delovs"> 1279 <section id="script_opts_delovs">
1188 <title>Script Options</title> 1280 <title>Script Options</title>
@@ -1212,10 +1304,10 @@ Options:
1212 <section id="json_delovs"> 1304 <section id="json_delovs">
1213 <title>Configuring the JSON File</title> 1305 <title>Configuring the JSON File</title>
1214 1306
1215 <para>The delete network bridge suite JSON configuration file should 1307 <para>The JSON configuration file needed to delete a network bridge
1216 contain a list of dictionaries, each dictionary indicating the test 1308 should contain a list of dictionaries. Each dictionary indicates the
1217 case name and the test case arguments passed to the delNetworkBridge 1309 test case name and the test case arguments passed to the
1218 Python module.</para> 1310 <filename>delNetworkBridge</filename> Python module.</para>
1219 1311
1220 <para><emphasis role="bold">Sample unit-test JSON file 1312 <para><emphasis role="bold">Sample unit-test JSON file
1221 format:</emphasis></para> 1313 format:</emphasis></para>
@@ -1231,15 +1323,15 @@ Options:
1231 } 1323 }
1232]</programlisting> 1324]</programlisting>
1233 1325
1234 <para><emphasis role="bold">Sample lan_br.json configuration 1326 <para><emphasis role="bold">Sample <filename>lan_br.json</filename>
1235 file:</emphasis></para> 1327 configuration file:</emphasis></para>
1236 1328
1237 <programlisting>{ 1329 <programlisting>{
1238 "name" : "lan_br" 1330 "name" : "lan_br"
1239}</programlisting> 1331}</programlisting>
1240 1332
1241 <para><emphasis role="bold">Sample wan_br.json configuration 1333 <para><emphasis role="bold">Sample <filename>wan_br.json</filename>
1242 file:</emphasis></para> 1334 configuration file:</emphasis></para>
1243 1335
1244 <programlisting>{ 1336 <programlisting>{
1245 "name" : "wan_br" 1337 "name" : "wan_br"
@@ -1249,8 +1341,8 @@ Options:
1249 <section id="pymod_delovs"> 1341 <section id="pymod_delovs">
1250 <title>Running the Python Module</title> 1342 <title>Running the Python Module</title>
1251 1343
1252 <para>The delNetworkBridge Python module can be executed individually 1344 <para>The <filename>delNetworkBridge</filename> Python module can be
1253 by running the following command line:</para> 1345 executed individually by running the following command line:</para>
1254 1346
1255 <programlisting>$ python delNetworkBridge.py -u admin -p admin -H localhost -f 1347 <programlisting>$ python delNetworkBridge.py -u admin -p admin -H localhost -f
1256../../lab_config/intelc3850-2/lan_br.json -n intelc3850-2 1348../../lab_config/intelc3850-2/lan_br.json -n intelc3850-2
@@ -1266,9 +1358,10 @@ Options:
1266 </section> 1358 </section>
1267 1359
1268 <section id="onboard_vnf_bundle"> 1360 <section id="onboard_vnf_bundle">
1269 <title>Onboard a VNF Bundle</title> 1361 <title>Onboard a VNF Image</title>
1270 1362
1271 <para>Onboard a VNF to Enea uCPE Manager.</para> 1363 <para>The specifics of how to Onboard a VNF image onto the Enea uCPE
1364 Manager is detailed below.</para>
1272 1365
1273 <section id="script_opts_onbvnf"> 1366 <section id="script_opts_onbvnf">
1274 <title>Script Options</title> 1367 <title>Script Options</title>
@@ -1302,10 +1395,10 @@ Options:
1302 <section id="json_onbvnf"> 1395 <section id="json_onbvnf">
1303 <title>Configuring the JSON File</title> 1396 <title>Configuring the JSON File</title>
1304 1397
1305 <para>The onboard VNF suite JSON configuration file should contain a 1398 <para>The JSON configuration file needed to onboard a VNF image should
1306 list of dictionaries, each dictionary indicating the test case name 1399 contain a list of dictionaries. Each dictionary indicates the test
1307 and the test case arguments passed to the onboardVNF Python 1400 case name and the test case arguments passed to the
1308 module.</para> 1401 <filename>onboardVNF</filename> Python module.</para>
1309 1402
1310 <para><emphasis role="bold">Sample unit-test JSON file 1403 <para><emphasis role="bold">Sample unit-test JSON file
1311 format:</emphasis><programlisting>[ 1404 format:</emphasis><programlisting>[
@@ -1319,8 +1412,8 @@ Options:
1319 <section id="pymod_onbvnf"> 1412 <section id="pymod_onbvnf">
1320 <title>Running the Python Module</title> 1413 <title>Running the Python Module</title>
1321 1414
1322 <para>The onboardVNF Python module can be executed individually by 1415 <para>The <filename>onboardVNF</filename> Python module can be
1323 running the following command line:</para> 1416 executed individually by running the following command line:</para>
1324 1417
1325 <programlisting>$ python onboardVNF.py -u admin -p admin -f ftp -w ftp -H localhost -b 1418 <programlisting>$ python onboardVNF.py -u admin -p admin -f ftp -w ftp -H localhost -b
1326../../vnf_images/Fortigate.zip 1419../../vnf_images/Fortigate.zip
@@ -1337,10 +1430,10 @@ Options:
1337 </section> 1430 </section>
1338 1431
1339 <section id="onboard_vnf_image"> 1432 <section id="onboard_vnf_image">
1340 <title>Onboard a VNF Image</title> 1433 <title>Onboard a VNF Image Raw</title>
1341 1434
1342 <para>Onboard a VNF image in Enea uCPE Manager based upon its raw 1435 <para>How to Onboard a VNF image in the uCPE Manager based upon its raw
1343 constituents.</para> 1436 constituents, is detailed in depth below.</para>
1344 1437
1345 <section id="script_opts_image"> 1438 <section id="script_opts_image">
1346 <title>Script Options</title> 1439 <title>Script Options</title>
@@ -1365,21 +1458,21 @@ Options:
1365 -P FTPPORT, --ftpPort=FTPPORT 1458 -P FTPPORT, --ftpPort=FTPPORT
1366 FTP port 1459 FTP port
1367 -i IMAGEPATH, --imagePath=IMAGEPATH 1460 -i IMAGEPATH, --imagePath=IMAGEPATH
1368 VNF image path 1461 VNF bundle image path
1369 -b IMAGEINFO, --imageInfo=IMAGEINFO 1462 -b BUNDLEINFO, --bundleInfo=BUNDLEINFO
1370 File name of VNF image information in JSON format 1463 File name of VNF bundle information in JSON format
1371 1464
1372 Mandatory options: 1465 Mandatory options:
1373 -H/--host, -b/--imageInfo, -i/--imagePath</programlisting> 1466 -H/--host, -b/--bundleInfo, -i/--imagePath</programlisting>
1374 </section> 1467 </section>
1375 1468
1376 <section id="json_image"> 1469 <section id="json_image">
1377 <title>Configuring the JSON File</title> 1470 <title>Configuring the JSON File</title>
1378 1471
1379 <para>The onboard VNF image suite JSON configuration file should 1472 <para>The JSON configuration file needed to onboard a VNF image Raw
1380 contain a list of dictionaries, each dictionary indicating the test 1473 should contain a list of dictionaries. Each dictionary indicates the
1381 case name and the test case arguments passed to the onboardVNFRaw 1474 test case name and the test case arguments passed to the
1382 Python module.</para> 1475 <filename>onboardVNFRaw</filename> Python module.</para>
1383 1476
1384 <para><emphasis role="bold">Sample unit-test JSON file 1477 <para><emphasis role="bold">Sample unit-test JSON file
1385 format:</emphasis></para> 1478 format:</emphasis></para>
@@ -1392,7 +1485,8 @@ Options:
1392 } 1485 }
1393]</programlisting> 1486]</programlisting>
1394 1487
1395 <para><emphasis role="bold">Sample fortigateImage.json configuration 1488 <para><emphasis role="bold">Sample
1489 <filename>fortigateImage.json</filename> configuration
1396 file:</emphasis><programlisting>{ 1490 file:</emphasis><programlisting>{
1397 "name" : "fortigateImage", 1491 "name" : "fortigateImage",
1398 "version" : "1.0", 1492 "version" : "1.0",
@@ -1434,8 +1528,8 @@ Options:
1434 <section id="pymod_image"> 1528 <section id="pymod_image">
1435 <title>Running the Python Module</title> 1529 <title>Running the Python Module</title>
1436 1530
1437 <para>The onboardVNFRaw Python module can be executed individually by 1531 <para>The <filename>onboardVNFRaw</filename> Python module can be
1438 running the following command line:</para> 1532 executed individually by running the following command line:</para>
1439 1533
1440 <programlisting>$ python onboardVNFRaw.py -u admin -p admin -f ftp -w ftp -H localhost -b b 1534 <programlisting>$ python onboardVNFRaw.py -u admin -p admin -f ftp -w ftp -H localhost -b b
1441../../vnf_config/fortigateImage/fortigateImage.json -i 1535../../vnf_config/fortigateImage/fortigateImage.json -i
@@ -1455,7 +1549,8 @@ Options:
1455 <section id="offboard_vnf"> 1549 <section id="offboard_vnf">
1456 <title>Offboard a VNF</title> 1550 <title>Offboard a VNF</title>
1457 1551
1458 <para>Offboard a VNF from Enea uCPE Manager.</para> 1552 <para>Steps on how to Offboard a VNF from the uCPE Manager are detailed
1553 below.</para>
1459 1554
1460 <section id="script_opts_offimage"> 1555 <section id="script_opts_offimage">
1461 <title>Script Options</title> 1556 <title>Script Options</title>
@@ -1483,10 +1578,10 @@ Options:
1483 <section id="json_offimage"> 1578 <section id="json_offimage">
1484 <title>Configuring the JSON File</title> 1579 <title>Configuring the JSON File</title>
1485 1580
1486 <para>The offboard VNF suite JSON configuration file should contain a 1581 <para>The JSON configuration file needed to offboard a VNF should
1487 list of dictionaries, each dictionary indicating the test case name 1582 contain a list of dictionaries. Each dictionary indicates the test
1488 and the test case arguments passed to the offboardVNF Python 1583 case name and the test case arguments passed to the
1489 module.</para> 1584 <filename>offboardVNF</filename> Python module.</para>
1490 1585
1491 <para><emphasis role="bold">Sample unit-test JSON file 1586 <para><emphasis role="bold">Sample unit-test JSON file
1492 format:</emphasis></para> 1587 format:</emphasis></para>
@@ -1502,8 +1597,8 @@ Options:
1502 <section id="pymod_offimage"> 1597 <section id="pymod_offimage">
1503 <title>Running the Python Module</title> 1598 <title>Running the Python Module</title>
1504 1599
1505 <para>The offboardVNF Python module can be executed individually by 1600 <para>The <filename>offboardVNF</filename> Python module can be
1506 running the following command line:</para> 1601 executed individually by running the following command line:</para>
1507 1602
1508 <programlisting>$ python offboardVNF.py -u admin -p admin -H localhost -n fortigateImage 1603 <programlisting>$ python offboardVNF.py -u admin -p admin -H localhost -n fortigateImage
15092019-03-07 17:33:56,523 - DEBUG: Started logging 16042019-03-07 17:33:56,523 - DEBUG: Started logging
@@ -1520,7 +1615,7 @@ Options:
1520 <section id="instantiate_vnf"> 1615 <section id="instantiate_vnf">
1521 <title>Instantiate a VNF</title> 1616 <title>Instantiate a VNF</title>
1522 1617
1523 <para>Instantiate a VNF via Enea uCPE Manager.</para> 1618 <para>Instantiating a VNF via the uCPE Manager is detailed below.</para>
1524 1619
1525 <section id="script_opts_inst"> 1620 <section id="script_opts_inst">
1526 <title>Script Options</title> 1621 <title>Script Options</title>
@@ -1552,10 +1647,10 @@ Options:
1552 <section id="json_inst"> 1647 <section id="json_inst">
1553 <title>Configuring the JSON File</title> 1648 <title>Configuring the JSON File</title>
1554 1649
1555 <para>The instantiate VNF suite JSON configuration file should contain 1650 <para>The JSON configuration file needed to instantiate a VNF should
1556 a list of dictionaries, each dictionary indicating the test case name 1651 contain a list of dictionaries. Each dictionary indicates the test
1557 and the test case arguments passed to the instantiateVNFI Python 1652 case name and the test case arguments passed to the
1558 module.</para> 1653 <filename>instantiateVNFI</filename> Python module.</para>
1559 1654
1560 <para><emphasis role="bold">Sample unit-test JSON file 1655 <para><emphasis role="bold">Sample unit-test JSON file
1561 format:</emphasis></para> 1656 format:</emphasis></para>
@@ -1575,8 +1670,8 @@ Options:
1575 <section id="pymod_inst"> 1670 <section id="pymod_inst">
1576 <title>Running the Python Module</title> 1671 <title>Running the Python Module</title>
1577 1672
1578 <para>The instantiateVNFI Python module can be executed individually 1673 <para>The <filename>instantiateVNFI</filename> Python module can be
1579 by running the following command line:</para> 1674 executed individually by running the following command line:</para>
1580 1675
1581 <programlisting>$ python instantiateVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -t 1676 <programlisting>$ python instantiateVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -t
1582fortigateImage -f ../../vnf_config/fortigateImage/fortigateFWInstance.json 1677fortigateImage -f ../../vnf_config/fortigateImage/fortigateFWInstance.json
@@ -1599,7 +1694,8 @@ License("vnf_config/fortigateImage/fortigateLicense.lic")
1599 <section id="control_vnf_inst"> 1694 <section id="control_vnf_inst">
1600 <title>Control a VNF Instance</title> 1695 <title>Control a VNF Instance</title>
1601 1696
1602 <para>Controls a VNF instance from Enea uCPE Manager.</para> 1697 <para>How to Control a VNF instance from the Enea uCPE Manager is
1698 detailed below.</para>
1603 1699
1604 <section id="script_opts_control"> 1700 <section id="script_opts_control">
1605 <title>Script Options</title> 1701 <title>Script Options</title>
@@ -1631,10 +1727,10 @@ Options:
1631 <section id="json_control"> 1727 <section id="json_control">
1632 <title>Configuring the JSON File</title> 1728 <title>Configuring the JSON File</title>
1633 1729
1634 <para>The control VNF instance suite JSON configuration file should 1730 <para>The JSON configuration file needed to control a VNF instance
1635 contain a list of dictionaries, each dictionary indicating the test 1731 should contain a list of dictionaries. Each dictionary indicates the
1636 case name and the test case arguments passed to the controlVNFI Python 1732 test case name and the test case arguments passed to the
1637 module.</para> 1733 <filename>controlVNFI</filename> Python module.</para>
1638 1734
1639 <para><emphasis role="bold">Sample unit-test JSON file 1735 <para><emphasis role="bold">Sample unit-test JSON file
1640 format:</emphasis></para> 1736 format:</emphasis></para>
@@ -1662,8 +1758,8 @@ Options:
1662 <section id="pymod_control"> 1758 <section id="pymod_control">
1663 <title>Running the Python Module</title> 1759 <title>Running the Python Module</title>
1664 1760
1665 <para>The controlVNFI Python module can be executed individually by 1761 <para>The <filename>controlVNFI</filename> Python module can be
1666 running the following command line:</para> 1762 executed individually by running the following command line:</para>
1667 1763
1668 <programlisting>$ python controlVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -i 1764 <programlisting>$ python controlVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -i
1669fortigateFWInstance -c stop 1765fortigateFWInstance -c stop
@@ -1682,7 +1778,8 @@ fortigateFWInstance -c stop
1682 <section id="destroy_vnf_inst"> 1778 <section id="destroy_vnf_inst">
1683 <title>Destroy a VNF Instance</title> 1779 <title>Destroy a VNF Instance</title>
1684 1780
1685 <para>Destroys a VNF instance from Enea uCPE Manager.</para> 1781 <para>Steps and options on how to Destroy a VNF instance from the Enea
1782 uCPE Manager are described below.</para>
1686 1783
1687 <section id="script_opts_destroy"> 1784 <section id="script_opts_destroy">
1688 <title>Script Options</title> 1785 <title>Script Options</title>
@@ -1712,10 +1809,10 @@ Options:
1712 <section id="json_destroy"> 1809 <section id="json_destroy">
1713 <title>Configuring the JSON File</title> 1810 <title>Configuring the JSON File</title>
1714 1811
1715 <para>The destroy VNF instance suite JSON configuration file should 1812 <para>The JSON configuration file needed to destroy a VNF instance
1716 contain a list of dictionaries, each dictionary indicating the test 1813 should contain a list of dictionaries. Each dictionary indicates the
1717 case name and the test case arguments passed to the destroyVNFI Python 1814 test case name and the test case arguments passed to the
1718 module.</para> 1815 <filename>destroyVNFI</filename> Python module.</para>
1719 1816
1720 <para><emphasis role="bold">Sample unit-test JSON file 1817 <para><emphasis role="bold">Sample unit-test JSON file
1721 format:</emphasis><programlisting>[ 1818 format:</emphasis><programlisting>[
@@ -1729,8 +1826,8 @@ Options:
1729 <section id="pymod_destory"> 1826 <section id="pymod_destory">
1730 <title>Running the Python Module</title> 1827 <title>Running the Python Module</title>
1731 1828
1732 <para>The destroyVNFI Python module can be executed individually by 1829 <para>The <filename>destroyVNFI</filename> Python module can be
1733 running the following command line:</para> 1830 executed individually by running the following command line:</para>
1734 1831
1735 <programlisting>$ python destroyVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -i 1832 <programlisting>$ python destroyVNFI.py -u admin -p admin -H localhost -n intelc3850-2 -i
1736fortigateFWInstance 1833fortigateFWInstance
@@ -1750,72 +1847,87 @@ fortigateFWInstance
1750 <section id="test_harness"> 1847 <section id="test_harness">
1751 <title>Test Harness</title> 1848 <title>Test Harness</title>
1752 1849
1753 <para>All Test Harness sources are under &lt;AF-TH-install-dir&gt; 1850 <para>All Test Harness sources are under the
1754 directory, except under the automation_framework sub-directory. See 1851 <literal>&lt;AF-TH-install-dir&gt;</literal> directory and the host file
1755 chapter 4 for a complete tree listing.</para> 1852 is the Ansible inventory file. See the complete tree listing at the
1853 beginning of this chapter for details.</para>
1756 1854
1757 <para>The Ansible based Test Harness represents an example of how to 1855 <para>The Ansible based Test Harness represents an example of how to
1758 structure all the files needed for creating automated test cases using the 1856 structure all the files needed for creating automated test cases using the
1759 AF and provides a way to implement them. The ansible.cfg file contains an 1857 AF and provides a way to implement them. The
1760 example of the Ansible default configuration. It offers the possibility to 1858 <filename>ansible.cfg</filename> file contains an example of the Ansible
1761 display the Ansible console output in different ways, by setting the 1859 default configuration. It offers the possibility to display the Ansible
1762 stdout_callback to selective or debug. Default is set to selective to 1860 console output in different ways, by setting the
1763 print only certain tasks. It is recommended to switch on debug when a test 1861 <literal>stdout_callback</literal> option to <literal>selective</literal>
1764 fails. By setting any_errors_fatal to True, task failures will be 1862 or <literal>debug</literal>. The default value for this option is set to
1765 considered fatal errors (the play execution will stop). The hosts file is 1863 <literal>selective</literal> to print only certain tasks. It is
1766 the Ansible inventory file.</para> 1864 recommended to switch to <literal>debug</literal> when a test fails. By
1767 1865 setting the parameter <literal>any_errors_fatal</literal> to
1768 <para>All the Playbooks that are executing AF python modules are run on 1866 <literal>True</literal>, task failures will be considered fatal errors
1769 localhost. New entries have to be created for direct communication over 1867 (the play execution will stop). <remark>and why would this stop of play
1770 SSH with the boards, like [fortigateFW] example. The setup_env.sh script 1868 execution help in this debugging scenario</remark></para>
1771 sets up the "testHarness" test environment by creating testHarness-venv 1869
1772 python virtualenv, installing requests needed by Automation Framework 1870 <para>All Playbooks that execute AF python modules run on
1773 python modules and installing Ansible. The playbooks directory contains 1871 <literal>localhost</literal>. New entries have to be created for direct
1774 all the implemented Ansible Playbooks. For details please refer to chapter 1872 communication over SSH with the boards, as done in the
1775 "Sample Test Cases" from the Enea NFV Access System Test Specification 1873 <literal>[fortigateFW]</literal> example.</para>
1776 document.</para> 1874
1777 1875 <para>The <filename>setup_env.sh</filename> script sets up the
1778 <para>The uCPEM_config directory stores JSON configuration files needed 1876 <literal>testHarness</literal> test environment by creating
1779 for the setup of the uCPE Manager used by TH. One configuration file is 1877 <literal>testHarness-venv python virtualenv</literal>, executing requests
1780 needed per uCPE Manager installation to be used in the TH. The vnf_image 1878 needed by Automation Framework python modules and installing Ansible. The
1781 directory stores the VNF Images needed by the Ansible Playbooks (i.e. the 1879 playbooks directory contains all the implemented Ansible Playbooks. For
1782 sample test cases).</para> 1880 more details please refer to chapter "Sample Test Cases" from the Enea NFV
1783 1881 Access System Test Specification document <remark>need an olink to that
1784 <para>The lab_config directory stores the JSON configuration files related 1882 chapter here.</remark>.</para>
1785 to a device (devices, NICs and bridges). Each subfolder should be named 1883
1786 exactly like the device name and should contain all the related 1884 <para>The <literal>uCPEM_config</literal> directory stores JSON
1787 configuration files needed for the test cases to be run on it.</para> 1885 configuration files needed for the setup of the uCPE Manager used by TH.
1788 1886 One configuration file is needed per uCPE Manager installation, to be used
1789 <para>The vnf_config directory stores the configuration files related to a 1887 in the TH. The <literal>vnf_image</literal> directory stores the VNF
1790 VNF Descriptor. Typically these include a VNF Image JSON, VNF Instance 1888 Images needed by the Ansible Playbooks (i.e. the sample test
1791 JSON, VNF license and any other files required by the type of the VNF. 1889 cases).</para>
1792 Each subfolder should be named exactly like the name of the VNF Descriptor 1890
1793 and should contain all the related configuration files needed for test 1891 <para>The <literal>lab_config</literal> directory stores the JSON
1794 cases to be run using this VNF.</para> 1892 configuration files related to a device (devices<remark>clarify this
1795 1893 please, what devices do you mean?</remark>, NICs and bridges). Each
1796 <para>The log directory is created when the setup_env.sh is run. When test 1894 subfolder should be named exactly like the device name and should contain
1797 cases are ran, the Ansible and the Python logs are stored in ansible.log 1895 all the related configuration files needed for the test cases to be run on
1798 and debug.log files, respectively.</para> 1896 it.</para>
1897
1898 <para>The <literal>vnf_config</literal> directory stores the configuration
1899 files related to a VNF Descriptor. Typically these include a VNF Image
1900 JSON, VNF Instance JSON, VNF license and any other files required by the
1901 type of the VNF. Each subfolder should be named exactly like the name of
1902 the VNF Descriptor and should contain all the related configuration files
1903 needed for test cases to be run using this VNF.</para>
1904
1905 <para>The log directory is created when the
1906 <literal>setup_env.sh</literal> is run. When test cases are run, the
1907 Ansible and the Python logs are stored in the
1908 <filename>ansible.log</filename> and <filename>debug.log</filename> files,
1909 respectively.</para>
1799 1910
1800 <section id="test_suites"> 1911 <section id="test_suites">
1801 <title>Extending functionality - Test Suites</title> 1912 <title>Extending functionality - Test Suites</title>
1802 1913
1803 <para>To extend the functionality of the Test Harness it is typically 1914 <para>Extending the functionality of the Test Harness, typically
1804 needed that the functionlity of the Automation Framework be also 1915 requires the functionality of the Automation Framework to also be
1805 extended to cover additional uCPE Manager REST Northbound APIs. The 1916 extended to cover additional uCPE Manager REST Northbound APIs. The
1806 extension of the Automation Framework will result in new Python modules 1917 extension of the Automation Framework will result in new Python modules
1807 that have to be created.</para> 1918 that have to be created.</para>
1808 1919
1809 <para>Additional Python modules, that are not related to the 1920 <para>Additional Python modules, that are not related to the
1810 functionality of the Automation Framework, could be easily integrated 1921 functionality of the Automation Framework, could be easily integrated
1811 into Test Harness to aid in the creation of more complex test cases. 1922 into the Test Harness to aid in the creation of more complex test cases.
1812 Using the TH one can implement test cases that are run directly on the 1923 Using the TH, test cases can be implemented that run directly on the
1813 boards with Enea NFV Access, over SSH.</para> 1924 boards with Enea NFV Access, over SSH.</para>
1814 1925
1815 <para>For a better understanding of the Test Harness functionality and 1926 <para>For a better understanding of the Test Harness functionality and
1816 how to extend the test suites, please refer to the chapter "Sample Test 1927 how to extend the test suites, please refer to the chapter "Sample Test
1817 Cases" from the Enea NFV Access System Test Specification document and 1928 Cases" from the Enea NFV Access System Test Specification document
1818 the TH code source.</para> 1929 <remark>olink to the chapter needed here.</remark>and the TH code
1930 source.</para>
1819 </section> 1931 </section>
1820 </section> 1932 </section>
1821</chapter> 1933</chapter> \ 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 @@
20 <section id="enfva_runtime_plt"> 20 <section id="enfva_runtime_plt">
21 <title>Enea NFV Access</title> 21 <title>Enea NFV Access</title>
22 22
23 <para>The Enea NFV Access is comprised of the Enea NFV Access Run time 23 <para>Enea NFV Access is comprised of the Enea uCPE Manager and the Enea
24 Platform and the Enea uCPE Manager.</para> 24 NFV Access Run Time Platform.</para>
25 25
26 <section id="eucpe_manager"> 26 <section id="eucpe_manager">
27 <title>Enea uCPE Manager</title> 27 <title>Enea uCPE Manager</title>
@@ -32,25 +32,29 @@
32 used in testing.</para> 32 used in testing.</para>
33 33
34 <para>For more on Enea uCPE Manager installation instructions, please 34 <para>For more on Enea uCPE Manager installation instructions, please
35 refer to chapter "Getting Started with Enea uCPE Manager" from the Enea 35 refer to the section on how to <olink
36 NFV Access Getting Started manual.</para> 36 targetdoc="book_enea_nfv_access_getting_started"
37 targetptr="install_ucpe_manager">Install the Enea uCPE Manager in
38 <xi:include href="../../s_docbuild/olinkdb/pardoc-names.xml"
39 xmlns:xi="http://www.w3.org/2001/XInclude"
40 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
37 </section> 41 </section>
38 42
39 <section id="ena_plat"> 43 <section id="ena_plat">
40 <title>Enea NFV Access Run time Platform</title> 44 <title>Enea NFV Access Run Time Platform</title>
41 45
42 <para>One or more uCPE devices running the NFV Access Run Time Platform 46 <para>One or more uCPE devices running the Enea NFV Access Run Time
43 are required as hosts running the VNF(s). The uCPE device is known to 47 Platform are required as hosts to run the VNF(s). The uCPE device is
44 the uCPE Manager as the "VcpeAgent" device module.</para> 48 known to the uCPE Manager as the "VcpeAgent" device module.</para>
45 49
46 <para>Adding a VcpeAgent device can be done via one of two 50 <para>Adding a VcpeAgent device can be done via two methods:</para>
47 methods:</para>
48 51
49 <itemizedlist> 52 <itemizedlist>
50 <listitem> 53 <listitem>
51 <para>Through the uCPE Manager GUI. Add the device using the 54 <para>Through the uCPE Manager GUI. Add the device using the
52 appropriate parameters by launching the UI under Devices -&gt; 55 appropriate parameters by launching the UI under
53 Manage in the main screen.</para> 56 <literal>Devices</literal> -&gt; <literal>Manage</literal> in the
57 main screen.</para>
54 </listitem> 58 </listitem>
55 59
56 <listitem> 60 <listitem>
@@ -60,8 +64,11 @@
60 </itemizedlist> 64 </itemizedlist>
61 65
62 <para>For more on Enea NFV Access installation instructions, please 66 <para>For more on Enea NFV Access installation instructions, please
63 refer to chapter "Getting Started with Enea NFV Access" from the Enea 67 refer to chapter <olink targetdoc="book_enea_nfv_access_getting_started"
64 NFV Access Getting Started manual.</para> 68 targetptr="access_installer">Getting Started with Enea NFV Access in
69 <xi:include href="../../s_docbuild/olinkdb/pardoc-names.xml"
70 xmlns:xi="http://www.w3.org/2001/XInclude"
71 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
65 </section> 72 </section>
66 </section> 73 </section>
67 74
@@ -74,9 +81,9 @@
74 unit-test suite that is able to automatically run test-cases defined for 81 unit-test suite that is able to automatically run test-cases defined for
75 each available Python script.</para> 82 each available Python script.</para>
76 83
77 <para>In either case, it is desirable to use a third system (instead of 84 <para>In either case, it is desirable to use a different host (instead of
78 running the tests on the same system as the uCPE Manager) in order to 85 running the tests on the same system as the uCPE Manager) in order to
79 ensure that uCPE Manager is setup and installed correctly in terms of 86 ensure that the uCPE Manager is setup and installed correctly in terms of
80 allowing external users to access it and use it effectively.</para> 87 allowing external users to access it and use it effectively.</para>
81 </section> 88 </section>
82 89
@@ -94,25 +101,31 @@
94 <itemizedlist> 101 <itemizedlist>
95 <listitem> 102 <listitem>
96 <para>VNF, Device and Network Smoke Test Cases. A sample test suite 103 <para>VNF, Device and Network Smoke Test Cases. A sample test suite
97 that acts as basic smoke tests for the Enea NFV Access and also as a 104 that acts as basic smoke tests for Enea NFV Access and also as a
98 sanity-check test suite for the AF and TH.</para> 105 sanity-check test suite for the AF and TH.</para>
99 </listitem> 106 </listitem>
100 107
101 <listitem> 108 <listitem>
102 <para>VNF Deployment and Lifecycle. A sample test suite that verifies 109 <para>VNF Deployment and Lifecycle. A sample test suite that verifies
103 the instantiation, lifecycle control and destruction of a VNF for the 110 the instantiation, lifecycle control and destruction of a VNF for Enea
104 Enea NFV Access.</para> 111 NFV Access.</para>
105 </listitem> 112 </listitem>
106 113
107 <listitem> 114 <listitem>
108 <para>Service Creation and Lifecycle: A sample test suite that 115 <para>Service Creation and Lifecycle. A sample test suite that
109 contains complex test cases showcasing service creation and lifecycle 116 contains complex test cases showcasing service creation and lifecycle
110 management.</para> 117 management.</para>
111 </listitem> 118 </listitem>
112 </itemizedlist> 119 </itemizedlist>
113 120
114 <para>For details about the test suites or test cases please refer to the 121 <para>For details about the test suites or test cases please refer to
115 chapter "Sample Test Cases" from the Enea NFV Access System Test 122 chapter <olink targetdoc="book_enea_nfv_access_system_test_specification"
116 Specification document.</para> 123 targetptr="sample_testcases">Sample Test Cases in <xi:include
124 href="../../s_docbuild/olinkdb/pardoc-names.xml"
125 xmlns:xi="http://www.w3.org/2001/XInclude"
126 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
127
128 <remark>this olink needs to be fixed it points to getting started not the
129 test spec manual, an olinkdb update is needed to know why.</remark>
117 </section> 130 </section>
118</chapter> \ No newline at end of file 131</chapter> \ 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 @@
11 11
12 <itemizedlist> 12 <itemizedlist>
13 <listitem> 13 <listitem>
14 <para>Python 2.7</para> 14 <para>Python 2.7.</para>
15 </listitem> 15 </listitem>
16 16
17 <listitem> 17 <listitem>
18 <para>EPEL Repository installed:<programlisting>sudo yum install epel-release</programlisting></para> 18 <para>EPEL Repository:<programlisting>sudo yum install epel-release</programlisting></para>
19 </listitem> 19 </listitem>
20 20
21 <listitem> 21 <listitem>
22 <para>PIP package manager installed: <programlisting>sudo yum -y install python-pip</programlisting></para> 22 <para>PIP package manager: <programlisting>sudo yum -y install python-pip</programlisting></para>
23 </listitem> 23 </listitem>
24 24
25 <listitem> 25 <listitem>
26 <para>Virtualenv tool installed: <programlisting>sudo pip install virtualenv</programlisting></para> 26 <para><literal>Virtualenv</literal> tool: <programlisting>sudo pip install virtualenv</programlisting></para>
27 </listitem> 27 </listitem>
28 </itemizedlist> 28 </itemizedlist>
29 29
@@ -31,7 +31,8 @@
31 <para>The Automation Framework and Test Harness installation may be done 31 <para>The Automation Framework and Test Harness installation may be done
32 on the same machine used for uCPE Manager installation, although this is 32 on the same machine used for uCPE Manager installation, although this is
33 not encouraged. For more details see <link linkend="automation">chapter 33 not encouraged. For more details see <link linkend="automation">chapter
34 3.2</link>.</para> 34 3.2</link>.<remark>what chapter of what book is this link refering
35 to?</remark></para>
35 </note> 36 </note>
36 </section> 37 </section>
37 38
@@ -47,11 +48,13 @@
47 fileref="images/environment_basicsetup.png" scale="35" /> 48 fileref="images/environment_basicsetup.png" scale="35" />
48 </imageobject> 49 </imageobject>
49 </mediaobject> 50 </mediaobject>
50 </figure>The following enviroment setup is needed for running all the 51 </figure>The following enviroment setup is needed for running all tests
51 tests defined in the Enea NFV Access System Test Specification 52 defined in the Enea NFV Access System Test Specification manual:</para>
52 document:</para>
53 53
54 <para><emphasis role="bold">Lab Network</emphasis><itemizedlist> 54 <remark>olink to the book needed here.</remark>
55
56 <para><emphasis role="bold">Lab Network
57 Requirements</emphasis><itemizedlist spacing="compact">
55 <listitem> 58 <listitem>
56 <para>DHCP enabled.</para> 59 <para>DHCP enabled.</para>
57 </listitem> 60 </listitem>
@@ -61,32 +64,36 @@
61 </listitem> 64 </listitem>
62 </itemizedlist></para> 65 </itemizedlist></para>
63 66
64 <para><emphasis role="bold">uCPE Manager host</emphasis></para> 67 <para><emphasis role="bold">uCPE Manager Host
68 Requirements</emphasis></para>
65 69
66 <itemizedlist> 70 <itemizedlist spacing="compact">
67 <listitem> 71 <listitem>
68 <para>Running CentOS 7.</para> 72 <para>Running CentOS 7.</para>
69 </listitem> 73 </listitem>
70 74
71 <listitem> 75 <listitem>
72 <para>Connected to Lab Network.</para> 76 <para>Connected to the Lab Network.</para>
73 </listitem> 77 </listitem>
74 78
75 <listitem> 79 <listitem>
76 <para>uCPE Manager installed.</para> 80 <para>uCPE Manager installed.</para>
77 81
78 <note> 82 <note>
79 <para>For details on how to install the uCPE Manager, see "Getting 83 <para>For details on how to install the uCPE Manager, see <olink
80 Started with Enea uCPE Manager" from the Enea NFV Access Getting 84 targetdoc="book_enea_nfv_access_getting_started"
81 Started manual.</para> 85 targetptr="install_ucpe_manager">Install the Enea uCPE Manager in
86 <xi:include href="../../s_docbuild/olinkdb/pardoc-names.xml"
87 xmlns:xi="http://www.w3.org/2001/XInclude"
88 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
82 </note> 89 </note>
83 </listitem> 90 </listitem>
84 </itemizedlist> 91 </itemizedlist>
85 92
86 <para><emphasis role="bold">1<superscript>st</superscript> uCPE 93 <para><emphasis role="bold">uCPE device
87 device</emphasis><itemizedlist> 94 Requirements</emphasis><itemizedlist spacing="compact">
88 <listitem> 95 <listitem>
89 <para>Minimum 4 Physical Network Devices.</para> 96 <para>Minimum of 4 Physical Network Devices.</para>
90 </listitem> 97 </listitem>
91 98
92 <listitem> 99 <listitem>
@@ -94,23 +101,24 @@
94 </listitem> 101 </listitem>
95 102
96 <listitem> 103 <listitem>
97 <para>2 Physical connections to Lab Network.</para> 104 <para>2 Physical connections to the Lab Network.</para>
98 </listitem> 105 </listitem>
99 106
100 <listitem> 107 <listitem>
101 <para>Enea NFV Access Run Time Platform installed.</para> 108 <para>Enea NFV Access Run-Time Platform installed.</para>
102 109
103 <note> 110 <note>
104 <para>For information on how to install Enea NFV Access refer to 111 <para>For information on how to install Enea NFV Access refer to
105 <olink targetdoc="book_enea_nfv_access_getting_started" 112 <olink targetdoc="book_enea_nfv_access_getting_started"
106 targetptr="plat-release-content">Getting Started with Enea NFV Access 113 targetptr="plat-release-content">Getting Started with Enea NFV
107 in <xi:include href="../../s_docbuild/olinkdb/pardoc-names.xml" 114 Access in <xi:include
108 xmlns:xi="http://www.w3.org/2001/XInclude" 115 href="../../s_docbuild/olinkdb/pardoc-names.xml"
109 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para> 116 xmlns:xi="http://www.w3.org/2001/XInclude"
117 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
110 </note> 118 </note>
111 </listitem> 119 </listitem>
112 </itemizedlist><figure> 120 </itemizedlist><figure>
113 <title>Lab setup overview for ChainedVNFsService Setup</title> 121 <title>Lab Setup Overview for ChainedVNFsService</title>
114 122
115 <mediaobject> 123 <mediaobject>
116 <imageobject> 124 <imageobject>
@@ -121,24 +129,10 @@
121 </mediaobject> 129 </mediaobject>
122 </figure></para> 130 </figure></para>
123 131
124 <para><emphasis role="bold">Changes to 1<superscript>st</superscript> uCPE 132 <para><emphasis role="bold">uCPE device 1 and 2
125 device</emphasis></para> 133 Requirements</emphasis><itemizedlist spacing="compact">
126
127 <itemizedlist>
128 <listitem>
129 <para>16GB RAM and 8 cores (Intel C3000 or Xeon D).</para>
130 </listitem>
131
132 <listitem>
133 <para>1 Physical connection back to back with the
134 2<superscript>nd</superscript> uCPE device.</para>
135 </listitem>
136 </itemizedlist>
137
138 <para><emphasis role="bold">2<superscript>nd</superscript> uCPE
139 device</emphasis><itemizedlist>
140 <listitem> 134 <listitem>
141 <para>Minimum 4 Physical Network Devices.</para> 135 <para>Minimum of 4 Physical Network Devices.</para>
142 </listitem> 136 </listitem>
143 137
144 <listitem> 138 <listitem>
@@ -146,25 +140,16 @@
146 </listitem> 140 </listitem>
147 141
148 <listitem> 142 <listitem>
149 <para>2 Physical connections to Lab Network.</para> 143 <para>2 Physical connections to the Lab Network.</para>
150 </listitem> 144 </listitem>
151 145
152 <listitem> 146 <listitem>
153 <para>1 Physical connection back to back with the 147 <para>1 Physical connection back to back between both uCPE
154 1<superscript>st</superscript> uCPE device.</para> 148 devices.</para>
155 </listitem> 149 </listitem>
156 150
157 <listitem> 151 <listitem>
158 <para>Enea NFV Access installed.</para> 152 <para>Enea NFV Access Run-Time Platform installed.</para>
159
160 <note>
161 <para>For information on how to install Enea NFV Access, refer to
162 <olink targetdoc="book_enea_nfv_access_getting_started"
163 targetptr="plat-release-content">Getting Started with Enea NFV
164 Access<xi:include href="../../s_docbuild/olinkdb/pardoc-names.xml"
165 xmlns:xi="http://www.w3.org/2001/XInclude"
166 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
167 </note>
168 </listitem> 153 </listitem>
169 </itemizedlist></para> 154 </itemizedlist></para>
170 </section> 155 </section>
@@ -172,23 +157,29 @@
172 <section id="initial_setup"> 157 <section id="initial_setup">
173 <title>Installation and Initial Setup</title> 158 <title>Installation and Initial Setup</title>
174 159
175 <para>Unzip the <filename>nfvaccess22_af-th.zip</filename> archive file, 160 <orderedlist>
176 provided by Enea, on a supported host machine. The directory in which the 161 <listitem>
177 archive has been unpacked will be denoted as 162 <para>Unzip the <filename>nfvaccess22_af-th.zip</filename> archive
178 <literal>&lt;AF-TH-installdir&gt;</literal>.</para> 163 file, provided by Enea, on a supported host machine.</para>
179 164
180 <para>Enter the <literal>&lt;AF-TH-install-dir&gt;</literal> directory and 165 <para>The directory in which the archive has been unpacked will be
181 run the <filename>setup_env.sh</filename> script to do the initial setup 166 denoted as <literal>&lt;AF-TH-installdir&gt;</literal>.</para>
182 of the Test Harness environment: <filename>source 167 </listitem>
183 setup_env.sh</filename>.</para>
184 168
185 <para>Setup the uCPE Manager which will be used by the TH:</para> 169 <listitem>
170 <para>Enter the <literal>&lt;AF-TH-install-dir&gt;</literal> directory
171 and run the <filename>setup_env.sh</filename> script to do the initial
172 setup of the Test Harness environment: <programlisting>source setup_env.sh</programlisting></para>
173 </listitem>
186 174
187 <orderedlist>
188 <listitem> 175 <listitem>
189 <para>Create the uCPE Manager JSON config file in the 176 <para>Set up the uCPE Manager which will be used by the TH:</para>
190 <literal>&lt;AF-TH-install-dir&gt;/uCPEM_config/</literal> 177
191 directory:<programlisting>{ 178 <orderedlist spacing="compact">
179 <listitem>
180 <para>Create the uCPE Manager JSON config file in the
181 <literal>&lt;AF-TH-install-dir&gt;/uCPEM_config/</literal>
182 directory:<programlisting>{
192"ucpe_usr":"uCPE Manager Username", 183"ucpe_usr":"uCPE Manager Username",
193"ucpe_pass":"uCPE Manager Password", 184"ucpe_pass":"uCPE Manager Password",
194"ucpe_host":"uCPE Manager IP/Hostname", 185"ucpe_host":"uCPE Manager IP/Hostname",
@@ -196,28 +187,36 @@
196"ftp_pass":"FTP Password", 187"ftp_pass":"FTP Password",
197"ftp_port":"FTP Port" 188"ftp_port":"FTP Port"
198}</programlisting>See the 189}</programlisting>See the
199 <filename>&lt;AF-TH-install-dir&gt;/uCPEM_config/ucpem01.json</filename> 190 <filename>&lt;AF-TH-install-dir&gt;/uCPEM_config/ucpem01.json</filename>
200 file as an example.</para> 191 file as an example.</para>
201 </listitem> 192 </listitem>
202 193
203 <listitem> 194 <listitem>
204 <para>Run the <filename>setupuCPEManager.yml</filename> Ansible 195 <para>Run the <filename>setupuCPEManager.yml</filename> Ansible
205 Playbook with the JSON config path as parameter: <programlisting>ansible-playbook playbooks/setupuCPEManager.yml -e\ 196 Playbook with the JSON config path as a parameter:
197 <programlisting>ansible-playbook playbooks/setupuCPEManager.yml -e\
206"@uCPEM_config/&lt;config_name&gt;.json"</programlisting></para> 198"@uCPEM_config/&lt;config_name&gt;.json"</programlisting></para>
207 199
208 <para><emphasis role="bold">Example</emphasis> <programlisting>ansible-playbook playbooks/setupuCPEManager.yml -e\ 200 <para><emphasis role="bold">Example</emphasis> <programlisting>ansible-playbook playbooks/setupuCPEManager.yml -e\
209"@uCPEM_config/ucpem01.json"</programlisting></para> 201"@uCPEM_config/ucpem01.json"</programlisting></para>
202 </listitem>
203 </orderedlist>
210 </listitem> 204 </listitem>
211 </orderedlist> 205 </orderedlist>
212 206
213 <para>Note that the steps presented in this sub-chapter are to be executed 207 <note>
214 only once, for the initial setup of the TH environment. Afterwards, each 208 <para>The steps presented in this section are to be executed only once,
215 session ends by closing the Python virtual environment (<literal>source 209 for the initial setup of the TH environment.</para>
216 &lt;AF-THinstall-dir&gt;/testHarness/bin/deactivate</literal>) and 210 </note>
217 subsequent use of the installation requires activating the Python virtual 211
218 enviroment before using the Automation Framework and Test Harness 212 <para>After the initial setup, each session ends by closing the Python
219 (<literal>source 213 virtual environment: <literal>source
220 &lt;AF-THinstall-dir&gt;/testHarness/bin/activate</literal>).</para> 214 &lt;AF-THinstall-dir&gt;/testHarness/bin/deactivate</literal>.</para>
215
216 <para>Subsequent use of the installation requires activating the Python
217 virtual enviroment before using the Automation Framework and Test Harness:
218 <literal>source
219 &lt;AF-THinstall-dir&gt;/testHarness/bin/activate</literal>.</para>
221 220
222 <para>Furthermore, if a user wants to use a new uCPE Manager instance for 221 <para>Furthermore, if a user wants to use a new uCPE Manager instance for
223 a new session, the user also has to re-run the 222 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 @@
3 <title>Overview</title> 3 <title>Overview</title>
4 4
5 <para>This document describes the Automation Framework and Test Harness for 5 <para>This document describes the Automation Framework and Test Harness for
6 the Enea NFV Access, along with providing instructions regarding 6 Enea NFV Access, along with instructions regarding the necessary steps to
7 the necessary steps to run these software tools.</para> 7 run these software tools.</para>
8 8
9 <section id="descrip"> 9 <section id="descrip">
10 <title>Description</title> 10 <title>Description</title>
11 11
12 <para>The Automation Framework provides a way for driving configuration 12 <para>The Automation Framework provides a way for driving configuration
13 with Python scripting. It complements the Enea uCPE Manager GUI and uses 13 with Python scripting. It complements the Enea uCPE Manager GUI and uses
14 the northbound REST APIs, given for full availability of the Enea uCPE 14 the northbound REST APIs, given to provide full usability of the Enea uCPE
15 Manager features.</para> 15 Manager features.</para>
16 16
17 <para>The Test Harness is based on running Ansible Playbooks to complete 17 <para>The Test Harness is based on running Ansible Playbooks to complete
18 different test cases, which make use of the Automation Framework Python 18 different test cases, which make use of the Automation Framework Python
19 modules and/or direct commands on the uCPE devices running Enea NFV 19 modules and/or direct commands on the uCPE devices running the Enea NFV
20 Access Run Time Platform.</para> 20 Access Run Time Platform.</para>
21 </section> 21 </section>
22 22
@@ -41,8 +41,8 @@
41 <row> 41 <row>
42 <entry>Enea NFV Access</entry> 42 <entry>Enea NFV Access</entry>
43 43
44 <entry>Enea NFV Access (with ODM) Runtime Platform and Enea uCPE 44 <entry>The Enea NFV Access (with ODM) Runtime Platform and the
45 Manager.</entry> 45 Enea uCPE Manager.</entry>
46 </row> 46 </row>
47 </tbody> 47 </tbody>
48 </tgroup> 48 </tgroup>
@@ -174,16 +174,16 @@
174 <row> 174 <row>
175 <entry>VCPE</entry> 175 <entry>VCPE</entry>
176 176
177 <entry>Virtual Customer Premises Equipment</entry> 177 <entry>Virtual Customer Premises Equipment.</entry>
178 </row> 178 </row>
179 179
180 <row> 180 <row>
181 <entry>VNF</entry> 181 <entry>VNF</entry>
182 182
183 <entry>Virtualized Network Function</entry> 183 <entry>Virtualized Network Function.</entry>
184 </row> 184 </row>
185 </tbody> 185 </tbody>
186 </tgroup> 186 </tgroup>
187 </table> 187 </table>
188 </section> 188 </section>
189</chapter> 189</chapter> \ 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 @@
3 <title>Troubleshooting Guide</title> 3 <title>Troubleshooting Guide</title>
4 4
5 <para>The following are best practices and possible solutions to problems 5 <para>The following are best practices and possible solutions to problems
6 that may occur during operation.</para> 6 that may occur during operation:</para>
7 7
8 <itemizedlist> 8 <itemizedlist>
9 <listitem> 9 <listitem>
10 <para>All the Playbooks have to be run from the root directory of the 10 <para>All the Playbooks have to be run from the root directory of the
11 Test Harness to avoid failures such as "File not found!", because the 11 Test Harness (TH) to avoid failures such as "File not found!", since the
12 paths to the needed configuration files are hardcoded into the 12 paths to the required configuration files are hardcoded into the
13 Playbooks.</para> 13 Playbooks.</para>
14 </listitem> 14 </listitem>
15 15
16 <listitem> 16 <listitem>
17 <para>If the setup_env.sh fails, for debugging, remove &amp;&gt; 17 <para>If the <literal>setup_env.sh</literal> fails, for debugging remove
18 /dev/null from the failed command. Then the output of the command will 18 <literal>&amp;&gt; /dev/null</literal> from the failed command. The
19 be printed, and will not be redirected to /dev/null anymore.</para> 19 output of the command will be printed, and will not be redirected to
20 <literal>/dev/null</literal> anymore.</para>
20 </listitem> 21 </listitem>
21 22
22 <listitem> 23 <listitem>
23 <para>When setup the uCPE Manager to be used by the TH using 24 <para>When setting up the uCPE Manager to be used by the TH through the
24 setupuCPEManager.yml Playbook, if the uCPE username/password/host are 25 <literal>setupuCPEManager.yml</literal> Playbook, if the uCPE
25 wrong or are missing, all the Sample test cases will fail. If the FTP 26 username/password/host are incorrect or are missing, all the Sample test
26 username/password/port are wrong or are missing, the tests that requires 27 cases will fail. If the FTP username/password/port are wrong or are
27 file transfer to uCPE Manager will fail.</para> 28 missing, the tests that require file transfer to the uCPE Manager will
29 fail.</para>
28 </listitem> 30 </listitem>
29 31
30 <listitem> 32 <listitem>
31 <para>Ansible logs are not written into the log/ansible.log file when 33 <para>Ansible logs are not written into the
32 the stdout_callback is set to selective in the ansible.cfg. For 34 <literal>log/ansible.log</literal> file when the
33 debugging, check the python logs from log/debug.log file or change the 35 <literal>stdout_callback</literal> is set to
34 stdout_callback to debug and rerun the test.</para> 36 <literal>selective</literal> in the <literal>ansible.cfg</literal> file.
37 For debugging, check the python logs from the
38 <literal>log/debug.log</literal> file or change the
39 <literal>stdout_callback</literal> to <literal>debug</literal> and rerun
40 the test.</para>
35 </listitem> 41 </listitem>
36 </itemizedlist> 42 </itemizedlist>
37</chapter> \ No newline at end of file 43</chapter> \ No newline at end of file