diff options
author | Miruna Paun <Miruna.Paun@enea.com> | 2019-08-29 11:17:57 +0200 |
---|---|---|
committer | Miruna Paun <Miruna.Paun@enea.com> | 2019-08-29 17:29:44 +0200 |
commit | 18d4e7f43bf6ed383b4982d3f6915e82ba203ea3 (patch) | |
tree | 9707e1af6582fc0397c29cfd190140d3177f2022 | |
parent | 56f3c6dd01f77801fda66d476e3acae22c8049db (diff) | |
download | el_releases-nfv-access-18d4e7f43bf6ed383b4982d3f6915e82ba203ea3.tar.gz |
Updates and clarification of AF-TH manual.
Change-Id: I8d59b9eacf0b652ff6cf4075406ce036f79fd6be
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 |
279 | username = "admin" | 284 | username = "admin" |
280 | password = "admin" | 285 | password = "admin" |
281 | host = None | 286 | host = None |
@@ -296,47 +301,116 @@ failfast = True | |||
296 | # DEBUG 10 | 301 | # DEBUG 10 |
297 | # NOTSET 0 | 302 | # NOTSET 0 |
298 | fileLoggingLevel = logging.DEBUG | 303 | fileLoggingLevel = logging.DEBUG |
299 | consoleLoggingLevel = logging.INFO</programlisting>username - user to be used | 304 | consoleLoggingLevel = 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 | |||
344 | WARNING 30 | 418 | WARNING 30 |
345 | INFO 20 | 419 | INFO 20 |
346 | DEBUG 10 | 420 | DEBUG 10 |
347 | NOTSET 0</programlisting>Logging messages which are less severe than the | 421 | NOTSET 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 |
363 | fortigateDeploy.json -d "Fortigate deployment scenario"</programlisting>Setting | 442 | fortigateDeploy.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 | ||
367 | Running Fortigate deployment scenario... | 446 | Running Fortigate deployment scenario... |
@@ -493,11 +572,12 @@ Ran 12 tests in 33.328s | |||
493 | 572 | ||
494 | OK</programlisting></para> | 573 | OK</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 | ||
498 | fortigateCleanup.json -d "Fortigate cleanup scenario"</programlisting></para> | 578 | fortigateCleanup.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 |
549 | Usage: addDevice.py [options] | 630 | Usage: addDevice.py [options] |
550 | 631 | ||
551 | Add a uCPE in Enea uCPE Manager. | 632 | Add a uCPE device in Enea uCPE Manager. |
552 | 633 | ||
553 | Options: | 634 | Options: |
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 |
609 | 2019-03-07 17:33:10,755 - DEBUG: Started logging | 691 | 2019-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 |
757 | 2019-03-07 18:03:21,132 - DEBUG: Started logging | 843 | 2019-03-07 18:03:21,132 - DEBUG: Started logging |
758 | 2019-03-07 18:03:21,133 - INFO: Wait uCPE device | 844 | 2019-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 | ||
779 | Usage: getEventsForUcpe.py [options] | 865 | Usage: getEventsForUcpe.py [options] |
780 | 866 | ||
781 | Print the events log for a specific uCPE installed in Enea uCPE Manager. | 867 | Print 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 | ||
792 | Mandatory options: | 878 | Mandatory 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 | |||
836 | 2019-07-04 13:48:31,469 - INFO: Done | 923 | 2019-07-04 13:48:31,469 - INFO: Done |
837 | 2019-07-04 13:48:31,488 - DEBUG: Logging out and exiting... | 924 | 2019-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 | ||
1023 | 2019-07-04 16:35:50,496 - DEBUG: Started logging | 1114 | 2019-07-04 16:35:50,496 - DEBUG: Started logging |
1024 | 2019-07-04 16:35:50,496 - INFO: Dump NICs | 1115 | 2019-07-04 16:35:50,496 - INFO: Dump NICs |
1025 | Usage: getNetworkInterfaces.py [options] | 1116 | Usage: 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 | ||
1046 | 2019-07-04 16:03:47,580 - DEBUG: Started logging | 1138 | 2019-07-04 16:03:47,580 - DEBUG: Started logging |
1047 | 2019-07-04 16:03:47,580 - INFO: Dump NICs | 1139 | 2019-07-04 16:03:47,580 - INFO: Dump NICs |
1048 | 2019-07-04 16:03:47,609 - DEBUG: Login successful on host 'localhost' | 1140 | 2019-07-04 16:03:47,609 - DEBUG: Login successful on host 'localhost' |
@@ -1086,15 +1178,14 @@ $ python getNetworkInterfaces.py -H localhost -n intelc3850-2 | |||
1086 | 2019-07-04 16:03:48,013 - DEBUG: | 1178 | 2019-07-04 16:03:48,013 - DEBUG: |
1087 | 2019-07-04 16:03:48,013 - INFO: Done | 1179 | 2019-07-04 16:03:48,013 - INFO: Done |
1088 | 2019-07-04 16:03:48,029 - DEBUG: Logging out and exiting...</programlisting> | 1180 | 2019-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 |
1509 | 2019-03-07 17:33:56,523 - DEBUG: Started logging | 1604 | 2019-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 |
1582 | fortigateImage -f ../../vnf_config/fortigateImage/fortigateFWInstance.json | 1677 | fortigateImage -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 |
1669 | fortigateFWInstance -c stop | 1765 | fortigateFWInstance -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 |
1736 | fortigateFWInstance | 1833 | fortigateFWInstance |
@@ -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 <AF-TH-install-dir> | 1850 | <para>All Test Harness sources are under the |
1754 | directory, except under the automation_framework sub-directory. See | 1851 | <literal><AF-TH-install-dir></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 -> | 55 | appropriate parameters by launching the UI under |
53 | Manage in the main screen.</para> | 56 | <literal>Devices</literal> -> <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><AF-TH-installdir></literal>.</para> | 163 | file, provided by Enea, on a supported host machine.</para> |
179 | 164 | ||
180 | <para>Enter the <literal><AF-TH-install-dir></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><AF-TH-installdir></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><AF-TH-install-dir></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><AF-TH-install-dir>/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><AF-TH-install-dir>/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><AF-TH-install-dir>/uCPEM_config/ucpem01.json</filename> | 190 | <filename><AF-TH-install-dir>/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/<config_name>.json"</programlisting></para> | 198 | "@uCPEM_config/<config_name>.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 | <AF-THinstall-dir>/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 | <AF-THinstall-dir>/testHarness/bin/activate</literal>).</para> | 214 | <AF-THinstall-dir>/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 | <AF-THinstall-dir>/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 &> | 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>&> /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 |