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 | nfv-access-documentation-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 |
