aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--.gitreview2
-rw-r--r--.travis.yml132
-rw-r--r--api/apidoc/functest.opnfv_tests.rst14
-rw-r--r--api/apidoc/functest.opnfv_tests.sdn.odl.odl.rst7
-rw-r--r--api/apidoc/functest.opnfv_tests.sdn.odl.rst15
-rw-r--r--api/apidoc/functest.opnfv_tests.sdn.rst14
-rw-r--r--api/apidoc/functest.rst1
-rw-r--r--build.sh37
-rw-r--r--commons/ims/readme.rst0
-rw-r--r--commons/mobile/readme.rst116
-rw-r--r--commons/traffic-profile-guidelines.rst64
-rw-r--r--docker/components/Dockerfile33
-rw-r--r--docker/components/hooks/post_checkout6
-rw-r--r--docker/components/testcases.yaml39
-rw-r--r--docker/core/Dockerfile21
-rw-r--r--docker/features/Dockerfile44
-rw-r--r--docker/features/hooks/post_checkout6
-rw-r--r--docker/features/testcases.yaml91
-rw-r--r--docker/features/thirdparty-requirements.txt7
-rw-r--r--docker/healthcheck/Dockerfile4
-rw-r--r--docker/healthcheck/hooks/post_checkout6
-rw-r--r--docker/healthcheck/testcases.yaml63
-rw-r--r--docker/parser/Dockerfile21
-rw-r--r--docker/parser/hooks/post_checkout6
-rw-r--r--docker/parser/testcases.yaml25
-rw-r--r--docker/parser/thirdparty-requirements.txt3
-rw-r--r--docker/restapi/Dockerfile65
-rw-r--r--docker/restapi/hooks/post_checkout6
-rw-r--r--docker/restapi/thirdparty-requirements.txt7
-rw-r--r--docker/smoke/Dockerfile48
-rw-r--r--docker/smoke/hooks/post_checkout6
-rw-r--r--docker/smoke/testcases.yaml151
-rw-r--r--docker/smoke/thirdparty-requirements.txt3
-rw-r--r--docker/vnf/Dockerfile34
-rw-r--r--docker/vnf/hooks/post_checkout6
-rw-r--r--docker/vnf/testcases.yaml84
-rw-r--r--docs/com/css/theme/OPNFV-Berlin.css301
-rw-r--r--docs/com/css/theme/OPNFV.css297
-rw-r--r--docs/com/img/Functest-CI.pngbin111010 -> 0 bytes
-rw-r--r--docs/com/img/LinuxFoundation.pngbin11043 -> 0 bytes
-rw-r--r--docs/com/img/OPNFV-Berlin.pngbin24877 -> 0 bytes
-rw-r--r--docs/com/img/OPNFV.pngbin24877 -> 0 bytes
-rw-r--r--docs/com/img/OPNFV_testing_group.pngbin87295 -> 0 bytes
-rw-r--r--docs/com/img/bandeau-bas.pngbin14418 -> 0 bytes
-rw-r--r--docs/com/img/colorado.jpegbin10160 -> 0 bytes
-rw-r--r--docs/com/img/colorado.pngbin1953150 -> 0 bytes
-rw-r--r--docs/com/img/jiras.pngbin31254 -> 0 bytes
-rw-r--r--docs/com/img/jiras2.pngbin25214 -> 0 bytes
-rw-r--r--docs/com/img/leaf.pngbin7919 -> 0 bytes
-rw-r--r--docs/com/img/logo-OPNFV-Berlin.pngbin10325 -> 0 bytes
-rw-r--r--docs/com/img/logo-OPNFV.pngbin2829 -> 0 bytes
-rw-r--r--docs/com/img/matrix.pngbin50992 -> 0 bytes
-rw-r--r--docs/com/img/opnfv_how_to_functest1.pngbin146621 -> 0 bytes
-rw-r--r--docs/com/img/reporting.pngbin68292 -> 0 bytes
-rw-r--r--docs/com/img/teamSummitBerlin.pngbin899923 -> 0 bytes
-rw-r--r--docs/com/img/testapi0.pngbin1063158 -> 0 bytes
-rw-r--r--docs/com/img/testapi1.pngbin63056 -> 0 bytes
-rw-r--r--docs/com/img/title-bg-berlin.pngbin204395 -> 0 bytes
-rw-r--r--docs/com/img/title-bg.jpgbin46226 -> 0 bytes
-rw-r--r--docs/com/img/title-bg.pngbin29675 -> 0 bytes
-rw-r--r--docs/com/img/wordle-opnfv2.pngbin42431 -> 0 bytes
-rw-r--r--docs/com/pres/Summit/Berlin-2016/conversation.html251
-rw-r--r--docs/com/pres/Summit/Berlin-2016/summit-Berlin.html313
-rw-r--r--docs/com/pres/Summit/Berlin-2016/testapi.html274
-rw-r--r--docs/com/pres/dashboard/dashboard_status.html146
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._danube.jpgbin468 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._dashboard_generate.pngbin511 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._duration.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._generation.pngbin503 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._number.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._percentage.pngbin382 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._period_select.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._result_model.pngbin505 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._selection_1.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/._selection_2.pngbin325 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/danube.jpgbin320256 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/dashboard_generate.pngbin15169 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/duration.pngbin99179 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/generation.pngbin18823 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/logo-OPNFV.pngbin2829 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/number.pngbin89080 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/percentage.pngbin94954 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/period_select.pngbin53468 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/result_model.pngbin62624 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/selection_1.pngbin122394 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/selection_2.pngbin113187 -> 0 bytes
-rw-r--r--docs/com/pres/dashboard/dashboard_status/title-bg.pngbin29675 -> 0 bytes
-rw-r--r--docs/com/pres/dockerslicing/dockerslicing.md124
-rw-r--r--docs/com/pres/dockerslicing/index.html52
-rw-r--r--docs/com/pres/euphrates_functest_evolution/euphrates.md281
-rw-r--r--docs/com/pres/euphrates_functest_evolution/index.html52
-rw-r--r--docs/com/pres/framework/framework.md407
-rw-r--r--docs/com/pres/framework/index.html52
m---------docs/com/pres/reveal.js0
-rw-r--r--docs/images/FunctestDashboard.pngbin160735 -> 0 bytes
-rw-r--r--docs/images/FunctestDashboardColorado.pngbin142728 -> 0 bytes
-rw-r--r--docs/images/FunctestDashboardDanube.pngbin85505 -> 0 bytes
-rw-r--r--docs/images/FunctestDashboardEuphrates.pngbin76059 -> 0 bytes
-rw-r--r--docs/images/Ims_overview.pngbin11947 -> 0 bytes
-rw-r--r--docs/images/clearwater-architecture.pngbin263292 -> 0 bytes
-rw-r--r--docs/images/concepts_mapping_final.pngbin207850 -> 0 bytes
-rw-r--r--docs/images/functest-reporting-status.pngbin22859 -> 0 bytes
-rw-r--r--docs/images/functestODL.pngbin71828 -> 0 bytes
-rw-r--r--docs/images/functestRally1.pngbin50132 -> 0 bytes
-rw-r--r--docs/images/functestRally2.pngbin26652 -> 0 bytes
-rw-r--r--docs/images/functest_overview.odgbin21004 -> 0 bytes
-rw-r--r--docs/release/release-notes/functest-release.rst249
-rw-r--r--docs/release/release-notes/index.rst20
-rw-r--r--docs/results/danube/1.0/apex.html919
-rw-r--r--docs/results/danube/1.0/compass.html490
-rw-r--r--docs/results/danube/1.0/fuel.html1444
-rw-r--r--docs/results/danube/1.0/joid.html418
-rw-r--r--docs/results/danube/1.0/scenario_history.txt622
-rw-r--r--docs/results/danube/1.0/validated_scenario_history.txt60
-rw-r--r--docs/results/danube/2.0/apex.html1057
-rw-r--r--docs/results/danube/2.0/compass.html493
-rw-r--r--docs/results/danube/2.0/fuel.html1447
-rw-r--r--docs/results/danube/2.0/joid.html421
-rw-r--r--docs/results/danube/2.0/scenario_history.txt1454
-rw-r--r--docs/results/danube/2.0/validated_scenario_history.txt212
-rw-r--r--docs/results/danube/3.0/apex.html1424
-rw-r--r--docs/results/danube/3.0/compass.html434
-rw-r--r--docs/results/danube/3.0/fuel.html1448
-rw-r--r--docs/results/danube/3.0/joid.html407
-rw-r--r--docs/results/danube/3.0/scenario_history.txt3855
-rw-r--r--docs/results/danube/3.0/validated_scenario_history.txt745
-rw-r--r--docs/results/euphrates/5.0/apex.html1464
-rw-r--r--docs/results/euphrates/5.0/compass.html943
-rw-r--r--docs/results/euphrates/5.0/daisy.html254
-rw-r--r--docs/results/euphrates/5.0/fuel@aarch64.html334
-rw-r--r--docs/results/euphrates/5.0/fuel@x86.html550
-rw-r--r--docs/results/euphrates/5.0/joid.html576
-rw-r--r--docs/results/euphrates/5.0/scenario_history.txt783
-rw-r--r--docs/results/img/weather-clear.pngbin1560 -> 0 bytes
-rw-r--r--docs/results/img/weather-few-clouds.pngbin1927 -> 0 bytes
-rw-r--r--docs/results/img/weather-overcast.pngbin1588 -> 0 bytes
-rw-r--r--docs/results/img/weather-storm.pngbin2137 -> 0 bytes
-rw-r--r--docs/results/js/default.css194
-rw-r--r--docs/results/js/gauge.js165
-rw-r--r--docs/results/js/trend.js75
-rw-r--r--docs/testing/developer/devguide/index.rst315
-rw-r--r--docs/testing/developer/internship/security_group/index.rst70
-rw-r--r--docs/testing/developer/internship/testapi_evolution/index.rst237
-rw-r--r--docs/testing/developer/internship/unit_tests/index.rst126
-rw-r--r--docs/testing/developer/internship/vnf_catalog/index.rst170
-rw-r--r--docs/testing/user/configguide/ci.rst13
-rw-r--r--docs/testing/user/configguide/configguide.rst727
-rw-r--r--docs/testing/user/configguide/index.rst130
-rw-r--r--docs/testing/user/configguide/prerequisites.rst102
-rw-r--r--docs/testing/user/userguide/index.rst106
-rw-r--r--docs/testing/user/userguide/reporting.rst90
-rw-r--r--docs/testing/user/userguide/runfunctest.rst140
-rw-r--r--docs/testing/user/userguide/test_details.rst497
-rw-r--r--docs/testing/user/userguide/test_overview.rst239
-rw-r--r--docs/testing/user/userguide/test_results.rst53
-rw-r--r--docs/testing/user/userguide/troubleshooting.rst378
-rw-r--r--functest/api/__init__.py0
-rw-r--r--functest/api/base.py71
-rw-r--r--functest/api/common/__init__.py0
-rw-r--r--functest/api/common/api_utils.py101
-rw-r--r--functest/api/common/thread.py52
-rw-r--r--functest/api/database/__init__.py0
-rw-r--r--functest/api/database/db.py26
-rw-r--r--functest/api/database/v1/__init__.py0
-rw-r--r--functest/api/database/v1/handlers.py43
-rw-r--r--functest/api/database/v1/models.py33
-rw-r--r--functest/api/resources/__init__.py0
-rw-r--r--functest/api/resources/v1/__init__.py0
-rw-r--r--functest/api/resources/v1/creds.py80
-rw-r--r--functest/api/resources/v1/envs.py83
-rw-r--r--functest/api/resources/v1/tasks.py111
-rw-r--r--functest/api/resources/v1/testcases.py157
-rw-r--r--functest/api/resources/v1/tiers.py82
-rw-r--r--functest/api/server.py106
-rw-r--r--functest/api/swagger/creds.yaml36
-rw-r--r--functest/api/swagger/creds_action.yaml56
-rw-r--r--functest/api/swagger/envs.yaml27
-rw-r--r--functest/api/swagger/envs_action.yaml42
-rw-r--r--functest/api/swagger/task.yaml37
-rw-r--r--functest/api/swagger/task_log.yaml37
-rw-r--r--functest/api/swagger/testcase.yaml36
-rw-r--r--functest/api/swagger/testcase_run.yaml46
-rw-r--r--functest/api/swagger/testcases.yaml23
-rw-r--r--functest/api/swagger/testcases_in_tier.yaml30
-rw-r--r--functest/api/swagger/tier.yaml33
-rw-r--r--functest/api/swagger/tiers.yaml23
-rw-r--r--functest/api/urls.py70
-rw-r--r--functest/ci/check_deployment.py188
-rw-r--r--functest/ci/config_aarch64_patch.yaml56
-rw-r--r--functest/ci/config_functest.yaml185
-rw-r--r--functest/ci/config_patch.yaml20
-rw-r--r--functest/ci/download_images.sh24
-rw-r--r--functest/ci/rally_aarch64_patch.conf5
-rw-r--r--functest/cli/__init__.py0
-rw-r--r--functest/cli/cli_base.py129
-rw-r--r--functest/cli/commands/__init__.py0
-rw-r--r--functest/cli/commands/cli_env.py49
-rw-r--r--functest/cli/commands/cli_os.py63
-rw-r--r--functest/cli/commands/cli_testcase.py50
-rw-r--r--functest/cli/commands/cli_tier.py87
-rw-r--r--functest/cli/functest-complete.sh8
-rw-r--r--functest/opnfv_tests/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/rally/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/rally/blacklist.txt81
-rw-r--r--functest/opnfv_tests/openstack/rally/macro/macro.yaml97
-rw-r--r--functest/opnfv_tests/openstack/rally/rally.py619
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml458
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml345
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml92
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml166
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml362
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml416
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml63
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml92
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml54
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml42
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml247
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml139
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml48
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml50
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml197
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml144
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh13
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template17
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template1
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template13
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template13
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template64
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template43
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template23
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template19
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template11
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template19
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template16
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template16
-rw-r--r--functest/opnfv_tests/openstack/rally/task.yaml48
-rw-r--r--functest/opnfv_tests/openstack/refstack_client/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/refstack_client/refstack_client.py260
-rw-r--r--functest/opnfv_tests/openstack/snaps/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/snaps/api_check.py45
-rw-r--r--functest/opnfv_tests/openstack/snaps/connection_check.py44
-rw-r--r--functest/opnfv_tests/openstack/snaps/health_check.py49
-rw-r--r--functest/opnfv_tests/openstack/snaps/smoke.py48
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py446
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_test_runner.py58
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_utils.py61
-rw-r--r--functest/opnfv_tests/openstack/tempest/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/tempest/conf_utils.py313
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt2
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt249
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml13
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt4
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py484
-rw-r--r--functest/opnfv_tests/openstack/vping/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/vping/ping.sh10
-rw-r--r--functest/opnfv_tests/openstack/vping/vping_base.py204
-rw-r--r--functest/opnfv_tests/openstack/vping/vping_ssh.py235
-rw-r--r--functest/opnfv_tests/openstack/vping/vping_userdata.py143
-rw-r--r--functest/opnfv_tests/sdn/__init__.py0
-rw-r--r--functest/opnfv_tests/sdn/odl/__init__.py0
-rw-r--r--functest/opnfv_tests/sdn/odl/odl.py279
-rw-r--r--functest/opnfv_tests/vnf/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/epc/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature12
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature39
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature32
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature33
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature33
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature36
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature44
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature45
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature47
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature38
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature62
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature45
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature42
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature46
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature45
-rw-r--r--functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml4
-rw-r--r--functest/opnfv_tests/vnf/epc/juju_epc.py513
-rw-r--r--functest/opnfv_tests/vnf/epc/juju_epc.yaml32
-rw-r--r--functest/opnfv_tests/vnf/ims/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/ims/clearwater_ims_base.py164
-rw-r--r--functest/opnfv_tests/vnf/ims/cloudify_ims.py540
-rw-r--r--functest/opnfv_tests/vnf/ims/cloudify_ims.yaml51
-rw-r--r--functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py498
-rw-r--r--functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml91
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template16731
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tstbin491520 -> 0 bytes
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tstbin573440 -> 0 bytes
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py150
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py398
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py193
-rw-r--r--functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/ims/orchestra.yaml68
-rw-r--r--functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py574
-rw-r--r--functest/opnfv_tests/vnf/ims/orchestra_openims.py598
-rw-r--r--functest/opnfv_tests/vnf/router/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/router/cloudify_vrouter.py499
-rw-r--r--functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml33
-rw-r--r--functest/opnfv_tests/vnf/router/test_controller/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py135
-rw-r--r--functest/opnfv_tests/vnf/router/test_scenario.yaml28
-rw-r--r--functest/opnfv_tests/vnf/router/utilvnf.py323
-rw-r--r--functest/opnfv_tests/vnf/router/vnf_controller/__init__.py0
-rw-r--r--functest/opnfv_tests/vnf/router/vnf_controller/checker.py63
-rw-r--r--functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py38
-rw-r--r--functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py135
-rw-r--r--functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py146
-rw-r--r--functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py141
-rw-r--r--functest/opnfv_tests/vnf/router/vrouter_base.py122
-rw-r--r--functest/tests/unit/ci/test_check_deployment.py286
-rw-r--r--functest/tests/unit/cli/__init__.py0
-rw-r--r--functest/tests/unit/cli/commands/__init__.py0
-rw-r--r--functest/tests/unit/cli/commands/test_cli_env.py69
-rw-r--r--functest/tests/unit/cli/commands/test_cli_os.py78
-rw-r--r--functest/tests/unit/cli/commands/test_cli_testcase.py77
-rw-r--r--functest/tests/unit/cli/commands/test_cli_tier.py104
-rw-r--r--functest/tests/unit/cli/test_cli_base.py102
-rw-r--r--functest/tests/unit/odl/__init__.py0
-rw-r--r--functest/tests/unit/odl/test_odl.py523
-rw-r--r--functest/tests/unit/openstack/__init__.py0
-rw-r--r--functest/tests/unit/openstack/rally/__init__.py0
-rw-r--r--functest/tests/unit/openstack/rally/test_rally.py431
-rw-r--r--functest/tests/unit/openstack/refstack_client/__init__.py0
-rw-r--r--functest/tests/unit/openstack/refstack_client/test_refstack_client.py149
-rw-r--r--functest/tests/unit/openstack/snaps/__init__.py0
-rw-r--r--functest/tests/unit/openstack/snaps/test_snaps.py285
-rw-r--r--functest/tests/unit/openstack/tempest/__init__.py0
-rw-r--r--functest/tests/unit/openstack/tempest/test_conf_utils.py320
-rw-r--r--functest/tests/unit/openstack/tempest/test_tempest.py261
-rw-r--r--functest/tests/unit/openstack/vping/__init__.py0
-rw-r--r--functest/tests/unit/openstack/vping/test_vping.py174
-rw-r--r--functest/tests/unit/utils/test_functest_utils.py305
-rw-r--r--functest/tests/unit/vnf/__init__.py0
-rw-r--r--functest/tests/unit/vnf/epc/__init__.py0
-rw-r--r--functest/tests/unit/vnf/epc/test_juju_epc.py79
-rw-r--r--functest/tests/unit/vnf/ims/__init__.py0
-rw-r--r--functest/tests/unit/vnf/ims/test_cloudify_ims.py67
-rw-r--r--functest/tests/unit/vnf/ims/test_ims_base.py42
-rw-r--r--functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py120
-rw-r--r--functest/tests/unit/vnf/ims/test_orchestra_openims.py122
-rw-r--r--functest/tests/unit/vnf/router/__init__.py0
-rw-r--r--functest/tests/unit/vnf/router/test_cloudify_vrouter.py74
-rw-r--r--functest/tests/unit/vnf/router/test_vrouter_base.py30
-rw-r--r--functest/utils/config.py71
-rw-r--r--functest/utils/functest_utils.py172
-rw-r--r--setup.cfg7
-rw-r--r--tox.ini44
360 files changed, 2 insertions, 66579 deletions
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 78668cf6..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "docs/com/pres/reveal.js"]
- path = docs/com/pres/reveal.js
- url = https://github.com/hakimel/reveal.js.git
diff --git a/.gitreview b/.gitreview
index e59fef8d..8db5dfee 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,5 +1,5 @@
[gerrit]
host=gerrit.opnfv.org
port=29418
-project=functest.git
+project=functest-xtesting.git
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index cc838585..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-sudo: required
-language: bash
-services: docker
-language: generic
-
-before_script:
- - sudo apt-get -y install qemu-user-static
- - sudo -E docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
- - (cd .. && git clone https://github.com/estesp/manifest-tool)
- - (cd ../manifest-tool && sudo -E make && sudo -E make install)
-
-jobs:
- include:
- - stage: build functest-core images
- script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs=""
- - arm64_dirs="docker/core"
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/core"
- - arm64_dirs=""
- - stage: publish functest-core manifests
- script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-core:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-core:latest
- - stage: build all functest images
- script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs=""
- - arm64_dirs="docker/healthcheck"
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs=""
- - arm64_dirs="docker/smoke"
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs=""
- - arm64_dirs="docker/features"
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs=""
- - arm64_dirs="docker/components"
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs=""
- - arm64_dirs="docker/parser"
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/healthcheck"
- - arm64_dirs=""
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/smoke"
- - arm64_dirs=""
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/features"
- - arm64_dirs=""
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/components"
- - arm64_dirs=""
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/vnf"
- - arm64_dirs=""
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/restapi"
- - arm64_dirs=""
- - script: sudo -E bash build.sh
- env:
- - REPO="${DOCKER_USERNAME}"
- - amd64_dirs="docker/parser"
- - arm64_dirs=""
- - stage: publish all manifests
- script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-healthcheck:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-healthcheck:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-healthcheck:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-healthcheck:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-smoke:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-smoke:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-features:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-features:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-components:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-components:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
- --template ${DOCKER_USERNAME}/functest-vnf:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-vnf:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
- --template ${DOCKER_USERNAME}/functest-restapi:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-restapi:latest
- - script: >
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template ${DOCKER_USERNAME}/functest-parser:ARCH-latest \
- --target ${DOCKER_USERNAME}/functest-parser:latest
diff --git a/api/apidoc/functest.opnfv_tests.rst b/api/apidoc/functest.opnfv_tests.rst
deleted file mode 100644
index 52c2d459..00000000
--- a/api/apidoc/functest.opnfv_tests.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-functest.opnfv_tests package
-============================
-
-.. automodule:: functest.opnfv_tests
- :members:
- :undoc-members:
- :show-inheritance:
-
-Subpackages
------------
-
-.. toctree::
-
- functest.opnfv_tests.sdn
diff --git a/api/apidoc/functest.opnfv_tests.sdn.odl.odl.rst b/api/apidoc/functest.opnfv_tests.sdn.odl.odl.rst
deleted file mode 100644
index e6f8c736..00000000
--- a/api/apidoc/functest.opnfv_tests.sdn.odl.odl.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-functest.opnfv_tests.sdn.odl.odl module
-=======================================
-
-.. automodule:: functest.opnfv_tests.sdn.odl.odl
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/api/apidoc/functest.opnfv_tests.sdn.odl.rst b/api/apidoc/functest.opnfv_tests.sdn.odl.rst
deleted file mode 100644
index 60659a1e..00000000
--- a/api/apidoc/functest.opnfv_tests.sdn.odl.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-functest.opnfv_tests.sdn.odl package
-====================================
-
-.. automodule:: functest.opnfv_tests.sdn.odl
- :members:
- :undoc-members:
- :show-inheritance:
-
-Submodules
-----------
-
-.. toctree::
-
- functest.opnfv_tests.sdn.odl.odl
-
diff --git a/api/apidoc/functest.opnfv_tests.sdn.rst b/api/apidoc/functest.opnfv_tests.sdn.rst
deleted file mode 100644
index ca8ae77d..00000000
--- a/api/apidoc/functest.opnfv_tests.sdn.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-functest.opnfv_tests.sdn package
-================================
-
-.. automodule:: functest.opnfv_tests.sdn
- :members:
- :undoc-members:
- :show-inheritance:
-
-Subpackages
------------
-
-.. toctree::
-
- functest.opnfv_tests.sdn.odl
diff --git a/api/apidoc/functest.rst b/api/apidoc/functest.rst
index 63860f8f..0fb6e791 100644
--- a/api/apidoc/functest.rst
+++ b/api/apidoc/functest.rst
@@ -12,4 +12,3 @@ Subpackages
.. toctree::
functest.core
- functest.opnfv_tests
diff --git a/build.sh b/build.sh
deleted file mode 100644
index 88c5a415..00000000
--- a/build.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-set -e
-
-repo=${REPO:-opnfv}
-amd64_dirs=${amd64_dirs-"\
-docker/core \
-docker/healthcheck \
-docker/smoke \
-docker/features \
-docker/components \
-docker/vnf \
-docker/parser \
-docker/restapi"}
-arm64_dirs=${arm64_dirs-${amd64_dirs}}
-build_opts=(--pull=true --no-cache --force-rm=true)
-
-find . -name Dockerfile -exec sed -i -e "s|opnfv/functest-core|${repo}/functest-core:amd64-latest|g" {} +
-for dir in ${amd64_dirs}; do
- (cd "${dir}" && docker build "${build_opts[@]}" -t "${repo}/functest-${dir##**/}:amd64-latest" .)
- docker push "${repo}/functest-${dir##**/}:amd64-latest"
- [ "${dir}" != "docker/core" ] && (docker rmi "${repo}/functest-${dir##**/}:amd64-latest" || true)
-done
-[ ! -z "${amd64_dirs}" ] && (docker rmi "${repo}/functest-core:amd64-latest" alpine:3.7 || true)
-find . -name Dockerfile -exec git checkout {} +
-
-find . -name Dockerfile -exec sed -i -e "s|alpine:3.7|multiarch/alpine:arm64-v3.7|g" {} +
-find . -name Dockerfile -exec sed -i -e "s|opnfv/functest-core|${repo}/functest-core:arm64-latest|g" {} +
-for dir in ${arm64_dirs}; do
- (cd "${dir}" && docker build "${build_opts[@]}" -t "${repo}/functest-${dir##**/}:arm64-latest" .)
- docker push "${repo}/functest-${dir##**/}:arm64-latest"
- [ "${dir}" != "docker/core" ] && (docker rmi "${repo}/functest-${dir##**/}:arm64-latest" || true)
-done
-[ ! -z "${arm64_dirs}" ] && (docker rmi "${repo}/functest-core:arm64-latest" multiarch/alpine:arm64-v3.7 || true)
-find . -name Dockerfile -exec git checkout {} +
-
-exit $?
diff --git a/commons/ims/readme.rst b/commons/ims/readme.rst
deleted file mode 100644
index e69de29b..00000000
--- a/commons/ims/readme.rst
+++ /dev/null
diff --git a/commons/mobile/readme.rst b/commons/mobile/readme.rst
deleted file mode 100644
index 07c87250..00000000
--- a/commons/mobile/readme.rst
+++ /dev/null
@@ -1,116 +0,0 @@
-Mobility Traffic Profiles for OPNFV
-===================================
-
-Mobility User-Plane
-+++++++++++++++++++
-
-The following tables describe per-session average (in a range) for user-plane traffic related to classes of applications.
-
-Downlink Mobility User-Plane
-----------------------------
-
-.. list-table:: Downlink Mobility User-Plane
- :widths: 25 25 25 25
- :header-rows: 1
-
- * - Service/protocol
- - Downlink Packet Size (bytes)
- - Downlink Flow Size (KB)
- - Downlink per-flow Throughput (Kbps)
-
- * - Browsing + Apps
- - 1,220 - 1,260
- - 40 - 55
- - 130 - 253
-
- * - HTTPS traffic
- - 1,050 - 1,085
- - 32 - 40
- - 107 - 124
-
- * - Video Streaming
- - 1,360 - 1,390
- - 545 - 650
- - 690 - 790
-
- * - VoLTE bearer (media, excluding signaling)
- - 84 – 102
- - 116 - 142
- - 18 - 24
-
-
-Uplink Mobility User-Plane
---------------------------
-.. list-table:: Uplink Mobility User-Plane
- :widths: 25 25 25 25
- :header-rows: 1
-
- * - Service/protocol
- - Uplink Packet Size (bytes)
- - Uplink Flow Size (KB)
- - Uplink per-flow Throughput (Kbps)
-
- * - Browsing + Apps
- - 90 – 120
- - 3 – 10
- - 6 – 18
-
- * - HTTPS traffic
- - 140 – 200
- - 5 – 12
- - 8 – 15
-
- * - Video Streaming
- - 50 – 110
- - 10 – 20
- - 12 - 20
-
- * - VoLTE bearer (media, excluding signaling)
- - 84 – 102
- - 112 - 135
- - 18 - 24
-
-
-Mobility User-Plane Traffic Distribution
-----------------------------------------
-.. list-table:: Mobility User-Plane Traffic Distribution
- :widths: 33 33 33
- :header-rows: 1
-
- * - Service/protocol
- - Downlink
- - Uplink
-
- * - HTTP
- - 40 - 70% (60 – 40 split between ‘browsing + apps’ and ‘streaming’)
- - 30 - 50% (55 – 45 split between ‘browsing + apps’ and ‘streaming’)
-
- * - HTTPS
- - 25 - 50%
- - 40 - 60%
-
- * - Email
- - 1%
- - 3%
-
- * - P2P
- - 0.1%
- - 0.5%
-
- * - VoLTE
- - 0-5%
- - 5-30%
-
- * - Others
- - 4%
- - 8%
-
-Mobility Control-Plane
-++++++++++++++++++++++
-
-This section will provide average per-session mobility control-plane traffic for various protocols associated with applications.
-
-Mobility Sessions per Hour
-++++++++++++++++++++++++++
-
-This section will provide per-hour average and min-max ranges for mobility application sessions.
diff --git a/commons/traffic-profile-guidelines.rst b/commons/traffic-profile-guidelines.rst
deleted file mode 100644
index 0b965b15..00000000
--- a/commons/traffic-profile-guidelines.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-================================
-OPNFV traffic profile guidelines
-================================
-
-.. contents::
-
-.. _introduction:
-
-------------
-Introduction
-------------
-
-In order to have consistent testing profiles, it has been suggested to define and store traffic profiles.
-These profiles shall be based on operator representative scenario.
-
-These reference profiles may be used by any test projects, unitary, functional or performance tests.
-It is possible to adapt them to specific testcases.
-It is recommended to use them in order to avoid getting as many profiles as tests.
-It should be helpful to compare the results of test scenario.
-
-.. _howto:
-
--------------------------
-How to use these profiles
--------------------------
-
-The directory of the traffic profiles may be described as follow::
-
- ├── commons
- ├── ims
- │ └── readme.rst
- ├── mobile
- │ └── readme.rst
- └── traffic-profile-guidelines.rst
-
-the readme.rst details the profile.
-
-
-.. _overview:
-
-------------------------
-Traffic profile overview
-------------------------
-
-The current profiles are available:
- * Mobile traffic
- * IMS residential traffic
- * ...
-
-Mobile traffic
-==============
-
-IMS residential traffic
-=======================
-
-
-
-
-
-.. _reference:
-
----------
-reference
----------
diff --git a/docker/components/Dockerfile b/docker/components/Dockerfile
deleted file mode 100644
index ce0d0c50..00000000
--- a/docker/components/Dockerfile
+++ /dev/null
@@ -1,33 +0,0 @@
-FROM opnfv/functest-core
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-ARG RALLY_TAG=stable/0.10
-ARG OS_FAULTS_TAG=0.1.16
-
-RUN apk --no-cache add --virtual .build-deps --update \
- python-dev build-base linux-headers libffi-dev \
- openssl-dev libjpeg-turbo-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
- sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ \
- > upper-constraints.txt && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e git+https://github.com/openstack/requirements@$OPENSTACK_TAG#egg=openstack_requirements && \
- git clone --depth 1 https://github.com/openstack/os-faults.git -b $OS_FAULTS_TAG /src/os-faults && \
- update-requirements -s --source /src/openstack-requirements /src/os-faults/ && \
- git clone --depth 1 https://github.com/openstack/rally.git -b $RALLY_TAG /src/rally && \
- update-requirements -s --source /src/openstack-requirements /src/rally/ && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- tempest /src/os-faults && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- /src/rally && \
- rm -r upper-constraints.txt /src/os-faults /src/rally && \
- mkdir -p /etc/rally && \
- printf "[database]\nconnection = 'sqlite:////var/lib/rally/database/rally.sqlite'" > /etc/rally/rally.conf && \
- mkdir -p /var/lib/rally/database && rally db create && \
- apk del .build-deps
-COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
-CMD ["run_tests", "-t", "all"]
diff --git a/docker/components/hooks/post_checkout b/docker/components/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/components/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/components/testcases.yaml b/docker/components/testcases.yaml
deleted file mode 100644
index 27942a56..00000000
--- a/docker/components/testcases.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
----
-tiers:
- -
- name: components
- order: 3
- ci_loop: 'weekly'
- description: >-
- Extensive testing of OpenStack API.
- testcases:
- -
- case_name: tempest_full_parallel
- project_name: functest
- criteria: 80
- blocking: false
- description: >-
- The list of test cases is generated by
- Tempest automatically and depends on the parameters of
- the OpenStack deplopyment.
- dependencies:
- installer: '^((?!netvirt).)*$'
- scenario: ''
- run:
- module: 'functest.opnfv_tests.openstack.tempest.tempest'
- class: 'TempestFullParallel'
-
- -
- case_name: rally_full
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case runs the full suite of scenarios of the
- OpenStack Rally suite using several threads and iterations.
- dependencies:
- installer: '^((?!netvirt).)*$'
- scenario: ''
- run:
- module: 'functest.opnfv_tests.openstack.rally.rally'
- class: 'RallyFull'
diff --git a/docker/core/Dockerfile b/docker/core/Dockerfile
deleted file mode 100644
index bc47e39b..00000000
--- a/docker/core/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-FROM alpine:3.7
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-
-RUN apk --no-cache add --update \
- python libffi libssl1.0 libjpeg-turbo py-pip bash \
- grep sed wget ca-certificates git openssh-client && \
- apk --no-cache add --virtual .build-deps --update \
- python-dev build-base linux-headers libffi-dev \
- openssl-dev libjpeg-turbo-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG \
- > upper-constraints.txt && \
- git clone https://gerrit.opnfv.org/gerrit/functest /src/functest && \
- (cd /src/functest && git fetch origin $BRANCH && git checkout FETCH_HEAD) && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- /src/functest && \
- rm -r upper-constraints.txt /src/functest && \
- bash -c "mkdir -p /home/opnfv/functest{/conf,/data,/images,/results} /home/opnfv/repos/vnfs" && \
- apk del .build-deps
diff --git a/docker/features/Dockerfile b/docker/features/Dockerfile
deleted file mode 100644
index 13869f1b..00000000
--- a/docker/features/Dockerfile
+++ /dev/null
@@ -1,44 +0,0 @@
-FROM opnfv/functest-core
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-ARG FDS_TAG=master
-ARG RALLY_TAG=stable/0.10
-ARG OS_FAULTS_TAG=0.1.16
-
-COPY thirdparty-requirements.txt thirdparty-requirements.txt
-RUN apk --no-cache add --update python3 sshpass && \
- apk --no-cache add --virtual .build-deps --update \
- python-dev python3-dev build-base linux-headers libffi-dev \
- openssl-dev libjpeg-turbo-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
- sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ \
- > upper-constraints.txt && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e git+https://github.com/openstack/requirements@$OPENSTACK_TAG#egg=openstack_requirements && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e git+https://github.com/openstack/requirements@$OPENSTACK_TAG#egg=openstack_requirements && \
- git clone --depth 1 https://github.com/openstack/os-faults.git -b $OS_FAULTS_TAG /src/os-faults && \
- update-requirements -s --source /src/openstack-requirements /src/os-faults/ && \
- git clone --depth 1 https://github.com/openstack/rally.git -b $RALLY_TAG /src/rally && \
- update-requirements -s --source /src/openstack-requirements /src/rally/ && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- tempest /src/os-faults && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- /src/rally -rthirdparty-requirements.txt && \
- git clone --depth 1 -b $FDS_TAG https://gerrit.opnfv.org/gerrit/fds /src/fds && \
- python3 -m pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- doctor-tests && \
- rm -r upper-constraints.txt thirdparty-requirements.txt /src/fds/.git \
- /src/os-faults /src/rally && \
- mkdir -p /etc/rally && \
- printf "[database]\nconnection = 'sqlite:////var/lib/rally/database/rally.sqlite'" > /etc/rally/rally.conf && \
- mkdir -p /var/lib/rally/database && rally db create && \
- apk del .build-deps
-COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
-CMD ["run_tests", "-t", "all"]
diff --git a/docker/features/hooks/post_checkout b/docker/features/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/features/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/features/testcases.yaml b/docker/features/testcases.yaml
deleted file mode 100644
index 7a30c6d9..00000000
--- a/docker/features/testcases.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
----
-tiers:
- -
- name: features
- order: 2
- ci_loop: '(daily)|(weekly)'
- description: >-
- Test suites from feature projects
- integrated in functest
- testcases:
- -
- case_name: doctor-notification
- project_name: doctor
- criteria: 100
- blocking: false
- description: >-
- Test suite from Doctor project.
- dependencies:
- installer: 'apex'
- scenario: '^((?!fdio).)*$'
- run:
- module: 'functest.core.feature'
- class: 'BashFeature'
- args:
- cmd: 'doctor-test'
-
- -
- case_name: bgpvpn
- project_name: sdnvpn
- criteria: 100
- blocking: false
- description: >-
- Test suite from SDNVPN project.
- dependencies:
- installer: '(fuel)|(apex)|(netvirt)'
- scenario: 'bgpvpn'
- run:
- module: 'sdnvpn.test.functest.run_sdnvpn_tests'
- class: 'SdnvpnFunctest'
-
- -
- case_name: functest-odl-sfc
- project_name: sfc
- criteria: 100
- blocking: false
- description: >-
- Test suite for odl-sfc to test two chains with one SF and
- one chain with two SFs
- dependencies:
- installer: ''
- scenario: 'odl.*sfc'
- run:
- module: 'functest.core.feature'
- class: 'BashFeature'
- args:
- cmd: 'run_sfc_tests.py'
-
- -
- case_name: barometercollectd
- project_name: barometer
- criteria: 100
- blocking: false
- description: >-
- Test suite for the Barometer project. Separate tests verify
- the proper configuration and basic functionality of all the
- collectd plugins as described in the Project Release Plan
- dependencies:
- installer: 'apex'
- scenario: 'bar'
- run:
- module: 'baro_tests.barometer'
- class: 'BarometerCollectd'
-
- -
- case_name: fds
- project_name: fastdatastacks
- criteria: 100
- blocking: false
- description: >-
- Test Suite for the OpenDaylight SDN Controller when GBP
- features are installed. It integrates some test suites from
- upstream using Robot as the test framework.
- dependencies:
- installer: 'apex'
- scenario: 'odl.*-fdio'
- run:
- module: 'functest.opnfv_tests.sdn.odl.odl'
- class: 'ODLTests'
- args:
- suites:
- - /src/fds/testing/robot
diff --git a/docker/features/thirdparty-requirements.txt b/docker/features/thirdparty-requirements.txt
deleted file mode 100644
index 73c11b44..00000000
--- a/docker/features/thirdparty-requirements.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-robotframework-httplibrary
-robotframework-requests
-robotframework-sshlibrary;python_version=='2.7'
-baro_tests
-sdnvpn
-sfc
-doctor-tests;python_version>='3.0'
diff --git a/docker/healthcheck/Dockerfile b/docker/healthcheck/Dockerfile
deleted file mode 100644
index 21b46ef9..00000000
--- a/docker/healthcheck/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM opnfv/functest-core
-
-COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
-CMD ["run_tests", "-t", "all"]
diff --git a/docker/healthcheck/hooks/post_checkout b/docker/healthcheck/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/healthcheck/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/healthcheck/testcases.yaml b/docker/healthcheck/testcases.yaml
deleted file mode 100644
index b631e84f..00000000
--- a/docker/healthcheck/testcases.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
----
-tiers:
- -
- name: healthcheck
- order: 0
- ci_loop: '(daily)|(weekly)'
- description: >-
- First tier to be executed to verify the basic
- operations in the VIM.
- testcases:
- -
- case_name: connection_check
- project_name: functest
- criteria: 100
- blocking: true
- description: >-
- This test case verifies the retrieval of OpenStack clients:
- Keystone, Glance, Neutron and Nova and may perform some
- simple queries. When the config value of
- snaps.use_keystone is True, functest must have access to
- the cloud's private network.
- dependencies:
- installer: '^((?!netvirt).)*$'
- scenario: ''
- run:
- module:
- 'functest.opnfv_tests.openstack.snaps.connection_check'
- class: 'ConnectionCheck'
-
- -
- case_name: api_check
- project_name: functest
- criteria: 100
- blocking: true
- description: >-
- This test case verifies the retrieval of OpenStack clients:
- Keystone, Glance, Neutron and Nova and may perform some
- simple queries. When the config value of
- snaps.use_keystone is True, functest must have access to
- the cloud's private network.
- dependencies:
- installer: '^((?!netvirt).)*$'
- scenario: '^((?!lxd).)*$'
- run:
- module: 'functest.opnfv_tests.openstack.snaps.api_check'
- class: 'ApiCheck'
-
- -
- case_name: snaps_health_check
- project_name: functest
- criteria: 100
- blocking: true
- description: >-
- This test case creates executes the SimpleHealthCheck
- Python test class which creates an, image, flavor, network,
- and Cirros VM instance and observes the console output to
- validate the single port obtains the correct IP address.
- dependencies:
- installer: ''
- scenario: '^((?!lxd).)*$'
- run:
- module: 'functest.opnfv_tests.openstack.snaps.health_check'
- class: 'HealthCheck'
diff --git a/docker/parser/Dockerfile b/docker/parser/Dockerfile
deleted file mode 100644
index bf43ac0c..00000000
--- a/docker/parser/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-FROM opnfv/functest-core
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-ARG RALLY_TAG=stable/0.10
-ARG OS_FAULTS_TAG=0.1.16
-
-COPY thirdparty-requirements.txt thirdparty-requirements.txt
-RUN apk --no-cache add --virtual .build-deps --update \
- python-dev build-base linux-headers libffi-dev \
- openssl-dev libjpeg-turbo-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
- sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ \
- > upper-constraints.txt && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -rthirdparty-requirements.txt && \
- rm upper-constraints.txt thirdparty-requirements.txt && \
- apk del .build-deps
-COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
-CMD ["run_tests", "-t", "all"]
diff --git a/docker/parser/hooks/post_checkout b/docker/parser/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/parser/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/parser/testcases.yaml b/docker/parser/testcases.yaml
deleted file mode 100644
index d069f341..00000000
--- a/docker/parser/testcases.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-tiers:
- -
- name: features
- order: 2
- ci_loop: '(daily)|(weekly)'
- description: >-
- Test suites from feature projects
- integrated in functest
- testcases:
- -
- case_name: parser-basics
- project_name: parser
- criteria: 100
- blocking: false
- description: >-
- Test suite from Parser project.
- dependencies:
- installer: ''
- scenario: '^((?!bgpvpn|noha).)*$'
- run:
- module: 'functest.core.feature'
- class: 'BashFeature'
- args:
- cmd: '/src/nfv-parser/tests/functest_run.sh'
diff --git a/docker/parser/thirdparty-requirements.txt b/docker/parser/thirdparty-requirements.txt
deleted file mode 100644
index 9981404d..00000000
--- a/docker/parser/thirdparty-requirements.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-nfv-heattranslator
-nfv-toscaparser
-nfv-parser
diff --git a/docker/restapi/Dockerfile b/docker/restapi/Dockerfile
deleted file mode 100644
index a731679f..00000000
--- a/docker/restapi/Dockerfile
+++ /dev/null
@@ -1,65 +0,0 @@
-FROM opnfv/functest-core
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-ARG ODL_TAG=master
-ARG RALLY_TAG=stable/0.10
-ARG OS_FAULTS_TAG=0.1.16
-ARG REFSTACK_TAG=master
-ARG REFSTACK_TARGET=2017.09
-ARG FDS_TAG=master
-ARG VIMS_TAG=stable
-
-COPY thirdparty-requirements.txt thirdparty-requirements.txt
-RUN apk --no-cache add --update python3 sshpass \
- ruby ruby-bundler ruby-irb ruby-rdoc dnsmasq \
- procps libxslt libxml2 zlib libffi go musl-dev && \
- apk --no-cache add --virtual .build-deps --update \
- python-dev python3-dev build-base linux-headers libffi-dev \
- openssl-dev libjpeg-turbo-dev \
- ruby-dev g++ make libxslt-dev libxml2-dev zlib-dev libffi-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
- sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ \
- > upper-constraints.txt && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e git+https://github.com/openstack/requirements@$OPENSTACK_TAG#egg=openstack_requirements && \
- git clone --depth 1 https://github.com/openstack/os-faults.git -b $OS_FAULTS_TAG /src/os-faults && \
- update-requirements -s --source /src/openstack-requirements /src/os-faults/ && \
- git clone --depth 1 https://github.com/openstack/rally.git -b $RALLY_TAG /src/rally && \
- update-requirements -s --source /src/openstack-requirements /src/rally/ && \
- git clone https://github.com/openstack/refstack-client.git /src/refstack-client && \
- (cd /src/refstack-client && git checkout $REFSTACK_TAG) && \
- update-requirements -s --source /src/openstack-requirements /src/refstack-client/ && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- tempest /src/os-faults && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e/src/refstack-client /src/rally -rthirdparty-requirements.txt && \
- python3 -m pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- doctor-tests && \
- git clone https://git.opendaylight.org/gerrit/p/integration/test.git /src/odl_test && \
- (cd /src/odl_test && git checkout $ODL_TAG) && \
- git clone --depth 1 -b $FDS_TAG https://gerrit.opnfv.org/gerrit/fds /src/fds && \
- git clone --depth 1 -b $VIMS_TAG https://github.com/boucherv-orange/clearwater-live-test /src/vims-test && \
- ln -s /src/tempest /src/refstack-client/.tempest && \
- virtualenv --system-site-packages /src/tempest/.venv --python=python2.7 && \
- git clone https://github.com/RebacaInc/abot_charm.git /src/epc-requirements/abot_charm && \
- python3 -m pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- juju-wait && \
- go get github.com/rogpeppe/godeps && \
- (cd /src/vims-test && bundle config build.nokogiri --use-system-libraries && bundle install --system) && \
- rm -r upper-constraints.txt thirdparty-requirements.txt /src/refstack-client/.git /src/odl_test/.git \
- /src/os-faults /src/rally /src/fds/.git /src/vims-test/.git /src/epc-requirements/abot_charm/.git && \
- mkdir -p /etc/rally && \
- printf "[database]\nconnection = 'sqlite:////var/lib/rally/database/rally.sqlite'" > /etc/rally/rally.conf && \
- mkdir -p /var/lib/rally/database && rally db create && \
- mkdir -p /home/opnfv/functest/data/refstack && \
- wget "https://refstack.openstack.org/api/v1/guidelines/${REFSTACK_TARGET}/tests?target=compute&type=required&alias=true&flag=false" \
- -O /home/opnfv/functest/data/refstack/defcore.txt && \
- apk del .build-deps
-EXPOSE 5000
-CMD ["functest_restapi"]
diff --git a/docker/restapi/hooks/post_checkout b/docker/restapi/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/restapi/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/restapi/thirdparty-requirements.txt b/docker/restapi/thirdparty-requirements.txt
deleted file mode 100644
index 73c11b44..00000000
--- a/docker/restapi/thirdparty-requirements.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-robotframework-httplibrary
-robotframework-requests
-robotframework-sshlibrary;python_version=='2.7'
-baro_tests
-sdnvpn
-sfc
-doctor-tests;python_version>='3.0'
diff --git a/docker/smoke/Dockerfile b/docker/smoke/Dockerfile
deleted file mode 100644
index 00f5bac0..00000000
--- a/docker/smoke/Dockerfile
+++ /dev/null
@@ -1,48 +0,0 @@
-FROM opnfv/functest-core
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-ARG ODL_TAG=master
-ARG RALLY_TAG=stable/0.10
-ARG OS_FAULTS_TAG=0.1.16
-ARG REFSTACK_TAG=master
-ARG REFSTACK_TARGET=2017.09
-
-COPY thirdparty-requirements.txt thirdparty-requirements.txt
-RUN apk --no-cache add --virtual .build-deps --update \
- python-dev build-base linux-headers libffi-dev \
- openssl-dev libjpeg-turbo-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
- sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ \
- > upper-constraints.txt && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e git+https://github.com/openstack/requirements@$OPENSTACK_TAG#egg=openstack_requirements && \
- git clone --depth 1 https://github.com/openstack/os-faults.git -b $OS_FAULTS_TAG /src/os-faults && \
- update-requirements -s --source /src/openstack-requirements /src/os-faults/ && \
- git clone --depth 1 https://github.com/openstack/rally.git -b $RALLY_TAG /src/rally && \
- update-requirements -s --source /src/openstack-requirements /src/rally/ && \
- git clone https://github.com/openstack/refstack-client.git /src/refstack-client && \
- (cd /src/refstack-client && git checkout $REFSTACK_TAG) && \
- update-requirements -s --source /src/openstack-requirements /src/refstack-client/ && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- tempest /src/os-faults && \
- pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- -e/src/refstack-client /src/rally -rthirdparty-requirements.txt && \
- git clone https://git.opendaylight.org/gerrit/p/integration/test.git /src/odl_test && \
- (cd /src/odl_test && git checkout $ODL_TAG) && \
- ln -s /src/tempest /src/refstack-client/.tempest && \
- virtualenv --system-site-packages /src/tempest/.venv && \
- rm -r upper-constraints.txt thirdparty-requirements.txt /src/refstack-client/.git /src/odl_test/.git \
- /src/os-faults /src/rally && \
- mkdir -p /etc/rally && \
- printf "[database]\nconnection = 'sqlite:////var/lib/rally/database/rally.sqlite'" > /etc/rally/rally.conf && \
- mkdir -p /var/lib/rally/database && rally db create && \
- mkdir -p /home/opnfv/functest/data/refstack && \
- wget "https://refstack.openstack.org/api/v1/guidelines/${REFSTACK_TARGET}/tests?target=compute&type=required&alias=true&flag=false" \
- -O /home/opnfv/functest/data/refstack/defcore.txt && \
- apk del .build-deps
-COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
-CMD ["run_tests", "-t", "all"]
diff --git a/docker/smoke/hooks/post_checkout b/docker/smoke/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/smoke/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/smoke/testcases.yaml b/docker/smoke/testcases.yaml
deleted file mode 100644
index 5b1f56a9..00000000
--- a/docker/smoke/testcases.yaml
+++ /dev/null
@@ -1,151 +0,0 @@
----
-tiers:
- -
- name: smoke
- order: 1
- ci_loop: '(daily)|(weekly)'
- description: >-
- Set of basic Functional tests to validate the OPNFV scenarios.
- testcases:
- -
- case_name: vping_ssh
- project_name: functest
- criteria: 100
- blocking: true
- description: >-
- This test case verifies: 1) SSH to an instance using
- floating IPs over the public network. 2) Connectivity
- between 2 instances over a private network.
- dependencies:
- installer: ''
- scenario: '^((?!odl_l3|odl-bgpvpn|gluon).)*$'
- run:
- module: 'functest.opnfv_tests.openstack.vping.vping_ssh'
- class: 'VPingSSH'
-
- -
- case_name: vping_userdata
- project_name: functest
- criteria: 100
- blocking: true
- description: >-
- This test case verifies: 1) Boot a VM with given userdata.
- 2) Connectivity between 2 instances over a private network.
- dependencies:
- installer: ''
- scenario: '^((?!lxd).)*$'
- run:
- module:
- 'functest.opnfv_tests.openstack.vping.vping_userdata'
- class: 'VPingUserdata'
-
- -
- case_name: tempest_smoke_serial
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case runs the smoke subset of the OpenStack
- Tempest suite. The list of test cases is generated by
- Tempest automatically and depends on the parameters of
- the OpenStack deplopyment.
- dependencies:
- installer: '^((?!netvirt).)*$'
- scenario: ''
- run:
- module: 'functest.opnfv_tests.openstack.tempest.tempest'
- class: 'TempestSmokeSerial'
-
- -
- case_name: rally_sanity
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case runs a sub group of tests of the OpenStack
- Rally suite in smoke mode.
- dependencies:
- installer: ''
- scenario: ''
- run:
- module: 'functest.opnfv_tests.openstack.rally.rally'
- class: 'RallySanity'
-
- -
- case_name: refstack_defcore
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case runs a sub group of tests of the OpenStack
- Defcore testcases by using refstack client.
- dependencies:
- installer: ''
- scenario: ''
- run:
- module:
- 'functest.opnfv_tests.openstack.refstack_client.refstack_client'
- class: 'RefstackClient'
-
- -
- case_name: odl
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- Test Suite for the OpenDaylight SDN Controller. It
- integrates some test suites from upstream using
- Robot as the test framework.
- dependencies:
- installer: ''
- scenario: 'odl'
- run:
- module: 'functest.opnfv_tests.sdn.odl.odl'
- class: 'ODLTests'
- args:
- suites:
- - /src/odl_test/csit/suites/integration/basic
- - /src/odl_test/csit/suites/openstack/neutron
-
- -
- case_name: odl_netvirt
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- Test Suite for the OpenDaylight SDN Controller when
- the NetVirt features are installed. It integrates
- some test suites from upstream using Robot as the
- test framework.
- dependencies:
- installer: 'apex'
- scenario: 'os-odl_l3-nofeature'
- run:
- module: 'functest.opnfv_tests.sdn.odl.odl'
- class: 'ODLTests'
- args:
- suites:
- - /src/odl_test/csit/suites/integration/basic
- - /src/odl_test/csit/suites/openstack/neutron
- - /src/odl_test/csit/suites/openstack/connectivity
-
- -
- case_name: snaps_smoke
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case contains tests that setup and destroy
- environments with VMs with and without Floating IPs
- with a newly created user and project. Set the config
- value snaps.use_floating_ips (True|False) to toggle
- this functionality. When the config value of
- snaps.use_keystone is True, functest must have access to
- the cloud's private network.
-
- dependencies:
- installer: '^((?!netvirt).)*$'
- scenario: '^((?!lxd).)*$'
- run:
- module: 'functest.opnfv_tests.openstack.snaps.smoke'
- class: 'SnapsSmoke'
diff --git a/docker/smoke/thirdparty-requirements.txt b/docker/smoke/thirdparty-requirements.txt
deleted file mode 100644
index 6d7ee122..00000000
--- a/docker/smoke/thirdparty-requirements.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-robotframework-httplibrary
-robotframework-requests
-robotframework-sshlibrary;python_version=='2.7'
diff --git a/docker/vnf/Dockerfile b/docker/vnf/Dockerfile
deleted file mode 100644
index c52f6bc4..00000000
--- a/docker/vnf/Dockerfile
+++ /dev/null
@@ -1,34 +0,0 @@
-FROM opnfv/functest-core
-
-ARG BRANCH=master
-ARG OPENSTACK_TAG=stable/pike
-ARG VIMS_TAG=stable
-ARG JUJU_TAG=tags/juju-2.2.5
-
-ENV GOPATH /src/epc-requirements/go
-ENV GOBIN /src/epc-requirements/go/bin
-ENV PATH $GOBIN:$PATH
-
-RUN apk --no-cache add --update \
- ruby ruby-bundler ruby-irb ruby-rdoc dnsmasq \
- procps libxslt libxml2 zlib libffi python3 go musl-dev && \
- apk --no-cache add --virtual .build-deps --update \
- ruby-dev g++ make libxslt-dev libxml2-dev zlib-dev libffi-dev && \
- wget -q -O- https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG | \
- sed -E s/^tempest==+\(.*\)$/-e\ git+https:\\/\\/github.com\\/openstack\\/tempest@\\1#egg=tempest/ | \
- > upper-constraints.txt && \
- git clone --depth 1 -b $VIMS_TAG https://github.com/boucherv-orange/clearwater-live-test /src/vims-test && \
- git clone https://github.com/RebacaInc/abot_charm.git /src/epc-requirements/abot_charm && \
- python3 -m pip install --no-cache-dir --src /src -cupper-constraints.txt \
- -chttps://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH \
- juju-wait && \
- go get github.com/rogpeppe/godeps && \
- go get -d -v github.com/juju/juju/... || true && \
- (cd $GOPATH/src/github.com/juju/juju && git checkout $JUJU_TAG && godeps -u dependencies.tsv) && \
- go install -v github.com/juju/juju/... && \
- rm -rf $GOPATH/go/src/ $GOPATH/pkg && \
- (cd /src/vims-test && bundle config build.nokogiri --use-system-libraries && bundle install --system) && \
- rm -r upper-constraints.txt /src/vims-test/.git /src/epc-requirements/abot_charm/.git && \
- apk del .build-deps
-COPY testcases.yaml /usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
-CMD ["run_tests", "-t", "all"]
diff --git a/docker/vnf/hooks/post_checkout b/docker/vnf/hooks/post_checkout
deleted file mode 100644
index 8d0e9812..00000000
--- a/docker/vnf/hooks/post_checkout
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-from="${DOCKER_REPO%/*}/functest-core:${DOCKER_TAG}"
-sed -i "s|^FROM.*$|FROM ${from}|" Dockerfile
-
-exit $?
diff --git a/docker/vnf/testcases.yaml b/docker/vnf/testcases.yaml
deleted file mode 100644
index 8e8de4aa..00000000
--- a/docker/vnf/testcases.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
----
-tiers:
- -
- name: vnf
- order: 4
- ci_loop: '(daily)|(weekly)'
- description: >-
- Collection of VNF test cases.
- testcases:
- -
- case_name: cloudify_ims
- project_name: functest
- criteria: 80
- blocking: false
- description: >-
- This test case deploys an OpenSource vIMS solution from
- Clearwater using the Cloudify orchestrator. It also runs
- some signaling traffic.
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-.*ha'
- run:
- module: 'functest.opnfv_tests.vnf.ims.cloudify_ims'
- class: 'CloudifyIms'
-
- -
- case_name: vyos_vrouter
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- This test case is vRouter testing.
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-.*ha'
- run:
- module: 'functest.opnfv_tests.vnf.router.cloudify_vrouter'
- class: 'CloudifyVrouter'
-
- -
- case_name: orchestra_openims
- project_name: orchestra
- enabled: false
- criteria: 100
- blocking: false
- description: >-
- OpenIMS VNF deployment with Open Baton (Orchestra)
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-.*ha'
- run:
- module: 'functest.opnfv_tests.vnf.ims.orchestra_openims'
- class: 'OpenImsVnf'
-
- -
- case_name: orchestra_clearwaterims
- project_name: orchestra
- enabled: false
- criteria: 100
- blocking: false
- description: >-
- ClearwaterIMS VNF deployment with Open Baton (Orchestra)
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-.*ha'
- run:
- module:
- 'functest.opnfv_tests.vnf.ims.orchestra_clearwaterims'
- class: 'ClearwaterImsVnf'
-
- -
- case_name: juju_epc
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- vEPC validation with Juju as VNF manager and ABoT as test
- executor.
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-.*ha'
- run:
- module: 'functest.opnfv_tests.vnf.epc.juju_epc'
- class: 'JujuEpc'
diff --git a/docs/com/css/theme/OPNFV-Berlin.css b/docs/com/css/theme/OPNFV-Berlin.css
deleted file mode 100644
index 9f957d6f..00000000
--- a/docs/com/css/theme/OPNFV-Berlin.css
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * White theme for reveal.js. This is the opposite of the 'black' theme.
- *
- * Copyright (C) 2015 Hakim El Hattab, http://hakim.se
- */
-section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
- color: #fff; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
- background-color: #39324c;
- }
-
-
-
-.reveal {
- font-family: Helvetica, sans-serif;
- font-size: 38px;
- font-weight: normal;
- color: #fff; }
-
-::selection {
- color: #fff;
- background: #98bdef;
- text-shadow: none; }
-
-.reveal .footer {
- position: absolute;
- bottom: 1em;
- left: 1em;
- font-size: 0.5em;
-
- }
-
-.reveal .slides > section, .reveal .slides > section > section {
- line-height: 1.3;
- font-weight: inherit; }
-
-.reveal .opnfv-title {
- background-image: url("../../img/title-bg-berlin.png" no-repeat);
-}
-
-
-.transition {
-}
-
-.imageflottante
-{
- float: left;
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
- margin: 0 0 20px 0;
- color: #222;
- font-family: Helvetica, sans-serif;
- font-weight: 600;
- line-height: 1.2;
- letter-spacing: normal;
- text-transform: uppercase;
- text-shadow: none;
- word-wrap: break-word; }
-
-.reveal h1 {
- font-size: 1.7em;
- color: #E6EFF2 }
-
-.reveal h2 {
- font-size: 1.5em;
- color: #DCD3E0 }
-
-.reveal h3 {
- font-size: 1.3em;
- color: #FFFFFF }
-
-.reveal h4 {
- font-size: 1em;
- color: #FFFFFF }
-
-.reveal h5 {
- font-size: 0.6em;
- color: #FFFFFF }
-
-.reveal h1 {
- text-shadow: none; }
-
-
-/*********************************************
- * OTHER
- *********************************************/
-.reveal p {
- margin: 20px 0;
- line-height: 1.3; }
-
-/* Ensure certain elements are never larger than the slide itself */
-.reveal img, .reveal video, .reveal iframe {
- max-width: 95%;
- max-height: 95%; }
-
-.reveal strong, .reveal b {
- font-weight: bold; }
-
-.reveal em {
- font-style: italic; }
-
-.reveal ol, .reveal dl, .reveal ul {
- display: inline-block;
- text-align: left;
- margin: 0 0 0 1em; }
-
-.reveal ol {
- list-style-type: decimal; }
-
-.reveal ul {
- list-style-type: disc; }
-
-.reveal ul ul {
- list-style-type: square; }
-
-.reveal ul ul ul {
- list-style-type: circle; }
-
-.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
- display: block;
- margin-left: 40px; }
-
-.reveal dt {
- font-weight: bold; }
-
-.reveal dd {
- margin-left: 40px; }
-
-.reveal q, .reveal blockquote {
- quotes: none; }
-
-.reveal blockquote {
- display: block;
- position: relative;
- width: 70%;
- margin: 20px auto;
- padding: 5px;
- font-style: italic;
- background: rgba(255, 255, 255, 0.05);
- box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
-
-.reveal blockquote p:first-child, .reveal blockquote p:last-child {
- display: inline-block; }
-
-.reveal q {
- font-style: italic; }
-
-.reveal pre {
- display: block;
- position: relative;
- width: 90%;
- margin: 20px auto;
- text-align: left;
- font-size: 0.55em;
- font-family: monospace;
- line-height: 1.2em;
- word-wrap: break-word;
- box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }
-
-.reveal code {
- font-family: monospace; }
-
-.reveal pre code {
- display: block;
- padding: 5px;
- overflow: auto;
- max-height: 400px;
- word-wrap: normal; }
-
-.reveal table {
- margin: auto;
- border-collapse: collapse;
- border-spacing: 0; }
-
-.reveal table th {
- font-weight: bold; }
-
-.reveal table th, .reveal table td {
- text-align: left;
- padding: 0.2em 0.5em 0.2em 0.5em;
- border-bottom: 1px solid; }
-
-.reveal table th[align="center"], .reveal table td[align="center"] {
- text-align: center; }
-
-.reveal table th[align="right"], .reveal table td[align="right"] {
- text-align: right; }
-
-.reveal table tr:last-child td {
- border-bottom: none; }
-
-.reveal sup {
- vertical-align: super; }
-
-.reveal sub {
- vertical-align: sub; }
-
-.reveal small {
- display: inline-block;
- font-size: 0.6em;
- line-height: 1.2em;
- vertical-align: top; }
-
-.reveal small * {
- vertical-align: top; }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a {
- color: #08cec7;
- text-decoration: none;
- -webkit-transition: color 0.15s ease;
- -moz-transition: color 0.15s ease;
- transition: color 0.15s ease; }
-
-.reveal a:hover {
- color: #6ca2e8;
- text-shadow: none;
- border: none; }
-
-.reveal .roll span:after {
- color: #fff;
- background: #1a54a1; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
- margin: 15px 0px;
- background: rgba(255, 255, 255, 0.12);
- border: 4px solid #222;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
-
-.reveal section img.plain {
- border: 0;
- box-shadow: none; }
-
-.reveal a img {
- -webkit-transition: all 0.15s linear;
- -moz-transition: all 0.15s linear;
- transition: all 0.15s linear; }
-
-.reveal a:hover img {
- background: rgba(255, 255, 255, 0.2);
- border-color: #2a76dd;
- box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls .navigate-left, .reveal .controls .navigate-left.enabled {
- border-right-color: #2a76dd; }
-
-.reveal .controls .navigate-right, .reveal .controls .navigate-right.enabled {
- border-left-color: #2a76dd; }
-
-.reveal .controls .navigate-up, .reveal .controls .navigate-up.enabled {
- border-bottom-color: #2a76dd; }
-
-.reveal .controls .navigate-down, .reveal .controls .navigate-down.enabled {
- border-top-color: #2a76dd; }
-
-.reveal .controls .navigate-left.enabled:hover {
- border-right-color: #6ca2e8; }
-
-.reveal .controls .navigate-right.enabled:hover {
- border-left-color: #6ca2e8; }
-
-.reveal .controls .navigate-up.enabled:hover {
- border-bottom-color: #6ca2e8; }
-
-.reveal .controls .navigate-down.enabled:hover {
- border-top-color: #6ca2e8; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
- background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
- background: #2a76dd;
- -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
- -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
- transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
- color: #2a76dd; }
-
diff --git a/docs/com/css/theme/OPNFV.css b/docs/com/css/theme/OPNFV.css
deleted file mode 100644
index 745a2a8d..00000000
--- a/docs/com/css/theme/OPNFV.css
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- * White theme for reveal.js. This is the opposite of the 'black' theme.
- *
- * Copyright (C) 2015 Hakim El Hattab, http://hakim.se
- */
-section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
- color: #fff; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
- }
-
-
-
-.reveal {
- font-family: Helvetica, sans-serif;
- font-size: 38px;
- font-weight: normal;
- color: #222; }
-
-::selection {
- color: #fff;
- background: #98bdef;
- text-shadow: none; }
-
-.reveal .footer {
- position: absolute;
- bottom: 1em;
- left: 1em;
- font-size: 0.5em;
-
- }
-
-.reveal .slides > section, .reveal .slides > section > section {
- line-height: 1.3;
- font-weight: inherit; }
-
-.reveal .opnfv-title {
- background-image: url("../../img/title-bg.png" no-repeat);
-}
-
-
-.transition {
-}
-
-.imageflottante
-{
- float: left;
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
- margin: 0 0 20px 0;
- color: #222;
- font-family: Helvetica, sans-serif;
- font-weight: 600;
- line-height: 1.2;
- letter-spacing: normal;
- text-transform: uppercase;
- text-shadow: none;
- word-wrap: break-word; }
-
-.reveal h1 {
- font-size: 1.7em; }
-
-.reveal h2 {
- font-size: 1.5em; }
-
-.reveal h3 {
- font-size: 1.3em; }
-
-.reveal h4 {
- font-size: 1em;
- color: #FFFFFF }
-
-.reveal h5 {
- font-size: 0.6em;
- color: #FFFFFF }
-
-.reveal h1 {
- text-shadow: none; }
-
-
-/*********************************************
- * OTHER
- *********************************************/
-.reveal p {
- margin: 20px 0;
- line-height: 1.3; }
-
-/* Ensure certain elements are never larger than the slide itself */
-.reveal img, .reveal video, .reveal iframe {
- max-width: 95%;
- max-height: 95%; }
-
-.reveal strong, .reveal b {
- font-weight: bold; }
-
-.reveal em {
- font-style: italic; }
-
-.reveal ol, .reveal dl, .reveal ul {
- display: inline-block;
- text-align: left;
- margin: 0 0 0 1em; }
-
-.reveal ol {
- list-style-type: decimal; }
-
-.reveal ul {
- list-style-type: disc; }
-
-.reveal ul ul {
- list-style-type: square; }
-
-.reveal ul ul ul {
- list-style-type: circle; }
-
-.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
- display: block;
- margin-left: 40px; }
-
-.reveal dt {
- font-weight: bold; }
-
-.reveal dd {
- margin-left: 40px; }
-
-.reveal q, .reveal blockquote {
- quotes: none; }
-
-.reveal blockquote {
- display: block;
- position: relative;
- width: 70%;
- margin: 20px auto;
- padding: 5px;
- font-style: italic;
- background: rgba(255, 255, 255, 0.05);
- box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
-
-.reveal blockquote p:first-child, .reveal blockquote p:last-child {
- display: inline-block; }
-
-.reveal q {
- font-style: italic; }
-
-.reveal pre {
- display: block;
- position: relative;
- width: 90%;
- margin: 20px auto;
- text-align: left;
- font-size: 0.55em;
- font-family: monospace;
- line-height: 1.2em;
- word-wrap: break-word;
- box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }
-
-.reveal code {
- font-family: monospace; }
-
-.reveal pre code {
- display: block;
- padding: 5px;
- overflow: auto;
- max-height: 400px;
- word-wrap: normal; }
-
-.reveal table {
- margin: auto;
- border-collapse: collapse;
- border-spacing: 0; }
-
-.reveal table th {
- font-weight: bold; }
-
-.reveal table th, .reveal table td {
- text-align: left;
- padding: 0.2em 0.5em 0.2em 0.5em;
- border-bottom: 1px solid; }
-
-.reveal table th[align="center"], .reveal table td[align="center"] {
- text-align: center; }
-
-.reveal table th[align="right"], .reveal table td[align="right"] {
- text-align: right; }
-
-.reveal table tr:last-child td {
- border-bottom: none; }
-
-.reveal sup {
- vertical-align: super; }
-
-.reveal sub {
- vertical-align: sub; }
-
-.reveal small {
- display: inline-block;
- font-size: 0.6em;
- line-height: 1.2em;
- vertical-align: top; }
-
-.reveal small * {
- vertical-align: top; }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a {
- color: #08cec7;
- text-decoration: none;
- -webkit-transition: color 0.15s ease;
- -moz-transition: color 0.15s ease;
- transition: color 0.15s ease; }
-
-.reveal a:hover {
- color: #6ca2e8;
- text-shadow: none;
- border: none; }
-
-.reveal .roll span:after {
- color: #fff;
- background: #1a54a1; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
- margin: 15px 0px;
- background: rgba(255, 255, 255, 0.12);
- border: 4px solid #222;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
-
-.reveal section img.plain {
- border: 0;
- box-shadow: none; }
-
-.reveal a img {
- -webkit-transition: all 0.15s linear;
- -moz-transition: all 0.15s linear;
- transition: all 0.15s linear; }
-
-.reveal a:hover img {
- background: rgba(255, 255, 255, 0.2);
- border-color: #2a76dd;
- box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls .navigate-left, .reveal .controls .navigate-left.enabled {
- border-right-color: #2a76dd; }
-
-.reveal .controls .navigate-right, .reveal .controls .navigate-right.enabled {
- border-left-color: #2a76dd; }
-
-.reveal .controls .navigate-up, .reveal .controls .navigate-up.enabled {
- border-bottom-color: #2a76dd; }
-
-.reveal .controls .navigate-down, .reveal .controls .navigate-down.enabled {
- border-top-color: #2a76dd; }
-
-.reveal .controls .navigate-left.enabled:hover {
- border-right-color: #6ca2e8; }
-
-.reveal .controls .navigate-right.enabled:hover {
- border-left-color: #6ca2e8; }
-
-.reveal .controls .navigate-up.enabled:hover {
- border-bottom-color: #6ca2e8; }
-
-.reveal .controls .navigate-down.enabled:hover {
- border-top-color: #6ca2e8; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
- background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
- background: #2a76dd;
- -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
- -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
- transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
- color: #2a76dd; }
-
diff --git a/docs/com/img/Functest-CI.png b/docs/com/img/Functest-CI.png
deleted file mode 100644
index fd58ec2c..00000000
--- a/docs/com/img/Functest-CI.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/LinuxFoundation.png b/docs/com/img/LinuxFoundation.png
deleted file mode 100644
index a9b01d0f..00000000
--- a/docs/com/img/LinuxFoundation.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/OPNFV-Berlin.png b/docs/com/img/OPNFV-Berlin.png
deleted file mode 100644
index a7041c0e..00000000
--- a/docs/com/img/OPNFV-Berlin.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/OPNFV.png b/docs/com/img/OPNFV.png
deleted file mode 100644
index a7041c0e..00000000
--- a/docs/com/img/OPNFV.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/OPNFV_testing_group.png b/docs/com/img/OPNFV_testing_group.png
deleted file mode 100644
index 4b8c2c05..00000000
--- a/docs/com/img/OPNFV_testing_group.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/bandeau-bas.png b/docs/com/img/bandeau-bas.png
deleted file mode 100644
index e25c4f6d..00000000
--- a/docs/com/img/bandeau-bas.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/colorado.jpeg b/docs/com/img/colorado.jpeg
deleted file mode 100644
index c858bacf..00000000
--- a/docs/com/img/colorado.jpeg
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/colorado.png b/docs/com/img/colorado.png
deleted file mode 100644
index 04f3a1c6..00000000
--- a/docs/com/img/colorado.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/jiras.png b/docs/com/img/jiras.png
deleted file mode 100644
index ecefcf73..00000000
--- a/docs/com/img/jiras.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/jiras2.png b/docs/com/img/jiras2.png
deleted file mode 100644
index 239df4d5..00000000
--- a/docs/com/img/jiras2.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/leaf.png b/docs/com/img/leaf.png
deleted file mode 100644
index dc6ec9b3..00000000
--- a/docs/com/img/leaf.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/logo-OPNFV-Berlin.png b/docs/com/img/logo-OPNFV-Berlin.png
deleted file mode 100644
index 41ddb1cc..00000000
--- a/docs/com/img/logo-OPNFV-Berlin.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/logo-OPNFV.png b/docs/com/img/logo-OPNFV.png
deleted file mode 100644
index 1519503e..00000000
--- a/docs/com/img/logo-OPNFV.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/matrix.png b/docs/com/img/matrix.png
deleted file mode 100644
index 8c20c63c..00000000
--- a/docs/com/img/matrix.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/opnfv_how_to_functest1.png b/docs/com/img/opnfv_how_to_functest1.png
deleted file mode 100644
index b2c28f1a..00000000
--- a/docs/com/img/opnfv_how_to_functest1.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/reporting.png b/docs/com/img/reporting.png
deleted file mode 100644
index dec34bbf..00000000
--- a/docs/com/img/reporting.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/teamSummitBerlin.png b/docs/com/img/teamSummitBerlin.png
deleted file mode 100644
index d5c7f46a..00000000
--- a/docs/com/img/teamSummitBerlin.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/testapi0.png b/docs/com/img/testapi0.png
deleted file mode 100644
index 21f36311..00000000
--- a/docs/com/img/testapi0.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/testapi1.png b/docs/com/img/testapi1.png
deleted file mode 100644
index e9a69744..00000000
--- a/docs/com/img/testapi1.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/title-bg-berlin.png b/docs/com/img/title-bg-berlin.png
deleted file mode 100644
index 7177b073..00000000
--- a/docs/com/img/title-bg-berlin.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/title-bg.jpg b/docs/com/img/title-bg.jpg
deleted file mode 100644
index e2c0f621..00000000
--- a/docs/com/img/title-bg.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/title-bg.png b/docs/com/img/title-bg.png
deleted file mode 100644
index 6a84a44f..00000000
--- a/docs/com/img/title-bg.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/img/wordle-opnfv2.png b/docs/com/img/wordle-opnfv2.png
deleted file mode 100644
index fd98fbc4..00000000
--- a/docs/com/img/wordle-opnfv2.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/Summit/Berlin-2016/conversation.html b/docs/com/pres/Summit/Berlin-2016/conversation.html
deleted file mode 100644
index 356c2ad1..00000000
--- a/docs/com/pres/Summit/Berlin-2016/conversation.html
+++ /dev/null
@@ -1,251 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="Conversation with the Testing community">
- <meta name="author" content="OPNFV Testing Worjing Group">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../../reveal.js/css/print/pdf.css' : '../../reveal.js/css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../../img/title-bg-berlin.png" data-background-transition="none">
- <br><br><br><br><br>
- <h1>Conversation with the Testing Community</h1>
- <br><br>
- <h4>OPNFV testing community</h4>
- <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5>
- <br>
-
- </section>
-
- <section data-markdown>
- >“You make experiments and I make theories. Do you know the difference? A theory is something nobody believes, except the person who made it. An experiment is something everybody believes, except the person who made it." A.Einstein
- </section>
-
- <section data-markdown>
- # Agenda
- * Who are we?
- * Upstream, Upstream, Upstream
- * Towards Telco Cloud KPI
- </section>
-
- <section data-markdown>
- # Who are we?
- ![team](../../../img/OPNFV_testing_group.png)
- This is a representation...not a governance!
- </section>
- <section>
- <section>
- <h3>The test projects</h3>
- <table>
- <thead>
- <tr>
- <th>Test case</th>
- <th>Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Functest</td>
- <td>Umbrella project for Functional testing</td>
- </tr>
- <tr>
- <td>Yardstick</td>
- <td>Umbrella project for performance/qualification testing</td>
- </tr>
- <tr>
- <td>CPerf</td>
- <td>SDN controller performance testing</td>
- </tr>
- <tr>
- <td>StorPerf</td>
- <td>Storage performance testing</td>
- </tr>
- <tr>
- <td>VSPerf</td>
- <td>VSwitch qualification</td>
- </tr>
- <tr>
- <td>Bottlenecks</td>
- <td>Detect possible bottlenecks</td>
- </tr>
- <tr>
- <td>QTIP</td>
- <td>Benchmark to boost performance</td>
- </tr>
- </tbody>
- </table>
- </section>
-
- <section data-markdown>
- # Functest
- * Functional testing to validate scenarios
- * Contributors (raise your hands)
- * Functest presentation (here...1h ago :))
- * breakout sessions
- * Today 3.10PM-3.40PM (vIMS evolution) 4PM (feature project integration), 5PM (Colorado status)
- * tomorrow 11AM (API, test collection), 1PM (work Upstream), 3.15PM (D Release)(to be confirmed...)
- </section>
- <section data-markdown>
- # Yardstick
- * Performance testing framework and NFVI Validation
- * [Contributors](https://wiki.opnfv.org/display/yardstick/People)
- * Yardstick presentation
- * How to Do a Pre-deployment NFVI Validation Quickly and Efficiently? Wednesday, June 22, 4:00 PM - 4:30 PM
- * Yardstick: A Pre-deployment NFVI Validation Tool. Thursday, June 23, 3:10 PM - 3:30 PM
- * breakout sessions
- * Tomorrow 2PM (Yardstick in C)
- </section>
- <section data-markdown>
- # CPerf
- * SDN Controller Performance Testing
- * Upstream test experts + standards/metrics experts
- * Goal: Cross-controller perf tests in CI against realistic deployments
- </section>
- <section data-markdown>
- # StorPerf
- * Cinder Volume Performance Testing
- * Based on SNIA's SSD Test Specification
- * Presentation
- * StorPerf: Cinder Storage Performance Measurement.
- Wednesday, June 22, 3:40 PM - 3:55 PM
- * Breakout Session
- * Tomorrow 10:15 (StorPerf Test Results Working Session)
- </section>
- <section data-markdown>
- # VSPerf
- </section>
- <section data-markdown>
- # Bottlenecks
- </section>
- <section data-markdown>
- # QTIP
-
- ## OPNFV Platform Benchmark
-
- - Bottom up
- - testing baremetal components first
- - More than result
- - comparing against reference
- - Setup-Test-Diagnose-Improve
- - a closed loop to boost platform performance
-
- ## Breakout session
-
- - 14:30~15:45, June 21st/Tuesday
- - Room Tegel
- </section>
- </section>
- <section>
- <section data-markdown>
- # Upstream, upstream, upstream..
- </section>
- <section data-markdown>
- ## We are on the shoulders of the giants
- * Rally (OpenStack)
- * ODL, ONOS, ...
- * RobotFramework, Teston
- * .....
- </section>
- <section data-markdown>
- ## Time to give back
- ### How to improve work with testing upstream community
- </section>
-
- </section>
-
- <section>
-
- <section data-markdown>
- # Towards Telco Cloud KPI?
- </section>
-
- <section data-markdown>
- # Testing group goals
- * Define common needs (naming, rules, tools...)
- * Unify result collection, reporting, dashboarding, documentation
- * Share best practice: docker, CLI, ..
- * Identify testing domains
- * Encourage testing in poorly covered areas
- </section>
-
- <section data-markdown>
- # The ultimate goal: define Telco Cloud KPIs
- * Provide methodology and test suites to qualify a Telco Cloud
- * Provide reference benchs for plugfest/third party integration: compare apple with apple
- </section>
-
- </section>
-
- <section data-markdown>
- # Thank you
- </section>
-
- </div>
- <div class='footer'>
- <img src="../../../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../../reveal.js/lib/js/head.min.js"></script>
- <script src="../../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html b/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html
deleted file mode 100644
index 97fa66c1..00000000
--- a/docs/com/pres/Summit/Berlin-2016/summit-Berlin.html
+++ /dev/null
@@ -1,313 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="Functest: Many rivers to cross">
- <meta name="author" content="Morgan Richomme and Functest contributors">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../../reveal.js/css/print/pdf.css' : '../../../css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="l../../reveal.jsml5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../../img/title-bg-berlin.png" data-background-transition="none">
- <br><br><br><br><br>
- <h1>From Arno to Colorado</h1>
- <h3>Functest: Many rivers to cross</h3>
- <br>
- <h4>Functest contributors</h4>
- <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5>
- <br>
-
- </section>
-
- <section>
- <blockquote>
- &ldquo;Bad programmers have all the answers. Good testers have all the questions. Gil Zilberfeld - &rdquo;
- </blockquote>
- </section>
-
- <section data-markdown>
- # Agenda
- * Functest
- * Arno
- * Brahmaputra
- * Colorado
- * D, E, F rivers and beyond
- </section>
-
- <section data-markdown>
- # The dream team
- ![team](../../../img/teamSummitBerlin.png)
- </section>
-
- <section>
- <section data-markdown>
- # Functest: what for?
- </section>
- <section data-markdown>
- ## Our goals
- ### make sure OPNFV works......
- </section>
- <section data-markdown>
- ## so concretely...
- * Validate scenarios for the release
- * Give confidence on OPNFV fresh releases
- * Ensure consistancy towards installers
- * Ensure End to End interoperability
- </section>
- <section data-markdown>
- ## and also
- * Provide functional test suites to be replayed
- * ~ post install sanity check
- * usable for plugfests
- * coherent with ETSI and Telco needs
- * Provide test tools
- * run tests
- * collect info
- * create dashboard
- </section>
- <section data-markdown>
- ## Our goals are not....
- * Performance testing (yardstick, Xperf )
- * Re-do tests done in specific projects
- * storage/storeperf
- * infra audit/qtip
- * Compare results
- </section>
-
- <section data-markdown>
- ## Our rules
- * Re-use as much as possible upstream suites (Rally, Tempest, Robot, testOn..)
- * Keep it simple...
- * Automate (if not it is not a test...)
- * Create new suites only if tests not covered
- * Consider fields not addressed by existing test projects
- </section>
-
- <section data-markdown>
- ## Our rules
- * Installer neutral
- * Controller neutral
- * Black box approach
- </section>
-
- </section>
-
- <section>
- <section data-markdown>
- # Arno
- </section>
- <section data-markdown>
- ## Proof of concept
- * 4 Testcases: vPing (userdata), Tempest, Rally, ODL
- * 1 scenario: os-odl_l2-nofeature-ha
- * 2 installers: Foreman/Fuel
- * Lots of manual operations (reporting, documentation)
- </section>
- </section>
- <section>
- <section data-markdown>
- # Brahmaputra
- </section>
- <section data-markdown>
- ## More everything....
- * 7 Testcases: vPing (ssh), ONOS, vIMS, Tempest and Rally extended
- * 3 feature projects: doctor, promise, sdnvpn
- * 13 Scenarios
- * 4 Installers (Apex, Compass, Fuel, Joid)
- * Test result collection
- * Automatic dashboard
- </section>
- <section>
- <h3>Jiras</h3>
- <img height="200" data-src="../../../img/jiras.png" alt="Jiras">
- <img height="200" data-src="../../../img/jiras2.png" alt="Jiras">
- </section>
-
- <section>
- <h3>Brahmaputra Scenario matrix</h3>
- <img width="800" data-src="../../../img/matrix.png" alt="Jiras">
- </section>
-
- <section>
- Comparison odl_l2-nofeature-ha scenario
- <table>
- <thead>
- <tr>
- <th>Project</th>
- <th>Apex</th>
- <th>Compass</th>
- <th>Fuel</th>
- <th>Joid</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>POD</td>
- <td>LF POD1</td>
- <td>Huawei US</td>
- <td>Ericsson POD2</td>
- <td>Orange POD2</td>
- </tr>
- <tr>
- <td>Functest</td>
- <td>2h50</td>
- <td>1h45</td>
- <td>2h35</td>
- <td>2h30</td>
- </tr>
- <tr>
- <td>Yardstick</td>
- <td>1h05</td>
- <td>1h00</td>
- <td>1h00</td>
- <td>0h55</td>
- </tr>
- </tbody>
- </table>
- * difference of duration due to POD and test suites
- </section>
-
- <section data-markdown>
- ## Lessons learned
- * Tempest/Rally
- * harmonizing installer related OpenStack configuration differences
- * creating customized test lists
- * main challenge was resolving SDN controller interworking problems
- * vIMS
- * complete but complex test case
- * very interesting to automate (pre MANO, most of Telco needs met there)
- </section>
-
- </section>
-
- <section>
- <section data-markdown>
- # Colorado
- </section>
-
- <section data-markdown>
- ## What's new?
- * New internal test cases: healthcheck, security
- * New controler: OpenContrail?
- * New feature projects (domino, multisites, movie, parser, moon, copper, models, onos-sfc...)
- * ARM Support (congratulations to ENEA team!)
- * Simplified feature project integration journey
- </section>
-
- <section data-markdown>
- ## What's new?
- * Slicing of the tests (healthcheck / Smoke / SDN controllers / Features / Components / VNFs)
- * Better Test duration management
- * Refactoring (repo, case management, TestAPI)
- * Automatic reporting
- * Dashboard evolution to ELK
- * CLI
- </section>
-
-
- <section>
- <h3>Automatic reporting</h3>
- <img height="400" data-src="../../../img/reporting.png" alt="Reporting">
- <br><a href="http://testresults.opnfv.org/reporting/functest/release/master/index-status-fuel.html">Validated scenarios for Colorado</a>
- </section>
-
- </section>
-
- <section>
- <section data-markdown>
- # Many rivers to cross
- ## Functest beyond Colorado
- </section>
- <section data-markdown>
- ## More test cases
- * New VNFs (vEPC, vCDN, vWhatever...)
- * Multi sites (e.g bgpvpn with different back ends)
- * Better test coverage
- </section>
- <section data-markdown>
- ## A Functional testing As a Service framework
- * Scenario owner can select their relevant test cases
- * Test duration estimation
- * Agile dashboarding
- * Analytics
- </section>
- <section data-markdown>
- ## Upstream
- * Rally: time to give back more
- * Functest description for ETSI?
- </section>
- </section>
-
- <section>
- <h3>Thank you</h3>
- <img width="600" data-src="../../../img/colorado.png" alt="tests">
- </section>
-
- </div>
- <div class='footer'>
- <img src="../../../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../../reveal.js/lib/js/head.min.js"></script>
- <script src="../../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/Summit/Berlin-2016/testapi.html b/docs/com/pres/Summit/Berlin-2016/testapi.html
deleted file mode 100644
index c40637cb..00000000
--- a/docs/com/pres/Summit/Berlin-2016/testapi.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="TestAPI">
- <meta name="author" content="Serena Feng">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../../css/theme/OPNFV-Berlin.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../../reveal.js/css/print/pdf.css' : '../../reveal.js/css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../../img/title-bg-berlin.png" data-background-transition="none">
- <br><br><br><br><br>
- <h1>TestAPI</h1>
- <h3>Clean, Easy, Complete</h3>
- <br>
- <h4>OPNFV testing community</h4>
- <h5>OPNFV Design Summit, 20/6/2016, Berlin</h5>
- <br>
- </section>
-
- <section data-markdown>
- # Agenda
- * TestAPI: what for?
- * API overview
- * API evolution
- * Roadmap
- </section>
-
- <section>
- <section data-markdown>
- # TestAPI: what for?
- </section>
- <section data-markdown>
- ## Consistant view for
- * Resources (Pods)
- * Projects
- * Test cases
- * Results
- </section>
-
- <section data-markdown>
- ## Status Currently
- * From many projects
- * Many formats (log, html, json, ..)
- * Many locations (in VM, Jumphost, external DB,...)
- </section>
- <section data-markdown>
- <script type='text/template'>
- ## Achieve using TestAPI
- * Uniform API: TestAPI
- * Uniform format: JSON
- * Universal Location: http://testresults.opnfv.org
- <aside class='notes'>
- By using TestAPI, we hope to provide a uniform way of collection and saving test results to a universal location
- </aside>
- </script>
- </section>
-
- <section data-markdown>
- ## Help building
- * Dashboards
- * Automatic reporting
- </section>
- </section>
-
- <section>
- <section data-markdown>
- # API overview
- </section>
- <section data-markdown>
- ## Storage structure
- ![TestAPI](https://wiki.opnfv.org/download/attachments/2926452/results_collection_structure.png?version=1&modificationDate=1459196347000&api=v2 "OPNFV API page")
- </section>
- <section data-markdown>
- ## API in Brahmaputra
- ![TestAPI](../../../img/testapi0.png)
- https://wiki.opnfv.org/display/functest/Collection+Of+Test+Results
- </section>
-
- <section data-markdown>
- ## API status in Brahmaputra
- * Simple data models aggreed with the testing group
- * No unit tests
- * Wiki and rst documentation
- </section>
-
- <section data-markdown>
- ## Lessons learned in B.
- * Painful wiki documentation
- * Simple result model
- * Misuse version as scenario
- * No version actually
- * No overall criteria (PASS/FAIL)
- * Difficult refactoring
- </section>
- <section>
- <h2>Colorado refactoring</h2>
- <ul>
- <li>Unit tests</li>
- <li>Update of the data model</li>
- <li>Tornado_swagger for the documentation</li>
- <li>URL and MongoDB collection renaming</li>
- <li>Scripts to support databse backup/restore/update</li>
- <li>Support installation</li>
- <aside class='notes'>
- So you can discover and understand the capabilities of the service without
- access to source code, documentation, or through network traffic inspection,
- and also you can interact with the TestAPI directly through swagger website.
- </aside>
- </ul>
- <p class="fragment fade-up"><b>All done in Colorado!</b></p>
- </section>
- </section>
-
- <section>
- <section data-markdown>
- # API Evoluation
- </section>
-
- <section>
- <h2> URI changes...</h2>
- <div style="text-align:left"">
- <p> testresults.opnfv.org/<span style="color:lightblue">TestAPI</span> => <br>testresults.opnfv.org/<span style="color:yellow">test/api/v1</span> </p>
-
- <p> /test/api/v1/<b>pods</b></p>
- <p> /test/api/v1/<b>projects</b></p>
- <p> /test/api/v1/projects/qtip/<b>cases</b></p>
- <p> /test/api/v1/<b>results</b></p>
- </div>
- </section>
- <section data-markdown>
- ## One new field for pods
- | Field | Colorado |
- | :--- | :--- |
- | role | community_pod, ci_pod, .. |
- </section>
- <section data-markdown>
- ## Changed fields for results
- | Item | Brahmaputra | Colorado |
- | :--- | :--- | :--- |
- | date | creation_date | start_date and stop_date |
- | version | used as scenario | opnfv release version |
- </section>
- <section data-markdown>
- <script type='text/template'>
- ## New fields for results
- | Item | Colorado |
- | :--- | :--- |
- | scenario | used for scenario |
- | criteria | PASS/FAILED |
- | trust_indicator | between 0 and 1|
- <aside class='notes'>
- to detect if the test case is stable over time and further more to avoid
- running it systematically and saving time for other long duration test cases
- </aside>
- </script>
- </section>
- <section data-markdown>
- ## One new filter for results
- | Item | Colorado |
- | :--- | :--- |
- | last | get last N results|
- </section>
- <section data-markdown>
- http://testresults.opnfv.org/test/swagger/spec.html
- ![alt text](../../../img/testapi1.png "TestAPI swagger interface")
- </section>
- <section>
- <h2>unit tests</h2>
- <pre><code class="hljs" data-trim contenteditable>
-umry8364@umry8364-Latitude-E6400:~/Dev/OPNFV/releng/utils/test/result_collection_api$ ./run_test.sh
-Tests running...
-WARNING:tornado.general:404 GET /dashboard/v1/results?case=vPing&pod=zte-pod1&version=C&installer=fuel&period=5 (127.0.0.1): Project name missing
-WARNING:tornado.access:404 GET /dashboard/v1/results?case=vPing&pod=zte-pod1&version=C&installer=fuel&period=5 (127.0.0.1) 2.30ms
-WARNING:tornado.general:400 POST /api/v1/projects (127.0.0.1): name missing
-............
-WARNING:tornado.access:400 POST /api/v1/projects (127.0.0.1) 1.13ms
-WARNING:tornado.access:403 PUT /api/v1/projects/functest/cases/vping_1 (127.0.0.1) 2.95ms
-WARNING:tornado.general:404 PUT /api/v1/projects/functest/cases/notFound (127.0.0.1): {'project_name': u'functest', 'name': u'notFound'} could not be found in table [testcases]
-WARNING:tornado.access:404 PUT /api/v1/projects/functest/cases/notFound (127.0.0.1) 2.85ms
-
-Ran 74 tests in 1.848s
-OK
- </code></pre>
- </section>
- </section>
-
- <section>
- <section data-markdown>
- # Roadmap
- </section>
- <section data-markdown>
- ## Roadmap
- * Dockerize TestAPI
- * Automatic update of TestAPI
- * Command Line Interface
- * Automatic update for pods/projects/testcases
- </section>
- <section data-markdown>
- # suggestions ...
- </section>
- <section>
- <h3>Thank you</h3>
- <img width="600" data-src="../../../img/colorado.png" alt="tests">
- </section>
- </section>
- </div>
- <div class='footer'>
- <img src="../../../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../../reveal.js/lib/js/head.min.js"></script>
- <script src="../../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/dashboard/dashboard_status.html b/docs/com/pres/dashboard/dashboard_status.html
deleted file mode 100644
index 1321afa0..00000000
--- a/docs/com/pres/dashboard/dashboard_status.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!doctype html>
-<html lang="en">
-
- <head>
- <meta charset="utf-8">
-
- <title>OPNFV presentation</title>
-
- <meta name="description" content="Dashboard Status">
- <meta name="author" content="Serena Feng">
-
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
-
- <link rel="stylesheet" href="../reveal.js/css/reveal.css">
- <link rel="stylesheet" href="../../css/theme/OPNFV.css" id="theme">
-
- <!-- Code syntax highlighting -->
- <link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-
- <!-- Printing and PDF exports -->
- <script>
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- </script>
-
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
-
- <body>
-
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
-
- <section data-background="../../img/title-bg.png" data-background-transition="none">
- <h1>Dashboard Status</h1>
- <h3></h3>
- <br>
- <h4>OPNFV testing community</h4>
- <h5></h5>
- <br>
- </section>
-
- <section>
- <h3>results generation</h3>
- <img width="600" data-src="./dashboard_status/generation.png" alt="tests">
- </section>
- <section>
- <h3>result model</h3>
- <img width="600" data-src="./dashboard_status/result_model.png" alt="tests">
- </section>
- <section>
- <h3>dashboard generation</h3>
- <img width="600" data-src="./dashboard_status/dashboard_generate.png" alt="tests">
- </section>
- <section>
- <h3>selection layout(1)</h3>
- <img width="600" data-src="./dashboard_status/selection_1.png" alt="tests">
- </section>
- <section>
- <h3>selection layout(2)</h3>
- <img width="600" data-src="./dashboard_status/selection_2.png" alt="tests">
- </section>
- <section>
- <h3>display period select</h3>
- <img width="600" data-src="./dashboard_status/period_select.png" alt="tests">
- </section>
- <section>
- <h3>duration display</h3>
- <img width="600" data-src="./dashboard_status/duration.png" alt="tests">
- </section>
- <section>
- <h3>tests/failures display</h3>
- <img width="600" data-src="./dashboard_status/number.png" alt="tests">
- </section>
- <section>
- <h3>success_percentage display</h3>
- <img width="600" data-src="./dashboard_status/percentage.png" alt="tests">
- </section>
- <section data-markdown>
- # possible layouts
-
- * project
- * testcase
- * pod
- * installer
- * scenario
- * version
- * period
- </section>
- <section data-markdown>
- # possible display domains
-
- * duration
- * tests/failures
- * success_percentage
- </section>
- <section>
- <h3>Thank you</h3>
- <img width="600" data-src="./dashboard_status/danube.jpg" alt="tests">
- </section>
-
- </div>
- <div class='footer'>
- <img src="../../img/logo-OPNFV.png" alt="OPNFV logo">
- </div>
- </div>
-
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
-
- <script>
-
- // Full list of configuration options available at:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
-
- transition: 'slide', // none/fade/slide/convex/concave/zoom
-
- // Optional reveal.js plugins
- dependencies: [
- { src: '../reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: '../reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: '../reveal.js/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: '../reveal.js/plugin/zoom-js/zoom.js', async: true },
- { src: '../reveal.js/plugin/notes/notes.js', async: true }
- ]
- });
-
- </script>
-
- </body>
-</html>
diff --git a/docs/com/pres/dashboard/dashboard_status/._danube.jpg b/docs/com/pres/dashboard/dashboard_status/._danube.jpg
deleted file mode 100644
index 15669502..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._danube.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._dashboard_generate.png b/docs/com/pres/dashboard/dashboard_status/._dashboard_generate.png
deleted file mode 100644
index 1f2afc65..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._dashboard_generate.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._duration.png b/docs/com/pres/dashboard/dashboard_status/._duration.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._duration.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._generation.png b/docs/com/pres/dashboard/dashboard_status/._generation.png
deleted file mode 100644
index 4154da2e..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._generation.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._number.png b/docs/com/pres/dashboard/dashboard_status/._number.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._number.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._percentage.png b/docs/com/pres/dashboard/dashboard_status/._percentage.png
deleted file mode 100644
index 8e72b4a2..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._percentage.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._period_select.png b/docs/com/pres/dashboard/dashboard_status/._period_select.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._period_select.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._result_model.png b/docs/com/pres/dashboard/dashboard_status/._result_model.png
deleted file mode 100644
index b9c8c2e1..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._result_model.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._selection_1.png b/docs/com/pres/dashboard/dashboard_status/._selection_1.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._selection_1.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/._selection_2.png b/docs/com/pres/dashboard/dashboard_status/._selection_2.png
deleted file mode 100644
index 7ff52194..00000000
--- a/docs/com/pres/dashboard/dashboard_status/._selection_2.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/danube.jpg b/docs/com/pres/dashboard/dashboard_status/danube.jpg
deleted file mode 100644
index 4cf4ecce..00000000
--- a/docs/com/pres/dashboard/dashboard_status/danube.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/dashboard_generate.png b/docs/com/pres/dashboard/dashboard_status/dashboard_generate.png
deleted file mode 100644
index 991f26c7..00000000
--- a/docs/com/pres/dashboard/dashboard_status/dashboard_generate.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/duration.png b/docs/com/pres/dashboard/dashboard_status/duration.png
deleted file mode 100644
index 33497a9a..00000000
--- a/docs/com/pres/dashboard/dashboard_status/duration.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/generation.png b/docs/com/pres/dashboard/dashboard_status/generation.png
deleted file mode 100644
index ec5ae169..00000000
--- a/docs/com/pres/dashboard/dashboard_status/generation.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/logo-OPNFV.png b/docs/com/pres/dashboard/dashboard_status/logo-OPNFV.png
deleted file mode 100644
index 1519503e..00000000
--- a/docs/com/pres/dashboard/dashboard_status/logo-OPNFV.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/number.png b/docs/com/pres/dashboard/dashboard_status/number.png
deleted file mode 100644
index a5f4ff43..00000000
--- a/docs/com/pres/dashboard/dashboard_status/number.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/percentage.png b/docs/com/pres/dashboard/dashboard_status/percentage.png
deleted file mode 100644
index 640ef748..00000000
--- a/docs/com/pres/dashboard/dashboard_status/percentage.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/period_select.png b/docs/com/pres/dashboard/dashboard_status/period_select.png
deleted file mode 100644
index 609a0d86..00000000
--- a/docs/com/pres/dashboard/dashboard_status/period_select.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/result_model.png b/docs/com/pres/dashboard/dashboard_status/result_model.png
deleted file mode 100644
index 4ac6d671..00000000
--- a/docs/com/pres/dashboard/dashboard_status/result_model.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/selection_1.png b/docs/com/pres/dashboard/dashboard_status/selection_1.png
deleted file mode 100644
index d264df81..00000000
--- a/docs/com/pres/dashboard/dashboard_status/selection_1.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/selection_2.png b/docs/com/pres/dashboard/dashboard_status/selection_2.png
deleted file mode 100644
index a3d23667..00000000
--- a/docs/com/pres/dashboard/dashboard_status/selection_2.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dashboard/dashboard_status/title-bg.png b/docs/com/pres/dashboard/dashboard_status/title-bg.png
deleted file mode 100644
index 6a84a44f..00000000
--- a/docs/com/pres/dashboard/dashboard_status/title-bg.png
+++ /dev/null
Binary files differ
diff --git a/docs/com/pres/dockerslicing/dockerslicing.md b/docs/com/pres/dockerslicing/dockerslicing.md
deleted file mode 100644
index a6645324..00000000
--- a/docs/com/pres/dockerslicing/dockerslicing.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# Docker slicing
-
-[Cédric Ollivier](mailto:cedric.ollivier@orange.com)
-
-2017/10/19
-
-
-
-## Danube issues
-
-
-### OPNFV projects' setup.py
-
-- no requirements were installed when calling *python setup.py install* as none of the next keys was set:
- - install_requires
- - tests_require
- - dependency_links
-- shell scripts were not installed neither in $PATH nor in dist-packages
-- all requirements were not synchronized over the OPNFV projects
-
-
-### Functest's Dockerfile
-
-- it copied all the files hosted by the third-party projects (e.g. docs, .git...)
-- several requirements were downgraded/upgraded when building the container as they were managed one after the other
-- it could download packages from [PyPI](https://pypi.python.org/pypi) (e.g. [networking-bgpvpn](https://pypi.python.org/pypi/networking-bgpvpn)...) instead of cloning git repository
-- build dependencies couldn't be removed to save space as it created multiple layers (>70)
-
-
-
-## Management of the requirements
-
-
-### Rely on [pbr](https://docs.openstack.org/developer/pbr/)
-
-- pbr injects requirements into the install_requires, tests_require and/or dependency_links arguments to setup
-- it supports conditional dependencies which can be added to the requirements (e.g. dnspython>=1.14.0;python_version=='2.7')
-
-
-### Split requirements into 3 files
-
-- **requirements.txt** which should list all abstract (i.e. [not associated with any particular index](https://packaging.python.org/requirements/)) dependencies of the OPNFV packages
-- **test-requirements.txt** which could list all abstract dependencies required for testing the OPNFV packages
-- **upper-constraints.txt** which should list all concrete dependencies required by Functest Docker container or the testing virtual environments
-
-
-### Follow [OpenStack requirements management](https://specs.openstack.org/openstack/openstack-specs/specs/requirements-management.html)
-
-- OPNFV (test-)requirements.txt have been updated according to stable/ocata global-requirements.txt.
-- Functest simply use (and complete) stable/ocata upper-constraints.txt in Docker files and tox configuration (testing virtual environments).
-
-
-### On the road
-
-- we have fixed lots of hardcoded paths hidden by the previous design
-- some files were outside the python packages
-- lots of (console) scripts added in OPNFV packages to ease the maintenance of Functest testcases.yaml
-
-
-
-## Docker slicing
-
-
-### 8 Functest containers
-
-```bash
-$ sudo docker search opnfv |grep functest-
-opnfv/functest-core OPNFV Functest core image
-opnfv/functest-restapi OPNFV Functest restapi image
-opnfv/functest-features OPNFV Functest vnf image
-opnfv/functest-healthcheck OPNFV Functest healthcheck image
-opnfv/functest-smoke OPNFV Functest smoke image
-opnfv/functest-vnf OPNFV Functest vnf image
-opnfv/functest-components OPNFV Functest components image
-opnfv/functest-parser OPNFV Functest parser image
-```
-
-
-### 8 Functest containers
-
-- Alpine 3.6 is now used as base image
-- one container per test suite has been published (5). All of them are built on top of functest-core.
-- Parser is hosted in its own containers (it requires librairies released for OpenStack Pike)
-- a full container is dedicated to our REST API.
-
-Please see [Run Alpine Functest containers](https://wiki.opnfv.org/display/functest/Run+Alpine+Functest+containers)
-
-
-
-## Next steps
-
-
-### Functest and XCI
-
-- the purpose is simply to allow any OPNFV project integrated by Functest to build their own containers on top of opnfv/functest-core
-- it will allow testing one specific change of these OPNFV projects before merging it in tree
-- it induces that all requirements are synchronized between the different OPNFV projects
-
-
-### F-release
-
-- to allow building opnfv/functest-core from a gerrit change (see https://gerrit.opnfv.org/gerrit/#/c/40909/)
-- to split Functest core/ci and the Functest testcases in two separated Python packages
-- to unlink prepare_env.py and tempest/rally
-
-
-### F-release
-
-- to add python3 support for Functest ci scripts (Functest core already supports both versions)
-- to unlink functest-core from others OPNFV projects (mainly releng and snaps)
-- to write a generic Dockerfile using a set of python packages as input
-
-
-### 2 OPNFV project proposals
-
-- requirements, the counterpart of [OpenStack requirements](https://wiki.openstack.org/wiki/Requirements),
-focused on additional OPNFV project needs
-- xtesting which would be derived from Functest (core and ci parts) as proposed in
-[Functional testing gating](https://wiki.opnfv.org/display/functest/Functional+testing+gating)
-
-
-
-## Thank you!
-
diff --git a/docs/com/pres/dockerslicing/index.html b/docs/com/pres/dockerslicing/index.html
deleted file mode 100644
index 1c65e4fa..00000000
--- a/docs/com/pres/dockerslicing/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-<title>Docker slicing</title>
-<meta name="author" content="Cédric Ollivier">
-<meta name="viewport"
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-<link rel="stylesheet" href="../reveal.js/css/reveal.css">
-<link rel="stylesheet" href="../reveal.js/css/theme/white.css">
-<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-<script>
-var link = document.createElement( 'link' );
-link.rel = 'stylesheet';
-link.type = 'text/css';
-link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
-document.getElementsByTagName( 'head' )[0].appendChild( link );
-</script>
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
- <section data-markdown="dockerslicing.md" data-separator="^\n\n\n"
- data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section>
- </div>
- </div>
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
- <script>
- Reveal.initialize({
- dependencies : [ {
- src : '../reveal.js/plugin/markdown/marked.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src : '../reveal.js/plugin/markdown/markdown.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src: '../reveal.js/plugin/highlight/highlight.js',
- async: true,
- callback: function() {
- hljs.initHighlightingOnLoad();
- }
- }, {
- src: '../reveal.js/plugin/notes/notes.js',
- async: true
- } ]
- });
- </script>
-</body>
-</html>
diff --git a/docs/com/pres/euphrates_functest_evolution/euphrates.md b/docs/com/pres/euphrates_functest_evolution/euphrates.md
deleted file mode 100644
index 49aab16c..00000000
--- a/docs/com/pres/euphrates_functest_evolution/euphrates.md
+++ /dev/null
@@ -1,281 +0,0 @@
-# Functest
-### Feedback on Euphrates evolutions
-
-2017/10/09
-
-
-### Main Framework evolutions
- * Functest Framework refactoring
- * Docker slicing with Alpine
- * Building Functest dockers
- * Requirement management...1st time...in OPNFV
- * Functest API
-
-
-## Functest Framework refactoring
-
-### The framework
- * Initiated in Danube
- * Finalized in euphrates
- * Goal: ease the integration of feature/vnf tests
-
-### See complete presentation on the framework
-http://testresults.opnfv.org/functest/framework/
-
-
-## Docker slicing
-
-
-#### Short story of Functest Docker
-
-
-### Many rivers to cross
-| Version | Comment |
-|-------------|-----------------------------------------------------|
-| Arno | No docker, all tests initiated from the jumphost |
-| Brahmaputra | Introduction of Docker |
-| Colorado | Growth of Historical Docker |
-| Danube | Growth of Historical Docker |
-| Euphrates | Introduction of Alpine |
-
-
-### Focus on the Historical Docker
- * Based on ubuntu 14.04
-
-| Version | Compressed Size |
-|--------------|-----------------|
-| Brahmaputra | 354 MB |
-| Colorado.1.0 | 627 MB |
-| Danube.1.0 | 713 MB |
-| cvp.0.2.0 | 710 MB |
-
-* src: https://hub.docker.com/r/opnfv/functest/tags/
-
-
-### Introduction to Alpine
-* Alpine Linux is a GNU/Linux distribution based on musl and Busybox
-* Hardened kernel, compiles all user space binaries as position-independent executables with stack-smashing protection.
-* Docker Alpine leverage Alpine Linux: https://docs.docker.com/samples/library/alpine/
-
-
-### Our goals
-* Lighten docker / save bandwidth / save CI resources
-* Slice testing
-* Simplify Requirement management
-* Isolate "exotic" test cases
-
-
-### From 1 to many dockers
-| Docker | Size | Role |
-|-------------|-------|-------------------------------------------------|
-| core | 122MB | baseline (tools, env) |
-| healthcheck | 122MB | OS connectivity, API, DHCP testing |
-| smoke | 131MB | vpings, Tempest/Refstack, Rally, odl, Snaps |
-| features | 214MB | doctor, domino, sdnvpn, sfc, promise, barometer |
-
-
-### From 1 to many dockers
-| Docker | Size | Role |
-|-------------|-------|-------------------------------------------------|
-| components | 122MB | Full Tempest, Full Rally |
-| vnf | 155MB | vIMS, vRouter |
-| parser | 127MB | parser (feature needs pike clients) |
-
-
-### Easy way to run
-src: https://wiki.opnfv.org/display/functest/Run+Alpine+Functest+containers
- * env: OPNFV env variables
- * openstack.creds: OpenStack rc file
-
-```
-sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/openstack.creds \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-smoke:euphrates
-```
-
-
-#### Env
-```
-cat env
-INSTALLER_TYPE=Compass
-INSTALLER_IP=XXX
-EXTERNAL_NETWORK=ext-net
-DEPLOY_SCENARIO=os-nosdn-nofeature-ha
-```
-
-
-#### openstack.creds
-```
-cat openstack.creds
-export OS_AUTH_URL=XXX
-export OS_USER_DOMAIN_NAME=XXX
-export OS_PROJECT_DOMAIN_NAME=XXX
-export OS_USERNAME=XXX
-export OS_PROJECT_NAME=XXX
-export OS_PASSWORD=XXX
-export OS_IDENTITY_API_VERSION=3
-```
-
-
-#### Retrieve all the images
-```
-mkdir -p images && wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh | bash -s -- images && ls -1 images/*
-images/CentOS-7-aarch64-GenericCloud.qcow2
-images/CentOS-7-aarch64-GenericCloud.qcow2.xz
-images/CentOS-7-x86_64-GenericCloud.qcow2
-images/cirros-0.3.5-x86_64-disk.img
-images/cirros-0.3.5-x86_64-lxc.tar.gz
-images/cirros-d161201-aarch64-disk.img
-images/cirros-d161201-aarch64-initramfs
-images/cirros-d161201-aarch64-kernel
-images/cloudify-manager-premium-4.0.1.qcow2
-images/img
-images/trusty-server-cloudimg-amd64-disk1.img
-images/ubuntu-14.04-server-cloudimg-amd64-disk1.img
-images/ubuntu-14.04-server-cloudimg-arm64-uefi1.img
-images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
-images/vyos-1.1.7.img
-```
-* could be improved (retrieve only needed images Tier/config)
-
-
-#### Results
-```
-+----------------------+--------- + ------+----------+--------+
-| TEST CASE | PROJECT | TIER | DURATION | RESULT |
-+----------------------+--------- + ------+----------+--------+
-| vping_ssh | functest | smoke | 01:19 | PASS |
-| vping_userdata | functest | smoke | 01:56 | PASS |
-| tempest_smoke_serial | functest | smoke | 26:30 | PASS |
-| rally_sanity | functest | smoke | 19:42 | PASS |
-| refstack_defcore | functest | smoke | 22:00 | PASS |
-| snaps_smoke | functest | smoke | 41:14 | PASS |
-| odl | functest | smoke | 00:16 | PASS |
-| odl_netvirt | functest | smoke | 00:00 | SKIP |
-| fds | functest | smoke | 00:00 | SKIP |
-+----------------------+--------- + ------+----------+--------+
-
-```
-
-
-#### Easy way to customize
- * Change list of testcase -v your_config.yaml:/usr/lib/python2.7/site-packages/functest/ci/testcases.yaml
- * Change logger param -v your_logger.ini:/usr/lib/python2.7/site-packages/functest/ci/logging.ini
-
-
-#### Docker slicing technical presentation
-http://testresults.opnfv.org/functest/dockerslicing/
-
-
-
-## Building Functest dockers
-
-
-#### Until Danube
- * the unique Functest docker was "produced" from Releng
-
-
-#### For Euphrates, build was done on Docker hub
- * Releng adaptations not ready in time
- * more capabilities using Docker Hub
- * Use of private ollivier then official opnfv Docker Hub
- * Euphrates 5.1: come back to releng with at least same level of features than Docker Hub/Travis CI
-
-
-
-## Requirement management
-Until now, requirements were managed as follow:
-
-
-# ?
-
-
-### Requirement management
- * Nothing was done
- * Danube, Colorado, .. dockers may run but no garantee on mid/long term because
- * No control of upstream or internal project dependencies
- * the dependencies of the last feature project overwrite the previous ones
-
-
-### Requirement management
- * Nothing done in any OPNFV project
- * No dependency list, no reco (e.g. support Python 3)
- * Only high level wiki declarative intentions for OpenStack (e.g. Euphrates => Ocata)
- * Nothing equivalent to OpenStack https://releases.openstack.org/ocata/
-
-
-### Functest evolutions
- * creation of requirements.txt, upper-constraints.text
- https://git.opnfv.org/functest/tree/requirements.txt
- https://git.opnfv.org/functest/tree/upper-constraints.txt
- ```
- pbr>=1.8 # Apache-2.0
- PyYAML>=3.10.0 # MIT
- GitPython>=1.0.1 # BSD License (3 clause)
- keystoneauth1>=2.18.0 # Apache-2.0
- python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
- python-glanceclient>=2.5.0 # Apache-2.0
- python-heatclient>=1.6.1 # Apache-2.0
- ...
- ```
- * sync with ocata done manually by Cédric
-
-
-### Functest evolutions
- * Code of the feature projects under project responsibility
- * code moved to their own repo
- * no more mix between Functest and Feature project code
- * All python OPNFV projects imported properly as python modules
- * all dependencies a priori under control...
-
-
-
-## Functest Rest API
-
-
-### Introduction
-* A Rest API has been introduced in Euphrates (Linda)
-* Goal: allow third party to invoke Functest resources
- * pseudo micro services approach
- * avoid overlap (e.g. deployement of vIMS from other project to run perfo tests)
-src: https://wiki.opnfv.org/display/functest/Functest+REST+API
-
-
-### Functest rest API
-| resource | Methods | Description |
-|-------------|----------|-------------------------------------------------|
-| environment | GET,POST | show, prepare environment |
-| openstack | GET,POST | show, check, clean, update credentials |
-| testcases | GET,POST | list, show, run |
-| tiers | GET,POST | list, show |
-| tasks | GET | Get the result of the task id |
-
-
-### Examples
-```
-curl -X POST --header "Content-Type: application/json" \
- --data '{"action":"run_test_case", "args": {"opts": {}, "testcase": "vping_ssh"}}' \
- http://127.0.0.1:5000/api/v1/functest/testcases/action
-{
- "task_id": "1a9f3c5d-ce0b-4354-862e-dd08b26fc484",
- "testcase":"vping_ssh"
-}
-```
-
-
-
-## Conclusions
- * Framework heavily refactored for Euphrates
- * Better code quality and rules (coverage, pylint, pep8, ..)
- * Much more "trustable", light and evolutive
-
-
-## Next steps
- * Still lots of work for Fraser
- * Adaptation to use it for XCI gating (xTesting)
- * Generic dockerfile Functest customized docker on demand
- * split framework and testcases in order to be able to reuse Functest for k8 or even beyond OPNFV
- * integrate k8 tests
- * better management of the images
- * ...
diff --git a/docs/com/pres/euphrates_functest_evolution/index.html b/docs/com/pres/euphrates_functest_evolution/index.html
deleted file mode 100644
index 5b8fb260..00000000
--- a/docs/com/pres/euphrates_functest_evolution/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-<title>OPNFV Functest Feedback on Alpines</title>
-<meta name="author" content="Cédric Ollivier">
-<meta name="viewport"
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-<link rel="stylesheet" href="../reveal.js/css/reveal.css">
-<link rel="stylesheet" href="../reveal.js/css/theme/white.css">
-<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-<script>
-var link = document.createElement( 'link' );
-link.rel = 'stylesheet';
-link.type = 'text/css';
-link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
-document.getElementsByTagName( 'head' )[0].appendChild( link );
-</script>
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
- <section data-markdown="euphrates.md" data-separator="^\n\n\n"
- data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section>
- </div>
- </div>
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
- <script>
- Reveal.initialize({
- dependencies : [ {
- src : '../reveal.js/plugin/markdown/marked.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src : '../reveal.js/plugin/markdown/markdown.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src: '../reveal.js/plugin/highlight/highlight.js',
- async: true,
- callback: function() {
- hljs.initHighlightingOnLoad();
- }
- }, {
- src: '../reveal.js/plugin/notes/notes.js',
- async: true
- } ]
- });
- </script>
-</body>
-</html>
diff --git a/docs/com/pres/framework/framework.md b/docs/com/pres/framework/framework.md
deleted file mode 100644
index 109d8a03..00000000
--- a/docs/com/pres/framework/framework.md
+++ /dev/null
@@ -1,407 +0,0 @@
-# Functest Framework
-
-created by [Cédric Ollivier](mailto:cedric.ollivier@orange.com)
-
-2017/06/05
-
-Note:
-
-- Functest integrates lots of heterogeneous testcases:
- - python vs bash
- - internal vs external
-- it aims to benefit from object programming
- - to define common operations
- - to avoid conditional instructions regarding the testcases
- - to avoid duplicating code
- - to ease the integration of third-party testcases (written in Bash or Python)
-
-
-
-## Quick overview
-
-
-### Functest function calls
-
-- **CI** calls *run_tests.py* (please see [jenkins jobs](https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=tree;f=jjb/functest))
-- *run_tests.py* parses *functest/ci/testcases.yaml* to:
- - check which testcase(s) must be run
- - execute the common operations on every testcase (run, push its results to db...)
-<!-- .element: class="fragment highlight-red"-->
- - return the right status code to **CI**
-
-
-### Our target
-
-- limit run_tests.py instructions by defining:
- - the basic testcase attributes
- - all common operations
- - the status codes expected
-- avoid duplicating codes between testcases
-- ease the development of third-party testcases (aka features)
-
-
-
-## class TestCase
-
-base model for single test case
-
-
-### instance attributes
-
-- project_name (default: 'functest')
-- case_name
-- criteria
-- result
-- start_time
-- stop_time
-- details
-
-
-### methods
-
-| Method | Purpose |
-|-------------------|------------------------------|
-| run(**kwargs) | run the test case |
-| is_successful() | interpret the results |
-| get_duration() | return the duration |
-| push_to_db() | push the results to the DB |
-| clean() | clean the resources |
-
-
-### run(**kwargs)
-
-- the subclasses must override the default implementation which is false on purpose
-- the new implementation must set the following attributes to push the results to DB:
- - result
- - start_time
- - stop_time
-
-
-### class attributes
-
-| Status code | Returned when |
-|--------------------|---------------------|
-| EX_OK | everything is OK |
-| EX_RUN_ERROR | run() failed |
-| EX_TESTCASE_FAILED | results are false |
-| EX_PUSH_TO_DB_ERROR| push_to_db() failed |
-
-
-### run_tests.py
-
-```python
-module = importlib.import_module(run_dict['module'])
-cls = getattr(module, run_dict['class'])
-test_dict = ft_utils.get_dict_by_test(test_name)
-test_case = cls(**test_dict)
-try:
- kwargs = run_dict['args']
- result = test_case.run(**kwargs)
-except KeyError:
- result = test_case.run()
-if result == testcase.TestCase.EX_OK:
- if GlobalVariables.REPORT_FLAG:
- test_case.push_to_db()
- result = test_case.is_successful()
-```
-
-
-
-## Your first test case
-
-
-### first.py
-
-```python
-#!/usr/bin/env python
-
-import time
-
-from functest.core import testcase
-
-class Test(testcase.TestCase):
-
- def run(self, **kwargs):
- self.start_time = time.time()
- print "Hello World"
- self.result = 100
- self.stop_time = time.time()
- return testcase.TestCase.EX_OK
-```
-
-
-### functest/ci/testcases.yaml
-
-```yaml
-case_name: first
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'first'
- class: 'Test'
-```
-
-
-
-## class Feature
-bases: TestCase
-
-base model for single feature
-
-
-### methods
-
-| Method | Purpose |
-|-------------------|---------------------------|
-| run(**kwargs) | run the feature |
-| execute(**kwargs) | execute the Python method |
-
-
-### run(**kwargs)
-
-- allows executing any Python method by calling execute()
-- sets the following attributes required to push the results to DB:
- - result
- - start_time
- - stop_time
-- doesn't fulfill details when pushing the results to the DB.
-
-
-### execute(**kwargs)
-
-- the subclasses must override the default implementation which is false on purpose
-- the new implementation must return 0 if success or anything else if failure.
-
-
-
-## Your second test case
-
-
-### second.py
-
-```python
-#!/usr/bin/env python
-
-from functest.core import feature
-
-class Test(feature.Feature):
-
- def execute(self, **kwargs):
- print "Hello World"
- return 0
-```
-
-
-### functest/ci/testcases.yaml
-
-```yaml
-case_name: second
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'second'
- class: 'Test'
-```
-
-
-
-## class BashFeature
-bases: Feature
-
-class designed to run any bash command
-
-
-### execute(**kwargs)
-
-execute the cmd passed as arg.
-
-
-
-## Your third test case
-
-
-### functest/ci/testcases.yaml
-
-```
-case_name: third
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'functest.core.feature'
- class: 'BashFeature'
- args:
- cmd: 'echo Hello World; exit 0'
-```
-
-
-
-## class Suite
-bases: TestCase
-
-base model for running unittest.TestSuite
-
-
-### run(**kwargs)
-
-- allows running any unittest.TestSuite
-- sets the following attributes required to push the results to DB:
- - result
- - start_time
- - stop_time
- - details
-
-
-
-## Your fourth test case
-
-
-### fourth.py
-
-```python
-#!/usr/bin/env python
-
-import unittest
-
-class TestStringMethods(unittest.TestCase):
-
- def test_upper(self):
- self.assertEqual('Hello World'.upper(),
- 'HELLO WORLD')
-```
-
-
-### functest/ci/testcases.yaml
-
-```
-case_name: fourth
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'functest.core.unit'
- class: 'Suite'
- args:
- name: 'fourth'
-```
-
-
-
-## class VNF
-bases: TestCase
-
-base model for VNF onboarding testing
-
-
-### methods
-
-| Method | Purpose |
-|-----------------------|---------------------------------------------------|
-| prepare() | prepare VNF env (user, tenant, security group,..) |
-| run(**kwargs) | run VNF test case |
-| deploy_orchestrator() | deploy cloudify, ONAP, OpenBaton,... (optional) |
-| deploy_vnf() | deploy the VNF |
-| test_vnf() | run tests on the VNF |
-
-
-### run(**kwargs)
-
-- deploys an orchestrator if needed (e.g. heat, OpenBaton, Cloudify, ONAP, Juju)
-- deploys the VNF
-- performs tests on the VNF
-
-
-### prepare()
-
-- creates a user
-- creates a Tenant/Project
-- allocates admin role to the user on this tenant
-
-
-### deploy_orchestrator()
-
-- deploys an orchestrator (optional)
-- if this function is overridden then raise orchestratorDeploymentException if error during orchestrator deployment
-
-
-### deploy_vnf()
-
-- **MUST be implemented** by vnf test cases. The details section MAY be updated in the vnf test cases.
-- The deployment can be executed via a specific orchestrator or using build-in orchestrators such as heat, openbaton, cloudify, juju, ONAP, ...
-- returns:
- True if the VNF is properly deployed
- False if the VNF is not deployed
-- raises VnfDeploymentException if error during VNF deployment
-
-
-### test_vnf()
-
-- **MUST be implemented** by vnf test cases. The details section MAY be updated in the vnf test cases.
-- Once a VNF is deployed, it is assumed that specific test suite can be run to validate the VNF.
-- returns:
- True if VNF tests are PASS
- False if test suite is FAIL
-- raises VnfTestException if error during VNF tests
-
-
-
-## Your fifth test case
-
-
-### fifth.py
-
-```python
-#!/usr/bin/env python
-
-from functest.core import vnf
-
-class Vnf(vnf.VnfOnBoarding):
-
- def deploy_vnf(self):
- print "Deploy your VNF here"
- print "Feed orchestrator with VNF descriptor"
- return 0
-
- def test_vnf(self):
- print "Test your VNF here"
- return 0
-```
-
-
-### functest/ci/testcases.yaml
-
-```yaml
-case_name: fifth
-project_name: functest
-criteria: 100
-blocking: true
-description: ''
-dependencies:
- installer: ''
- scenario: ''
-run:
- module: 'fifth'
- class: 'Vnf'
-```
-
-
-
-## Thank You!
diff --git a/docs/com/pres/framework/index.html b/docs/com/pres/framework/index.html
deleted file mode 100644
index 950c2beb..00000000
--- a/docs/com/pres/framework/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-<title>OPNFV Functest Framework</title>
-<meta name="author" content="Cédric Ollivier">
-<meta name="viewport"
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-<link rel="stylesheet" href="../reveal.js/css/reveal.css">
-<link rel="stylesheet" href="../reveal.js/css/theme/white.css">
-<link rel="stylesheet" href="../reveal.js/lib/css/zenburn.css">
-<script>
-var link = document.createElement( 'link' );
-link.rel = 'stylesheet';
-link.type = 'text/css';
-link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js/css/print/pdf.css' : '../reveal.js/css/print/paper.css';
-document.getElementsByTagName( 'head' )[0].appendChild( link );
-</script>
-</head>
-<body>
- <div class="reveal">
- <div class="slides">
- <section data-markdown="framework.md" data-separator="^\n\n\n"
- data-separator-vertical="^\n\n" data-separator-notes="^Note:"></section>
- </div>
- </div>
- <script src="../reveal.js/lib/js/head.min.js"></script>
- <script src="../reveal.js/js/reveal.js"></script>
- <script>
- Reveal.initialize({
- dependencies : [ {
- src : '../reveal.js/plugin/markdown/marked.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src : '../reveal.js/plugin/markdown/markdown.js',
- condition : function() {
- return !!document.querySelector('[data-markdown]');
- }
- }, {
- src: '../reveal.js/plugin/highlight/highlight.js',
- async: true,
- callback: function() {
- hljs.initHighlightingOnLoad();
- }
- }, {
- src: '../reveal.js/plugin/notes/notes.js',
- async: true
- } ]
- });
- </script>
-</body>
-</html>
diff --git a/docs/com/pres/reveal.js b/docs/com/pres/reveal.js
deleted file mode 160000
-Subproject a349ff43c58c23f9c837b8ea9b5fc7d4761b8de
diff --git a/docs/images/FunctestDashboard.png b/docs/images/FunctestDashboard.png
deleted file mode 100644
index a26533ae..00000000
--- a/docs/images/FunctestDashboard.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/FunctestDashboardColorado.png b/docs/images/FunctestDashboardColorado.png
deleted file mode 100644
index 6ef90d94..00000000
--- a/docs/images/FunctestDashboardColorado.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/FunctestDashboardDanube.png b/docs/images/FunctestDashboardDanube.png
deleted file mode 100644
index b934d7e8..00000000
--- a/docs/images/FunctestDashboardDanube.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/FunctestDashboardEuphrates.png b/docs/images/FunctestDashboardEuphrates.png
deleted file mode 100644
index 12397788..00000000
--- a/docs/images/FunctestDashboardEuphrates.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/Ims_overview.png b/docs/images/Ims_overview.png
deleted file mode 100644
index 4b447d40..00000000
--- a/docs/images/Ims_overview.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/clearwater-architecture.png b/docs/images/clearwater-architecture.png
deleted file mode 100644
index 987362ac..00000000
--- a/docs/images/clearwater-architecture.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/concepts_mapping_final.png b/docs/images/concepts_mapping_final.png
deleted file mode 100644
index d0af4175..00000000
--- a/docs/images/concepts_mapping_final.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/functest-reporting-status.png b/docs/images/functest-reporting-status.png
deleted file mode 100644
index 9e230df5..00000000
--- a/docs/images/functest-reporting-status.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/functestODL.png b/docs/images/functestODL.png
deleted file mode 100644
index 6bf7580e..00000000
--- a/docs/images/functestODL.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/functestRally1.png b/docs/images/functestRally1.png
deleted file mode 100644
index 3bfac09a..00000000
--- a/docs/images/functestRally1.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/functestRally2.png b/docs/images/functestRally2.png
deleted file mode 100644
index dcd408b5..00000000
--- a/docs/images/functestRally2.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/functest_overview.odg b/docs/images/functest_overview.odg
deleted file mode 100644
index 9f6fe345..00000000
--- a/docs/images/functest_overview.odg
+++ /dev/null
Binary files differ
diff --git a/docs/release/release-notes/functest-release.rst b/docs/release/release-notes/functest-release.rst
deleted file mode 100644
index 78ec8f22..00000000
--- a/docs/release/release-notes/functest-release.rst
+++ /dev/null
@@ -1,249 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. SPDX-License-Identifier: CC-BY-4.0
-
-=======
-License
-=======
-
-OPNFV Euphrates release note for Functest Docs
-are licensed under a Creative Commons Attribution 4.0 International License.
-You should have received a copy of the license along with this.
-If not, see <http://creativecommons.org/licenses/by/4.0/>.
-
-=============================================
-OPNFV Euphrates 5.1 release note for Functest
-=============================================
-
-Abstract
-========
-
-This document contains the release notes of the Functest project.
-
-
-OPNFV Euphrates Release
-======================
-
-Functest deals with functional testing of the OPNFV solution.
-It includes test cases developed within the project, test cases developed in
-other OPNFV projects and it also intgrates test cases from other upstream
-communities.
-
-The internal test cases are:
-
- * connection_check
- * api_check
- * snaps_health_check
- * vping_ssh
- * vping_userdata
- * tempest_smoke_serial
- * refstack_defcore
- * snaps_smoke
- * rally_sanity
- * odl
- * tempest_full_parallel
- * rally_full
- * cloudify_ims
- * vyos_vrouter
-
-The OPNFV projects integrated into Functest framework for automation are:
-
- * barometer
- * bgpvpn
- * doctor
- * domino
- * fds
- * odl-sfc
- * odl-netvirt
- * parser
- * promise
- * orchestra_openims
- * orchestra_clearwaterims
-
-
-Release Data
-============
-
-+--------------------------------------+--------------------------------------+
-| **Project** | functest |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Repo/tag** | opnfv-5.1.0 |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Release designation** | Euphrates 5.1 release |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Release date** | December 15th 2017 |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Purpose of the delivery** | Euphrates second release |
-| | |
-+--------------------------------------+--------------------------------------+
-
-Deliverables
-============
-
-Software
---------
-
- Functest Docker images:
-
- * https://hub.docker.com/r/opnfv/functest-healthcheck
- * https://hub.docker.com/r/opnfv/functest-smoke
- * https://hub.docker.com/r/opnfv/functest-features
- * https://hub.docker.com/r/opnfv/functest-components
- * https://hub.docker.com/r/opnfv/functest-vnf
- * https://hub.docker.com/r/opnfv/functest-parser
- * https://hub.docker.com/r/opnfv/functest-restapi
-
- TestAPI Docker image:
-
- * https://hub.docker.com/r/opnfv/testapi
-
-Docker tag for Euphrates 5.1 release: opnfv-5.1.0
-Docker tag for Euphrates with latest bugfixes: euphrates
-
-Documents
----------
-
- - Installation/configuration guide: http://docs.opnfv.org/en/stable-euphrates/submodules/functest/docs/testing/user/configguide/index.html
-
- - User Guide: http://docs.opnfv.org/en/stable-euphrates/submodules/functest/docs/testing/user/userguide/index.html
-
- - Developer Guide: http://docs.opnfv.org/en/stable-euphrates/submodules/functest/docs/testing/developer/devguide/index.html
-
- - API Docs: http://artifacts.opnfv.org/functest/docs/index.html
-
- - Functest Framework presentation: http://testresults.opnfv.org/functest/framework/index.html
-
-
-Version change
-==============
-
-Functest now delivers light-weigth Docker images based on Alpine 3.7. The test cases are grouped into several categories
-or tiers and must be run from the corresponding container. For example, to run the test case healthcheck, the image
-opnfv/functest-healthcheck shall be used. The tiers and the tests within them are explained in detail in the User Guide.
-
-The former Ubuntu image is not longer maintained.
-
-The Parser test case has its own dedicated Docker image since it requires libraries released for OpenStack Pike and
-Euphrates is based on Ocata.
-
-The Docker images do not contain OS images (Cirros, Ubuntu, Centos, ..) anymore. A script has been created under the
-ci directory (download_images.sh) which contains all the needed images for all the tests. This file can be modified by
-the user since not all the images might be used. It must be executed before starting Functest and attach the needed
-images as a Docker volume. See Configuration Guide for more information.
-
-The requirements have been split into 3 files:
- * requirements.txt : lists all abstract dependencies of the OPNFV packages
- * test-requirements.txt : lists all abstract dependencies required by Functest Unit Tests
- * upper-constraints.txt : lists all concrete upstream dependencies required by Functest Docker container
-
-OPNFV (test-)requirements.txt have been updated according to stable/ocata global-requirements.txt.
-Functest uses (and completes) stable/ocata upper-constraints.txt in Dockerfiles and tox configuration.
-The project relies on pbr, which injects requirements into the install_requires, tests_require and/or dependency_links
-arguments to setup. It also supports conditional dependencies which can be added to the requirements (e.g. dnspython>=1.14.0;python_version=='2.7')
-
-The way to manage logging has been centralized to a configuration file (logging.ini) which might be modified by the user.
-By default, the output of executing the test cases is redirected to log files and is not displayed on the console, only result
-messages and summary tables are displayed.
-
-The framework has been refactored and all the test cases inherit from a core class TestCase. For Feature projects who develop
-test cases, 2 sub-classes have been created:
- - Feature: it implements all the needed functions and the developer must only overwrite the method "execute" (e.g. Barometer)
- - BashFeature: it is used if the third party test case is a shell script. This way, the execution command must be specified in
- testcases.yaml as the argument (e.g. Domino, Doctor)
-
-An internal REST API has been introduced in Euphrates. The goal is to trigger Functest operations through an API in addition of the CLI.
-This could be considered as a first step towards a pseudo micro services approach where the different test projects could expose and
-consume APIs to the other test projects.
-
-Euphrates 5.1 improvements
-==========================
-
-* Alpine images are now supported for ARM (arm64).
-* Added Vyos_router test case.
-* Updated of Rally 0.9.1 and fixed some bugs in cinder scenarios.
-* Patch to allow building containers from a gerrit change.
-* Selection of a subset of SNAPS test cases.
-* Reorder VNF test cases and adjust timeouts in VNFs.
-
-
-
-Euphrates 5.1 known restrictions/issues
-=======================================
-+--------------+-----------+----------------------------------------------+
-| Installer | Scenario | Issue |
-+==============+===========+==============================================+
-| fuel@aarch64 | any | VNF tier not supported yet. |
-+--------------+-----------+----------------------------------------------+
-| | | The test cases belonging to the VNF tier |
-| any | any | have been only tested on os-nosdn-nofeature |
-| | | scenarios and baremetal deployments. |
-+--------------+-----------+----------------------------------------------+
-| Joid | k8 | Functest does not offer test suites for |
-| Compass | | Kubernetes scenarios yet. |
-+--------------+-----------+----------------------------------------------+
-
-
-Test and installer/scenario dependencies
-========================================
-
-It is not always possible to run all the test cases on all the scenarios.
-The scenario dependencies (installer or scenario) are detailed
-in the different testcases.yaml for each tier:
-
- * https://git.opnfv.org/functest/tree/docker/healthcheck/testcases.yaml?h=stable/euphrates
- * https://git.opnfv.org/functest/tree/docker/smoke/testcases.yaml?h=stable/euphrates
- * https://git.opnfv.org/functest/tree/docker/features/testcases.yaml?h=stable/euphrates
- * https://git.opnfv.org/functest/tree/docker/components/testcases.yaml?h=stable/euphrates
- * https://git.opnfv.org/functest/tree/docker/vnf/testcases.yaml?h=stable/euphrates
- * https://git.opnfv.org/functest/tree/docker/parser/testcases.yaml?h=stable/euphrates
-
-
-Test results
-============
-
-The Functest scenario status on December 15, 2017 can be seen on
-http://testresults.opnfv.org/functest/euphrates/
-
-Test logs are available in:
-
- - test results logs from CI: http://artifacts.opnfv.org (within different directories 'logs_functest_X')
-
- - jenkins logs on CI: https://build.opnfv.org/ci/view/functest/
-
- - jenkins logs on ARM CI: https://build.opnfv.org/ci/view/armband/
-
-
-
-Open JIRA tickets
-=================
-
-+------------------+-----------------------------------------------+
-| JIRA | Description |
-+==================+===============================================+
-| | |
-| | |
-+------------------+-----------------------------------------------+
-
-All the tickets that are not blocking have been fixed or postponed
-the next release.
-
-
-Useful links
-============
-
- - wiki project page: https://wiki.opnfv.org/opnfv_functional_testing
-
- - wiki Functest Euphrates page: https://wiki.opnfv.org/display/functest/5.+Euphrates
-
- - Functest repo: https://git.opnfv.org/cgit/functest
-
- - Functest CI dashboard: https://build.opnfv.org/ci/view/functest/
-
- - JIRA dashboard: https://jira.opnfv.org/secure/Dashboard.jspa?selectPageId=10611
-
- - Functest IRC chan: #opnfv-functest
-
- - Reporting page: http://testresults.opnfv.org/reporting/euphrates.html
diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst
deleted file mode 100644
index 411e09bd..00000000
--- a/docs/release/release-notes/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. SPDX-License-Identifier: CC-BY-4.0
-
-.. _functest-releasenotes:
-
-**********************
-Functest Release Notes
-**********************
-
-.. toctree::
- :numbered:
- :maxdepth: 4
-
- functest-release.rst
-
-Revision: _sha1_
-
-:Author: Jose Lausuch (jalausuch@suse.com)
-
-Build date: |today|
diff --git a/docs/results/danube/1.0/apex.html b/docs/results/danube/1.0/apex.html
deleted file mode 100644
index 2ef0a197..00000000
--- a/docs/results/danube/1.0/apex.html
+++ /dev/null
@@ -1,919 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(50.0);gaugeScenario2.update(83.3333333333);gaugeScenario3.update(83.3333333333);gaugeScenario4.update(66.6666666667);gaugeScenario5.update(58.3333333333);gaugeScenario6.update(96.9696969697);gaugeScenario7.update(20.0);gaugeScenario8.update(81.8181818182);gaugeScenario9.update(6.06060606061);gaugeScenario10.update(6.06060606061);gaugeScenario11.update(80.5555555556);gaugeScenario12.update(100.0);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-fdio-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-odl-gluon-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-odl-gluon-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl_l2-fdio-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl_l3-fdio-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-odl-bgpvpn-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-odl-bgpvpn-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-nosdn-fdio-ha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-odl_l3-ovs-ha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-ovs-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-odl_l2-fdio-ha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest Danube 1.0 status page (2017-03-31 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./fuel.html">Fuel</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>apex</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-nosdn-fdio-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>15/30</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/71/console>os-odl-gluon-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>30/36</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/72/console>os-odl_l2-fdio-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>30/36</td>
- <td>14</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/75/console>os-odl_l3-fdio-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>20/30</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/70/console>os-odl-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>21/36</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/74/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>32/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/76/console>os-nosdn-fdio-ha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>6/30</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/69/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>27/33</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/78/console>os-odl_l3-ovs-ha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>2/33</td>
- <td>1</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/77/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>2/33</td>
- <td>1</td>
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl_l2-fdio-ha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>29/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/79/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>33/33</td>
- <td>6</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-gluon-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th><th>
- Netready
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/1.0/compass.html b/docs/results/danube/1.0/compass.html
deleted file mode 100644
index 95479306..00000000
--- a/docs/results/danube/1.0/compass.html
+++ /dev/null
@@ -1,490 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(76.6666666667);gaugeScenario2.update(10.0);gaugeScenario3.update(84.8484848485);gaugeScenario4.update(84.8484848485);gaugeScenario5.update(93.3333333333);gaugeScenario6.update(96.6666666667);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-ocl-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-ocl-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-onos-nofeature-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-onos-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-openo-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-openo-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest Danube 1.0 status page (2017-03-31 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./fuel.html">Fuel</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>compass</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/79/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>23/30</td>
- <td>18</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/71/console>os-ocl-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>3/30</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/67/console>os-onos-nofeature-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>28/33</td>
- <td>20</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/69/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>28/33</td>
- <td>20</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/77/console>os-nosdn-openo-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>28/30</td>
- <td>19</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/70/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>29/30</td>
- <td>19</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ocl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-onos-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ONOS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-openo-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/1.0/fuel.html b/docs/results/danube/1.0/fuel.html
deleted file mode 100644
index 3d08e7d0..00000000
--- a/docs/results/danube/1.0/fuel.html
+++ /dev/null
@@ -1,1444 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');var gaugeScenario13 = gauge('#gaugeScenario13');var gaugeScenario14 = gauge('#gaugeScenario14');var gaugeScenario15 = gauge('#gaugeScenario15');var gaugeScenario16 = gauge('#gaugeScenario16');var gaugeScenario17 = gauge('#gaugeScenario17');var gaugeScenario18 = gauge('#gaugeScenario18');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(100.0);gaugeScenario2.update(14.2857142857);gaugeScenario3.update(97.4358974359);gaugeScenario4.update(100.0);gaugeScenario5.update(15.3846153846);gaugeScenario6.update(83.3333333333);gaugeScenario7.update(79.4871794872);gaugeScenario8.update(100.0);gaugeScenario9.update(100.0);gaugeScenario10.update(92.3076923077);gaugeScenario11.update(88.0952380952);gaugeScenario12.update(95.5555555556);gaugeScenario13.update(100.0);gaugeScenario14.update(88.0952380952);gaugeScenario15.update(100.0);gaugeScenario16.update(94.8717948718);gaugeScenario17.update(97.2222222222);gaugeScenario18.update(97.4358974359);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-kvm_ovs_dpdk-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk_bar-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk_bar-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-ovs-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-odl_l2-sfc-noha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-sfc-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-nosdn-kvm-noha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-odl_l2-nofeature-noha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-odl_l2-bgpvpn-ha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-bgpvpn-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-odl_l2-sfc-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-sfc-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk_bar-noha
- // Filter results
- var trend13 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk_bar-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend13.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg13",trend13)
- // ****************************************// for scenario os-odl_l2-bgpvpn-noha
- // Filter results
- var trend14 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-bgpvpn-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend14.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg14",trend14)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend15 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend15.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg15",trend15)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend16 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend16.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg16",trend16)
- // ****************************************// for scenario os-odl_l3-nofeature-noha
- // Filter results
- var trend17 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend17.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg17",trend17)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend18 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend18.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg18",trend18)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest Danube 1.0 status page (2017-03-31 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./fuel.html">Fuel</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>fuel</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/66/console>os-nosdn-kvm_ovs_dpdk-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>36/36</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/67/console>os-nosdn-kvm_ovs_dpdk_bar-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>6/42</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/73/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>38/39</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/64/console>os-nosdn-ovs-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>36/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/69/console>os-nosdn-kvm_ovs_dpdk-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>6/39</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/61/console>os-odl_l2-sfc-noha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>35/42</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/66/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>31/39</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/63/console>os-nosdn-kvm-noha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>36/36</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/65/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>36/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/57/console>os-odl_l2-nofeature-noha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>36/39</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/70/console>os-odl_l2-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>37/42</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/68/console>os-odl_l2-sfc-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>43/45</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/68/console>os-nosdn-kvm_ovs_dpdk_bar-noha</a></td>
- <td><div id="gaugeScenario13"></div></td>
- <td><div id="trend_svg13"></div></td>
- <td>39/39</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/62/console>os-odl_l2-bgpvpn-noha</a></td>
- <td><div id="gaugeScenario14"></div></td>
- <td><div id="trend_svg14"></div></td>
- <td>37/42</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-zte-pod1-daily-danube/6/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario15"></div></td>
- <td><div id="trend_svg15"></div></td>
- <td>42/42</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/71/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario16"></div></td>
- <td><div id="trend_svg16"></div></td>
- <td>37/39</td>
- <td>12</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/67/console>os-odl_l3-nofeature-noha</a></td>
- <td><div id="gaugeScenario17"></div></td>
- <td><div id="trend_svg17"></div></td>
- <td>35/36</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/72/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario18"></div></td>
- <td><div id="trend_svg18"></div></td>
- <td>38/39</td>
- <td>15</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk_bar-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th><th>
- Barometer
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-sfc-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- SFC
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-sfc-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- SFC
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk_bar-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th><th>
- Barometer
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-bgpvpn-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/1.0/joid.html b/docs/results/danube/1.0/joid.html
deleted file mode 100644
index 98c1e0ab..00000000
--- a/docs/results/danube/1.0/joid.html
+++ /dev/null
@@ -1,418 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(70.8333333333);gaugeScenario2.update(93.9393939394);gaugeScenario3.update(75.0);gaugeScenario4.update(96.9696969697);gaugeScenario5.update(25.0);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-lxd-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-nosdn-lxd-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest Danube 1.0 status page (2017-03-31 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./fuel.html">Fuel</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>joid</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/57/console>os-nosdn-lxd-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>17/24</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/55/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>31/33</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/56/console>os-nosdn-lxd-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>18/24</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/62/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>32/33</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/46/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>9/36</td>
- <td>4</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/1.0/scenario_history.txt b/docs/results/danube/1.0/scenario_history.txt
deleted file mode 100644
index 078258e6..00000000
--- a/docs/results/danube/1.0/scenario_history.txt
+++ /dev/null
@@ -1,622 +0,0 @@
-date,scenario,installer,detail,score
-2017-03-13 10:00,os-odl_l2-fdio-noha,apex,5/33,15.0
-2017-03-13 10:00,os-odl_l2-fdio-ha,apex,1/33,3.0
-2017-03-14 01:45,os-odl_l2-fdio-noha,apex,12/33,36.0
-2017-03-14 01:45,os-odl_l2-fdio-ha,apex,1/33,3.0
-2017-03-15 01:45,os-odl_l2-fdio-noha,apex,29/33,88.0
-2017-03-15 01:45,os-odl_l2-fdio-ha,apex,4/33,12.0
-2017-03-16 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-03-16 01:45,os-odl_l2-fdio-ha,apex,13/36,36.0
-2017-03-16 10:23,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-16 10:23,os-odl_l2-fdio-ha,apex,13/36,36.0
-2017-03-17 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-17 07:33,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 07:33,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-17 08:49,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,apex,9/33,27.0
-2017-03-17 08:49,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-18 01:45,os-odl-gluon-noha,apex,12/39,31.0
-2017-03-18 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-18 01:45,os-odl_l3-fdio-noha,apex,15/30,50.0
-2017-03-18 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-03-18 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-18 01:45,os-odl-bgpvpn-ha,apex,11/39,28.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,apex,11/33,33.0
-2017-03-19 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-19 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-19 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-19 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-19 01:45,os-nosdn-kvm-ha,apex,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-19 01:45,os-odl-gluon-noha,apex,22/39,56.0
-2017-03-19 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-19 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-19 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-19 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-19 01:45,os-nosdn-kvm-ha,apex,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-20 01:45,os-odl-gluon-noha,apex,23/39,59.0
-2017-03-20 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-20 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-20 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-20 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-20 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-03-20 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-20 01:45,os-nosdn-kvm-ha,apex,12/33,36.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-17 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-17 07:33,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-17 07:33,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-17 08:49,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-18 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-18 01:45,os-odl_l2-nofeature-ha,compass,20/33,61.0
-2017-03-18 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-18 01:45,os-odl_l3-nofeature-ha,compass,16/30,53.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-03-19 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-19 01:45,os-onos-nofeature-ha,compass,11/33,33.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-03-19 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-20 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-20 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-20 01:45,os-onos-nofeature-ha,compass,22/33,67.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-20 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-20 01:45,os-odl_l2-bgpvpn-ha,fuel,3/42,7.0
-2017-03-16 10:23,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-03-17 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 01:45,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 01:45,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-03-17 07:33,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 07:33,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 07:33,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-17 07:33,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-17 08:49,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 08:49,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-17 08:49,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-18 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-18 01:45,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-18 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-19 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-19 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-20 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-20 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-20 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-21 01:45,os-odl-gluon-noha,apex,23/39,59.0
-2017-03-21 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-21 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-21 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-21 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-21 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-21 01:45,os-odl-bgpvpn-ha,apex,22/39,56.0
-2017-03-21 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,apex,27/33,82.0
-2017-03-21 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-21 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-21 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-03-21 01:45,os-nosdn-openo-ha,compass,20/30,67.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-21 01:45,os-odl_l3-nofeature-noha,fuel,11/36,31.0
-2017-03-21 01:45,os-nosdn-nofeature-noha,fuel,12/36,33.0
-2017-03-21 01:45,os-odl_l2-nofeature-noha,fuel,12/39,31.0
-2017-03-21 01:45,os-odl_l2-bgpvpn-ha,fuel,15/42,36.0
-2017-03-21 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-03-21 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-21 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-21 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-22 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-22 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-22 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,apex,22/33,67.0
-2017-03-22 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-22 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-22 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-22 01:45,os-nosdn-kvm-ha,apex,23/33,70.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-22 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-22 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-03-22 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-22 01:45,os-nosdn-ovs-noha,fuel,12/36,33.0
-2017-03-22 01:45,os-odl_l3-nofeature-noha,fuel,11/36,31.0
-2017-03-22 01:45,os-odl_l2-bgpvpn-noha,fuel,12/42,29.0
-2017-03-22 01:45,os-odl_l2-sfc-noha,fuel,2/42,5.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,fuel,19/39,49.0
-2017-03-22 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-03-22 01:45,os-odl_l2-nofeature-noha,fuel,14/39,36.0
-2017-03-22 01:45,os-odl_l2-bgpvpn-ha,fuel,22/42,52.0
-2017-03-22 01:45,os-odl_l2-sfc-ha,fuel,13/45,29.0
-2017-03-22 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-03-22 01:45,os-nosdn-lxd-noha,joid,14/24,58.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-22 01:45,os-nosdn-lxd-ha,joid,2/24,8.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-22 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-23 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-23 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-23 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,apex,21/33,64.0
-2017-03-23 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-23 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-23 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-23 01:45,os-nosdn-kvm-ha,apex,23/33,70.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-03-23 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-23 01:45,os-onos-nofeature-ha,compass,30/33,91.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-23 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,12/36,33.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,2/42,5.0
-2017-03-23 01:45,os-nosdn-kvm-noha,fuel,12/36,33.0
-2017-03-23 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-03-23 01:45,os-odl_l3-nofeature-noha,fuel,22/36,61.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,2/39,5.0
-2017-03-23 01:45,os-odl_l2-bgpvpn-noha,fuel,24/42,57.0
-2017-03-23 01:45,os-odl_l2-sfc-noha,fuel,2/42,5.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,fuel,19/39,49.0
-2017-03-23 01:45,os-nosdn-kvm-ha,fuel,25/39,64.0
-2017-03-23 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-03-23 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-03-23 01:45,os-odl_l2-bgpvpn-ha,fuel,25/42,60.0
-2017-03-23 01:45,os-odl_l2-sfc-ha,fuel,13/45,29.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-23 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-23 01:45,os-nosdn-lxd-noha,joid,20/24,83.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-23 01:45,os-nosdn-lxd-ha,joid,7/24,29.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-23 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-03-24 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-24 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-24 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,apex,21/33,64.0
-2017-03-24 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-24 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-24 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-24 01:45,os-nosdn-kvm-ha,apex,31/33,94.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-03-24 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-24 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-24 01:45,os-nosdn-openo-ha,compass,25/30,83.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-24 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-odl_l3-nofeature-noha,fuel,23/36,64.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-24 01:45,os-odl_l2-bgpvpn-noha,fuel,24/42,57.0
-2017-03-24 01:45,os-odl_l2-sfc-noha,fuel,14/42,33.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,fuel,24/39,62.0
-2017-03-24 01:45,os-nosdn-kvm-ha,fuel,25/39,64.0
-2017-03-24 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-24 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-03-24 01:45,os-odl_l2-bgpvpn-ha,fuel,27/42,64.0
-2017-03-24 01:45,os-odl_l2-sfc-ha,fuel,24/45,53.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-24 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-24 01:45,os-nosdn-lxd-noha,joid,20/24,83.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-24 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-24 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-25 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-25 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-25 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-03-25 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-25 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-25 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-25 01:45,os-nosdn-kvm-ha,apex,31/33,94.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-25 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-25 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-25 01:45,os-nosdn-openo-ha,compass,25/30,83.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-25 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-25 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-25 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-25 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-25 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-25 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-25 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-25 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-03-25 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-25 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-25 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-25 01:45,os-nosdn-lxd-noha,joid,19/24,79.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-25 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-25 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-26 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-26 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-26 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-03-26 01:45,os-odl_l2-fdio-ha,apex,22/36,61.0
-2017-03-26 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-26 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-26 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-03-26 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-26 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-26 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-26 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-26 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-26 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-26 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-26 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-26 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-26 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-26 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-26 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-26 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-26 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-26 01:45,os-nosdn-lxd-noha,joid,19/24,79.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-26 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-03-26 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-27 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-27 01:45,os-odl_l2-fdio-noha,apex,18/36,50.0
-2017-03-27 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-27 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-03-27 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-27 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-27 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-03-27 01:45,os-ocl-nofeature-ha,compass,5/30,17.0
-2017-03-27 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-03-27 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-27 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-27 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-27 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-27 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-27 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-27 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-27 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-27 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-27 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-27 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-27 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-27 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-27 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-27 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 01:45,os-odl-gluon-noha,apex,33/39,85.0
-2017-03-28 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-03-28 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 01:45,os-odl-bgpvpn-ha,apex,24/39,62.0
-2017-03-28 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 01:45,os-ocl-nofeature-ha,compass,5/30,17.0
-2017-03-28 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 01:45,os-odl_l2-sfc-noha,fuel,27/42,64.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 01:45,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:20,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 13:20,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-03-28 13:20,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 13:20,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 13:20,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 13:20,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 13:20,os-odl_l2-fdio-ha,apex,25/36,69.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 13:20,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 13:20,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 13:20,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 13:20,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 13:20,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 13:20,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 13:20,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 13:20,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 13:20,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 13:20,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 13:20,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 13:20,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:20,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 13:20,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 13:56,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 13:56,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-28 13:56,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 13:56,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 13:56,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 13:56,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 13:56,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 13:56,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 13:56,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 13:56,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 13:56,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 13:56,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 13:56,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 13:56,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 13:56,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 13:56,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 13:56,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 13:56,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 13:56,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:56,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 13:56,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 16:16,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 16:16,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-28 16:16,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 16:16,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 16:16,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 16:16,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 16:16,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 16:16,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 16:16,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 16:16,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 16:16,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 16:16,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 16:16,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 16:16,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 16:16,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 16:16,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 16:16,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 16:16,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 16:16,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 16:16,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-28 16:16,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-29 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-29 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-29 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-29 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-29 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-29 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-29 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-29 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-29 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-29 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-29 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-29 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-29 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-03-29 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-29 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-03-29 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-29 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-29 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-29 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-29 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-29 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-29 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-03-30 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-03-30 01:45,os-odl-gluon-noha,apex,31/36,86.0
-2017-03-30 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-30 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-30 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-30 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-30 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-30 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-03-30 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-30 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-30 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-30 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-30 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-30 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-30 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-03-30 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-30 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-30 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-30 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-30 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-30 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-30 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-30 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-30 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-03-31 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-03-31 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-31 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-31 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-03-31 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-03-31 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-31 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-31 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-03-31 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-03-31 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-03-31 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-03-31 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-31 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-31 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-31 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,fuel,31/39,79.0
-2017-03-31 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-31 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-31 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-03-31 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-03-31 01:45,os-odl_l2-bgpvpn-noha,fuel,37/42,88.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-31 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-31 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-31 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-31 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-31 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-
diff --git a/docs/results/danube/1.0/validated_scenario_history.txt b/docs/results/danube/1.0/validated_scenario_history.txt
deleted file mode 100644
index e867e372..00000000
--- a/docs/results/danube/1.0/validated_scenario_history.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-2017-03-19 02:03;compass;os-nosdn-nofeature-ha
-2017-03-20 02:04;compass;os-nosdn-nofeature-ha
-2017-03-21 02:03;compass;os-nosdn-nofeature-ha
-2017-03-22 02:01;apex;os-nosdn-nofeature-ha
-2017-03-23 02:14;joid;os-nosdn-nofeature-noha
-2017-03-24 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-24 02:11;fuel;os-nosdn-ovs-ha
-2017-03-25 02:06;fuel;os-nosdn-ovs-noha
-2017-03-25 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-25 02:11;fuel;os-nosdn-ovs-ha
-2017-03-26 02:06;fuel;os-nosdn-ovs-noha
-2017-03-26 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-26 02:11;fuel;os-nosdn-ovs-ha
-2017-03-27 02:06;fuel;os-nosdn-ovs-noha
-2017-03-27 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-27 02:11;fuel;os-nosdn-ovs-ha
-2017-03-28 02:04;compass;os-nosdn-openo-ha
-2017-03-28 02:04;compass;os-nosdn-nofeature-ha
-2017-03-28 02:04;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 02:05;fuel;os-nosdn-kvm-noha
-2017-03-28 02:06;fuel;os-nosdn-ovs-noha
-2017-03-28 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-28 13:40;compass;os-nosdn-openo-ha
-2017-03-28 13:41;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 13:42;fuel;os-nosdn-kvm-noha
-2017-03-28 13:42;fuel;os-nosdn-ovs-noha
-2017-03-28 13:45;fuel;os-nosdn-nofeature-noha
-2017-03-28 13:48;fuel;os-odl_l2-nofeature-ha
-2017-03-28 14:15;compass;os-nosdn-openo-ha
-2017-03-28 14:16;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 14:17;fuel;os-nosdn-kvm-noha
-2017-03-28 14:18;fuel;os-nosdn-ovs-noha
-2017-03-28 14:21;fuel;os-nosdn-nofeature-noha
-2017-03-28 14:23;fuel;os-odl_l2-nofeature-ha
-2017-03-28 16:33;apex;os-nosdn-nofeature-ha
-2017-03-28 16:36;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 16:37;fuel;os-nosdn-kvm-noha
-2017-03-28 16:38;fuel;os-nosdn-ovs-noha
-2017-03-28 16:41;fuel;os-nosdn-nofeature-noha
-2017-03-28 16:43;fuel;os-odl_l2-nofeature-ha
-2017-03-29 02:02;apex;os-nosdn-nofeature-ha
-2017-03-29 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-29 02:05;fuel;os-nosdn-kvm-noha
-2017-03-29 02:06;fuel;os-nosdn-ovs-noha
-2017-03-29 02:06;fuel;os-nosdn-nofeature-noha
-2017-03-29 02:11;fuel;os-odl_l2-nofeature-ha
-2017-03-30 02:02;apex;os-nosdn-nofeature-ha
-2017-03-30 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-30 02:06;fuel;os-nosdn-kvm-noha
-2017-03-30 02:06;fuel;os-nosdn-ovs-noha
-2017-03-30 02:07;fuel;os-nosdn-nofeature-noha
-2017-03-30 02:11;fuel;os-odl_l2-nofeature-ha
-2017-03-31 02:04;apex;os-nosdn-nofeature-ha
-2017-03-31 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-31 02:08;fuel;os-nosdn-kvm-noha
-2017-03-31 02:09;fuel;os-nosdn-ovs-noha
-2017-03-31 02:11;fuel;os-nosdn-nofeature-noha
-2017-03-31 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-03-31 02:14;fuel;os-odl_l2-nofeature-ha
-
diff --git a/docs/results/danube/2.0/apex.html b/docs/results/danube/2.0/apex.html
deleted file mode 100644
index 4460087e..00000000
--- a/docs/results/danube/2.0/apex.html
+++ /dev/null
@@ -1,1057 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');var gaugeScenario13 = gauge('#gaugeScenario13');var gaugeScenario14 = gauge('#gaugeScenario14');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(93.3333333333);gaugeScenario2.update(50.0);gaugeScenario3.update(27.2727272727);gaugeScenario4.update(77.7777777778);gaugeScenario5.update(18.1818181818);gaugeScenario6.update(44.4444444444);gaugeScenario7.update(90.9090909091);gaugeScenario8.update(76.6666666667);gaugeScenario9.update(20.0);gaugeScenario10.update(69.696969697);gaugeScenario11.update(18.1818181818);gaugeScenario12.update(80.5555555556);gaugeScenario13.update(90.9090909091);gaugeScenario14.update(76.6666666667);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-fdio-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-odl-gluon-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-odl-gluon-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-ovn-nofeature-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-ovn-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl_l2-fdio-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-odl_l3-ovs-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-ovs-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-odl-bgpvpn-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-odl-bgpvpn-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-odl_l3-fdio-noha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-nosdn-fdio-ha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-odl_l2-fdio-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend13 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend13.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg13",trend13)
- // ****************************************// for scenario os-odl_l3-fdio-ha
- // Filter results
- var trend14 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend14.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg14",trend14)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube, 2017-05-05 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>apex</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-nosdn-fdio-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>28/30</td>
- <td>10</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/225/console>os-odl-gluon-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>18/36</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/221/console>os-ovn-nofeature-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>9/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/226/console>os-odl_l2-fdio-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>28/36</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/220/console>os-odl_l3-ovs-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>6/33</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/224/console>os-odl-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>16/36</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/228/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>30/33</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/217/console>os-odl_l3-fdio-noha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>23/30</td>
- <td>13</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/230/console>os-nosdn-fdio-ha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>6/30</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/211/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>23/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/231/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>6/33</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/227/console>os-odl_l2-fdio-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>29/36</td>
- <td>20</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/222/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario13"></div></td>
- <td><div id="trend_svg13"></div></td>
- <td>30/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-apex-daily-danube-daily-danube/229/console>os-odl_l3-fdio-ha</a></td>
- <td><div id="gaugeScenario14"></div></td>
- <td><div id="trend_svg14"></div></td>
- <td>23/30</td>
- <td>6</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-gluon-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th><th>
- Netready
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ovn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-apex.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_apex.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/2.0/compass.html b/docs/results/danube/2.0/compass.html
deleted file mode 100644
index cde66359..00000000
--- a/docs/results/danube/2.0/compass.html
+++ /dev/null
@@ -1,493 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(83.3333333333);gaugeScenario2.update(10.0);gaugeScenario3.update(84.8484848485);gaugeScenario4.update(84.8484848485);gaugeScenario5.update(96.6666666667);gaugeScenario6.update(96.6666666667);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-ocl-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-ocl-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-onos-nofeature-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-onos-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-openo-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-openo-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube, 2017-05-05 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>compass</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/217/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>25/30</td>
- <td>18</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/222/console>os-ocl-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>3/30</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/213/console>os-onos-nofeature-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>28/33</td>
- <td>16</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/218/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>28/33</td>
- <td>18</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/212/console>os-nosdn-openo-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>29/30</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/224/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>29/30</td>
- <td>18</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ocl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-onos-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ONOS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-openo-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-compass.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_compass.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/2.0/fuel.html b/docs/results/danube/2.0/fuel.html
deleted file mode 100644
index 0ee69d3b..00000000
--- a/docs/results/danube/2.0/fuel.html
+++ /dev/null
@@ -1,1447 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');var gaugeScenario13 = gauge('#gaugeScenario13');var gaugeScenario14 = gauge('#gaugeScenario14');var gaugeScenario15 = gauge('#gaugeScenario15');var gaugeScenario16 = gauge('#gaugeScenario16');var gaugeScenario17 = gauge('#gaugeScenario17');var gaugeScenario18 = gauge('#gaugeScenario18');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(100.0);gaugeScenario2.update(28.5714285714);gaugeScenario3.update(100.0);gaugeScenario4.update(100.0);gaugeScenario5.update(15.3846153846);gaugeScenario6.update(95.2380952381);gaugeScenario7.update(94.8717948718);gaugeScenario8.update(100.0);gaugeScenario9.update(100.0);gaugeScenario10.update(97.4358974359);gaugeScenario11.update(92.8571428571);gaugeScenario12.update(100.0);gaugeScenario13.update(97.4358974359);gaugeScenario14.update(100.0);gaugeScenario15.update(95.2380952381);gaugeScenario16.update(100.0);gaugeScenario17.update(100.0);gaugeScenario18.update(100.0);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-kvm_ovs_dpdk-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk_bar-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk_bar-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-ovs-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-odl_l2-sfc-noha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-sfc-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-nosdn-kvm-noha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-odl_l3-nofeature-noha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-odl_l2-nofeature-noha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-odl_l2-bgpvpn-ha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-bgpvpn-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-odl_l2-sfc-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-sfc-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk_bar-noha
- // Filter results
- var trend13 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk_bar-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend13.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg13",trend13)
- // ****************************************// for scenario os-odl_l2-bgpvpn-noha
- // Filter results
- var trend14 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-bgpvpn-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend14.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg14",trend14)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend15 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend15.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg15",trend15)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend16 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend16.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg16",trend16)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend17 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend17.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg17",trend17)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend18 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend18.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg18",trend18)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube, 2017-05-05 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>fuel</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/368/console>os-nosdn-kvm_ovs_dpdk-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>36/36</td>
- <td>10</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/348/console>os-nosdn-kvm_ovs_dpdk_bar-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>12/42</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/345/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>39/39</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/365/console>os-nosdn-ovs-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>36/36</td>
- <td>10</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/341/console>os-nosdn-kvm_ovs_dpdk-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>6/39</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/362/console>os-odl_l2-sfc-noha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>40/42</td>
- <td>10</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/347/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>37/39</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/364/console>os-nosdn-kvm-noha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>36/36</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/369/console>os-odl_l3-nofeature-noha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>36/36</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/367/console>os-odl_l2-nofeature-noha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>38/39</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/342/console>os-odl_l2-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>39/42</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/340/console>os-odl_l2-sfc-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>45/45</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/370/console>os-nosdn-kvm_ovs_dpdk_bar-noha</a></td>
- <td><div id="gaugeScenario13"></div></td>
- <td><div id="trend_svg13"></div></td>
- <td>38/39</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/363/console>os-odl_l2-bgpvpn-noha</a></td>
- <td><div id="gaugeScenario14"></div></td>
- <td><div id="trend_svg14"></div></td>
- <td>42/42</td>
- <td>10</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/346/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario15"></div></td>
- <td><div id="trend_svg15"></div></td>
- <td>40/42</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/366/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario16"></div></td>
- <td><div id="trend_svg16"></div></td>
- <td>36/36</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-zte-pod3-daily-danube/55/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario17"></div></td>
- <td><div id="trend_svg17"></div></td>
- <td>39/39</td>
- <td>16</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/344/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario18"></div></td>
- <td><div id="trend_svg18"></div></td>
- <td>39/39</td>
- <td>15</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk_bar-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th><th>
- Barometer
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-sfc-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- SFC
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-sfc-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- SFC
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk_bar-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th><th>
- Barometer
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-bgpvpn-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-fuel.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_fuel.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/2.0/joid.html b/docs/results/danube/2.0/joid.html
deleted file mode 100644
index e2231747..00000000
--- a/docs/results/danube/2.0/joid.html
+++ /dev/null
@@ -1,421 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(75.0);gaugeScenario2.update(96.9696969697);gaugeScenario3.update(25.0);gaugeScenario4.update(96.9696969697);gaugeScenario5.update(70.8333333333);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-lxd-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-lxd-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube, 2017-05-05 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>joid</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (danube) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/167/console>os-nosdn-lxd-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>18/24</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/171/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>32/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/170/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>9/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/169/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>32/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/172/console>os-nosdn-lxd-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>17/24</td>
- <td>8</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-joid.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_joid.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/2.0/scenario_history.txt b/docs/results/danube/2.0/scenario_history.txt
deleted file mode 100644
index c4ca6aad..00000000
--- a/docs/results/danube/2.0/scenario_history.txt
+++ /dev/null
@@ -1,1454 +0,0 @@
-date,scenario,installer,detail,score
-2017-03-13 10:00,os-odl_l2-fdio-noha,apex,5/33,15.0
-2017-03-13 10:00,os-odl_l2-fdio-ha,apex,1/33,3.0
-2017-03-14 01:45,os-odl_l2-fdio-noha,apex,12/33,36.0
-2017-03-14 01:45,os-odl_l2-fdio-ha,apex,1/33,3.0
-2017-03-15 01:45,os-odl_l2-fdio-noha,apex,29/33,88.0
-2017-03-15 01:45,os-odl_l2-fdio-ha,apex,4/33,12.0
-2017-03-16 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-03-16 01:45,os-odl_l2-fdio-ha,apex,13/36,36.0
-2017-03-16 10:23,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-16 10:23,os-odl_l2-fdio-ha,apex,13/36,36.0
-2017-03-17 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-17 07:33,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 07:33,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-17 08:49,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,apex,9/33,27.0
-2017-03-17 08:49,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-18 01:45,os-odl-gluon-noha,apex,12/39,31.0
-2017-03-18 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-18 01:45,os-odl_l3-fdio-noha,apex,15/30,50.0
-2017-03-18 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-03-18 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-18 01:45,os-odl-bgpvpn-ha,apex,11/39,28.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,apex,11/33,33.0
-2017-03-19 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-19 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-19 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-19 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-19 01:45,os-nosdn-kvm-ha,apex,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-19 01:45,os-odl-gluon-noha,apex,22/39,56.0
-2017-03-19 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-19 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-19 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-19 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-19 01:45,os-nosdn-kvm-ha,apex,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-20 01:45,os-odl-gluon-noha,apex,23/39,59.0
-2017-03-20 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-20 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-20 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-20 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-20 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-03-20 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-20 01:45,os-nosdn-kvm-ha,apex,12/33,36.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-17 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-17 07:33,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-17 07:33,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-17 08:49,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-18 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-18 01:45,os-odl_l2-nofeature-ha,compass,20/33,61.0
-2017-03-18 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-18 01:45,os-odl_l3-nofeature-ha,compass,16/30,53.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-03-19 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-19 01:45,os-onos-nofeature-ha,compass,11/33,33.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-03-19 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-20 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-20 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-20 01:45,os-onos-nofeature-ha,compass,22/33,67.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-20 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-20 01:45,os-odl_l2-bgpvpn-ha,fuel,3/42,7.0
-2017-03-16 10:23,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-03-17 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 01:45,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 01:45,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-03-17 07:33,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 07:33,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 07:33,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-17 07:33,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-17 08:49,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 08:49,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-17 08:49,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-18 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-18 01:45,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-18 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-19 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-19 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-20 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-20 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-20 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-21 01:45,os-odl-gluon-noha,apex,23/39,59.0
-2017-03-21 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-21 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-21 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-21 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-21 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-21 01:45,os-odl-bgpvpn-ha,apex,22/39,56.0
-2017-03-21 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,apex,27/33,82.0
-2017-03-21 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-21 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-21 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-03-21 01:45,os-nosdn-openo-ha,compass,20/30,67.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-21 01:45,os-odl_l3-nofeature-noha,fuel,11/36,31.0
-2017-03-21 01:45,os-nosdn-nofeature-noha,fuel,12/36,33.0
-2017-03-21 01:45,os-odl_l2-nofeature-noha,fuel,12/39,31.0
-2017-03-21 01:45,os-odl_l2-bgpvpn-ha,fuel,15/42,36.0
-2017-03-21 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-03-21 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-21 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-21 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-
-2017-03-22 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-22 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-22 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,apex,22/33,67.0
-2017-03-22 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-22 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-22 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-22 01:45,os-nosdn-kvm-ha,apex,23/33,70.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-22 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-22 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-03-22 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-22 01:45,os-nosdn-ovs-noha,fuel,12/36,33.0
-2017-03-22 01:45,os-odl_l3-nofeature-noha,fuel,11/36,31.0
-2017-03-22 01:45,os-odl_l2-bgpvpn-noha,fuel,12/42,29.0
-2017-03-22 01:45,os-odl_l2-sfc-noha,fuel,2/42,5.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,fuel,19/39,49.0
-2017-03-22 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-03-22 01:45,os-odl_l2-nofeature-noha,fuel,14/39,36.0
-2017-03-22 01:45,os-odl_l2-bgpvpn-ha,fuel,22/42,52.0
-2017-03-22 01:45,os-odl_l2-sfc-ha,fuel,13/45,29.0
-2017-03-22 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-03-22 01:45,os-nosdn-lxd-noha,joid,14/24,58.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-22 01:45,os-nosdn-lxd-ha,joid,2/24,8.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-22 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-23 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-23 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-23 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,apex,21/33,64.0
-2017-03-23 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-23 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-23 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-23 01:45,os-nosdn-kvm-ha,apex,23/33,70.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-03-23 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-23 01:45,os-onos-nofeature-ha,compass,30/33,91.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-23 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,12/36,33.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,2/42,5.0
-2017-03-23 01:45,os-nosdn-kvm-noha,fuel,12/36,33.0
-2017-03-23 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-03-23 01:45,os-odl_l3-nofeature-noha,fuel,22/36,61.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,2/39,5.0
-2017-03-23 01:45,os-odl_l2-bgpvpn-noha,fuel,24/42,57.0
-2017-03-23 01:45,os-odl_l2-sfc-noha,fuel,2/42,5.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,fuel,19/39,49.0
-2017-03-23 01:45,os-nosdn-kvm-ha,fuel,25/39,64.0
-2017-03-23 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-03-23 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-03-23 01:45,os-odl_l2-bgpvpn-ha,fuel,25/42,60.0
-2017-03-23 01:45,os-odl_l2-sfc-ha,fuel,13/45,29.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-23 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-23 01:45,os-nosdn-lxd-noha,joid,20/24,83.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-23 01:45,os-nosdn-lxd-ha,joid,7/24,29.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-23 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-03-24 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-24 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-24 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,apex,21/33,64.0
-2017-03-24 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-24 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-24 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-24 01:45,os-nosdn-kvm-ha,apex,31/33,94.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-03-24 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-24 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-24 01:45,os-nosdn-openo-ha,compass,25/30,83.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-24 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-odl_l3-nofeature-noha,fuel,23/36,64.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-24 01:45,os-odl_l2-bgpvpn-noha,fuel,24/42,57.0
-2017-03-24 01:45,os-odl_l2-sfc-noha,fuel,14/42,33.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,fuel,24/39,62.0
-2017-03-24 01:45,os-nosdn-kvm-ha,fuel,25/39,64.0
-2017-03-24 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-24 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-03-24 01:45,os-odl_l2-bgpvpn-ha,fuel,27/42,64.0
-2017-03-24 01:45,os-odl_l2-sfc-ha,fuel,24/45,53.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-24 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-24 01:45,os-nosdn-lxd-noha,joid,20/24,83.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-24 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-24 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-25 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-25 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-25 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-03-25 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-25 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-25 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-25 01:45,os-nosdn-kvm-ha,apex,31/33,94.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-25 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-25 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-25 01:45,os-nosdn-openo-ha,compass,25/30,83.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-25 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-25 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-25 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-25 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-25 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-25 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-25 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-25 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-03-25 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-25 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-25 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-25 01:45,os-nosdn-lxd-noha,joid,19/24,79.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-25 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-25 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-26 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-26 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-26 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-03-26 01:45,os-odl_l2-fdio-ha,apex,22/36,61.0
-2017-03-26 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-26 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-26 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-03-26 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-26 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-26 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-26 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-26 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-26 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-26 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-26 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-26 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-26 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-26 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-26 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-26 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-26 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-26 01:45,os-nosdn-lxd-noha,joid,19/24,79.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-26 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-03-26 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-27 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-27 01:45,os-odl_l2-fdio-noha,apex,18/36,50.0
-2017-03-27 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-27 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-03-27 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-27 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-27 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-03-27 01:45,os-ocl-nofeature-ha,compass,5/30,17.0
-2017-03-27 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-03-27 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-27 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-27 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-27 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-27 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-27 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-27 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-27 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-27 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-27 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-27 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-27 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-27 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-27 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-27 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 01:45,os-odl-gluon-noha,apex,33/39,85.0
-2017-03-28 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-03-28 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 01:45,os-odl-bgpvpn-ha,apex,24/39,62.0
-2017-03-28 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 01:45,os-ocl-nofeature-ha,compass,5/30,17.0
-2017-03-28 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 01:45,os-odl_l2-sfc-noha,fuel,27/42,64.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 01:45,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:20,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 13:20,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-03-28 13:20,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 13:20,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 13:20,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 13:20,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 13:20,os-odl_l2-fdio-ha,apex,25/36,69.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 13:20,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 13:20,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 13:20,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 13:20,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 13:20,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 13:20,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 13:20,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 13:20,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 13:20,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 13:20,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 13:20,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 13:20,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:20,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 13:20,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 13:56,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 13:56,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-28 13:56,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 13:56,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 13:56,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 13:56,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 13:56,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 13:56,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 13:56,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 13:56,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 13:56,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 13:56,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 13:56,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 13:56,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 13:56,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 13:56,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 13:56,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 13:56,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 13:56,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:56,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 13:56,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 16:16,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 16:16,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-28 16:16,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 16:16,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 16:16,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 16:16,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 16:16,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 16:16,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 16:16,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 16:16,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 16:16,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 16:16,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 16:16,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 16:16,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 16:16,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 16:16,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 16:16,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 16:16,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 16:16,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 16:16,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-28 16:16,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-29 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-29 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-29 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-29 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-29 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-29 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-29 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-29 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-29 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-29 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-29 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-29 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-29 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-03-29 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-29 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-03-29 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-29 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-29 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-29 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-29 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-29 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-29 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-03-30 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-03-30 01:45,os-odl-gluon-noha,apex,31/36,86.0
-2017-03-30 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-30 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-30 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-30 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-30 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-30 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-03-30 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-30 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-30 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-30 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-30 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-30 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-30 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-03-30 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-30 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-30 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-30 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-30 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-30 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-30 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-30 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-30 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-03-31 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-03-31 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-31 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-31 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-03-31 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-03-31 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-31 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-31 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-03-31 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-03-31 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-03-31 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-03-31 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-31 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-31 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-31 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,fuel,31/39,79.0
-2017-03-31 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-31 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-31 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-03-31 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-03-31 01:45,os-odl_l2-bgpvpn-noha,fuel,37/42,88.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-31 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-31 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-31 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-31 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-31 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-01 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-01 01:45,os-odl-gluon-noha,apex,24/36,67.0
-2017-04-01 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-01 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-04-01 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-04-01 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-01 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-01 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-01 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-01 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-04-01 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-01 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-01 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-01 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-01 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-04-01 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-01 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-01 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-01 01:45,os-odl_l3-nofeature-ha,fuel,32/39,82.0
-2017-04-01 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-01 01:45,os-odl_l2-nofeature-ha,fuel,39/42,93.0
-2017-04-01 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-04-01 01:45,os-odl_l2-bgpvpn-ha,fuel,34/42,81.0
-2017-04-01 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-01 01:45,os-odl_l2-bgpvpn-noha,fuel,38/42,90.0
-2017-04-01 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-04-01 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-01 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-01 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-01 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-01 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-04-02 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-02 01:45,os-odl-gluon-noha,apex,24/36,67.0
-2017-04-02 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-02 01:45,os-odl_l3-fdio-noha,apex,13/30,43.0
-2017-04-02 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-02 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-02 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-02 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-04-02 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-02 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-04-02 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-02 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-02 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-02 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-02 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-04-02 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-02 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-02 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-02 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-02 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-02 01:45,os-odl_l3-nofeature-ha,fuel,32/39,82.0
-2017-04-02 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-02 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-02 01:45,os-odl_l2-bgpvpn-ha,fuel,34/42,81.0
-2017-04-02 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-odl_l2-bgpvpn-noha,fuel,38/42,90.0
-2017-04-02 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-02 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-02 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-04-02 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-02 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-02 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-03 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-03 01:45,os-odl-gluon-noha,apex,29/36,81.0
-2017-04-03 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-03 01:45,os-odl_l3-fdio-noha,apex,13/30,43.0
-2017-04-03 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-04-03 01:45,os-odl_l2-fdio-ha,apex,26/36,72.0
-2017-04-03 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-03 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-03 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-03 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-03 01:45,os-nosdn-kvm-ha,apex,33/33,100.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-03 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-04-03 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-03 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-03 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-04-03 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-03 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-03 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-03 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-03 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-03 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-03 01:45,os-odl_l3-nofeature-ha,fuel,32/39,82.0
-2017-04-03 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-03 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-03 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-04-03 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-03 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-03 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-03 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-03 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-03 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-04-04 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-04 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-04-04 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-04-04 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-04 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-04 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-04-04 01:45,os-nosdn-kvm-ha,apex,33/33,100.0
-2017-04-04 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-04 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-04-04 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-04 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-04 01:45,os-odl_l2-fdio-ha,apex,26/36,72.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-04 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-04 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-04 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-04 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-04-04 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-04 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-04 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-04 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-04 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-04 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-04 01:45,os-nosdn-kvm-ha,fuel,36/39,92.0
-2017-04-04 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-04 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-04 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-04 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-04 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-04 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-04 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-04 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-04 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-04 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-04 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-04-05 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-05 01:45,os-odl-gluon-noha,apex,29/36,81.0
-2017-04-05 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-05 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-05 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-05 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-05 01:45,os-nosdn-kvm-ha,apex,33/33,100.0
-2017-04-05 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-05 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-04-05 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-05 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-05 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-05 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-05 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-05 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-05 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-04-05 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-05 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-05 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-05 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-05 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-05 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-05 01:45,os-nosdn-kvm-ha,fuel,36/39,92.0
-2017-04-05 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-05 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-05 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-05 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-05 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-05 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-05 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-05 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-05 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-05 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-05 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-06 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-06 01:45,os-odl-gluon-noha,apex,29/36,81.0
-2017-04-06 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-06 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-06 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-06 01:45,os-odl-bgpvpn-ha,apex,27/36,75.0
-2017-04-06 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-04-06 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-06 01:45,os-odl_l3-nofeature-ha,apex,25/33,76.0
-2017-04-06 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-06 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-06 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-06 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-06 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-06 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-06 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-06 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-06 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-06 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-06 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-06 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-06 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-06 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-06 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-06 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-06 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-06 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-06 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-06 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-06 01:45,os-odl_l3-nofeature-noha,fuel,32/36,89.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-04-06 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-06 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-06 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-06 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-07 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-07 01:45,os-odl-gluon-noha,apex,27/36,75.0
-2017-04-07 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-07 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-07 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-07 01:45,os-odl-bgpvpn-ha,apex,27/36,75.0
-2017-04-07 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-04-07 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-07 01:45,os-odl_l3-nofeature-ha,apex,25/33,76.0
-2017-04-07 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-07 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-04-07 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-07 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-04-07 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-07 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-07 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-07 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-07 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-07 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-07 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-07 01:45,os-odl_l2-nofeature-noha,fuel,33/39,85.0
-2017-04-07 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-07 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-07 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-07 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-07 01:45,os-odl_l3-nofeature-noha,fuel,32/36,89.0
-2017-04-07 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-04-07 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-07 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-07 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-07 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-07 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-07 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-07 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-08 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-08 01:45,os-odl-gluon-noha,apex,27/36,75.0
-2017-04-08 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-08 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-08 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-08 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-08 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-08 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-08 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-08 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-08 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-04-08 01:45,os-odl_l2-fdio-ha,apex,27/36,75.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-08 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-04-08 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-08 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-08 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-08 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-08 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-08 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-08 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-08 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-08 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-08 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-08 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-08 01:45,os-odl_l2-nofeature-noha,fuel,33/39,85.0
-2017-04-08 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-08 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-08 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-08 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-08 01:45,os-odl_l3-nofeature-noha,fuel,32/36,89.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-04-08 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-08 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-08 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-08 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-09 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-09 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-09 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-09 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-09 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-09 01:45,os-odl_l2-fdio-ha,apex,27/36,75.0
-2017-04-09 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-09 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-09 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-09 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-09 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-09 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-09 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-09 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-04-09 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-09 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-04-09 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-09 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-09 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-09 01:45,os-odl_l2-nofeature-noha,fuel,33/39,85.0
-2017-04-09 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-09 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-09 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-04-09 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-09 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-09 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-09 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-09 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-09 01:45,os-odl_l2-nofeature-ha,fuel,39/42,93.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-09 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-09 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-09 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-04-09 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-10 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-10 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-10 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-10 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-10 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-10 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-04-10 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-10 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-10 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-10 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-10 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-04-10 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-10 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-10 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-10 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-04-10 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-04-10 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-10 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-10 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-10 01:45,os-odl_l2-sfc-noha,fuel,32/42,76.0
-2017-04-10 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-10 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-04-10 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-10 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-10 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-10 01:45,os-odl_l2-nofeature-ha,fuel,39/42,93.0
-2017-04-10 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-04-10 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-10 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-10 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-04-10 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-11 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-11 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-11 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-11 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-11 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-11 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-04-11 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-11 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-11 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-11 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-11 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-04-11 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-04-11 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-11 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-11 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-04-11 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-11 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-11 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-11 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-11 01:45,os-odl_l2-sfc-noha,fuel,32/42,76.0
-2017-04-11 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-11 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-11 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-11 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-11 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-11 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-11 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-04-11 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-04-11 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-11 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-04-11 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-12 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-12 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-12 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-12 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-12 01:45,os-odl_l3-nofeature-ha,apex,17/33,52.0
-2017-04-12 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-12 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-12 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-12 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-12 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-12 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,apex,21/33,64.0
-2017-04-12 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-04-12 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-12 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-12 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-12 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-12 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-12 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-12 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-12 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-12 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-04-12 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-12 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-12 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-12 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-12 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-12 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-12 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-12 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-04-12 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-12 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-04-12 01:45,os-odl_l2-nofeature-ha,joid,1/36,3.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,joid,12/33,36.0
-2017-04-12 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-04-28 20:23,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-04-28 20:23,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-28 20:23,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-04-28 20:23,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-04-28 20:23,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-04-28 20:23,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-04-28 20:23,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-28 20:23,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-28 20:23,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-28 20:23,os-odl_l2-fdio-ha,apex,26/36,72.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-04-28 20:23,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-04-28 20:23,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-28 20:23,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-28 20:23,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-28 20:23,os-nosdn-openo-ha,compass,30/30,100.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-28 20:23,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-28 20:23,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-04-28 20:23,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-28 20:23,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-04-28 20:23,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-04-28 20:23,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-28 20:23,os-odl_l2-nofeature-noha,fuel,34/39,87.0
-2017-04-28 20:23,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-28 20:23,os-odl_l2-sfc-ha,fuel,41/45,91.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-28 20:23,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-28 20:23,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-04-28 20:23,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-28 20:23,os-nosdn-lxd-noha,joid,11/24,46.0
-2017-04-28 20:23,os-odl_l2-nofeature-ha,joid,8/36,22.0
-2017-04-28 20:23,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,joid,29/33,88.0
-2017-04-28 20:23,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-29 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-04-29 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-29 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-04-29 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-04-29 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-04-29 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-04-29 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-29 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-29 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-29 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-04-29 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-04-29 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-29 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-29 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-29 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-29 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-29 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-29 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-29 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-29 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-04-29 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-04-29 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-odl_l2-nofeature-noha,fuel,34/39,87.0
-2017-04-29 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-29 01:45,os-odl_l2-sfc-ha,fuel,41/45,91.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-04-29 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-04-29 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-29 01:45,os-nosdn-lxd-noha,joid,11/24,46.0
-2017-04-29 01:45,os-odl_l2-nofeature-ha,joid,8/36,22.0
-2017-04-29 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,joid,29/33,88.0
-2017-04-29 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-30 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-04-30 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-30 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-04-30 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-04-30 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-04-30 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-04-30 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-30 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-30 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-30 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-04-30 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-30 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-30 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-30 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-30 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-30 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-30 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-30 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-30 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-30 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-04-30 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-04-30 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-30 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-30 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-04-30 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-04-30 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-04-30 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-30 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-04-30 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-04-30 01:45,os-odl_l2-nofeature-ha,joid,8/36,22.0
-2017-05-01 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-01 01:45,os-odl-gluon-noha,apex,9/36,25.0
-2017-05-01 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-05-01 01:45,os-odl-bgpvpn-ha,apex,8/36,22.0
-2017-05-01 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-01 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-01 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-01 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-01 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-01 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-01 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-01 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-05-01 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-01 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-01 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-01 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-01 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-01 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-01 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-01 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-01 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-05-01 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-01 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-05-01 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-05-01 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-05-01 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-05-01 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-01 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-01 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-01 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-01 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-05-01 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-01 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,joid,17/33,52.0
-2017-05-01 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-02 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-02 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-02 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-02 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-02 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-02 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-02 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-02 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-02 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-02 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-02 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-02 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-02 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-02 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-02 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-02 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-02 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-02 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-02 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-02 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-02 01:45,os-odl_l2-sfc-noha,fuel,38/42,90.0
-2017-05-02 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-02 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-02 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-02 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-05-02 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-02 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-02 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-02 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-05-02 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-02 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-02 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,joid,18/33,55.0
-2017-05-02 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-03 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-03 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-03 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-03 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-03 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-05-03 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-03 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-03 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-03 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-03 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-03 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-03 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-03 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-03 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-03 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-03 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-03 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-03 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-03 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-03 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-05-03 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-03 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-03 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-03 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-05-03 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-03 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-03 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-03 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-05-03 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-03 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-03 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-03 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-05-03 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-04 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-04 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-04 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-04 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-04 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-05-04 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-04 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-04 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-04 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-04 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-04 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-04 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-04 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-04 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-04 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-04 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-04 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-05-04 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-04 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-04 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-04 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-05-04 01:45,os-odl_l3-nofeature-ha,fuel,38/39,97.0
-2017-05-04 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-04 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-05-04 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-04 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-05-04 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-04 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-05-04 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-05-04 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-04 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-04 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,joid,29/33,88.0
-2017-05-04 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-05 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-05 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-05 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-05 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-05 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-05 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-05 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-05 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-05 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-05 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-05 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-05 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-05 01:45,os-odl_l3-fdio-ha,apex,23/30,77.0
-2017-05-05 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-05 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-05 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-05 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-05 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,12/42,29.0
-2017-05-05 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-05 01:45,os-odl_l2-sfc-noha,fuel,40/42,95.0
-2017-05-05 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-05 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-05 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-05 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-05 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-05-05 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-05 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-05 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-05 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-05 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-05-05 01:45,os-nosdn-lxd-ha,joid,17/24,71.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-05 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
diff --git a/docs/results/danube/2.0/validated_scenario_history.txt b/docs/results/danube/2.0/validated_scenario_history.txt
deleted file mode 100644
index 15ec001e..00000000
--- a/docs/results/danube/2.0/validated_scenario_history.txt
+++ /dev/null
@@ -1,212 +0,0 @@
-2017-03-19 02:03;compass;os-nosdn-nofeature-ha
-2017-03-20 02:04;compass;os-nosdn-nofeature-ha
-2017-03-21 02:03;compass;os-nosdn-nofeature-ha
-2017-03-22 02:01;apex;os-nosdn-nofeature-ha
-2017-03-23 02:14;joid;os-nosdn-nofeature-noha
-2017-03-24 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-24 02:11;fuel;os-nosdn-ovs-ha
-2017-03-25 02:06;fuel;os-nosdn-ovs-noha
-2017-03-25 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-25 02:11;fuel;os-nosdn-ovs-ha
-2017-03-26 02:06;fuel;os-nosdn-ovs-noha
-2017-03-26 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-26 02:11;fuel;os-nosdn-ovs-ha
-2017-03-27 02:06;fuel;os-nosdn-ovs-noha
-2017-03-27 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-27 02:11;fuel;os-nosdn-ovs-ha
-2017-03-28 02:04;compass;os-nosdn-openo-ha
-2017-03-28 02:04;compass;os-nosdn-nofeature-ha
-2017-03-28 02:04;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 02:05;fuel;os-nosdn-kvm-noha
-2017-03-28 02:06;fuel;os-nosdn-ovs-noha
-2017-03-28 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-28 13:40;compass;os-nosdn-openo-ha
-2017-03-28 13:41;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 13:42;fuel;os-nosdn-kvm-noha
-2017-03-28 13:42;fuel;os-nosdn-ovs-noha
-2017-03-28 13:45;fuel;os-nosdn-nofeature-noha
-2017-03-28 13:48;fuel;os-odl_l2-nofeature-ha
-2017-03-28 14:15;compass;os-nosdn-openo-ha
-2017-03-28 14:16;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 14:17;fuel;os-nosdn-kvm-noha
-2017-03-28 14:18;fuel;os-nosdn-ovs-noha
-2017-03-28 14:21;fuel;os-nosdn-nofeature-noha
-2017-03-28 14:23;fuel;os-odl_l2-nofeature-ha
-2017-03-28 16:33;apex;os-nosdn-nofeature-ha
-2017-03-28 16:36;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 16:37;fuel;os-nosdn-kvm-noha
-2017-03-28 16:38;fuel;os-nosdn-ovs-noha
-2017-03-28 16:41;fuel;os-nosdn-nofeature-noha
-2017-03-28 16:43;fuel;os-odl_l2-nofeature-ha
-2017-03-29 02:02;apex;os-nosdn-nofeature-ha
-2017-03-29 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-29 02:05;fuel;os-nosdn-kvm-noha
-2017-03-29 02:06;fuel;os-nosdn-ovs-noha
-2017-03-29 02:06;fuel;os-nosdn-nofeature-noha
-2017-03-29 02:11;fuel;os-odl_l2-nofeature-ha
-2017-03-30 02:02;apex;os-nosdn-nofeature-ha
-2017-03-30 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-30 02:06;fuel;os-nosdn-kvm-noha
-2017-03-30 02:06;fuel;os-nosdn-ovs-noha
-2017-03-30 02:07;fuel;os-nosdn-nofeature-noha
-2017-03-30 02:11;fuel;os-odl_l2-nofeature-ha
-2017-03-31 02:04;apex;os-nosdn-nofeature-ha
-2017-03-31 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-31 02:08;fuel;os-nosdn-kvm-noha
-2017-03-31 02:09;fuel;os-nosdn-ovs-noha
-2017-03-31 02:11;fuel;os-nosdn-nofeature-noha
-2017-03-31 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-03-31 02:14;fuel;os-odl_l2-nofeature-ha
-2017-04-01 02:04;apex;os-nosdn-nofeature-ha
-2017-04-01 02:07;compass;os-nosdn-nofeature-ha
-2017-04-01 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-01 02:08;fuel;os-nosdn-kvm-noha
-2017-04-01 02:09;fuel;os-nosdn-ovs-noha
-2017-04-01 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-01 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-01 02:15;fuel;os-nosdn-ovs-ha
-2017-04-02 02:04;apex;os-nosdn-nofeature-ha
-2017-04-02 02:07;compass;os-nosdn-nofeature-ha
-2017-04-02 02:07;fuel;os-nosdn-kvm-noha
-2017-04-02 02:08;fuel;os-nosdn-ovs-ha
-2017-04-02 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-02 02:09;fuel;os-nosdn-ovs-noha
-2017-04-02 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-02 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-03 02:04;apex;os-nosdn-kvm-ha
-2017-04-03 02:04;apex;os-nosdn-nofeature-ha
-2017-04-03 02:07;compass;os-nosdn-nofeature-ha
-2017-04-03 02:07;fuel;os-nosdn-kvm-noha
-2017-04-03 02:08;fuel;os-nosdn-ovs-ha
-2017-04-03 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-03 02:09;fuel;os-nosdn-ovs-noha
-2017-04-03 02:12;fuel;os-nosdn-nofeature-noha
-2017-04-03 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-04 02:02;apex;os-nosdn-kvm-ha
-2017-04-04 02:05;apex;os-nosdn-nofeature-ha
-2017-04-04 02:07;compass;os-nosdn-nofeature-ha
-2017-04-04 02:09;fuel;os-nosdn-ovs-ha
-2017-04-04 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-04 02:10;fuel;os-nosdn-ovs-noha
-2017-04-04 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-05 02:00;apex;os-nosdn-kvm-ha
-2017-04-05 02:03;apex;os-nosdn-nofeature-ha
-2017-04-05 02:06;compass;os-nosdn-nofeature-ha
-2017-04-05 02:07;fuel;os-nosdn-ovs-ha
-2017-04-05 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-05 02:08;fuel;os-nosdn-ovs-noha
-2017-04-05 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-06 02:07;compass;os-nosdn-nofeature-ha
-2017-04-06 02:08;fuel;os-nosdn-ovs-ha
-2017-04-06 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-06 02:09;fuel;os-nosdn-ovs-noha
-2017-04-06 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-07 02:08;fuel;os-nosdn-ovs-ha
-2017-04-07 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-07 02:09;fuel;os-nosdn-ovs-noha
-2017-04-07 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-08 02:08;fuel;os-nosdn-ovs-ha
-2017-04-08 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-08 02:09;fuel;os-nosdn-ovs-noha
-2017-04-08 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-09 02:07;fuel;os-nosdn-kvm-noha
-2017-04-09 02:08;fuel;os-nosdn-ovs-ha
-2017-04-09 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-09 02:09;fuel;os-nosdn-ovs-noha
-2017-04-09 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-10 02:07;fuel;os-nosdn-kvm-noha
-2017-04-10 02:08;fuel;os-nosdn-ovs-ha
-2017-04-10 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-10 02:09;fuel;os-nosdn-ovs-noha
-2017-04-10 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-10 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-11 02:06;compass;os-nosdn-nofeature-ha
-2017-04-11 02:06;fuel;os-nosdn-kvm-noha
-2017-04-11 02:07;fuel;os-nosdn-ovs-ha
-2017-04-11 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-11 02:08;fuel;os-nosdn-ovs-noha
-2017-04-11 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-11 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-11 02:15;fuel;os-nosdn-nofeature-ha
-2017-04-12 02:07;fuel;os-nosdn-ovs-ha
-2017-04-12 02:07;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-12 02:08;fuel;os-nosdn-ovs-noha
-2017-04-12 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-12 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-12 02:14;fuel;os-nosdn-nofeature-ha
-2017-04-28 20:46;compass;os-nosdn-openo-ha
-2017-04-28 20:48;fuel;os-nosdn-kvm-noha
-2017-04-28 20:49;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-28 20:49;fuel;os-nosdn-ovs-noha
-2017-04-28 20:52;fuel;os-nosdn-kvm-ha
-2017-04-28 20:54;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-28 20:55;fuel;os-nosdn-ovs-ha
-2017-04-28 20:56;fuel;os-nosdn-nofeature-noha
-2017-04-29 02:07;compass;os-nosdn-openo-ha
-2017-04-29 02:08;fuel;os-nosdn-kvm-noha
-2017-04-29 02:09;fuel;os-nosdn-ovs-ha
-2017-04-29 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-29 02:10;fuel;os-nosdn-ovs-noha
-2017-04-29 02:12;fuel;os-nosdn-kvm-ha
-2017-04-29 02:13;fuel;os-nosdn-nofeature-noha
-2017-04-29 02:15;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-30 02:07;compass;os-nosdn-openo-ha
-2017-04-30 02:08;fuel;os-nosdn-kvm-noha
-2017-04-30 02:09;fuel;os-nosdn-ovs-ha
-2017-04-30 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-30 02:10;fuel;os-nosdn-ovs-noha
-2017-04-30 02:13;fuel;os-nosdn-nofeature-noha
-2017-04-30 02:15;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-30 02:17;fuel;os-nosdn-nofeature-ha
-2017-04-30 02:18;joid;os-nosdn-nofeature-noha
-2017-05-01 02:09;compass;os-nosdn-openo-ha
-2017-05-01 02:10;fuel;os-nosdn-kvm-noha
-2017-05-01 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-01 02:11;fuel;os-nosdn-ovs-ha
-2017-05-01 02:11;fuel;os-nosdn-ovs-noha
-2017-05-01 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-01 02:18;fuel;os-nosdn-nofeature-noha
-2017-05-01 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-01 02:21;joid;os-nosdn-nofeature-noha
-2017-05-02 02:10;fuel;os-nosdn-kvm-noha
-2017-05-02 02:11;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-02 02:11;fuel;os-nosdn-ovs-ha
-2017-05-02 02:12;fuel;os-nosdn-ovs-noha
-2017-05-02 02:14;fuel;os-nosdn-kvm-ha
-2017-05-02 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-02 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-02 02:17;fuel;os-odl_l2-bgpvpn-noha
-2017-05-02 02:18;fuel;os-nosdn-nofeature-noha
-2017-05-02 02:19;joid;os-nosdn-nofeature-noha
-2017-05-03 02:09;compass;os-nosdn-nofeature-ha
-2017-05-03 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-03 02:11;fuel;os-nosdn-kvm-noha
-2017-05-03 02:11;fuel;os-nosdn-ovs-noha
-2017-05-03 02:13;fuel;os-nosdn-kvm-ha
-2017-05-03 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-03 02:15;fuel;os-odl_l2-sfc-ha
-2017-05-03 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-03 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-03 02:17;fuel;os-nosdn-nofeature-noha
-2017-05-03 02:18;fuel;os-nosdn-ovs-ha
-2017-05-03 02:19;joid;os-nosdn-nofeature-noha
-2017-05-04 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-04 02:11;fuel;os-nosdn-ovs-ha
-2017-05-04 02:11;fuel;os-nosdn-ovs-noha
-2017-05-04 02:13;fuel;os-nosdn-kvm-ha
-2017-05-04 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-04 02:15;fuel;os-odl_l2-sfc-ha
-2017-05-04 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-04 02:17;fuel;os-nosdn-nofeature-noha
-2017-05-04 02:18;fuel;os-nosdn-kvm-noha
-2017-05-04 02:19;joid;os-nosdn-nofeature-noha
-2017-05-05 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-05 02:11;fuel;os-nosdn-kvm-noha
-2017-05-05 02:11;fuel;os-nosdn-ovs-noha
-2017-05-05 02:12;fuel;os-odl_l3-nofeature-noha
-2017-05-05 02:14;fuel;os-nosdn-kvm-ha
-2017-05-05 02:14;fuel;os-nosdn-nofeature-noha
-2017-05-05 02:16;fuel;os-odl_l2-sfc-ha
-2017-05-05 02:17;fuel;os-odl_l2-bgpvpn-noha
-2017-05-05 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-05 02:18;fuel;os-nosdn-ovs-ha
diff --git a/docs/results/danube/3.0/apex.html b/docs/results/danube/3.0/apex.html
deleted file mode 100644
index 2a906b69..00000000
--- a/docs/results/danube/3.0/apex.html
+++ /dev/null
@@ -1,1424 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
-
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');var gaugeScenario13 = gauge('#gaugeScenario13');var gaugeScenario14 = gauge('#gaugeScenario14');var gaugeScenario15 = gauge('#gaugeScenario15');var gaugeScenario16 = gauge('#gaugeScenario16');var gaugeScenario17 = gauge('#gaugeScenario17');var gaugeScenario18 = gauge('#gaugeScenario18');var gaugeScenario19 = gauge('#gaugeScenario19');var gaugeScenario20 = gauge('#gaugeScenario20');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(33.3333333333);gaugeScenario2.update(96.2962962963);gaugeScenario3.update(60.6060606061);gaugeScenario4.update(33.3333333333);gaugeScenario5.update(13.3333333333);gaugeScenario6.update(66.6666666667);gaugeScenario7.update(30.0);gaugeScenario8.update(72.7272727273);gaugeScenario9.update(66.6666666667);gaugeScenario10.update(53.3333333333);gaugeScenario11.update(75.7575757576);gaugeScenario12.update(53.3333333333);gaugeScenario13.update(92.5925925926);gaugeScenario14.update(54.5454545455);gaugeScenario15.update(13.3333333333);gaugeScenario16.update(13.3333333333);gaugeScenario17.update(20.0);gaugeScenario18.update(66.6666666667);gaugeScenario19.update(66.6666666667);gaugeScenario20.update(60.0);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-kvm-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-fdio-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl-gluon-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl-gluon-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl_l3-fdio_dvr-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-fdio_dvr-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-ovs-noha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-ovn-nofeature-noha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-ovn-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-odl_l2-fdio-noha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-odl_l3-fdio-noha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-odl_l2-fdio-ha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-odl_l3-nofeature-noha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************// for scenario os-nosdn-fdio-ha
- // Filter results
- var trend13 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend13.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg13",trend13)
- // ****************************************// for scenario os-odl-bgpvpn-ha
- // Filter results
- var trend14 = data.filter(function(row) {
- return row["scenario"]=="os-odl-bgpvpn-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend14.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg14",trend14)
- // ****************************************// for scenario os-odl_l3-ovs-ha
- // Filter results
- var trend15 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-ovs-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend15.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg15",trend15)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend16 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend16.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg16",trend16)
- // ****************************************// for scenario os-odl_l3-ovs-noha
- // Filter results
- var trend17 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-ovs-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend17.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg17",trend17)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend18 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend18.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg18",trend18)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend19 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend19.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg19",trend19)
- // ****************************************// for scenario os-odl_l3-fdio-ha
- // Filter results
- var trend20 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend20.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg20",trend20)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube 3.0, 2017-07-13 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>apex</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of Danube 3.0 scenarios (4-14/7/2017) </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/434/console>os-nosdn-kvm-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>10/30</td>
- <td>1</td>
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-nosdn-fdio-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>26/27</td>
- <td>13</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/450/console>os-odl-gluon-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>20/33</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl_l3-fdio_dvr-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>10/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/457/console>os-nosdn-ovs-noha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>4/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/428/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>20/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/453/console>os-ovn-nofeature-noha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>9/30</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl_l2-fdio-noha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>24/33</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl_l3-fdio-noha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>20/30</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/466/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>16/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/485/console>os-odl_l2-fdio-ha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>25/33</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/494/console>os-odl_l3-nofeature-noha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>16/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/491/console>os-nosdn-fdio-ha</a></td>
- <td><div id="gaugeScenario13"></div></td>
- <td><div id="trend_svg13"></div></td>
- <td>25/27</td>
- <td>14</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/449/console>os-odl-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario14"></div></td>
- <td><div id="trend_svg14"></div></td>
- <td>18/33</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/468/console>os-odl_l3-ovs-ha</a></td>
- <td><div id="gaugeScenario15"></div></td>
- <td><div id="trend_svg15"></div></td>
- <td>4/30</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/484/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario16"></div></td>
- <td><div id="trend_svg16"></div></td>
- <td>4/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/486/console>os-odl_l3-ovs-noha</a></td>
- <td><div id="gaugeScenario17"></div></td>
- <td><div id="trend_svg17"></div></td>
- <td>6/30</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/461/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario18"></div></td>
- <td><div id="trend_svg18"></div></td>
- <td>20/30</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-danube/455/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario19"></div></td>
- <td><div id="trend_svg19"></div></td>
- <td>20/30</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl_l3-fdio-ha</a></td>
- <td><div id="gaugeScenario20"></div></td>
- <td><div id="trend_svg20"></div></td>
- <td>18/30</td>
- <td>3</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-gluon-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- Netready
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio_dvr-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ovn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Tempest (full)
- *
- </th><th>
- Rally (full)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-ovs-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-apex.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_apex.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/3.0/compass.html b/docs/results/danube/3.0/compass.html
deleted file mode 100644
index 4f3c5c54..00000000
--- a/docs/results/danube/3.0/compass.html
+++ /dev/null
@@ -1,434 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
-
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(87.8787878788);gaugeScenario2.update(84.8484848485);gaugeScenario3.update(76.6666666667);gaugeScenario4.update(96.6666666667);gaugeScenario5.update(55.5555555556);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-onos-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-onos-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-onos-sfc-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-onos-sfc-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube 3.0, 2017-07-13 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>compass</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of Danube 3.0 scenarios (4-14/7/2017) </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/454/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>29/33</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/481/console>os-onos-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>28/33</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/482/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>23/30</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-danube/484/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>29/30</td>
- <td>12</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-danube/453/console>os-onos-sfc-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>20/36</td>
- <td>10</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-onos-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ONOS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-onos-sfc-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ONOS
-
- </th><th>
- SNAPS
-
- </th><th>
- SFC
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-compass.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_compass.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/3.0/fuel.html b/docs/results/danube/3.0/fuel.html
deleted file mode 100644
index d4c3a877..00000000
--- a/docs/results/danube/3.0/fuel.html
+++ /dev/null
@@ -1,1448 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
-
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');var gaugeScenario13 = gauge('#gaugeScenario13');var gaugeScenario14 = gauge('#gaugeScenario14');var gaugeScenario15 = gauge('#gaugeScenario15');var gaugeScenario16 = gauge('#gaugeScenario16');var gaugeScenario17 = gauge('#gaugeScenario17');var gaugeScenario18 = gauge('#gaugeScenario18');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(100.0);gaugeScenario2.update(100.0);gaugeScenario3.update(97.2222222222);gaugeScenario4.update(100.0);gaugeScenario5.update(100.0);gaugeScenario6.update(83.3333333333);gaugeScenario7.update(92.3076923077);gaugeScenario8.update(100.0);gaugeScenario9.update(100.0);gaugeScenario10.update(100.0);gaugeScenario11.update(100.0);gaugeScenario12.update(97.619047619);gaugeScenario13.update(100.0);gaugeScenario14.update(92.3076923077);gaugeScenario15.update(97.619047619);gaugeScenario16.update(100.0);gaugeScenario17.update(100.0);gaugeScenario18.update(100.0);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-kvm-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk_bar-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk_bar-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-ovs-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-odl_l2-sfc-noha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-sfc-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-odl_l2-nofeature-noha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-odl_l2-bgpvpn-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-bgpvpn-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************// for scenario os-odl_l3-nofeature-noha
- // Filter results
- var trend13 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend13.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg13",trend13)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk_bar-noha
- // Filter results
- var trend14 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk_bar-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend14.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg14",trend14)
- // ****************************************// for scenario os-odl_l2-bgpvpn-noha
- // Filter results
- var trend15 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-bgpvpn-noha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend15.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg15",trend15)
- // ****************************************// for scenario os-odl_l2-sfc-ha
- // Filter results
- var trend16 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-sfc-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend16.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg16",trend16)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend17 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend17.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg17",trend17)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend18 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="fuel";
- })
- // Parse the date
- trend18.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg18",trend18)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube 3.0, 2017-07-13 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>fuel</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of Danube 3.0 scenarios (4-14/7/2017) </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/935/console>os-nosdn-kvm-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>36/36</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/869/console>os-nosdn-kvm_ovs_dpdk_bar-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>42/42</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/938/console>os-nosdn-kvm_ovs_dpdk-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>35/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/936/console>os-nosdn-ovs-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>36/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/871/console>os-nosdn-kvm_ovs_dpdk-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>39/39</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/933/console>os-odl_l2-sfc-noha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>35/42</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/868/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>36/39</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/873/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>39/39</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/867/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>42/42</td>
- <td>15</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/937/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>36/36</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/939/console>os-odl_l2-nofeature-noha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>39/39</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/872/console>os-odl_l2-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>41/42</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/940/console>os-odl_l3-nofeature-noha</a></td>
- <td><div id="gaugeScenario13"></div></td>
- <td><div id="trend_svg13"></div></td>
- <td>36/36</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/941/console>os-nosdn-kvm_ovs_dpdk_bar-noha</a></td>
- <td><div id="gaugeScenario14"></div></td>
- <td><div id="trend_svg14"></div></td>
- <td>36/39</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-danube/934/console>os-odl_l2-bgpvpn-noha</a></td>
- <td><div id="gaugeScenario15"></div></td>
- <td><div id="trend_svg15"></div></td>
- <td>41/42</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/870/console>os-odl_l2-sfc-ha</a></td>
- <td><div id="gaugeScenario16"></div></td>
- <td><div id="trend_svg16"></div></td>
- <td>45/45</td>
- <td>5</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/875/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario17"></div></td>
- <td><div id="trend_svg17"></div></td>
- <td>39/39</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-danube/874/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario18"></div></td>
- <td><div id="trend_svg18"></div></td>
- <td>39/39</td>
- <td>7</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk_bar-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th><th>
- Barometer
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-sfc-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- SFC
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk_bar-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Domino
-
- </th><th>
- Barometer
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-bgpvpn-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- bgpvpn
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-sfc-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- SFC
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th><th>
- Doctor
-
- </th><th>
- Parser
-
- </th><th>
- Domino
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-fuel.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_fuel.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/3.0/joid.html b/docs/results/danube/3.0/joid.html
deleted file mode 100644
index b9e7ecce..00000000
--- a/docs/results/danube/3.0/joid.html
+++ /dev/null
@@ -1,407 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
-
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(71.4285714286);gaugeScenario2.update(33.3333333333);gaugeScenario3.update(47.619047619);gaugeScenario4.update(100.0);gaugeScenario5.update(18.1818181818);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-lxd-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-nosdn-lxd-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-odl_l2-nofeature-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (danube 3.0, 2017-07-13 01:45)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="apex.html">Apex</a></li>
- <li><a href="compass.html">Compass</a></li>
- <li><a href="fuel.html">Fuel</a></li>
- <li><a href="joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>joid</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of Danube 3.0 scenarios (4-14/7/2017) </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/301/console>os-nosdn-lxd-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>15/21</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/260/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>10/30</td>
- <td>1</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/281/console>os-nosdn-lxd-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>10/21</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/298/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>30/30</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-danube/291/console>os-odl_l2-nofeature-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>6/33</td>
- <td>2</td>
- </tr>
- </table>
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-joid.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_joid.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/danube/3.0/scenario_history.txt b/docs/results/danube/3.0/scenario_history.txt
deleted file mode 100644
index 20d0d51c..00000000
--- a/docs/results/danube/3.0/scenario_history.txt
+++ /dev/null
@@ -1,3855 +0,0 @@
-date,scenario,installer,detail,score
-2017-03-13 10:00,os-odl_l2-fdio-noha,apex,5/33,15.0
-2017-03-13 10:00,os-odl_l2-fdio-ha,apex,1/33,3.0
-2017-03-14 01:45,os-odl_l2-fdio-noha,apex,12/33,36.0
-2017-03-14 01:45,os-odl_l2-fdio-ha,apex,1/33,3.0
-2017-03-15 01:45,os-odl_l2-fdio-noha,apex,29/33,88.0
-2017-03-15 01:45,os-odl_l2-fdio-ha,apex,4/33,12.0
-2017-03-16 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-03-16 01:45,os-odl_l2-fdio-ha,apex,13/36,36.0
-2017-03-16 10:23,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-16 10:23,os-odl_l2-fdio-ha,apex,13/36,36.0
-2017-03-17 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-17 07:33,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 07:33,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-17 08:49,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,apex,9/33,27.0
-2017-03-17 08:49,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-18 01:45,os-odl-gluon-noha,apex,12/39,31.0
-2017-03-18 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-18 01:45,os-odl_l3-fdio-noha,apex,15/30,50.0
-2017-03-18 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-03-18 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-18 01:45,os-odl-bgpvpn-ha,apex,11/39,28.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,apex,11/33,33.0
-2017-03-19 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-19 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-19 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-19 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-19 01:45,os-nosdn-kvm-ha,apex,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-19 01:45,os-odl-gluon-noha,apex,22/39,56.0
-2017-03-19 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-19 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-19 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-19 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-19 01:45,os-nosdn-kvm-ha,apex,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-20 01:45,os-odl-gluon-noha,apex,23/39,59.0
-2017-03-20 01:45,os-odl_l2-fdio-noha,apex,33/36,92.0
-2017-03-20 01:45,os-odl_l3-fdio-noha,apex,21/30,70.0
-2017-03-20 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-20 01:45,os-odl_l2-fdio-ha,apex,19/36,53.0
-2017-03-20 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-03-20 01:45,os-odl-bgpvpn-ha,apex,14/39,36.0
-2017-03-20 01:45,os-nosdn-kvm-ha,apex,12/33,36.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-03-17 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-17 07:33,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-17 07:33,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-17 08:49,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-03-18 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-03-18 01:45,os-odl_l2-nofeature-ha,compass,20/33,61.0
-2017-03-18 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-18 01:45,os-odl_l3-nofeature-ha,compass,16/30,53.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-03-19 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-03-19 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-19 01:45,os-onos-nofeature-ha,compass,11/33,33.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-03-19 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-20 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-20 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-20 01:45,os-onos-nofeature-ha,compass,22/33,67.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-20 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-20 01:45,os-odl_l2-bgpvpn-ha,fuel,3/42,7.0
-2017-03-16 10:23,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-03-17 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 01:45,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 01:45,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-03-17 07:33,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 07:33,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 07:33,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-17 07:33,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-17 08:49,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-17 08:49,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-17 08:49,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-17 08:49,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-18 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-18 01:45,os-odl_l2-nofeature-ha,joid,2/36,6.0
-2017-03-18 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-18 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-03-19 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-19 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-19 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-19 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-19 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-20 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-20 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-20 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-20 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-20 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-21 01:45,os-odl-gluon-noha,apex,23/39,59.0
-2017-03-21 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-21 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-21 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-03-21 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-21 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-21 01:45,os-odl-bgpvpn-ha,apex,22/39,56.0
-2017-03-21 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,apex,27/33,82.0
-2017-03-21 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-21 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-21 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-03-21 01:45,os-nosdn-openo-ha,compass,20/30,67.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-21 01:45,os-odl_l3-nofeature-noha,fuel,11/36,31.0
-2017-03-21 01:45,os-nosdn-nofeature-noha,fuel,12/36,33.0
-2017-03-21 01:45,os-odl_l2-nofeature-noha,fuel,12/39,31.0
-2017-03-21 01:45,os-odl_l2-bgpvpn-ha,fuel,15/42,36.0
-2017-03-21 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,fuel,13/42,31.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-03-21 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-21 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-21 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-03-21 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-21 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-
-2017-03-22 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-22 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-22 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,apex,22/33,67.0
-2017-03-22 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-22 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-22 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-22 01:45,os-nosdn-kvm-ha,apex,23/33,70.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-22 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-22 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-03-22 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-22 01:45,os-nosdn-ovs-noha,fuel,12/36,33.0
-2017-03-22 01:45,os-odl_l3-nofeature-noha,fuel,11/36,31.0
-2017-03-22 01:45,os-odl_l2-bgpvpn-noha,fuel,12/42,29.0
-2017-03-22 01:45,os-odl_l2-sfc-noha,fuel,2/42,5.0
-2017-03-22 01:45,os-odl_l3-nofeature-ha,fuel,19/39,49.0
-2017-03-22 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-03-22 01:45,os-odl_l2-nofeature-noha,fuel,14/39,36.0
-2017-03-22 01:45,os-odl_l2-bgpvpn-ha,fuel,22/42,52.0
-2017-03-22 01:45,os-odl_l2-sfc-ha,fuel,13/45,29.0
-2017-03-22 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-03-22 01:45,os-nosdn-lxd-noha,joid,14/24,58.0
-2017-03-22 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-03-22 01:45,os-nosdn-lxd-ha,joid,2/24,8.0
-2017-03-22 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-22 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-03-23 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-23 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-23 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,apex,21/33,64.0
-2017-03-23 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-23 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-23 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-23 01:45,os-nosdn-kvm-ha,apex,23/33,70.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-03-23 01:45,os-ocl-nofeature-ha,compass,7/30,23.0
-2017-03-23 01:45,os-onos-nofeature-ha,compass,30/33,91.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-23 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,12/36,33.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,2/42,5.0
-2017-03-23 01:45,os-nosdn-kvm-noha,fuel,12/36,33.0
-2017-03-23 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-03-23 01:45,os-odl_l3-nofeature-noha,fuel,22/36,61.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,2/39,5.0
-2017-03-23 01:45,os-odl_l2-bgpvpn-noha,fuel,24/42,57.0
-2017-03-23 01:45,os-odl_l2-sfc-noha,fuel,2/42,5.0
-2017-03-23 01:45,os-odl_l3-nofeature-ha,fuel,19/39,49.0
-2017-03-23 01:45,os-nosdn-kvm-ha,fuel,25/39,64.0
-2017-03-23 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-03-23 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-03-23 01:45,os-odl_l2-bgpvpn-ha,fuel,25/42,60.0
-2017-03-23 01:45,os-odl_l2-sfc-ha,fuel,13/45,29.0
-2017-03-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-23 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-23 01:45,os-nosdn-lxd-noha,joid,20/24,83.0
-2017-03-23 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-23 01:45,os-nosdn-lxd-ha,joid,7/24,29.0
-2017-03-23 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-23 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-03-24 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-24 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-24 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,apex,21/33,64.0
-2017-03-24 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-24 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-24 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-24 01:45,os-nosdn-kvm-ha,apex,31/33,94.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-03-24 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-24 01:45,os-onos-nofeature-ha,compass,31/33,94.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-24 01:45,os-nosdn-openo-ha,compass,25/30,83.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-24 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-03-24 01:45,os-odl_l3-nofeature-noha,fuel,23/36,64.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-24 01:45,os-odl_l2-bgpvpn-noha,fuel,24/42,57.0
-2017-03-24 01:45,os-odl_l2-sfc-noha,fuel,14/42,33.0
-2017-03-24 01:45,os-odl_l3-nofeature-ha,fuel,24/39,62.0
-2017-03-24 01:45,os-nosdn-kvm-ha,fuel,25/39,64.0
-2017-03-24 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-24 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-03-24 01:45,os-odl_l2-bgpvpn-ha,fuel,27/42,64.0
-2017-03-24 01:45,os-odl_l2-sfc-ha,fuel,24/45,53.0
-2017-03-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-24 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,fuel,26/42,62.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-24 01:45,os-nosdn-lxd-noha,joid,20/24,83.0
-2017-03-24 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-24 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-24 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-03-24 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-25 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-25 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-25 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-03-25 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-25 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-03-25 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-25 01:45,os-nosdn-kvm-ha,apex,31/33,94.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,compass,27/30,90.0
-2017-03-25 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-25 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-25 01:45,os-nosdn-openo-ha,compass,25/30,83.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-25 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-25 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-25 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-25 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-25 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-25 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-25 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-25 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-25 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-03-25 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-25 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-25 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-25 01:45,os-nosdn-lxd-noha,joid,19/24,79.0
-2017-03-25 01:45,os-odl_l2-nofeature-ha,joid,7/36,19.0
-2017-03-25 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-25 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-25 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-26 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-26 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-03-26 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-03-26 01:45,os-odl_l2-fdio-ha,apex,22/36,61.0
-2017-03-26 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-26 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-26 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-03-26 01:45,os-ocl-nofeature-ha,compass,6/30,20.0
-2017-03-26 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-26 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-26 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-26 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-26 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-26 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-26 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-26 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-26 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-26 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-26 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-26 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-26 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-26 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-26 01:45,os-nosdn-lxd-noha,joid,19/24,79.0
-2017-03-26 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-26 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-26 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-03-26 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-27 01:45,os-odl-gluon-noha,apex,34/39,87.0
-2017-03-27 01:45,os-odl_l2-fdio-noha,apex,18/36,50.0
-2017-03-27 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-27 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-03-27 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-27 01:45,os-odl-bgpvpn-ha,apex,25/39,64.0
-2017-03-27 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-03-27 01:45,os-ocl-nofeature-ha,compass,5/30,17.0
-2017-03-27 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-03-27 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,4/42,10.0
-2017-03-27 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-03-27 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-27 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,4/39,10.0
-2017-03-27 01:45,os-odl_l2-bgpvpn-noha,fuel,26/42,62.0
-2017-03-27 01:45,os-odl_l2-sfc-noha,fuel,24/42,57.0
-2017-03-27 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-27 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-27 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-27 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-27 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-03-27 01:45,os-odl_l2-sfc-ha,fuel,25/45,56.0
-2017-03-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,24/39,62.0
-2017-03-27 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-03-27 01:45,os-nosdn-lxd-noha,joid,13/24,54.0
-2017-03-27 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-27 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-27 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-27 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 01:45,os-odl-gluon-noha,apex,33/39,85.0
-2017-03-28 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-03-28 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 01:45,os-odl-bgpvpn-ha,apex,24/39,62.0
-2017-03-28 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 01:45,os-ocl-nofeature-ha,compass,5/30,17.0
-2017-03-28 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 01:45,os-odl_l2-sfc-noha,fuel,27/42,64.0
-2017-03-28 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 01:45,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:20,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 13:20,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-03-28 13:20,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 13:20,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 13:20,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 13:20,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 13:20,os-odl_l2-fdio-ha,apex,25/36,69.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 13:20,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 13:20,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 13:20,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 13:20,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 13:20,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 13:20,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 13:20,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 13:20,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 13:20,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 13:20,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 13:20,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 13:20,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 13:20,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 13:20,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 13:20,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 13:20,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:20,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 13:20,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 13:20,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 13:56,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 13:56,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-28 13:56,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 13:56,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 13:56,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 13:56,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 13:56,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 13:56,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 13:56,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 13:56,os-nosdn-openo-ha,compass,30/30,100.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 13:56,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 13:56,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 13:56,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 13:56,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 13:56,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 13:56,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 13:56,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 13:56,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 13:56,os-odl_l2-sfc-ha,fuel,37/45,82.0
-2017-03-28 13:56,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 13:56,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 13:56,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 13:56,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 13:56,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 13:56,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-03-28 13:56,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-28 16:16,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-28 16:16,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-28 16:16,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-28 16:16,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-28 16:16,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-28 16:16,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-03-28 16:16,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-28 16:16,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-28 16:16,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-28 16:16,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-28 16:16,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-28 16:16,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-28 16:16,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-28 16:16,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-03-28 16:16,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-28 16:16,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-28 16:16,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-03-28 16:16,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-28 16:16,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-03-28 16:16,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-03-28 16:16,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-28 16:16,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-03-28 16:16,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-28 16:16,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-03-28 16:16,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-28 16:16,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-03-29 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-29 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-29 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-29 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-29 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-29 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-29 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-29 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-29 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-29 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-29 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-29 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-29 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-03-29 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-03-29 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-29 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-03-29 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-29 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-29 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-03-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-29 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-29 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-29 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-29 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-29 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-29 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-03-30 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-03-30 01:45,os-odl-gluon-noha,apex,31/36,86.0
-2017-03-30 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-30 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-03-30 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-03-30 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-30 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-30 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-03-30 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-03-30 01:45,os-ocl-nofeature-ha,compass,4/30,13.0
-2017-03-30 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-30 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-30 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-30 01:45,os-odl_l2-bgpvpn-noha,fuel,36/42,86.0
-2017-03-30 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-03-30 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-03-30 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-30 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-30 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-30 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-03-30 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-03-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-30 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-03-30 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-30 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-30 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-30 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-30 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-03-31 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-03-31 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-03-31 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-03-31 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-03-31 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-03-31 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-03-31 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-03-31 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-03-31 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-03-31 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-03-31 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-03-31 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-03-31 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-03-31 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-03-31 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-03-31 01:45,os-odl_l3-nofeature-ha,fuel,31/39,79.0
-2017-03-31 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-03-31 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-03-31 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-03-31 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-03-31 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-03-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-03-31 01:45,os-odl_l2-bgpvpn-noha,fuel,37/42,88.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-03-31 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-03-31 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-03-31 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-03-31 01:45,os-nosdn-nofeature-noha,joid,31/33,94.0
-2017-03-31 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-03-31 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-03-31 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-01 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-01 01:45,os-odl-gluon-noha,apex,24/36,67.0
-2017-04-01 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-01 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-04-01 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-04-01 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-01 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-01 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-01 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-01 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-04-01 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-01 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-01 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-01 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-01 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-04-01 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-01 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-01 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-01 01:45,os-odl_l3-nofeature-ha,fuel,32/39,82.0
-2017-04-01 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-01 01:45,os-odl_l2-nofeature-ha,fuel,39/42,93.0
-2017-04-01 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-01 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-04-01 01:45,os-odl_l2-bgpvpn-ha,fuel,34/42,81.0
-2017-04-01 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-01 01:45,os-odl_l2-bgpvpn-noha,fuel,38/42,90.0
-2017-04-01 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-04-01 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-01 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-01 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-01 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-01 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-01 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-04-02 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-02 01:45,os-odl-gluon-noha,apex,24/36,67.0
-2017-04-02 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-02 01:45,os-odl_l3-fdio-noha,apex,13/30,43.0
-2017-04-02 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-02 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-02 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-02 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-04-02 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-02 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-04-02 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-02 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-02 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-02 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-02 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-04-02 01:45,os-nosdn-openo-ha,compass,28/30,93.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-02 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-02 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-02 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-02 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-02 01:45,os-odl_l3-nofeature-ha,fuel,32/39,82.0
-2017-04-02 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-02 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-02 01:45,os-odl_l2-bgpvpn-ha,fuel,34/42,81.0
-2017-04-02 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-04-02 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-02 01:45,os-odl_l2-bgpvpn-noha,fuel,38/42,90.0
-2017-04-02 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-02 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-02 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-04-02 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-02 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-02 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-02 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-03 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-03 01:45,os-odl-gluon-noha,apex,29/36,81.0
-2017-04-03 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-03 01:45,os-odl_l3-fdio-noha,apex,13/30,43.0
-2017-04-03 01:45,os-odl_l3-nofeature-ha,apex,27/33,82.0
-2017-04-03 01:45,os-odl_l2-fdio-ha,apex,26/36,72.0
-2017-04-03 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-03 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-03 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-03 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-03 01:45,os-nosdn-kvm-ha,apex,33/33,100.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-03 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-04-03 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-03 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-03 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-04-03 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-03 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-03 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-03 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-03 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-03 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-03 01:45,os-odl_l3-nofeature-ha,fuel,32/39,82.0
-2017-04-03 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-03 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-03 01:45,os-odl_l2-bgpvpn-ha,fuel,35/42,83.0
-2017-04-03 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-03 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-03 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-03 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-03 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-03 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-03 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-03 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-03 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-04-04 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-04 01:45,os-odl-gluon-noha,apex,30/36,83.0
-2017-04-04 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-04-04 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-04 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-04 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-04-04 01:45,os-nosdn-kvm-ha,apex,33/33,100.0
-2017-04-04 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-04 01:45,os-odl-bgpvpn-ha,apex,22/36,61.0
-2017-04-04 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-04 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-04 01:45,os-odl_l2-fdio-ha,apex,26/36,72.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-04 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-04 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-04 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-04 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-04-04 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-04 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-04 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-04 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-04 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-04 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-04 01:45,os-nosdn-kvm-ha,fuel,36/39,92.0
-2017-04-04 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-04 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-04 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-04 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-04 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-04 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-04 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-04 01:45,os-odl_l3-nofeature-noha,fuel,34/36,94.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-04 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-04 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-04 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-04 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-04 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-04-05 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-05 01:45,os-odl-gluon-noha,apex,29/36,81.0
-2017-04-05 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-05 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-05 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-05 01:45,os-odl-bgpvpn-ha,apex,21/36,58.0
-2017-04-05 01:45,os-nosdn-kvm-ha,apex,33/33,100.0
-2017-04-05 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-05 01:45,os-odl_l3-nofeature-ha,apex,26/33,79.0
-2017-04-05 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-05 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-05 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,apex,33/33,100.0
-2017-04-05 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-05 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-05 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-05 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-04-05 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-05 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-05 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-05 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-05 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-05 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-05 01:45,os-nosdn-kvm-ha,fuel,36/39,92.0
-2017-04-05 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-05 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-05 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-05 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-05 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-05 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-05 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-05 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-05 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-05 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-05 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-05 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-05 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-06 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-06 01:45,os-odl-gluon-noha,apex,29/36,81.0
-2017-04-06 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-06 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-04-06 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-06 01:45,os-odl-bgpvpn-ha,apex,27/36,75.0
-2017-04-06 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-04-06 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-06 01:45,os-odl_l3-nofeature-ha,apex,25/33,76.0
-2017-04-06 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-06 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-06 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-06 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-06 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-06 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-06 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-06 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-06 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-06 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-06 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-06 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-06 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-06 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-06 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-06 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-06 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-06 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-06 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-06 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-06 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-06 01:45,os-odl_l3-nofeature-noha,fuel,32/36,89.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-04-06 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-06 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-06 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-06 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-06 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-07 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-07 01:45,os-odl-gluon-noha,apex,27/36,75.0
-2017-04-07 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-07 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-07 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-07 01:45,os-odl-bgpvpn-ha,apex,27/36,75.0
-2017-04-07 01:45,os-odl_l2-fdio-ha,apex,28/36,78.0
-2017-04-07 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-07 01:45,os-odl_l3-nofeature-ha,apex,25/33,76.0
-2017-04-07 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-07 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-04-07 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-07 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-04-07 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-07 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-07 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-07 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-07 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-07 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-07 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-07 01:45,os-odl_l2-nofeature-noha,fuel,33/39,85.0
-2017-04-07 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-07 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-07 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-07 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-07 01:45,os-odl_l3-nofeature-noha,fuel,32/36,89.0
-2017-04-07 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-04-07 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-04-07 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-07 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-07 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-07 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-04-07 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-04-07 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-07 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-07 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-08 01:45,os-nosdn-fdio-noha,apex,15/30,50.0
-2017-04-08 01:45,os-odl-gluon-noha,apex,27/36,75.0
-2017-04-08 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-08 01:45,os-odl_l2-fdio-noha,apex,30/36,83.0
-2017-04-08 01:45,os-odl_l3-fdio-noha,apex,6/30,20.0
-2017-04-08 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-08 01:45,os-nosdn-kvm-ha,apex,32/33,97.0
-2017-04-08 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-08 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-08 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-08 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-04-08 01:45,os-odl_l2-fdio-ha,apex,27/36,75.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-08 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-04-08 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-08 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-08 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-08 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-08 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-08 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-08 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-08 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-08 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-08 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-08 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-08 01:45,os-odl_l2-nofeature-noha,fuel,33/39,85.0
-2017-04-08 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-08 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-04-08 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-08 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-08 01:45,os-odl_l2-nofeature-ha,fuel,37/42,88.0
-2017-04-08 01:45,os-odl_l3-nofeature-noha,fuel,32/36,89.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,fuel,35/39,90.0
-2017-04-08 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-08 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-08 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-08 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-04-08 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-09 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-09 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-09 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-09 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-09 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-09 01:45,os-odl_l2-fdio-ha,apex,27/36,75.0
-2017-04-09 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-09 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-09 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-09 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-09 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,apex,32/33,97.0
-2017-04-09 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-09 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-09 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-04-09 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-09 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-04-09 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-09 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-09 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-09 01:45,os-odl_l2-nofeature-noha,fuel,33/39,85.0
-2017-04-09 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-09 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-09 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-04-09 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-04-09 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-09 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-09 01:45,os-odl_l2-sfc-ha,fuel,40/45,89.0
-2017-04-09 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-09 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-09 01:45,os-odl_l2-nofeature-ha,fuel,39/42,93.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-04-09 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-09 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-09 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-09 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-04-09 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-10 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-10 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-10 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-10 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-04-10 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-10 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-04-10 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-10 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-04-10 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-10 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-10 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-04-10 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-10 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-10 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-10 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-04-10 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-04-10 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-10 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-10 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-10 01:45,os-odl_l2-sfc-noha,fuel,32/42,76.0
-2017-04-10 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-04-10 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-04-10 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-10 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-10 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-10 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-10 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-10 01:45,os-odl_l2-nofeature-ha,fuel,39/42,93.0
-2017-04-10 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-04-10 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-10 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-10 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-10 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-04-10 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-04-11 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-11 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-11 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-11 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-11 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-11 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-04-11 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-11 01:45,os-odl_l3-nofeature-ha,apex,18/33,55.0
-2017-04-11 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-11 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-11 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,apex,22/33,67.0
-2017-04-11 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-04-11 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-11 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-11 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-04-11 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-04-11 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-11 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-11 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-11 01:45,os-odl_l2-sfc-noha,fuel,32/42,76.0
-2017-04-11 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-11 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-11 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-11 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-11 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-11 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-11 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-11 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-11 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-04-11 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-04-11 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-11 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-04-11 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-04-11 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-04-12 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-04-12 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-12 01:45,os-odl_l2-fdio-noha,apex,22/36,61.0
-2017-04-12 01:45,os-odl_l3-fdio-noha,apex,4/30,13.0
-2017-04-12 01:45,os-odl_l3-nofeature-ha,apex,17/33,52.0
-2017-04-12 01:45,os-nosdn-kvm-ha,apex,22/33,67.0
-2017-04-12 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-12 01:45,os-odl-bgpvpn-ha,apex,19/36,53.0
-2017-04-12 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-12 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-12 01:45,os-odl_l2-fdio-ha,apex,21/36,58.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,apex,21/33,64.0
-2017-04-12 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-04-12 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-12 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-12 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-12 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-12 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-12 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-12 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-12 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-12 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-04-12 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-04-12 01:45,os-nosdn-kvm-ha,fuel,37/39,95.0
-2017-04-12 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-12 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-12 01:45,os-odl_l2-bgpvpn-ha,fuel,36/42,86.0
-2017-04-12 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-04-12 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-12 01:45,os-odl_l2-bgpvpn-noha,fuel,39/42,93.0
-2017-04-12 01:45,os-odl_l2-nofeature-ha,fuel,38/42,90.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-04-12 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-12 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-04-12 01:45,os-odl_l2-nofeature-ha,joid,1/36,3.0
-2017-04-12 01:45,os-nosdn-nofeature-ha,joid,12/33,36.0
-2017-04-12 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-04-28 20:23,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-04-28 20:23,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-28 20:23,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-04-28 20:23,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-04-28 20:23,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-04-28 20:23,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-04-28 20:23,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-28 20:23,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-28 20:23,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-28 20:23,os-odl_l2-fdio-ha,apex,26/36,72.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-04-28 20:23,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-04-28 20:23,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-28 20:23,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-28 20:23,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-28 20:23,os-nosdn-openo-ha,compass,30/30,100.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-28 20:23,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-28 20:23,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-04-28 20:23,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-28 20:23,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-04-28 20:23,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-04-28 20:23,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-28 20:23,os-odl_l2-nofeature-noha,fuel,34/39,87.0
-2017-04-28 20:23,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-28 20:23,os-odl_l2-sfc-ha,fuel,41/45,91.0
-2017-04-28 20:23,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-28 20:23,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-28 20:23,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-04-28 20:23,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-28 20:23,os-nosdn-lxd-noha,joid,11/24,46.0
-2017-04-28 20:23,os-odl_l2-nofeature-ha,joid,8/36,22.0
-2017-04-28 20:23,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-28 20:23,os-nosdn-nofeature-ha,joid,29/33,88.0
-2017-04-28 20:23,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-29 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-04-29 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-29 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-04-29 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-04-29 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-04-29 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-04-29 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-29 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-29 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-29 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-04-29 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-04-29 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-29 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-04-29 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-29 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-29 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-29 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-29 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-29 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-04-29 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-04-29 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-04-29 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-odl_l2-nofeature-noha,fuel,34/39,87.0
-2017-04-29 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-29 01:45,os-odl_l2-sfc-ha,fuel,41/45,91.0
-2017-04-29 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-29 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-04-29 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-04-29 01:45,os-odl_l3-nofeature-noha,fuel,33/36,92.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-04-29 01:45,os-nosdn-lxd-noha,joid,11/24,46.0
-2017-04-29 01:45,os-odl_l2-nofeature-ha,joid,8/36,22.0
-2017-04-29 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-29 01:45,os-nosdn-nofeature-ha,joid,29/33,88.0
-2017-04-29 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-04-30 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-04-30 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-04-30 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-04-30 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-04-30 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-04-30 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-04-30 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-04-30 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-04-30 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-04-30 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-04-30 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-04-30 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-04-30 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-04-30 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-04-30 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-04-30 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-04-30 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-04-30 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-04-30 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-04-30 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-04-30 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-04-30 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-04-30 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-04-30 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-04-30 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-04-30 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-04-30 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-04-30 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-04-30 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-04-30 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-04-30 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-04-30 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-04-30 01:45,os-odl_l2-nofeature-ha,joid,8/36,22.0
-2017-05-01 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-01 01:45,os-odl-gluon-noha,apex,9/36,25.0
-2017-05-01 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-05-01 01:45,os-odl-bgpvpn-ha,apex,8/36,22.0
-2017-05-01 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-01 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-01 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-01 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-01 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-01 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-01 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-01 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-05-01 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-01 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-01 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-01 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-01 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-01 01:45,os-nosdn-openo-ha,compass,30/30,100.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-01 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-01 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-01 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-05-01 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-01 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-05-01 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-05-01 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-05-01 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-05-01 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-01 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-05-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-01 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-01 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-01 01:45,os-nosdn-lxd-noha,joid,17/24,71.0
-2017-05-01 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-01 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-01 01:45,os-nosdn-nofeature-ha,joid,17/33,52.0
-2017-05-01 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-02 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-02 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-02 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-02 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-02 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-02 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-02 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-02 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-02 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-02 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-02 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-02 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-02 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-02 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-02 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-02 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-02 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-02 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-02 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-02 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-02 01:45,os-odl_l2-sfc-noha,fuel,38/42,90.0
-2017-05-02 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-02 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-02 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-02 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-05-02 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-02 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-02 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-02 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-05-02 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-02 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-02 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-02 01:45,os-nosdn-nofeature-ha,joid,18/33,55.0
-2017-05-02 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-03 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-03 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-03 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-03 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-03 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-05-03 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-03 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-03 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-03 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-03 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-03 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-03 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-03 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-03 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-03 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-03 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-03 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-03 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-03 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-03 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-05-03 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-03 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-03 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-03 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-05-03 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-03 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-03 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-03 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,fuel,37/39,95.0
-2017-05-03 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-03 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-03 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-03 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-03 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-05-03 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-04 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-04 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-04 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-04 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-04 01:45,os-odl_l2-fdio-noha,apex,29/36,81.0
-2017-05-04 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-04 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-04 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-04 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-04 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-04 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-04 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-04 01:45,os-odl_l3-fdio-ha,apex,24/30,80.0
-2017-05-04 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-04 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-04 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-04 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-05-04 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,6/42,14.0
-2017-05-04 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-04 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-04 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-05-04 01:45,os-odl_l3-nofeature-ha,fuel,38/39,97.0
-2017-05-04 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-04 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-05-04 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-04 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-05-04 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-04 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-05-04 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-05-04 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-04 01:45,os-nosdn-nofeature-noha,joid,33/33,100.0
-2017-05-04 01:45,os-nosdn-lxd-ha,joid,18/24,75.0
-2017-05-04 01:45,os-nosdn-nofeature-ha,joid,29/33,88.0
-2017-05-04 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-05 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-05 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-05-05 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-05 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-05 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-05 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-05 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-05 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-05 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-05 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-05 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-05 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-05 01:45,os-odl_l3-fdio-ha,apex,23/30,77.0
-2017-05-05 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-05 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-05 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-05 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-05 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,12/42,29.0
-2017-05-05 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,6/39,15.0
-2017-05-05 01:45,os-odl_l2-sfc-noha,fuel,40/42,95.0
-2017-05-05 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-05 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-05 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-05 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-05 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-05 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-05-05 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-05 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-05 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-05 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-05 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-05-05 01:45,os-nosdn-lxd-ha,joid,17/24,71.0
-2017-05-05 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-05 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-06 01:45,os-nosdn-fdio-noha,apex,28/30,93.0
-2017-05-06 01:45,os-odl-gluon-noha,apex,23/36,64.0
-2017-05-06 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-06 01:45,os-odl-bgpvpn-ha,apex,24/36,67.0
-2017-05-06 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-06 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-06 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-06 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-06 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-06 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-06 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-06 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-06 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-06 01:45,os-odl_l3-fdio-ha,apex,23/30,77.0
-2017-05-06 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-05-06 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-06 01:45,os-onos-nofeature-ha,compass,26/33,79.0
-2017-05-06 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-06 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-06 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-06 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,18/42,43.0
-2017-05-06 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-06 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-06 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-06 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,17/39,44.0
-2017-05-06 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-06 01:45,os-odl_l2-sfc-noha,fuel,40/42,95.0
-2017-05-06 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-06 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-06 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-06 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-06 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-06 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-05-06 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-06 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-06 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-06 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-06 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-05-06 01:45,os-nosdn-lxd-ha,joid,17/24,71.0
-2017-05-06 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-06 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-07 01:45,os-odl-gluon-noha,apex,28/36,78.0
-2017-05-07 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-07 01:45,os-odl-bgpvpn-ha,apex,24/36,67.0
-2017-05-07 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-07 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-07 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-07 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-07 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-07 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-07 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-07 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-07 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-07 01:45,os-odl_l3-fdio-ha,apex,22/30,73.0
-2017-05-07 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-05-07 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-07 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-07 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-05-07 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-07 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-07 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,30/42,71.0
-2017-05-07 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-07 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-07 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-07 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-07 01:45,os-odl_l2-sfc-noha,fuel,40/42,95.0
-2017-05-07 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-07 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-07 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-07 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-07 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-07 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-07 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-07 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-05-07 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-07 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-07 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-07 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-05-07 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-07 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-07 01:45,os-nosdn-lxd-ha,joid,17/24,71.0
-2017-05-08 01:45,os-odl-gluon-noha,apex,28/36,78.0
-2017-05-08 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-08 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-08 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-05-08 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-08 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-08 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-08 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-08 01:45,os-odl-bgpvpn-ha,apex,24/36,67.0
-2017-05-08 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-08 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-08 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-08 01:45,os-odl_l3-fdio-ha,apex,22/30,73.0
-2017-05-08 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-05-08 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-08 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-08 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-05-08 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-08 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-08 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-08 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-08 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-08 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-08 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-08 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-05-08 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-08 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-08 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-08 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-08 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-08 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,30/42,71.0
-2017-05-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-08 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-08 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-08 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-08 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-08 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-08 01:45,os-nosdn-nofeature-noha,joid,32/33,97.0
-2017-05-08 01:45,os-nosdn-lxd-ha,joid,17/24,71.0
-2017-05-08 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-08 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-09 01:45,os-odl-gluon-noha,apex,28/36,78.0
-2017-05-09 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-09 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-05-09 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-05-09 01:45,os-odl_l3-nofeature-ha,apex,23/33,70.0
-2017-05-09 01:45,os-odl_l2-fdio-ha,apex,29/36,81.0
-2017-05-09 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-09 01:45,os-odl-bgpvpn-ha,apex,24/36,67.0
-2017-05-09 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-09 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-09 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-09 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-09 01:45,os-odl_l3-fdio-ha,apex,22/30,73.0
-2017-05-09 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-09 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-09 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-09 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-09 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-09 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-09 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,30/42,71.0
-2017-05-09 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-09 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-09 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-09 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-05-09 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-09 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-09 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-09 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-09 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-09 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-09 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-09 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-09 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-09 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-09 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-09 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-09 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-05-09 01:45,os-nosdn-lxd-ha,joid,17/24,71.0
-2017-05-09 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-09 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-10 01:45,os-odl-gluon-noha,apex,28/36,78.0
-2017-05-10 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-05-10 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-05-10 01:45,os-odl_l2-fdio-noha,apex,28/36,78.0
-2017-05-10 01:45,os-odl_l3-fdio-noha,apex,18/30,60.0
-2017-05-10 01:45,os-odl-bgpvpn-ha,apex,24/36,67.0
-2017-05-10 01:45,os-nosdn-kvm-ha,apex,30/33,91.0
-2017-05-10 01:45,os-odl_l3-fdio-ha,apex,22/30,73.0
-2017-05-10 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-05-10 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-10 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-05-10 01:45,os-odl_l2-fdio-ha,apex,27/36,75.0
-2017-05-10 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-10 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-10 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-05-10 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-10 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-10 01:45,os-nosdn-openo-ha,compass,29/30,97.0
-2017-05-10 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-10 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-10 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-10 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-10 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-10 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-10 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-10 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-10 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-10 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-10 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-10 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-10 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-10 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-10 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-10 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-10 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-10 01:45,os-nosdn-lxd-noha,joid,18/24,75.0
-2017-05-10 01:45,os-nosdn-nofeature-noha,joid,21/33,64.0
-2017-05-10 01:45,os-nosdn-lxd-ha,joid,13/24,54.0
-2017-05-10 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-10 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-11 01:45,os-odl-gluon-noha,apex,19/36,53.0
-2017-05-11 01:45,os-odl_l2-fdio-noha,apex,21/36,58.0
-2017-05-11 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-05-11 01:45,os-odl_l3-fdio-noha,apex,10/30,33.0
-2017-05-11 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-11 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-05-11 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-05-11 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-05-11 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-11 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-05-11 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-05-11 01:45,os-nosdn-nofeature-ha,apex,30/33,91.0
-2017-05-11 01:45,os-odl_l3-fdio-ha,apex,15/30,50.0
-2017-05-11 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-11 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-11 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-11 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-11 01:45,os-nosdn-openo-ha,compass,20/30,67.0
-2017-05-11 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-11 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-11 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-11 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-11 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-11 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-11 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-11 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-11 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-11 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-11 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-11 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-11 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-11 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-11 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-11 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-11 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-11 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-05-11 01:45,os-odl_l2-nofeature-ha,joid,9/36,25.0
-2017-05-11 01:45,os-nosdn-nofeature-noha,joid,10/33,30.0
-2017-05-11 01:45,os-nosdn-nofeature-ha,joid,32/33,97.0
-2017-05-11 01:45,os-nosdn-lxd-ha,joid,12/24,50.0
-2017-05-12 01:45,os-odl-gluon-noha,apex,19/36,53.0
-2017-05-12 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-05-12 01:45,os-odl_l2-fdio-noha,apex,21/36,58.0
-2017-05-12 01:45,os-odl_l3-fdio-noha,apex,2/30,7.0
-2017-05-12 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-12 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-05-12 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-05-12 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-05-12 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-05-12 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-05-12 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-05-12 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-05-12 01:45,os-odl_l3-fdio-ha,apex,15/30,50.0
-2017-05-12 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-12 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-12 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-12 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-12 01:45,os-nosdn-openo-ha,compass,20/30,67.0
-2017-05-12 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-12 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-12 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-12 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-12 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-12 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-12 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-12 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-12 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-12 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-12 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-12 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-12 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-12 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-12 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-12 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-12 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-12 01:45,os-nosdn-lxd-noha,joid,12/24,50.0
-2017-05-12 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-05-12 01:45,os-nosdn-nofeature-noha,joid,10/33,30.0
-2017-05-12 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-05-12 01:45,os-nosdn-lxd-ha,joid,7/24,29.0
-2017-05-13 01:45,os-odl-gluon-noha,apex,19/36,53.0
-2017-05-13 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-05-13 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-05-13 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-05-13 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-05-13 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-05-13 01:45,os-odl_l3-fdio-ha,apex,15/30,50.0
-2017-05-13 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-05-13 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-05-13 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-05-13 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-05-13 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-05-13 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-13 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-13 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-13 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-13 01:45,os-nosdn-openo-ha,compass,10/30,33.0
-2017-05-13 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-13 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-13 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-13 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-13 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-13 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,28/39,72.0
-2017-05-13 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-13 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-13 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-13 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-13 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-13 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-13 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-13 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-13 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-13 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-13 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-13 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-13 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-13 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-13 01:45,os-odl_l2-nofeature-ha,joid,6/36,17.0
-2017-05-13 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-05-13 01:45,os-nosdn-nofeature-ha,joid,21/33,64.0
-2017-05-13 01:45,os-nosdn-nofeature-noha,joid,10/33,30.0
-2017-05-14 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-05-14 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-05-14 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-05-14 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-05-14 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-05-14 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-05-14 01:45,os-odl_l3-fdio-ha,apex,9/30,30.0
-2017-05-14 01:45,os-odl-bgpvpn-ha,apex,8/36,22.0
-2017-05-14 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-05-14 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-05-14 01:45,os-odl_l2-fdio-ha,apex,20/36,56.0
-2017-05-14 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-05-14 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-14 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-14 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-14 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-14 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-05-14 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-14 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-14 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-14 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-14 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,26/39,67.0
-2017-05-14 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-14 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-05-14 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-14 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-14 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-14 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-14 01:45,os-odl_l2-bgpvpn-ha,fuel,33/42,79.0
-2017-05-14 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-14 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-14 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-14 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-14 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-14 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-14 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-14 01:45,os-nosdn-lxd-ha,joid,1/24,4.0
-2017-05-14 01:45,os-nosdn-nofeature-ha,joid,10/33,30.0
-2017-05-14 01:45,os-nosdn-nofeature-noha,joid,10/33,30.0
-2017-05-15 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-05-15 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-05-15 01:45,os-odl_l2-fdio-noha,apex,10/36,28.0
-2017-05-15 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-05-15 01:45,os-odl-bgpvpn-ha,apex,8/36,22.0
-2017-05-15 01:45,os-odl_l2-fdio-ha,apex,11/36,31.0
-2017-05-15 01:45,os-odl_l3-fdio-ha,apex,7/30,23.0
-2017-05-15 01:45,os-odl_l3-nofeature-ha,apex,16/33,48.0
-2017-05-15 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-05-15 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-05-15 01:45,os-nosdn-kvm-ha,apex,10/33,30.0
-2017-05-15 01:45,os-nosdn-nofeature-ha,apex,20/33,61.0
-2017-05-15 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-15 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-15 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-15 01:45,os-odl_l3-nofeature-ha,compass,19/30,63.0
-2017-05-15 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-15 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-15 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-15 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-15 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-15 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,26/39,67.0
-2017-05-15 01:45,os-odl_l3-nofeature-ha,fuel,24/39,62.0
-2017-05-15 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-15 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-05-15 01:45,os-nosdn-kvm-ha,fuel,26/39,67.0
-2017-05-15 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-15 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-15 01:45,os-odl_l2-bgpvpn-ha,fuel,28/42,67.0
-2017-05-15 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-15 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-15 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-15 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,34/42,81.0
-2017-05-15 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-15 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-05-16 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-05-16 01:45,os-odl_l2-fdio-noha,apex,10/36,28.0
-2017-05-16 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-05-16 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-05-16 01:45,os-nosdn-kvm-ha,apex,10/33,30.0
-2017-05-16 01:45,os-odl_l3-fdio-ha,apex,7/30,23.0
-2017-05-16 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-05-16 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-05-16 01:45,os-odl_l2-fdio-ha,apex,11/36,31.0
-2017-05-16 01:45,os-nosdn-nofeature-ha,apex,10/33,30.0
-2017-05-16 01:45,os-odl_l2-nofeature-ha,compass,18/33,55.0
-2017-05-16 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-16 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-05-16 01:45,os-odl_l3-nofeature-ha,compass,19/30,63.0
-2017-05-16 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-16 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-16 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-16 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-16 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-16 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,26/39,67.0
-2017-05-16 01:45,os-odl_l2-sfc-noha,fuel,32/42,76.0
-2017-05-16 01:45,os-odl_l3-nofeature-ha,fuel,24/39,62.0
-2017-05-16 01:45,os-nosdn-kvm-ha,fuel,26/39,67.0
-2017-05-16 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-16 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-16 01:45,os-odl_l2-bgpvpn-ha,fuel,27/42,64.0
-2017-05-16 01:45,os-odl_l2-sfc-ha,fuel,30/45,67.0
-2017-05-16 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-16 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-05-16 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-16 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-16 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-05-17 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-05-17 01:45,os-odl_l2-nofeature-ha,compass,15/33,45.0
-2017-05-17 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-17 01:45,os-odl_l3-nofeature-ha,compass,18/30,60.0
-2017-05-17 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-05-17 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-17 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-17 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-17 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-05-17 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-17 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-17 01:45,os-odl_l2-sfc-noha,fuel,32/42,76.0
-2017-05-17 01:45,os-odl_l3-nofeature-ha,fuel,24/39,62.0
-2017-05-17 01:45,os-nosdn-kvm-ha,fuel,26/39,67.0
-2017-05-17 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-17 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-17 01:45,os-odl_l2-bgpvpn-ha,fuel,27/42,64.0
-2017-05-17 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-17 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-17 01:45,os-odl_l2-bgpvpn-noha,fuel,28/42,67.0
-2017-05-17 01:45,os-odl_l2-sfc-ha,fuel,30/45,67.0
-2017-05-17 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-17 01:45,os-nosdn-nofeature-ha,fuel,26/39,67.0
-2017-05-18 01:45,os-odl_l2-nofeature-ha,compass,18/33,55.0
-2017-05-18 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-18 01:45,os-odl_l3-nofeature-ha,compass,16/30,53.0
-2017-05-18 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-18 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-18 01:45,os-odl_l2-sfc-ha,fuel,30/45,67.0
-2017-05-18 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-18 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-05-18 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,26/39,67.0
-2017-05-18 01:45,os-odl_l2-sfc-noha,fuel,27/42,64.0
-2017-05-18 01:45,os-odl_l3-nofeature-ha,fuel,11/39,28.0
-2017-05-18 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-18 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-18 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-18 01:45,os-odl_l2-bgpvpn-ha,fuel,14/42,33.0
-2017-05-18 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-18 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-18 01:45,os-odl_l2-bgpvpn-noha,fuel,28/42,67.0
-2017-05-18 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-18 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-18 01:45,os-nosdn-nofeature-ha,fuel,13/39,33.0
-2017-05-19 01:45,os-odl_l2-nofeature-ha,compass,16/33,48.0
-2017-05-19 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-19 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-05-19 01:45,os-odl_l3-nofeature-ha,compass,17/30,57.0
-2017-05-19 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-19 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-19 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-19 01:45,os-nosdn-ovs-noha,fuel,13/36,36.0
-2017-05-19 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-19 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-19 01:45,os-odl_l2-sfc-noha,fuel,27/42,64.0
-2017-05-19 01:45,os-odl_l3-nofeature-ha,fuel,14/39,36.0
-2017-05-19 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-19 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-19 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-19 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-19 01:45,os-odl_l2-sfc-ha,fuel,30/45,67.0
-2017-05-19 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-19 01:45,os-odl_l2-bgpvpn-noha,fuel,27/42,64.0
-2017-05-19 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-19 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-19 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-20 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-20 01:45,os-odl_l2-nofeature-ha,compass,16/33,48.0
-2017-05-20 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-20 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-05-20 01:45,os-odl_l3-nofeature-ha,compass,17/30,57.0
-2017-05-20 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-20 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-20 01:45,os-nosdn-ovs-noha,fuel,1/36,3.0
-2017-05-20 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-20 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-20 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-20 01:45,os-odl_l2-sfc-ha,fuel,15/45,33.0
-2017-05-20 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-20 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-20 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-20 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-20 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-20 01:45,os-odl_l3-nofeature-ha,fuel,13/39,33.0
-2017-05-20 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-20 01:45,os-odl_l2-bgpvpn-noha,fuel,27/42,64.0
-2017-05-20 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-20 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-20 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-20 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-20 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-21 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-21 01:45,os-odl_l2-nofeature-ha,compass,16/33,48.0
-2017-05-21 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-21 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-05-21 01:45,os-odl_l3-nofeature-ha,compass,17/30,57.0
-2017-05-21 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-21 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-21 01:45,os-nosdn-ovs-noha,fuel,1/36,3.0
-2017-05-21 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-21 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-21 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-21 01:45,os-odl_l2-sfc-ha,fuel,15/45,33.0
-2017-05-21 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-21 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-21 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-21 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-21 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-21 01:45,os-odl_l3-nofeature-ha,fuel,13/39,33.0
-2017-05-21 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-21 01:45,os-odl_l2-bgpvpn-noha,fuel,27/42,64.0
-2017-05-21 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-21 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-21 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-21 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-21 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-22 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-22 01:45,os-odl_l2-nofeature-ha,compass,16/33,48.0
-2017-05-22 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-22 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-05-22 01:45,os-odl_l3-nofeature-ha,compass,17/30,57.0
-2017-05-22 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-22 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-22 01:45,os-nosdn-ovs-noha,fuel,1/36,3.0
-2017-05-22 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-22 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-22 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-22 01:45,os-odl_l2-sfc-ha,fuel,15/45,33.0
-2017-05-22 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-22 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-22 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-22 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-22 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-22 01:45,os-odl_l3-nofeature-ha,fuel,13/39,33.0
-2017-05-22 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-22 01:45,os-odl_l2-bgpvpn-noha,fuel,27/42,64.0
-2017-05-22 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-22 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-22 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-22 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-22 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-23 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-23 01:45,os-odl_l2-nofeature-ha,compass,16/33,48.0
-2017-05-23 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-23 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-05-23 01:45,os-odl_l3-nofeature-ha,compass,17/30,57.0
-2017-05-23 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-23 01:45,os-nosdn-ovs-noha,fuel,1/36,3.0
-2017-05-23 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-23 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-23 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-23 01:45,os-odl_l2-sfc-ha,fuel,15/45,33.0
-2017-05-23 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-23 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-23 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-23 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-23 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-23 01:45,os-odl_l3-nofeature-ha,fuel,13/39,33.0
-2017-05-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-23 01:45,os-odl_l2-bgpvpn-noha,fuel,27/42,64.0
-2017-05-23 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-23 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-23 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-23 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-23 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-24 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-24 01:45,os-odl_l2-nofeature-ha,compass,16/33,48.0
-2017-05-24 01:45,os-onos-nofeature-ha,compass,18/33,55.0
-2017-05-24 01:45,os-nosdn-nofeature-ha,compass,10/30,33.0
-2017-05-24 01:45,os-odl_l3-nofeature-ha,compass,17/30,57.0
-2017-05-24 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-24 01:45,os-nosdn-ovs-noha,fuel,1/36,3.0
-2017-05-24 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-24 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-24 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-24 01:45,os-odl_l2-sfc-ha,fuel,15/45,33.0
-2017-05-24 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-24 01:45,os-odl_l2-nofeature-ha,fuel,28/42,67.0
-2017-05-24 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-24 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-05-24 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-24 01:45,os-odl_l3-nofeature-ha,fuel,13/39,33.0
-2017-05-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-24 01:45,os-odl_l2-bgpvpn-noha,fuel,27/42,64.0
-2017-05-24 01:45,os-nosdn-ovs-ha,fuel,13/39,33.0
-2017-05-24 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-24 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-24 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-24 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-25 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-25 01:45,os-odl_l2-nofeature-ha,compass,22/33,67.0
-2017-05-25 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-25 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-05-25 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-05-25 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,24/36,67.0
-2017-05-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,28/42,67.0
-2017-05-25 01:45,os-nosdn-ovs-noha,fuel,13/36,36.0
-2017-05-25 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-25 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,13/39,33.0
-2017-05-25 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-25 01:45,os-odl_l2-sfc-ha,fuel,22/45,49.0
-2017-05-25 01:45,os-nosdn-kvm-noha,fuel,24/36,67.0
-2017-05-25 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-05-25 01:45,os-nosdn-nofeature-noha,fuel,24/36,67.0
-2017-05-25 01:45,os-odl_l2-nofeature-noha,fuel,29/39,74.0
-2017-05-25 01:45,os-odl_l2-bgpvpn-ha,fuel,12/42,29.0
-2017-05-25 01:45,os-odl_l3-nofeature-ha,fuel,25/39,64.0
-2017-05-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,26/39,67.0
-2017-05-25 01:45,os-odl_l2-bgpvpn-noha,fuel,28/42,67.0
-2017-05-25 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-25 01:45,os-nosdn-kvm-ha,fuel,13/39,33.0
-2017-05-25 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-25 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-25 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-26 01:45,os-ocl-nofeature-ha,compass,1/30,3.0
-2017-05-26 01:45,os-odl_l2-nofeature-ha,compass,22/33,67.0
-2017-05-26 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-26 01:45,os-nosdn-nofeature-ha,compass,20/30,67.0
-2017-05-26 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-26 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-26 01:45,os-nosdn-ovs-noha,fuel,24/36,67.0
-2017-05-26 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-05-26 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,26/39,67.0
-2017-05-26 01:45,os-odl_l2-sfc-noha,fuel,26/42,62.0
-2017-05-26 01:45,os-odl_l2-sfc-ha,fuel,30/45,67.0
-2017-05-26 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-26 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-05-26 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-26 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-26 01:45,os-odl_l2-bgpvpn-ha,fuel,26/42,62.0
-2017-05-26 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-26 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-05-26 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-26 01:45,os-nosdn-kvm-ha,fuel,26/39,67.0
-2017-05-26 01:45,os-nosdn-nofeature-ha,fuel,18/39,46.0
-2017-05-26 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-26 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-26 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-27 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-27 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-27 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-05-27 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-05-27 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-27 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-27 01:45,os-nosdn-ovs-noha,fuel,25/36,69.0
-2017-05-27 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-27 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-05-27 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-05-27 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-27 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-27 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-27 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-27 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-05-27 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-27 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-27 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-27 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-05-27 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-27 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-27 01:45,os-nosdn-nofeature-ha,fuel,31/39,79.0
-2017-05-27 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-27 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-27 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-28 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-28 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-05-28 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-28 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-28 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-28 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-28 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-28 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-28 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-28 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-05-28 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-05-28 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-28 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-28 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-05-28 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-28 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-28 01:45,os-odl_l2-bgpvpn-ha,fuel,41/42,98.0
-2017-05-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-28 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-28 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-05-28 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-28 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-28 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-28 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-05-28 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-28 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-29 01:45,os-nosdn-nofeature-noha,apex,6/33,18.0
-2017-05-29 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-29 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-05-29 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-29 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-29 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-29 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-29 01:45,os-nosdn-ovs-ha,fuel,26/39,67.0
-2017-05-29 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-29 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-29 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-05-29 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-05-29 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-05-29 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-29 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-29 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-29 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-05-29 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-29 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-29 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-05-29 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-05-29 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-29 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-29 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-05-29 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-05-30 01:45,os-nosdn-kvm-noha,apex,10/33,30.0
-2017-05-30 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-05-30 01:45,os-nosdn-kvm-ha,apex,10/33,30.0
-2017-05-30 01:45,os-nosdn-nofeature-noha,apex,8/33,24.0
-2017-05-30 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-05-30 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-05-30 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-30 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-05-30 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-30 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-30 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-30 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-30 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-30 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-30 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-05-30 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-05-30 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-05-30 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-30 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-30 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-30 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-30 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-30 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-30 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-30 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-30 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-05-30 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-05-30 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-31 01:45,os-nosdn-kvm-noha,apex,10/33,30.0
-2017-05-31 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-05-31 01:45,os-nosdn-kvm-ha,apex,10/33,30.0
-2017-05-31 01:45,os-nosdn-nofeature-noha,apex,16/33,48.0
-2017-05-31 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-05-31 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-05-31 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-05-31 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-05-31 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-05-31 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-05-31 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-05-31 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-05-31 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-05-31 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-05-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-05-31 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-05-31 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-05-31 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-05-31 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-05-31 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-05-31 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-05-31 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-05-31 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-05-31 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-05-31 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-05-31 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-05-31 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-05-31 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-05-31 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-05-31 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-06-01 01:45,os-nosdn-kvm-noha,apex,10/33,30.0
-2017-06-01 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-06-01 01:45,os-nosdn-kvm-ha,apex,10/33,30.0
-2017-06-01 01:45,os-nosdn-nofeature-noha,apex,16/33,48.0
-2017-06-01 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-06-01 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-06-01 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-01 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-06-01 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-01 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-01 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-01 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-01 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-01 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-01 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-01 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-01 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-01 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-01 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-01 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-01 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-06-01 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-01 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-01 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-06-01 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-01 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-01 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-01 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-01 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-01 01:45,os-nosdn-nofeature-noha,joid,17/33,52.0
-2017-06-01 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-06-02 01:45,os-nosdn-kvm-noha,apex,10/33,30.0
-2017-06-02 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-06-02 01:45,os-nosdn-kvm-ha,apex,10/33,30.0
-2017-06-02 01:45,os-nosdn-nofeature-noha,apex,16/33,48.0
-2017-06-02 01:45,os-nosdn-fdio-ha,apex,2/30,7.0
-2017-06-02 01:45,os-nosdn-ovs-ha,apex,2/33,6.0
-2017-06-02 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-02 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-06-02 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-02 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-02 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-02 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-02 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-02 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-02 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-02 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-02 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-02 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-02 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-02 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-02 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-02 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-02 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-02 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-06-02 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-02 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-02 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-02 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-02 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-02 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-02 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-06-02 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-03 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-03 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-06-03 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-03 01:45,os-odl_l3-nofeature-noha,apex,2/33,6.0
-2017-06-03 01:45,os-odl_l2-fdio-noha,apex,3/36,8.0
-2017-06-03 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-03 01:45,os-nosdn-nofeature-noha,apex,24/33,73.0
-2017-06-03 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-06-03 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-03 01:45,os-nosdn-nofeature-ha,apex,8/33,24.0
-2017-06-03 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-03 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-03 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-06-03 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-03 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-03 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-03 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-03 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-03 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-03 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-03 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-06-03 01:45,os-odl_l3-nofeature-ha,fuel,38/39,97.0
-2017-06-03 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-03 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-03 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-03 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-03 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-03 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-06-03 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-03 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-03 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-03 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-03 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-03 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-03 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-03 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-03 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-04 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-04 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-06-04 01:45,os-odl-gluon-noha,apex,5/36,14.0
-2017-06-04 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-04 01:45,os-odl_l3-nofeature-noha,apex,2/33,6.0
-2017-06-04 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-06-04 01:45,os-odl_l2-fdio-noha,apex,6/36,17.0
-2017-06-04 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-06-04 01:45,os-odl_l3-nofeature-ha,apex,5/33,15.0
-2017-06-04 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-04 01:45,os-odl_l3-fdio-noha,apex,5/30,17.0
-2017-06-04 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-04 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-06-04 01:45,os-odl-bgpvpn-ha,apex,5/36,14.0
-2017-06-04 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-04 01:45,os-odl_l3-ovs-noha,apex,2/33,6.0
-2017-06-04 01:45,os-nosdn-nofeature-ha,apex,18/33,55.0
-2017-06-04 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-04 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-04 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-04 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-06-04 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-04 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-04 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-04 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-04 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-04 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-04 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-04 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-04 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-04 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-04 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-04 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-04 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-04 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-06-04 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-04 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-04 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-04 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-04 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-04 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-04 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-04 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-04 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-04 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-05 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-05 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-05 01:45,os-odl-gluon-noha,apex,5/36,14.0
-2017-06-05 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-05 01:45,os-odl_l3-nofeature-noha,apex,7/33,21.0
-2017-06-05 01:45,os-ovn-nofeature-noha,apex,3/33,9.0
-2017-06-05 01:45,os-odl_l2-fdio-noha,apex,6/36,17.0
-2017-06-05 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-05 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-05 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-05 01:45,os-odl_l3-fdio-noha,apex,28/30,93.0
-2017-06-05 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-05 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-06-05 01:45,os-odl-bgpvpn-ha,apex,5/36,14.0
-2017-06-05 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-05 01:45,os-odl_l3-ovs-noha,apex,3/33,9.0
-2017-06-05 01:45,os-odl_l2-fdio-ha,apex,9/36,25.0
-2017-06-05 01:45,os-nosdn-nofeature-ha,apex,18/33,55.0
-2017-06-05 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-05 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-05 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-05 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-05 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-05 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-05 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-05 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-05 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-05 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-05 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-05 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-05 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-06-05 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-06-05 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-05 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-05 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-05 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-05 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-05 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-05 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-05 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-05 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-05 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-05 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-05 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-05 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-05 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-06 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-06 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-06 01:45,os-odl-gluon-noha,apex,5/36,14.0
-2017-06-06 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-06 01:45,os-odl_l3-nofeature-noha,apex,7/33,21.0
-2017-06-06 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-06 01:45,os-odl_l2-fdio-noha,apex,19/36,53.0
-2017-06-06 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-06 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-06 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-06 01:45,os-odl_l3-fdio-noha,apex,28/30,93.0
-2017-06-06 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-06 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-06-06 01:45,os-odl-bgpvpn-ha,apex,10/36,28.0
-2017-06-06 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-06 01:45,os-odl_l3-ovs-noha,apex,3/33,9.0
-2017-06-06 01:45,os-odl_l2-fdio-ha,apex,9/36,25.0
-2017-06-06 01:45,os-nosdn-nofeature-ha,apex,18/33,55.0
-2017-06-06 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-06 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-06 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-06-06 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-06 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-06 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-06 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-06 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-06 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-06 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-06 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-06 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-06-06 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-06-06 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-06 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-06 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-06 01:45,os-odl_l2-bgpvpn-ha,fuel,41/42,98.0
-2017-06-06 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-06-06 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-06 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-06 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-06 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-06 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-06 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-06 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-06 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-06 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-06 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-07 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-07 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-07 01:45,os-odl-gluon-noha,apex,5/36,14.0
-2017-06-07 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-07 01:45,os-odl_l3-nofeature-noha,apex,7/33,21.0
-2017-06-07 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-07 01:45,os-odl_l2-fdio-noha,apex,24/36,67.0
-2017-06-07 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-07 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-07 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-07 01:45,os-odl_l3-fdio-noha,apex,28/30,93.0
-2017-06-07 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-07 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-07 01:45,os-odl-bgpvpn-ha,apex,10/36,28.0
-2017-06-07 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-07 01:45,os-odl_l3-ovs-noha,apex,3/33,9.0
-2017-06-07 01:45,os-odl_l2-fdio-ha,apex,33/36,92.0
-2017-06-07 01:45,os-nosdn-nofeature-ha,apex,18/33,55.0
-2017-06-07 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-07 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-07 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-06-07 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-07 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-07 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-07 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-07 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-07 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-07 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,32/36,89.0
-2017-06-07 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-07 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-07 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-06-07 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-07 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-07 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-07 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-07 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-06-07 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-07 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-07 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-07 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-07 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-07 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-07 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-07 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-07 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-07 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-08 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-08 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-08 01:45,os-odl-gluon-noha,apex,5/36,14.0
-2017-06-08 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-08 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-08 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-08 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-08 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-08 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-08 01:45,os-nosdn-kvm-ha,apex,27/33,82.0
-2017-06-08 01:45,os-odl_l3-fdio-noha,apex,28/30,93.0
-2017-06-08 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-08 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-08 01:45,os-odl-bgpvpn-ha,apex,10/36,28.0
-2017-06-08 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-08 01:45,os-odl_l3-ovs-noha,apex,3/33,9.0
-2017-06-08 01:45,os-odl_l2-fdio-ha,apex,33/36,92.0
-2017-06-08 01:45,os-nosdn-nofeature-ha,apex,18/33,55.0
-2017-06-08 01:45,os-odl_l3-fdio-ha,apex,26/30,87.0
-2017-06-08 01:45,os-ocl-nofeature-ha,compass,2/30,7.0
-2017-06-08 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-06-08 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-08 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-08 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-08 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-08 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,32/36,89.0
-2017-06-08 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-08 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-08 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-08 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-06-08 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-06-08 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-08 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-08 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-08 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-06-08 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-06-08 01:45,os-odl_l2-sfc-ha,fuel,43/45,96.0
-2017-06-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-08 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-08 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-08 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-08 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-08 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-08 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-08 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-08 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-09 01:45,os-nosdn-kvm-noha,apex,16/33,48.0
-2017-06-09 01:45,os-nosdn-fdio-noha,apex,2/30,7.0
-2017-06-09 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-09 01:45,os-nosdn-ovs-noha,apex,2/33,6.0
-2017-06-09 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-09 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-09 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-09 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-09 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-09 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-09 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-06-09 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-09 01:45,os-nosdn-fdio-ha,apex,4/30,13.0
-2017-06-09 01:45,os-odl-bgpvpn-ha,apex,10/36,28.0
-2017-06-09 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-09 01:45,os-odl_l3-ovs-noha,apex,3/33,9.0
-2017-06-09 01:45,os-odl_l2-fdio-ha,apex,33/36,92.0
-2017-06-09 01:45,os-nosdn-nofeature-ha,apex,23/33,70.0
-2017-06-09 01:45,os-odl_l3-fdio-ha,apex,26/30,87.0
-2017-06-09 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-09 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-06-09 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-09 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-09 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-09 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-09 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,32/36,89.0
-2017-06-09 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-09 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-09 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-09 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-09 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-06-09 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-09 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-09 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-09 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-09 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-09 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-06-09 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-09 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-09 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-09 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-09 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-09 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-09 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-09 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-10 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-10 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-10 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-10 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-10 01:45,os-odl_l3-nofeature-noha,apex,12/33,36.0
-2017-06-10 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-10 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-10 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-10 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-06-10 01:45,os-nosdn-kvm-ha,apex,27/33,82.0
-2017-06-10 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-06-10 01:45,os-nosdn-nofeature-noha,apex,26/33,79.0
-2017-06-10 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-10 01:45,os-odl-bgpvpn-ha,apex,10/36,28.0
-2017-06-10 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-10 01:45,os-odl_l3-ovs-noha,apex,3/33,9.0
-2017-06-10 01:45,os-odl_l2-fdio-ha,apex,32/36,89.0
-2017-06-10 01:45,os-nosdn-nofeature-ha,apex,25/33,76.0
-2017-06-10 01:45,os-odl_l3-fdio-ha,apex,26/30,87.0
-2017-06-10 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-10 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-06-10 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-10 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-10 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-10 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-10 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-10 01:45,os-nosdn-ovs-noha,fuel,35/36,97.0
-2017-06-10 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-10 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-10 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-10 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-10 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-10 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-10 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-10 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-10 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,32/36,89.0
-2017-06-10 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-10 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-10 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-10 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-10 01:45,os-nosdn-lxd-noha,joid,6/24,25.0
-2017-06-10 01:45,os-nosdn-nofeature-noha,joid,22/33,67.0
-2017-06-10 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-10 01:45,os-nosdn-nofeature-ha,joid,22/33,67.0
-2017-06-10 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-11 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-11 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-11 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-11 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-11 01:45,os-odl_l3-nofeature-noha,apex,12/33,36.0
-2017-06-11 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-11 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-11 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-06-11 01:45,os-odl_l3-nofeature-ha,apex,15/33,45.0
-2017-06-11 01:45,os-nosdn-kvm-ha,apex,27/33,82.0
-2017-06-11 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-06-11 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-11 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-11 01:45,os-odl-bgpvpn-ha,apex,15/36,42.0
-2017-06-11 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-11 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-11 01:45,os-odl_l2-fdio-ha,apex,32/36,89.0
-2017-06-11 01:45,os-nosdn-nofeature-ha,apex,27/33,82.0
-2017-06-11 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-11 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-11 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-06-11 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-11 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-11 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-11 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-11 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-11 01:45,os-nosdn-ovs-noha,fuel,35/36,97.0
-2017-06-11 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,32/36,89.0
-2017-06-11 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-11 01:45,os-odl_l2-sfc-noha,fuel,39/42,93.0
-2017-06-11 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-11 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-11 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-11 01:45,os-odl_l2-nofeature-noha,fuel,34/39,87.0
-2017-06-11 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-11 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-11 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-11 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-11 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-11 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-11 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-11 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-11 01:45,os-nosdn-nofeature-noha,joid,14/33,42.0
-2017-06-11 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-06-11 01:45,os-nosdn-lxd-ha,joid,6/24,25.0
-2017-06-12 01:45,os-nosdn-kvm-noha,apex,26/33,79.0
-2017-06-12 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-12 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-12 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-12 01:45,os-odl_l3-nofeature-noha,apex,15/33,45.0
-2017-06-12 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-12 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-12 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-06-12 01:45,os-odl_l3-nofeature-ha,apex,14/33,42.0
-2017-06-12 01:45,os-nosdn-kvm-ha,apex,27/33,82.0
-2017-06-12 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-06-12 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-12 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-12 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-06-12 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-12 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-12 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-06-12 01:45,os-nosdn-nofeature-ha,apex,27/33,82.0
-2017-06-12 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-12 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-12 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-06-12 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-12 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-12 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-12 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-12 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-12 01:45,os-nosdn-ovs-noha,fuel,35/36,97.0
-2017-06-12 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-12 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-12 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-06-12 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-06-12 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-12 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-12 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-12 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-12 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-12 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-12 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-06-12 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-12 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-12 01:45,os-nosdn-nofeature-noha,joid,11/33,33.0
-2017-06-12 01:45,os-nosdn-nofeature-ha,joid,11/33,33.0
-2017-06-12 01:45,os-odl_l2-nofeature-ha,joid,3/36,8.0
-2017-06-13 01:45,os-nosdn-kvm-noha,apex,18/33,55.0
-2017-06-13 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-13 01:45,os-odl-gluon-noha,apex,15/36,42.0
-2017-06-13 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-13 01:45,os-odl_l3-nofeature-noha,apex,15/33,45.0
-2017-06-13 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-13 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-13 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-13 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-06-13 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-06-13 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-06-13 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-13 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-13 01:45,os-nosdn-kvm-ha,apex,19/33,58.0
-2017-06-13 01:45,os-odl_l3-nofeature-ha,apex,14/33,42.0
-2017-06-13 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-13 01:45,os-odl_l3-ovs-noha,apex,5/33,15.0
-2017-06-13 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-06-13 01:45,os-nosdn-nofeature-ha,apex,27/33,82.0
-2017-06-13 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-13 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-06-13 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-13 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-13 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-13 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-13 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-13 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-13 01:45,os-nosdn-ovs-noha,fuel,35/36,97.0
-2017-06-13 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-13 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-13 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-13 01:45,os-odl_l3-nofeature-ha,fuel,34/39,87.0
-2017-06-13 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-13 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-13 01:45,os-odl_l2-nofeature-noha,fuel,34/39,87.0
-2017-06-13 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-06-13 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-13 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-13 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-06-13 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-13 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-13 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-14 01:45,os-nosdn-kvm-noha,apex,26/33,79.0
-2017-06-14 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-14 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-14 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-14 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-14 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-14 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-14 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-06-14 01:45,os-odl_l3-nofeature-ha,apex,13/33,39.0
-2017-06-14 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-06-14 01:45,os-odl_l3-nofeature-noha,apex,15/33,45.0
-2017-06-14 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-14 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-06-14 01:45,os-odl_l3-ovs-ha,apex,6/33,18.0
-2017-06-14 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-14 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-14 01:45,os-nosdn-kvm-ha,apex,19/33,58.0
-2017-06-14 01:45,os-nosdn-nofeature-ha,apex,26/33,79.0
-2017-06-14 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-14 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-14 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-14 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-06-14 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-14 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-14 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-14 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-14 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-14 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-14 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-14 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-14 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-14 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-14 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-14 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-14 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-14 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-14 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-14 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-14 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-06-14 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-14 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-14 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-15 01:45,os-nosdn-kvm-noha,apex,26/33,79.0
-2017-06-15 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-15 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-15 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-15 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-15 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-15 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-15 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-15 01:45,os-odl-bgpvpn-ha,apex,16/36,44.0
-2017-06-15 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-06-15 01:45,os-odl_l3-fdio-noha,apex,27/30,90.0
-2017-06-15 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-15 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-15 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-15 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-15 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-15 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-15 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-15 01:45,os-nosdn-nofeature-ha,apex,26/33,79.0
-2017-06-15 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-15 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-06-15 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-06-15 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-15 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-15 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-15 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-15 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-15 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-15 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-15 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-15 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-15 01:45,os-odl_l3-nofeature-ha,fuel,35/39,90.0
-2017-06-15 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-15 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-15 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-15 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-15 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-06-15 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,35/39,90.0
-2017-06-15 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-06-15 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-15 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-15 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-16 01:45,os-nosdn-kvm-noha,apex,26/33,79.0
-2017-06-16 01:45,os-nosdn-fdio-noha,apex,4/30,13.0
-2017-06-16 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-16 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-16 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-16 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-16 01:45,os-odl_l2-fdio-noha,apex,32/36,89.0
-2017-06-16 01:45,os-odl_l3-fdio-ha,apex,25/30,83.0
-2017-06-16 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-16 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-16 01:45,os-odl_l3-fdio-noha,apex,26/30,87.0
-2017-06-16 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-16 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-16 01:45,os-odl-bgpvpn-ha,apex,11/36,31.0
-2017-06-16 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-16 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-16 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-16 01:45,os-odl_l2-fdio-ha,apex,30/36,83.0
-2017-06-16 01:45,os-nosdn-nofeature-ha,apex,26/33,79.0
-2017-06-16 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-16 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-06-16 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-16 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-16 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-16 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-16 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-06-16 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-16 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,35/39,90.0
-2017-06-16 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-16 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-16 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-16 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-16 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-06-16 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-16 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-16 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-16 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-16 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-16 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-06-16 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-06-16 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-16 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-17 01:45,os-nosdn-kvm-noha,apex,25/33,76.0
-2017-06-17 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-17 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-17 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-17 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-17 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-17 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-17 01:45,os-odl_l2-fdio-noha,apex,31/36,86.0
-2017-06-17 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-17 01:45,os-odl_l3-nofeature-ha,apex,10/33,30.0
-2017-06-17 01:45,os-odl_l2-fdio-ha,apex,16/36,44.0
-2017-06-17 01:45,os-odl_l3-fdio-noha,apex,25/30,83.0
-2017-06-17 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-17 01:45,os-odl_l3-fdio-ha,apex,26/30,87.0
-2017-06-17 01:45,os-odl-bgpvpn-ha,apex,11/36,31.0
-2017-06-17 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-17 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-17 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-17 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-17 01:45,os-onos-sfc-ha,compass,1/36,3.0
-2017-06-17 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-17 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-17 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-06-17 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-06-17 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-17 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-17 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-06-17 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-17 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,35/39,90.0
-2017-06-17 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-17 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-17 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-17 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-17 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-06-17 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-17 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-06-17 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-17 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-17 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-17 01:45,os-odl_l2-bgpvpn-noha,fuel,42/42,100.0
-2017-06-17 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-06-17 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-17 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-06-18 01:45,os-nosdn-kvm-noha,apex,19/33,58.0
-2017-06-18 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-18 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-18 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-18 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-18 01:45,os-odl_l2-fdio-noha,apex,10/36,28.0
-2017-06-18 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-18 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-06-18 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-06-18 01:45,os-nosdn-kvm-ha,apex,17/33,52.0
-2017-06-18 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-18 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-18 01:45,os-odl-bgpvpn-ha,apex,11/36,31.0
-2017-06-18 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-18 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-18 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-18 01:45,os-odl_l2-fdio-ha,apex,18/36,50.0
-2017-06-18 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-18 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-18 01:45,os-onos-sfc-ha,compass,9/36,25.0
-2017-06-18 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-18 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-18 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-06-18 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-06-18 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-18 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-18 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-06-18 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-18 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,35/39,90.0
-2017-06-18 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-18 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-18 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-18 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-18 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-06-18 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-18 01:45,os-odl_l2-nofeature-noha,fuel,36/39,92.0
-2017-06-18 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-18 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-18 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-18 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-18 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-18 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-18 01:45,os-nosdn-nofeature-ha,fuel,36/39,92.0
-2017-06-19 01:45,os-nosdn-kvm-noha,apex,25/33,76.0
-2017-06-19 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-19 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-19 01:45,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-19 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-19 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-19 01:45,os-odl_l2-fdio-noha,apex,10/36,28.0
-2017-06-19 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-19 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-06-19 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-19 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-06-19 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-19 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-19 01:45,os-odl-bgpvpn-ha,apex,11/36,31.0
-2017-06-19 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-19 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-19 01:45,os-odl_l2-fdio-ha,apex,18/36,50.0
-2017-06-19 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-19 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-19 01:45,os-onos-sfc-ha,compass,15/36,42.0
-2017-06-19 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-19 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-19 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-19 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-19 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-19 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-19 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-19 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-19 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-19 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-19 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-19 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-19 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-19 01:45,os-nosdn-kvm-ha,fuel,38/39,97.0
-2017-06-19 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-19 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-06-19 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-19 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-19 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-06-19 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-19 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-19 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-19 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-20 01:45,os-nosdn-kvm-noha,apex,17/33,52.0
-2017-06-20 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-20 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-20 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-20 01:45,os-odl_l3-nofeature-noha,apex,7/33,21.0
-2017-06-20 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-20 01:45,os-odl_l2-fdio-noha,apex,8/36,22.0
-2017-06-20 01:45,os-ovn-nofeature-noha,apex,9/33,27.0
-2017-06-20 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-20 01:45,os-odl-bgpvpn-ha,apex,11/36,31.0
-2017-06-20 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-06-20 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-20 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-20 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-20 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-06-20 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-20 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-20 01:45,os-odl_l2-fdio-ha,apex,16/36,44.0
-2017-06-20 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-20 01:45,os-onos-sfc-ha,compass,22/36,61.0
-2017-06-20 01:45,os-odl_l3-nofeature-ha,compass,22/30,73.0
-2017-06-20 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-20 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-20 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-06-20 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-20 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-20 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-20 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-20 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,39/39,100.0
-2017-06-20 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-20 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-20 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-20 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-20 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-20 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-20 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-06-20 01:45,os-odl_l2-bgpvpn-ha,fuel,37/42,88.0
-2017-06-20 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-20 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-20 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-20 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-20 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-20 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-21 01:45,os-nosdn-kvm-noha,apex,17/33,52.0
-2017-06-21 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-21 01:45,os-odl-gluon-noha,apex,10/36,28.0
-2017-06-21 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-21 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-21 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-21 01:45,os-odl_l2-fdio-noha,apex,8/36,22.0
-2017-06-21 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-21 01:45,os-odl_l3-nofeature-ha,apex,8/33,24.0
-2017-06-21 01:45,os-odl_l2-fdio-ha,apex,16/36,44.0
-2017-06-21 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-06-21 01:45,os-odl_l3-nofeature-noha,apex,7/33,21.0
-2017-06-21 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-21 01:45,os-odl-bgpvpn-ha,apex,11/36,31.0
-2017-06-21 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-21 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-21 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-21 01:45,os-nosdn-nofeature-ha,apex,26/33,79.0
-2017-06-21 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-21 01:45,os-onos-sfc-ha,compass,22/36,61.0
-2017-06-21 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-06-21 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-21 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-21 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-06-21 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-21 01:45,os-nosdn-kvm-noha,fuel,35/36,97.0
-2017-06-21 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-21 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-21 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-06-21 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-21 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-21 01:45,os-odl_l2-sfc-noha,fuel,38/42,90.0
-2017-06-21 01:45,os-odl_l3-nofeature-ha,fuel,38/39,97.0
-2017-06-21 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-21 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-21 01:45,os-odl_l2-nofeature-noha,fuel,37/39,95.0
-2017-06-21 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-21 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-21 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-21 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-21 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-21 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-21 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-22 01:45,os-nosdn-kvm-noha,apex,16/33,48.0
-2017-06-22 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-22 01:45,os-odl-gluon-noha,apex,14/36,39.0
-2017-06-22 01:45,os-nosdn-ovs-noha,apex,4/33,12.0
-2017-06-22 01:45,os-odl_l3-nofeature-noha,apex,2/33,6.0
-2017-06-22 01:45,os-odl_l2-fdio-noha,apex,8/36,22.0
-2017-06-22 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-22 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-22 01:45,os-odl-bgpvpn-ha,apex,6/36,17.0
-2017-06-22 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-22 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-22 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-22 01:45,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-06-22 01:45,os-odl_l3-ovs-ha,apex,2/33,6.0
-2017-06-22 01:45,os-nosdn-ovs-ha,apex,4/33,12.0
-2017-06-22 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-22 01:45,os-odl_l2-fdio-ha,apex,17/36,47.0
-2017-06-22 01:45,os-odl_l3-nofeature-ha,apex,5/33,15.0
-2017-06-22 01:45,os-nosdn-nofeature-ha,apex,26/33,79.0
-2017-06-22 01:45,os-onos-sfc-ha,compass,23/36,64.0
-2017-06-22 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-06-22 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-22 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-22 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-06-22 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-22 01:45,os-nosdn-kvm-noha,fuel,32/36,89.0
-2017-06-22 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-22 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-22 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-22 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-22 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-06-22 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-22 01:45,os-odl_l3-nofeature-ha,fuel,38/39,97.0
-2017-06-22 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-22 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-22 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-22 01:45,os-odl_l2-bgpvpn-ha,fuel,38/42,90.0
-2017-06-22 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-22 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-22 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-22 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-06-22 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-22 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-23 01:45,os-nosdn-kvm-noha,apex,19/33,58.0
-2017-06-23 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-23 01:45,os-odl-gluon-noha,apex,14/36,39.0
-2017-06-23 01:45,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-23 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-23 01:45,os-odl_l2-fdio-noha,apex,16/36,44.0
-2017-06-23 01:45,os-odl_l3-fdio-noha,apex,25/30,83.0
-2017-06-23 01:45,os-odl_l2-fdio-ha,apex,17/36,47.0
-2017-06-23 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-23 01:45,os-odl_l3-fdio-ha,apex,15/30,50.0
-2017-06-23 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-23 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-23 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-23 01:45,os-onos-sfc-ha,compass,23/36,64.0
-2017-06-23 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-06-23 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-23 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-23 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-23 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-23 01:45,os-nosdn-kvm-noha,fuel,32/36,89.0
-2017-06-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-23 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-23 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-23 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-23 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-06-23 01:45,os-odl_l3-nofeature-ha,fuel,38/39,97.0
-2017-06-23 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-23 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-06-23 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-23 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-23 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-06-23 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-23 01:45,os-odl_l2-nofeature-ha,fuel,40/42,95.0
-2017-06-23 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-23 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-24 01:45,os-nosdn-kvm-noha,apex,21/33,64.0
-2017-06-24 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-24 01:45,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-24 01:45,os-odl_l2-fdio-noha,apex,16/36,44.0
-2017-06-24 01:45,os-nosdn-kvm-ha,apex,18/33,55.0
-2017-06-24 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-24 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-24 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-24 01:45,os-odl_l2-fdio-ha,apex,18/36,50.0
-2017-06-24 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-24 01:45,os-onos-sfc-ha,compass,23/36,64.0
-2017-06-24 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-06-24 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-24 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-06-24 01:45,os-odl_l2-nofeature-ha,compass,31/33,94.0
-2017-06-24 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-24 01:45,os-nosdn-kvm-noha,fuel,32/36,89.0
-2017-06-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-24 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-06-24 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-24 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-24 01:45,os-odl_l2-sfc-noha,fuel,36/42,86.0
-2017-06-24 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-24 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-24 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-06-24 01:45,os-odl_l2-nofeature-noha,fuel,35/39,90.0
-2017-06-24 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-24 01:45,os-odl_l3-nofeature-noha,fuel,35/36,97.0
-2017-06-24 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-06-24 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-06-24 01:45,os-odl_l2-nofeature-ha,fuel,41/42,98.0
-2017-06-24 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-25 01:45,os-nosdn-kvm-noha,apex,21/33,64.0
-2017-06-25 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-25 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-06-25 01:45,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-25 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-25 01:45,os-odl_l2-fdio-noha,apex,16/36,44.0
-2017-06-25 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-25 01:45,os-odl_l3-nofeature-ha,apex,7/33,21.0
-2017-06-25 01:45,os-odl_l2-fdio-ha,apex,17/36,47.0
-2017-06-25 01:45,os-odl_l3-fdio-noha,apex,23/30,77.0
-2017-06-25 01:45,os-nosdn-nofeature-noha,apex,28/33,85.0
-2017-06-25 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-25 01:45,os-odl-bgpvpn-ha,apex,14/36,39.0
-2017-06-25 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-25 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-25 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-25 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-25 01:45,os-onos-sfc-ha,compass,23/36,64.0
-2017-06-25 01:45,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-06-25 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-25 01:45,os-onos-nofeature-ha,compass,29/33,88.0
-2017-06-25 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-25 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-06-25 01:45,os-nosdn-kvm-noha,fuel,32/36,89.0
-2017-06-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-25 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-06-25 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,35/39,90.0
-2017-06-25 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-25 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-25 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-25 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-25 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-25 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-06-25 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-06-25 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-25 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-25 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,36/36,100.0
-2017-06-25 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-06-25 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-25 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-25 01:45,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-26 01:45,os-nosdn-kvm-noha,apex,28/33,85.0
-2017-06-26 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-26 01:45,os-odl-gluon-noha,apex,18/36,50.0
-2017-06-26 01:45,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-26 01:45,os-nosdn-nofeature-noha,apex,30/33,91.0
-2017-06-26 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-26 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-26 01:45,os-odl_l3-nofeature-ha,apex,7/33,21.0
-2017-06-26 01:45,os-odl_l2-fdio-ha,apex,17/36,47.0
-2017-06-26 01:45,os-odl_l3-fdio-noha,apex,17/30,57.0
-2017-06-26 01:45,os-odl_l3-nofeature-noha,apex,10/33,30.0
-2017-06-26 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-26 01:45,os-odl-bgpvpn-ha,apex,14/36,39.0
-2017-06-26 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-26 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-26 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-26 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-26 01:45,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-26 01:45,os-onos-sfc-ha,compass,24/36,67.0
-2017-06-26 01:45,os-odl_l3-nofeature-ha,compass,25/30,83.0
-2017-06-26 01:45,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-26 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-26 01:45,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-26 01:45,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-26 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-26 01:45,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-06-26 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-06-26 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-26 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-06-26 01:45,os-odl_l2-sfc-noha,fuel,34/42,81.0
-2017-06-26 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-06-26 01:45,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-06-26 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-26 01:45,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-26 01:45,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-26 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-26 01:45,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-06-26 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-26 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-26 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-06-26 10:05,os-nosdn-kvm-noha,apex,28/33,85.0
-2017-06-26 10:05,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-26 10:05,os-odl-gluon-noha,apex,18/36,50.0
-2017-06-26 10:05,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-26 10:05,os-nosdn-nofeature-noha,apex,30/33,91.0
-2017-06-26 10:05,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-26 10:05,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-26 10:05,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-26 10:05,os-odl-bgpvpn-ha,apex,14/36,39.0
-2017-06-26 10:05,os-odl_l2-fdio-ha,apex,17/36,47.0
-2017-06-26 10:05,os-odl_l3-fdio-noha,apex,17/30,57.0
-2017-06-26 10:05,os-odl_l3-nofeature-noha,apex,16/33,48.0
-2017-06-26 10:05,os-odl_l3-fdio-ha,apex,20/30,67.0
-2017-06-26 10:05,os-odl_l3-nofeature-ha,apex,12/33,36.0
-2017-06-26 10:05,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-26 10:05,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-26 10:05,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-26 10:05,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-26 12:31,os-nosdn-kvm-noha,apex,12/12,100.0
-2017-06-26 12:32,os-nosdn-kvm-noha,apex,0/3,0.0
-2017-06-26 12:32,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-27 01:45,os-nosdn-kvm-noha,apex,28/33,85.0
-2017-06-27 01:45,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-27 01:45,os-odl-gluon-noha,apex,24/36,67.0
-2017-06-27 01:45,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-27 01:45,os-odl_l3-nofeature-noha,apex,16/33,48.0
-2017-06-27 01:45,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-27 01:45,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-27 01:45,os-odl_l3-ovs-ha,apex,4/33,12.0
-2017-06-27 01:45,os-odl-bgpvpn-ha,apex,17/36,47.0
-2017-06-27 01:45,os-odl_l3-fdio-noha,apex,14/30,47.0
-2017-06-27 01:45,os-nosdn-nofeature-noha,apex,30/33,91.0
-2017-06-27 01:45,os-odl_l3-fdio-ha,apex,11/30,37.0
-2017-06-27 01:45,os-odl_l3-nofeature-ha,apex,12/33,36.0
-2017-06-27 01:45,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-27 01:45,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-27 01:45,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-27 01:45,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-27 06:56,os-nosdn-kvm-noha,apex,28/33,85.0
-2017-06-27 06:56,os-nosdn-fdio-noha,apex,6/30,20.0
-2017-06-27 06:56,os-odl-gluon-noha,apex,24/36,67.0
-2017-06-27 06:56,os-nosdn-ovs-noha,apex,6/33,18.0
-2017-06-27 06:56,os-odl_l3-nofeature-noha,apex,16/33,48.0
-2017-06-27 06:56,os-nosdn-fdio-ha,apex,6/30,20.0
-2017-06-27 06:56,os-ovn-nofeature-noha,apex,6/33,18.0
-2017-06-27 06:56,os-odl_l3-fdio-noha,apex,14/30,47.0
-2017-06-27 06:56,os-odl-bgpvpn-ha,apex,17/36,47.0
-2017-06-27 06:56,os-nosdn-kvm-ha,apex,20/33,61.0
-2017-06-27 06:56,os-nosdn-nofeature-noha,apex,30/33,91.0
-2017-06-27 06:56,os-odl_l3-fdio-ha,apex,11/30,37.0
-2017-06-27 06:56,os-odl_l3-nofeature-ha,apex,12/33,36.0
-2017-06-27 06:56,os-nosdn-ovs-ha,apex,6/33,18.0
-2017-06-27 06:56,os-odl_l3-ovs-noha,apex,4/33,12.0
-2017-06-27 06:56,os-nosdn-nofeature-ha,apex,28/33,85.0
-2017-06-27 06:56,os-onos-sfc-ha,compass,24/36,67.0
-2017-06-27 06:56,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-06-27 06:56,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-27 06:56,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-27 06:56,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-27 06:56,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-27 06:56,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-27 06:56,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-27 06:56,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-06-27 06:56,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-27 06:56,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-27 06:56,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-06-27 06:56,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-27 06:56,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-27 06:56,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-27 06:56,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-27 06:56,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-27 06:56,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-27 06:56,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-27 06:56,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-27 06:56,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-06-27 06:56,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-27 06:56,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-27 07:48,os-nosdn-kvm-noha,apex,28/30,93.0
-2017-06-27 07:48,os-nosdn-fdio-noha,apex,6/27,22.0
-2017-06-27 07:48,os-odl-gluon-noha,apex,24/33,73.0
-2017-06-27 07:48,os-nosdn-ovs-noha,apex,6/30,20.0
-2017-06-27 07:48,os-odl_l3-nofeature-noha,apex,16/30,53.0
-2017-06-27 07:48,os-nosdn-fdio-ha,apex,6/27,22.0
-2017-06-27 07:48,os-ovn-nofeature-noha,apex,6/30,20.0
-2017-06-27 07:48,os-odl_l3-fdio-noha,apex,14/27,52.0
-2017-06-27 07:48,os-odl-bgpvpn-ha,apex,17/33,52.0
-2017-06-27 07:48,os-nosdn-kvm-ha,apex,20/30,67.0
-2017-06-27 07:48,os-nosdn-nofeature-noha,apex,30/30,100.0
-2017-06-27 07:48,os-odl_l3-fdio-ha,apex,11/27,41.0
-2017-06-27 07:48,os-odl_l3-nofeature-ha,apex,12/30,40.0
-2017-06-27 07:48,os-nosdn-ovs-ha,apex,6/30,20.0
-2017-06-27 07:48,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-06-27 07:48,os-nosdn-nofeature-ha,apex,28/30,93.0
-2017-06-27 07:48,os-onos-sfc-ha,compass,24/36,67.0
-2017-06-27 07:48,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-06-27 07:48,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-27 07:48,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-27 07:48,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-27 07:48,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-27 07:48,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-27 07:48,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-27 07:48,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-06-27 07:48,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-27 07:48,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-27 07:48,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-06-27 07:48,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-27 07:48,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-27 07:48,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-27 07:48,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-27 07:48,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-27 07:48,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-27 07:48,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-27 07:48,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-27 07:48,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-06-27 07:48,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-27 07:48,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-06-27 08:20,os-nosdn-kvm-noha,apex,28/30,93.0
-2017-06-27 08:20,os-nosdn-fdio-noha,apex,6/27,22.0
-2017-06-27 08:20,os-odl-gluon-noha,apex,24/33,73.0
-2017-06-27 08:20,os-nosdn-ovs-noha,apex,6/30,20.0
-2017-06-27 08:20,os-odl_l3-nofeature-noha,apex,16/30,53.0
-2017-06-27 08:20,os-nosdn-fdio-ha,apex,6/27,22.0
-2017-06-27 08:20,os-odl_l2-fdio-noha,apex,10/33,30.0
-2017-06-27 08:20,os-ovn-nofeature-noha,apex,6/30,20.0
-2017-06-27 08:20,os-odl_l3-fdio-noha,apex,14/27,52.0
-2017-06-27 08:20,os-odl-bgpvpn-ha,apex,17/33,52.0
-2017-06-27 08:20,os-nosdn-kvm-ha,apex,20/30,67.0
-2017-06-27 08:20,os-nosdn-nofeature-noha,apex,30/30,100.0
-2017-06-27 08:20,os-odl_l3-fdio-ha,apex,11/27,41.0
-2017-06-27 08:20,os-odl_l3-nofeature-ha,apex,12/30,40.0
-2017-06-27 08:20,os-odl_l3-ovs-ha,apex,4/30,13.0
-2017-06-27 08:20,os-nosdn-ovs-ha,apex,6/30,20.0
-2017-06-27 08:20,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-06-27 08:20,os-odl_l2-fdio-ha,apex,17/33,52.0
-2017-06-27 08:20,os-nosdn-nofeature-ha,apex,29/30,97.0
-2017-06-27 08:20,os-onos-sfc-ha,compass,24/36,67.0
-2017-06-27 08:20,os-odl_l3-nofeature-ha,compass,26/30,87.0
-2017-06-27 08:20,os-ocl-nofeature-ha,compass,3/30,10.0
-2017-06-27 08:20,os-onos-nofeature-ha,compass,28/33,85.0
-2017-06-27 08:20,os-odl_l2-nofeature-ha,compass,30/33,91.0
-2017-06-27 08:20,os-nosdn-nofeature-ha,compass,30/30,100.0
-2017-06-27 08:20,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-06-27 08:20,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-06-27 08:20,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-06-27 08:20,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-06-27 08:20,os-nosdn-kvm_ovs_dpdk-ha,fuel,38/39,97.0
-2017-06-27 08:20,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-06-27 08:20,os-odl_l2-bgpvpn-noha,fuel,40/42,95.0
-2017-06-27 08:20,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-06-27 08:20,os-odl_l2-sfc-ha,fuel,44/45,98.0
-2017-06-27 08:20,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-06-27 08:20,os-nosdn-nofeature-noha,fuel,35/36,97.0
-2017-06-27 08:20,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-06-27 08:20,os-odl_l2-bgpvpn-ha,fuel,39/42,93.0
-2017-06-27 08:20,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-06-27 08:20,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-06-27 08:20,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-06-27 08:20,os-nosdn-ovs-ha,fuel,38/39,97.0
-2017-06-27 08:20,os-nosdn-nofeature-ha,fuel,38/39,97.0
-2017-07-07 14:52,os-nosdn-kvm-noha,apex,10/30,33.0
-2017-07-07 14:52,os-nosdn-fdio-noha,apex,2/27,7.0
-2017-07-07 14:52,os-odl-gluon-noha,apex,21/33,64.0
-2017-07-07 14:52,os-nosdn-ovs-noha,apex,2/30,7.0
-2017-07-07 14:52,os-nosdn-nofeature-noha,apex,21/30,70.0
-2017-07-07 14:52,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-07 14:52,os-odl_l2-fdio-noha,apex,29/33,88.0
-2017-07-07 14:52,os-odl_l3-fdio-noha,apex,24/30,80.0
-2017-07-07 14:52,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-07 14:52,os-nosdn-kvm-ha,apex,15/30,50.0
-2017-07-07 14:52,os-odl_l3-nofeature-noha,apex,9/30,30.0
-2017-07-07 14:52,os-nosdn-fdio-ha,apex,4/27,15.0
-2017-07-07 14:52,os-odl-bgpvpn-ha,apex,17/33,52.0
-2017-07-07 14:52,os-nosdn-ovs-ha,apex,2/30,7.0
-2017-07-07 14:52,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-07-07 14:52,os-odl_l2-fdio-ha,apex,12/33,36.0
-2017-07-07 14:52,os-nosdn-nofeature-ha,apex,20/30,67.0
-2017-07-07 14:52,os-odl_l3-fdio-ha,apex,14/30,47.0
-2017-07-07 14:52,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-07-07 14:52,os-onos-nofeature-ha,compass,28/33,85.0
-2017-07-07 14:52,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-07-07 14:52,os-odl_l3-nofeature-ha,compass,22/30,73.0
-2017-07-07 14:52,os-onos-sfc-ha,compass,21/36,58.0
-2017-07-07 14:52,os-nosdn-kvm_ovs_dpdk-noha,fuel,33/36,92.0
-2017-07-07 14:52,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-07 14:52,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-07 14:52,os-nosdn-kvm_ovs_dpdk-ha,fuel,35/39,90.0
-2017-07-07 14:52,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-07 14:52,os-odl_l2-sfc-noha,fuel,38/42,90.0
-2017-07-07 14:52,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-07-07 14:52,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-07 14:52,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-07-07 14:52,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-07-07 14:52,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-07-07 14:52,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-07-07 14:52,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-07-07 14:52,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-07 14:52,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-07-07 14:52,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-07 14:52,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-07 14:52,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-07 14:52,os-nosdn-lxd-noha,joid,5/21,24.0
-2017-07-07 14:52,os-nosdn-nofeature-noha,joid,20/30,67.0
-2017-07-07 14:52,os-odl_l2-nofeature-ha,joid,3/33,9.0
-2017-07-07 14:52,os-nosdn-nofeature-ha,joid,19/30,63.0
-2017-07-07 14:52,os-nosdn-lxd-ha,joid,10/21,48.0
-2017-07-08 01:45,os-nosdn-fdio-noha,apex,2/27,7.0
-2017-07-08 01:45,os-odl-gluon-noha,apex,21/33,64.0
-2017-07-08 01:45,os-nosdn-ovs-noha,apex,4/30,13.0
-2017-07-08 01:45,os-nosdn-nofeature-noha,apex,29/30,97.0
-2017-07-08 01:45,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-08 01:45,os-odl_l2-fdio-noha,apex,27/33,82.0
-2017-07-08 01:45,os-nosdn-fdio-ha,apex,2/27,7.0
-2017-07-08 01:45,os-odl-bgpvpn-ha,apex,17/33,52.0
-2017-07-08 01:45,os-odl_l3-fdio-noha,apex,14/30,47.0
-2017-07-08 01:45,os-odl_l3-nofeature-noha,apex,5/30,17.0
-2017-07-08 01:45,os-odl_l3-fdio-ha,apex,14/30,47.0
-2017-07-08 01:45,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-08 01:45,os-nosdn-ovs-ha,apex,4/30,13.0
-2017-07-08 01:45,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-07-08 01:45,os-odl_l2-fdio-ha,apex,12/33,36.0
-2017-07-08 01:45,os-nosdn-nofeature-ha,apex,30/30,100.0
-2017-07-08 01:45,os-odl_l2-nofeature-ha,compass,28/33,85.0
-2017-07-08 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-07-08 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-07-08 01:45,os-odl_l3-nofeature-ha,compass,21/30,70.0
-2017-07-08 01:45,os-onos-sfc-ha,compass,21/36,58.0
-2017-07-08 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-07-08 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-08 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-07-08 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-08 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,35/39,90.0
-2017-07-08 01:45,os-odl_l2-sfc-noha,fuel,38/42,90.0
-2017-07-08 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-07-08 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-08 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-08 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-07-08 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-07-08 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-07-08 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,34/36,94.0
-2017-07-08 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-08 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-08 01:45,os-odl_l3-nofeature-noha,fuel,24/36,67.0
-2017-07-08 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-08 01:45,os-nosdn-lxd-noha,joid,9/21,43.0
-2017-07-08 01:45,os-nosdn-nofeature-noha,joid,20/30,67.0
-2017-07-08 01:45,os-odl_l2-nofeature-ha,joid,3/33,9.0
-2017-07-08 01:45,os-nosdn-nofeature-ha,joid,19/30,63.0
-2017-07-08 01:45,os-nosdn-lxd-ha,joid,10/21,48.0
-2017-07-09 01:45,os-nosdn-kvm-noha,apex,10/30,33.0
-2017-07-09 01:45,os-nosdn-fdio-noha,apex,2/27,7.0
-2017-07-09 01:45,os-odl-gluon-noha,apex,21/33,64.0
-2017-07-09 01:45,os-nosdn-ovs-noha,apex,4/30,13.0
-2017-07-09 01:45,os-odl_l3-nofeature-noha,apex,8/30,27.0
-2017-07-09 01:45,os-odl_l2-fdio-noha,apex,24/33,73.0
-2017-07-09 01:45,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-09 01:45,os-odl_l3-fdio-noha,apex,14/30,47.0
-2017-07-09 01:45,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-09 01:45,os-odl_l2-fdio-ha,apex,26/33,79.0
-2017-07-09 01:45,os-nosdn-nofeature-noha,apex,21/30,70.0
-2017-07-09 01:45,os-nosdn-fdio-ha,apex,4/27,15.0
-2017-07-09 01:45,os-odl-bgpvpn-ha,apex,9/33,27.0
-2017-07-09 01:45,os-odl_l3-ovs-ha,apex,2/30,7.0
-2017-07-09 01:45,os-nosdn-ovs-ha,apex,4/30,13.0
-2017-07-09 01:45,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-07-09 01:45,os-nosdn-kvm-ha,apex,15/30,50.0
-2017-07-09 01:45,os-nosdn-nofeature-ha,apex,30/30,100.0
-2017-07-09 01:45,os-odl_l3-fdio-ha,apex,15/30,50.0
-2017-07-09 01:45,os-odl_l2-nofeature-ha,compass,25/33,76.0
-2017-07-09 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-07-09 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-07-09 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-07-09 01:45,os-onos-sfc-ha,compass,21/36,58.0
-2017-07-09 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-07-09 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-07-09 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-09 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-07-09 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-07-09 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-07-09 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-09 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-09 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-09 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-07-09 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-07-09 01:45,os-odl_l2-sfc-ha,fuel,39/45,87.0
-2017-07-09 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,34/36,94.0
-2017-07-09 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-09 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-09 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-07-09 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-09 01:45,os-nosdn-lxd-noha,joid,10/21,48.0
-2017-07-09 01:45,os-nosdn-nofeature-noha,joid,20/30,67.0
-2017-07-09 01:45,os-odl_l2-nofeature-ha,joid,3/33,9.0
-2017-07-09 01:45,os-nosdn-nofeature-ha,joid,20/30,67.0
-2017-07-09 01:45,os-nosdn-lxd-ha,joid,10/21,48.0
-2017-07-10 01:45,os-nosdn-kvm-noha,apex,10/30,33.0
-2017-07-10 01:45,os-odl-gluon-noha,apex,29/33,88.0
-2017-07-10 01:45,os-nosdn-ovs-noha,apex,4/30,13.0
-2017-07-10 01:45,os-odl_l3-nofeature-noha,apex,8/30,27.0
-2017-07-10 01:45,os-nosdn-fdio-ha,apex,4/27,15.0
-2017-07-10 01:45,os-odl_l2-fdio-noha,apex,24/33,73.0
-2017-07-10 01:45,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-10 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-07-10 01:45,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-10 01:45,os-odl_l2-fdio-ha,apex,26/33,79.0
-2017-07-10 01:45,os-nosdn-nofeature-noha,apex,21/30,70.0
-2017-07-10 01:45,os-odl_l3-fdio-ha,apex,15/30,50.0
-2017-07-10 01:45,os-odl-bgpvpn-ha,apex,18/33,55.0
-2017-07-10 01:45,os-odl_l3-ovs-ha,apex,2/30,7.0
-2017-07-10 01:45,os-nosdn-ovs-ha,apex,4/30,13.0
-2017-07-10 01:45,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-07-10 01:45,os-nosdn-kvm-ha,apex,15/30,50.0
-2017-07-10 01:45,os-nosdn-nofeature-ha,apex,30/30,100.0
-2017-07-10 01:45,os-odl_l2-nofeature-ha,compass,26/33,79.0
-2017-07-10 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-07-10 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-07-10 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-07-10 01:45,os-onos-sfc-ha,compass,21/36,58.0
-2017-07-10 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,41/42,98.0
-2017-07-10 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,38/39,97.0
-2017-07-10 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-10 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-07-10 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-10 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-07-10 01:45,os-odl_l2-sfc-ha,fuel,42/45,93.0
-2017-07-10 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-10 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-10 01:45,os-odl_l2-nofeature-noha,fuel,38/39,97.0
-2017-07-10 01:45,os-odl_l2-bgpvpn-ha,fuel,40/42,95.0
-2017-07-10 01:45,os-odl_l3-nofeature-ha,fuel,39/39,100.0
-2017-07-10 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,34/36,94.0
-2017-07-10 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-10 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-10 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-07-10 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-10 01:45,os-nosdn-lxd-noha,joid,14/21,67.0
-2017-07-10 01:45,os-nosdn-nofeature-noha,joid,20/30,67.0
-2017-07-10 01:45,os-odl_l2-nofeature-ha,joid,3/33,9.0
-2017-07-10 01:45,os-nosdn-nofeature-ha,joid,29/30,97.0
-2017-07-10 01:45,os-nosdn-lxd-ha,joid,10/21,48.0
-2017-07-12 01:45,os-nosdn-kvm-noha,apex,10/30,33.0
-2017-07-12 01:45,os-odl-gluon-noha,apex,23/33,70.0
-2017-07-12 01:45,os-nosdn-ovs-noha,apex,4/30,13.0
-2017-07-12 01:45,os-odl_l3-nofeature-noha,apex,16/30,53.0
-2017-07-12 01:45,os-nosdn-fdio-ha,apex,11/27,41.0
-2017-07-12 01:45,os-odl_l2-fdio-noha,apex,24/33,73.0
-2017-07-12 01:45,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-12 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-07-12 01:45,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-12 01:45,os-odl_l2-fdio-ha,apex,25/33,76.0
-2017-07-12 01:45,os-nosdn-nofeature-noha,apex,20/30,67.0
-2017-07-12 01:45,os-odl_l3-fdio-ha,apex,18/30,60.0
-2017-07-12 01:45,os-odl-bgpvpn-ha,apex,18/33,55.0
-2017-07-12 01:45,os-odl_l3-ovs-ha,apex,4/30,13.0
-2017-07-12 01:45,os-nosdn-ovs-ha,apex,4/30,13.0
-2017-07-12 01:45,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-07-12 01:45,os-nosdn-kvm-ha,apex,20/30,67.0
-2017-07-12 01:45,os-nosdn-nofeature-ha,apex,20/30,67.0
-2017-07-12 01:45,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-07-12 01:45,os-onos-nofeature-ha,compass,27/33,82.0
-2017-07-12 01:45,os-odl_l3-nofeature-ha,compass,24/30,80.0
-2017-07-12 01:45,os-nosdn-nofeature-ha,compass,28/30,93.0
-2017-07-12 01:45,os-onos-sfc-ha,compass,20/36,56.0
-2017-07-12 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-07-12 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-12 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-07-12 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-12 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-07-12 01:45,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-07-12 01:45,os-odl_l3-nofeature-ha,fuel,37/39,95.0
-2017-07-12 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-12 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-12 01:45,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-07-12 01:45,os-odl_l2-bgpvpn-ha,fuel,41/42,98.0
-2017-07-12 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-07-12 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,34/36,94.0
-2017-07-12 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-12 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-07-12 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-12 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-12 01:45,os-nosdn-lxd-noha,joid,14/21,67.0
-2017-07-12 01:45,os-nosdn-nofeature-noha,joid,20/30,67.0
-2017-07-12 01:45,os-odl_l2-nofeature-ha,joid,6/33,18.0
-2017-07-12 01:45,os-nosdn-nofeature-ha,joid,30/30,100.0
-2017-07-12 01:45,os-nosdn-lxd-ha,joid,10/21,48.0
-2017-07-12 12:10,os-nosdn-kvm-noha,apex,10/30,33.0
-2017-07-12 12:10,os-odl-gluon-noha,apex,23/33,70.0
-2017-07-12 12:10,os-odl_l3-fdio_dvr-noha,apex,10/30,33.0
-2017-07-12 12:10,os-nosdn-ovs-noha,apex,4/30,13.0
-2017-07-12 12:10,os-odl_l3-nofeature-noha,apex,16/30,53.0
-2017-07-12 12:10,os-nosdn-fdio-ha,apex,27/27,100.0
-2017-07-12 12:10,os-odl_l2-fdio-noha,apex,24/33,73.0
-2017-07-12 12:10,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-12 12:10,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-07-12 12:10,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-12 12:10,os-odl_l2-fdio-ha,apex,25/33,76.0
-2017-07-12 12:10,os-nosdn-nofeature-noha,apex,20/30,67.0
-2017-07-12 12:10,os-odl_l3-fdio-ha,apex,18/30,60.0
-2017-07-12 12:10,os-odl-bgpvpn-ha,apex,18/33,55.0
-2017-07-12 12:10,os-odl_l3-ovs-ha,apex,4/30,13.0
-2017-07-12 12:10,os-nosdn-ovs-ha,apex,4/30,13.0
-2017-07-12 12:10,os-odl_l3-ovs-noha,apex,4/30,13.0
-2017-07-12 12:10,os-nosdn-kvm-ha,apex,20/30,67.0
-2017-07-12 12:10,os-nosdn-nofeature-ha,apex,20/30,67.0
-2017-07-12 12:10,os-odl_l2-nofeature-ha,compass,27/33,82.0
-2017-07-12 12:10,os-onos-nofeature-ha,compass,28/33,85.0
-2017-07-12 12:10,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-07-12 12:10,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-07-12 12:10,os-onos-sfc-ha,compass,20/36,56.0
-2017-07-12 12:10,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-12 12:10,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-07-12 12:10,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-12 12:10,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,37/39,95.0
-2017-07-12 12:10,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-12 12:10,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-07-12 12:10,os-odl_l2-sfc-noha,fuel,37/42,88.0
-2017-07-12 12:10,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-07-12 12:10,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-12 12:10,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-12 12:10,os-odl_l2-nofeature-noha,fuel,26/39,67.0
-2017-07-12 12:10,os-odl_l2-bgpvpn-ha,fuel,41/42,98.0
-2017-07-12 12:10,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-07-12 12:10,os-nosdn-kvm_ovs_dpdk-noha,fuel,34/36,94.0
-2017-07-12 12:10,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-12 12:10,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-07-12 12:10,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-12 12:10,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-12 12:10,os-nosdn-lxd-noha,joid,14/21,67.0
-2017-07-12 12:10,os-nosdn-nofeature-noha,joid,20/30,67.0
-2017-07-12 12:10,os-odl_l2-nofeature-ha,joid,6/33,18.0
-2017-07-12 12:10,os-nosdn-nofeature-ha,joid,30/30,100.0
-2017-07-12 12:10,os-nosdn-lxd-ha,joid,10/21,48.0
-2017-07-13 01:45,os-nosdn-kvm-noha,apex,10/30,33.0
-2017-07-13 01:45,os-nosdn-fdio-noha,apex,26/27,96.0
-2017-07-13 01:45,os-odl-gluon-noha,apex,20/33,61.0
-2017-07-13 01:45,os-odl_l3-fdio_dvr-noha,apex,10/30,33.0
-2017-07-13 01:45,os-nosdn-ovs-noha,apex,4/30,13.0
-2017-07-13 01:45,os-odl_l3-nofeature-noha,apex,16/30,53.0
-2017-07-13 01:45,os-nosdn-fdio-ha,apex,25/27,93.0
-2017-07-13 01:45,os-odl_l2-fdio-noha,apex,24/33,73.0
-2017-07-13 01:45,os-ovn-nofeature-noha,apex,9/30,30.0
-2017-07-13 01:45,os-odl_l3-fdio-noha,apex,20/30,67.0
-2017-07-13 01:45,os-odl_l3-nofeature-ha,apex,16/30,53.0
-2017-07-13 01:45,os-odl_l2-fdio-ha,apex,25/33,76.0
-2017-07-13 01:45,os-nosdn-nofeature-noha,apex,20/30,67.0
-2017-07-13 01:45,os-odl_l3-fdio-ha,apex,18/30,60.0
-2017-07-13 01:45,os-odl-bgpvpn-ha,apex,18/33,55.0
-2017-07-13 01:45,os-odl_l3-ovs-ha,apex,4/30,13.0
-2017-07-13 01:45,os-nosdn-ovs-ha,apex,4/30,13.0
-2017-07-13 01:45,os-odl_l3-ovs-noha,apex,6/30,20.0
-2017-07-13 01:45,os-nosdn-kvm-ha,apex,20/30,67.0
-2017-07-13 01:45,os-nosdn-nofeature-ha,apex,20/30,67.0
-2017-07-13 01:45,os-odl_l2-nofeature-ha,compass,29/33,88.0
-2017-07-13 01:45,os-onos-nofeature-ha,compass,28/33,85.0
-2017-07-13 01:45,os-nosdn-nofeature-ha,compass,29/30,97.0
-2017-07-13 01:45,os-odl_l3-nofeature-ha,compass,23/30,77.0
-2017-07-13 01:45,os-onos-sfc-ha,compass,20/36,56.0
-2017-07-13 01:45,os-nosdn-kvm-noha,fuel,36/36,100.0
-2017-07-13 01:45,os-nosdn-kvm_ovs_dpdk_bar-ha,fuel,42/42,100.0
-2017-07-13 01:45,os-nosdn-ovs-ha,fuel,39/39,100.0
-2017-07-13 01:45,os-nosdn-kvm_ovs_dpdk_bar-noha,fuel,36/39,92.0
-2017-07-13 01:45,os-nosdn-ovs-noha,fuel,36/36,100.0
-2017-07-13 01:45,os-nosdn-kvm_ovs_dpdk-ha,fuel,39/39,100.0
-2017-07-13 01:45,os-odl_l2-sfc-noha,fuel,35/42,83.0
-2017-07-13 01:45,os-odl_l3-nofeature-ha,fuel,36/39,92.0
-2017-07-13 01:45,os-nosdn-kvm-ha,fuel,39/39,100.0
-2017-07-13 01:45,os-nosdn-nofeature-noha,fuel,36/36,100.0
-2017-07-13 01:45,os-odl_l2-nofeature-noha,fuel,39/39,100.0
-2017-07-13 01:45,os-odl_l2-bgpvpn-ha,fuel,41/42,98.0
-2017-07-13 01:45,os-odl_l3-nofeature-noha,fuel,36/36,100.0
-2017-07-13 01:45,os-nosdn-kvm_ovs_dpdk-noha,fuel,35/36,97.0
-2017-07-13 01:45,os-odl_l2-bgpvpn-noha,fuel,41/42,98.0
-2017-07-13 01:45,os-odl_l2-sfc-ha,fuel,45/45,100.0
-2017-07-13 01:45,os-odl_l2-nofeature-ha,fuel,42/42,100.0
-2017-07-13 01:45,os-nosdn-nofeature-ha,fuel,39/39,100.0
-2017-07-13 01:45,os-nosdn-lxd-noha,joid,15/21,71.0
-2017-07-13 01:45,os-nosdn-nofeature-noha,joid,10/30,33.0
-2017-07-13 01:45,os-odl_l2-nofeature-ha,joid,6/33,18.0
-2017-07-13 01:45,os-nosdn-nofeature-ha,joid,30/30,100.0
-2017-07-13 01:45,os-nosdn-lxd-ha,joid,10/21,48.0
diff --git a/docs/results/danube/3.0/validated_scenario_history.txt b/docs/results/danube/3.0/validated_scenario_history.txt
deleted file mode 100644
index 92d67677..00000000
--- a/docs/results/danube/3.0/validated_scenario_history.txt
+++ /dev/null
@@ -1,745 +0,0 @@
-2017-03-19 02:03;compass;os-nosdn-nofeature-ha
-2017-03-20 02:04;compass;os-nosdn-nofeature-ha
-2017-03-21 02:03;compass;os-nosdn-nofeature-ha
-2017-03-22 02:01;apex;os-nosdn-nofeature-ha
-2017-03-23 02:14;joid;os-nosdn-nofeature-noha
-2017-03-24 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-24 02:11;fuel;os-nosdn-ovs-ha
-2017-03-25 02:06;fuel;os-nosdn-ovs-noha
-2017-03-25 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-25 02:11;fuel;os-nosdn-ovs-ha
-2017-03-26 02:06;fuel;os-nosdn-ovs-noha
-2017-03-26 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-26 02:11;fuel;os-nosdn-ovs-ha
-2017-03-27 02:06;fuel;os-nosdn-ovs-noha
-2017-03-27 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-27 02:11;fuel;os-nosdn-ovs-ha
-2017-03-28 02:04;compass;os-nosdn-openo-ha
-2017-03-28 02:04;compass;os-nosdn-nofeature-ha
-2017-03-28 02:04;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 02:05;fuel;os-nosdn-kvm-noha
-2017-03-28 02:06;fuel;os-nosdn-ovs-noha
-2017-03-28 02:09;fuel;os-nosdn-nofeature-noha
-2017-03-28 13:40;compass;os-nosdn-openo-ha
-2017-03-28 13:41;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 13:42;fuel;os-nosdn-kvm-noha
-2017-03-28 13:42;fuel;os-nosdn-ovs-noha
-2017-03-28 13:45;fuel;os-nosdn-nofeature-noha
-2017-03-28 13:48;fuel;os-odl_l2-nofeature-ha
-2017-03-28 14:15;compass;os-nosdn-openo-ha
-2017-03-28 14:16;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 14:17;fuel;os-nosdn-kvm-noha
-2017-03-28 14:18;fuel;os-nosdn-ovs-noha
-2017-03-28 14:21;fuel;os-nosdn-nofeature-noha
-2017-03-28 14:23;fuel;os-odl_l2-nofeature-ha
-2017-03-28 16:33;apex;os-nosdn-nofeature-ha
-2017-03-28 16:36;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-28 16:37;fuel;os-nosdn-kvm-noha
-2017-03-28 16:38;fuel;os-nosdn-ovs-noha
-2017-03-28 16:41;fuel;os-nosdn-nofeature-noha
-2017-03-28 16:43;fuel;os-odl_l2-nofeature-ha
-2017-03-29 02:02;apex;os-nosdn-nofeature-ha
-2017-03-29 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-29 02:05;fuel;os-nosdn-kvm-noha
-2017-03-29 02:06;fuel;os-nosdn-ovs-noha
-2017-03-29 02:06;fuel;os-nosdn-nofeature-noha
-2017-03-29 02:11;fuel;os-odl_l2-nofeature-ha
-2017-03-30 02:02;apex;os-nosdn-nofeature-ha
-2017-03-30 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-30 02:06;fuel;os-nosdn-kvm-noha
-2017-03-30 02:06;fuel;os-nosdn-ovs-noha
-2017-03-30 02:07;fuel;os-nosdn-nofeature-noha
-2017-03-30 02:11;fuel;os-odl_l2-nofeature-ha
-2017-03-31 02:04;apex;os-nosdn-nofeature-ha
-2017-03-31 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-03-31 02:08;fuel;os-nosdn-kvm-noha
-2017-03-31 02:09;fuel;os-nosdn-ovs-noha
-2017-03-31 02:11;fuel;os-nosdn-nofeature-noha
-2017-03-31 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-03-31 02:14;fuel;os-odl_l2-nofeature-ha
-2017-04-01 02:04;apex;os-nosdn-nofeature-ha
-2017-04-01 02:07;compass;os-nosdn-nofeature-ha
-2017-04-01 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-01 02:08;fuel;os-nosdn-kvm-noha
-2017-04-01 02:09;fuel;os-nosdn-ovs-noha
-2017-04-01 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-01 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-01 02:15;fuel;os-nosdn-ovs-ha
-2017-04-02 02:04;apex;os-nosdn-nofeature-ha
-2017-04-02 02:07;compass;os-nosdn-nofeature-ha
-2017-04-02 02:07;fuel;os-nosdn-kvm-noha
-2017-04-02 02:08;fuel;os-nosdn-ovs-ha
-2017-04-02 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-02 02:09;fuel;os-nosdn-ovs-noha
-2017-04-02 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-02 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-03 02:04;apex;os-nosdn-kvm-ha
-2017-04-03 02:04;apex;os-nosdn-nofeature-ha
-2017-04-03 02:07;compass;os-nosdn-nofeature-ha
-2017-04-03 02:07;fuel;os-nosdn-kvm-noha
-2017-04-03 02:08;fuel;os-nosdn-ovs-ha
-2017-04-03 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-03 02:09;fuel;os-nosdn-ovs-noha
-2017-04-03 02:12;fuel;os-nosdn-nofeature-noha
-2017-04-03 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-04 02:02;apex;os-nosdn-kvm-ha
-2017-04-04 02:05;apex;os-nosdn-nofeature-ha
-2017-04-04 02:07;compass;os-nosdn-nofeature-ha
-2017-04-04 02:09;fuel;os-nosdn-ovs-ha
-2017-04-04 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-04 02:10;fuel;os-nosdn-ovs-noha
-2017-04-04 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-05 02:00;apex;os-nosdn-kvm-ha
-2017-04-05 02:03;apex;os-nosdn-nofeature-ha
-2017-04-05 02:06;compass;os-nosdn-nofeature-ha
-2017-04-05 02:07;fuel;os-nosdn-ovs-ha
-2017-04-05 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-05 02:08;fuel;os-nosdn-ovs-noha
-2017-04-05 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-06 02:07;compass;os-nosdn-nofeature-ha
-2017-04-06 02:08;fuel;os-nosdn-ovs-ha
-2017-04-06 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-06 02:09;fuel;os-nosdn-ovs-noha
-2017-04-06 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-07 02:08;fuel;os-nosdn-ovs-ha
-2017-04-07 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-07 02:09;fuel;os-nosdn-ovs-noha
-2017-04-07 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-08 02:08;fuel;os-nosdn-ovs-ha
-2017-04-08 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-08 02:09;fuel;os-nosdn-ovs-noha
-2017-04-08 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-09 02:07;fuel;os-nosdn-kvm-noha
-2017-04-09 02:08;fuel;os-nosdn-ovs-ha
-2017-04-09 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-09 02:09;fuel;os-nosdn-ovs-noha
-2017-04-09 02:14;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-10 02:07;fuel;os-nosdn-kvm-noha
-2017-04-10 02:08;fuel;os-nosdn-ovs-ha
-2017-04-10 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-10 02:09;fuel;os-nosdn-ovs-noha
-2017-04-10 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-10 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-11 02:06;compass;os-nosdn-nofeature-ha
-2017-04-11 02:06;fuel;os-nosdn-kvm-noha
-2017-04-11 02:07;fuel;os-nosdn-ovs-ha
-2017-04-11 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-11 02:08;fuel;os-nosdn-ovs-noha
-2017-04-11 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-11 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-11 02:15;fuel;os-nosdn-nofeature-ha
-2017-04-12 02:07;fuel;os-nosdn-ovs-ha
-2017-04-12 02:07;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-12 02:08;fuel;os-nosdn-ovs-noha
-2017-04-12 02:11;fuel;os-nosdn-nofeature-noha
-2017-04-12 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-12 02:14;fuel;os-nosdn-nofeature-ha
-2017-04-28 20:46;compass;os-nosdn-openo-ha
-2017-04-28 20:48;fuel;os-nosdn-kvm-noha
-2017-04-28 20:49;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-28 20:49;fuel;os-nosdn-ovs-noha
-2017-04-28 20:52;fuel;os-nosdn-kvm-ha
-2017-04-28 20:54;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-28 20:55;fuel;os-nosdn-ovs-ha
-2017-04-28 20:56;fuel;os-nosdn-nofeature-noha
-2017-04-29 02:07;compass;os-nosdn-openo-ha
-2017-04-29 02:08;fuel;os-nosdn-kvm-noha
-2017-04-29 02:09;fuel;os-nosdn-ovs-ha
-2017-04-29 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-29 02:10;fuel;os-nosdn-ovs-noha
-2017-04-29 02:12;fuel;os-nosdn-kvm-ha
-2017-04-29 02:13;fuel;os-nosdn-nofeature-noha
-2017-04-29 02:15;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-30 02:07;compass;os-nosdn-openo-ha
-2017-04-30 02:08;fuel;os-nosdn-kvm-noha
-2017-04-30 02:09;fuel;os-nosdn-ovs-ha
-2017-04-30 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-04-30 02:10;fuel;os-nosdn-ovs-noha
-2017-04-30 02:13;fuel;os-nosdn-nofeature-noha
-2017-04-30 02:15;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-04-30 02:17;fuel;os-nosdn-nofeature-ha
-2017-04-30 02:18;joid;os-nosdn-nofeature-noha
-2017-05-01 02:09;compass;os-nosdn-openo-ha
-2017-05-01 02:10;fuel;os-nosdn-kvm-noha
-2017-05-01 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-01 02:11;fuel;os-nosdn-ovs-ha
-2017-05-01 02:11;fuel;os-nosdn-ovs-noha
-2017-05-01 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-01 02:18;fuel;os-nosdn-nofeature-noha
-2017-05-01 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-01 02:21;joid;os-nosdn-nofeature-noha
-2017-05-02 02:10;fuel;os-nosdn-kvm-noha
-2017-05-02 02:11;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-02 02:11;fuel;os-nosdn-ovs-ha
-2017-05-02 02:12;fuel;os-nosdn-ovs-noha
-2017-05-02 02:14;fuel;os-nosdn-kvm-ha
-2017-05-02 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-02 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-02 02:17;fuel;os-odl_l2-bgpvpn-noha
-2017-05-02 02:18;fuel;os-nosdn-nofeature-noha
-2017-05-02 02:19;joid;os-nosdn-nofeature-noha
-2017-05-03 02:09;compass;os-nosdn-nofeature-ha
-2017-05-03 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-03 02:11;fuel;os-nosdn-kvm-noha
-2017-05-03 02:11;fuel;os-nosdn-ovs-noha
-2017-05-03 02:13;fuel;os-nosdn-kvm-ha
-2017-05-03 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-03 02:15;fuel;os-odl_l2-sfc-ha
-2017-05-03 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-03 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-03 02:17;fuel;os-nosdn-nofeature-noha
-2017-05-03 02:18;fuel;os-nosdn-ovs-ha
-2017-05-03 02:19;joid;os-nosdn-nofeature-noha
-2017-05-04 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-04 02:11;fuel;os-nosdn-ovs-ha
-2017-05-04 02:11;fuel;os-nosdn-ovs-noha
-2017-05-04 02:13;fuel;os-nosdn-kvm-ha
-2017-05-04 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-04 02:15;fuel;os-odl_l2-sfc-ha
-2017-05-04 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-04 02:17;fuel;os-nosdn-nofeature-noha
-2017-05-04 02:18;fuel;os-nosdn-kvm-noha
-2017-05-04 02:19;joid;os-nosdn-nofeature-noha
-2017-05-05 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-05 02:11;fuel;os-nosdn-kvm-noha
-2017-05-05 02:11;fuel;os-nosdn-ovs-noha
-2017-05-05 02:12;fuel;os-odl_l3-nofeature-noha
-2017-05-05 02:14;fuel;os-nosdn-kvm-ha
-2017-05-05 02:14;fuel;os-nosdn-nofeature-noha
-2017-05-05 02:16;fuel;os-odl_l2-sfc-ha
-2017-05-05 02:17;fuel;os-odl_l2-bgpvpn-noha
-2017-05-05 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-05 02:18;fuel;os-nosdn-ovs-ha
-2017-05-06 02:09;compass;os-nosdn-nofeature-ha
-2017-05-06 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-06 02:11;fuel;os-nosdn-kvm-noha
-2017-05-06 02:11;fuel;os-nosdn-ovs-noha
-2017-05-06 02:12;fuel;os-odl_l3-nofeature-noha
-2017-05-06 02:13;fuel;os-odl_l2-bgpvpn-noha
-2017-05-06 02:14;fuel;os-nosdn-kvm-ha
-2017-05-06 02:15;fuel;os-nosdn-nofeature-noha
-2017-05-06 02:16;fuel;os-odl_l2-sfc-ha
-2017-05-06 02:18;fuel;os-nosdn-ovs-ha
-2017-05-06 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-07 02:09;compass;os-nosdn-nofeature-ha
-2017-05-07 02:09;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-07 02:10;fuel;os-nosdn-kvm-noha
-2017-05-07 02:11;fuel;os-nosdn-ovs-noha
-2017-05-07 02:11;fuel;os-odl_l3-nofeature-noha
-2017-05-07 02:13;fuel;os-nosdn-kvm-ha
-2017-05-07 02:14;fuel;os-nosdn-nofeature-noha
-2017-05-07 02:15;fuel;os-odl_l2-sfc-ha
-2017-05-07 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-07 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-07 02:17;fuel;os-odl_l2-nofeature-ha
-2017-05-07 02:17;fuel;os-nosdn-nofeature-ha
-2017-05-07 02:18;fuel;os-nosdn-ovs-ha
-2017-05-08 02:09;compass;os-nosdn-nofeature-ha
-2017-05-08 02:09;fuel;os-nosdn-kvm-noha
-2017-05-08 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-08 02:10;fuel;os-nosdn-ovs-noha
-2017-05-08 02:11;fuel;os-odl_l3-nofeature-noha
-2017-05-08 02:13;fuel;os-nosdn-kvm-ha
-2017-05-08 02:14;fuel;os-nosdn-nofeature-noha
-2017-05-08 02:14;fuel;os-odl_l2-nofeature-noha
-2017-05-08 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-08 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-08 02:17;fuel;os-odl_l2-sfc-ha
-2017-05-08 02:17;fuel;os-nosdn-ovs-ha
-2017-05-08 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-09 02:09;compass;os-nosdn-nofeature-ha
-2017-05-09 02:09;fuel;os-nosdn-kvm-noha
-2017-05-09 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-09 02:11;fuel;os-nosdn-ovs-noha
-2017-05-09 02:12;fuel;os-odl_l2-sfc-ha
-2017-05-09 02:13;fuel;os-nosdn-kvm-ha
-2017-05-09 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-09 02:14;fuel;os-odl_l2-nofeature-noha
-2017-05-09 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-09 02:16;fuel;os-odl_l2-bgpvpn-noha
-2017-05-09 02:17;fuel;os-nosdn-ovs-ha
-2017-05-09 02:17;fuel;os-nosdn-nofeature-noha
-2017-05-09 02:18;fuel;os-nosdn-nofeature-ha
-2017-05-10 02:07;compass;os-nosdn-nofeature-ha
-2017-05-10 02:08;fuel;os-nosdn-kvm-noha
-2017-05-10 02:08;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-10 02:09;fuel;os-nosdn-ovs-ha
-2017-05-10 02:09;fuel;os-nosdn-ovs-noha
-2017-05-10 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-10 02:12;fuel;os-nosdn-kvm-ha
-2017-05-10 02:12;fuel;os-nosdn-nofeature-noha
-2017-05-10 02:13;fuel;os-odl_l2-nofeature-noha
-2017-05-10 02:14;fuel;os-odl_l2-sfc-ha
-2017-05-10 02:14;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-10 02:15;fuel;os-odl_l2-bgpvpn-noha
-2017-05-10 02:16;fuel;os-odl_l3-nofeature-noha
-2017-05-10 02:16;fuel;os-nosdn-nofeature-ha
-2017-05-11 02:06;compass;os-nosdn-nofeature-ha
-2017-05-11 02:07;fuel;os-nosdn-kvm-noha
-2017-05-11 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-11 02:08;fuel;os-nosdn-ovs-ha
-2017-05-11 02:08;fuel;os-nosdn-ovs-noha
-2017-05-11 02:09;fuel;os-odl_l3-nofeature-noha
-2017-05-11 02:11;fuel;os-nosdn-kvm-ha
-2017-05-11 02:11;fuel;os-nosdn-nofeature-noha
-2017-05-11 02:12;fuel;os-odl_l2-nofeature-noha
-2017-05-11 02:13;fuel;os-odl_l2-sfc-ha
-2017-05-11 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-11 02:14;fuel;os-odl_l2-bgpvpn-noha
-2017-05-11 02:15;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-11 02:16;fuel;os-nosdn-nofeature-ha
-2017-05-12 02:06;compass;os-nosdn-nofeature-ha
-2017-05-12 02:07;fuel;os-nosdn-kvm-noha
-2017-05-12 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-12 02:08;fuel;os-nosdn-ovs-noha
-2017-05-12 02:08;fuel;os-odl_l3-nofeature-noha
-2017-05-12 02:10;fuel;os-odl_l2-sfc-ha
-2017-05-12 02:10;fuel;os-nosdn-kvm-ha
-2017-05-12 02:11;fuel;os-nosdn-nofeature-noha
-2017-05-12 02:12;fuel;os-odl_l2-nofeature-noha
-2017-05-12 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-12 02:14;fuel;os-odl_l2-bgpvpn-noha
-2017-05-12 02:14;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-12 02:15;fuel;os-nosdn-ovs-ha
-2017-05-12 02:15;fuel;os-nosdn-nofeature-ha
-2017-05-13 02:05;compass;os-nosdn-nofeature-ha
-2017-05-13 02:06;fuel;os-nosdn-kvm-noha
-2017-05-13 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-13 02:07;fuel;os-nosdn-ovs-noha
-2017-05-13 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-13 02:09;fuel;os-nosdn-kvm-ha
-2017-05-13 02:10;fuel;os-nosdn-nofeature-noha
-2017-05-13 02:11;fuel;os-odl_l2-nofeature-noha
-2017-05-13 02:12;fuel;os-odl_l2-sfc-ha
-2017-05-13 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-13 02:13;fuel;os-odl_l2-bgpvpn-noha
-2017-05-13 02:14;fuel;os-odl_l3-nofeature-noha
-2017-05-13 02:15;fuel;os-nosdn-nofeature-ha
-2017-05-14 02:03;compass;os-nosdn-nofeature-ha
-2017-05-14 02:04;fuel;os-nosdn-kvm-noha
-2017-05-14 02:04;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-14 02:05;fuel;os-nosdn-ovs-noha
-2017-05-14 02:05;fuel;os-odl_l3-nofeature-noha
-2017-05-14 02:07;fuel;os-nosdn-kvm-ha
-2017-05-14 02:08;fuel;os-nosdn-nofeature-noha
-2017-05-14 02:09;fuel;os-odl_l2-nofeature-noha
-2017-05-14 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-14 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-14 02:11;fuel;os-odl_l2-bgpvpn-noha
-2017-05-14 02:12;fuel;os-odl_l2-sfc-ha
-2017-05-14 02:12;fuel;os-nosdn-nofeature-ha
-2017-05-15 01:56;compass;os-nosdn-nofeature-ha
-2017-05-15 01:57;fuel;os-nosdn-kvm-noha
-2017-05-15 01:57;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-15 01:58;fuel;os-nosdn-ovs-noha
-2017-05-15 02:00;fuel;os-odl_l2-sfc-ha
-2017-05-15 02:01;fuel;os-nosdn-nofeature-noha
-2017-05-15 02:02;fuel;os-odl_l2-nofeature-noha
-2017-05-15 02:03;fuel;os-odl_l3-nofeature-noha
-2017-05-15 02:03;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-15 02:04;fuel;os-odl_l2-bgpvpn-noha
-2017-05-16 01:52;fuel;os-nosdn-kvm-noha
-2017-05-16 01:54;fuel;os-nosdn-ovs-noha
-2017-05-16 02:00;fuel;os-odl_l2-bgpvpn-noha
-2017-05-25 02:04;fuel;os-odl_l2-nofeature-ha
-2017-05-26 02:00;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-26 02:00;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-26 02:03;fuel;os-nosdn-kvm-noha
-2017-05-26 02:04;fuel;os-odl_l2-nofeature-ha
-2017-05-26 02:04;fuel;os-nosdn-nofeature-noha
-2017-05-26 02:05;fuel;os-odl_l2-nofeature-noha
-2017-05-26 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-27 01:59;compass;os-nosdn-nofeature-ha
-2017-05-27 02:00;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-27 02:00;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-27 02:01;fuel;os-odl_l3-nofeature-noha
-2017-05-27 02:02;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-05-27 02:03;fuel;os-nosdn-kvm-noha
-2017-05-27 02:04;fuel;os-nosdn-nofeature-noha
-2017-05-27 02:05;fuel;os-odl_l2-nofeature-noha
-2017-05-27 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-27 02:08;fuel;os-nosdn-kvm-ha
-2017-05-28 02:00;fuel;os-nosdn-kvm-noha
-2017-05-28 02:00;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-28 02:01;fuel;os-nosdn-ovs-noha
-2017-05-28 02:01;fuel;os-odl_l3-nofeature-noha
-2017-05-28 02:02;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-05-28 02:03;fuel;os-nosdn-kvm-ha
-2017-05-28 02:04;fuel;os-nosdn-nofeature-noha
-2017-05-28 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-28 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-28 02:08;fuel;os-nosdn-nofeature-ha
-2017-05-29 02:00;fuel;os-nosdn-kvm-noha
-2017-05-29 02:01;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-29 02:02;fuel;os-nosdn-ovs-noha
-2017-05-29 02:02;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-29 02:03;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-05-29 02:04;fuel;os-nosdn-kvm-ha
-2017-05-29 02:05;fuel;os-nosdn-nofeature-noha
-2017-05-29 02:07;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-29 02:08;fuel;os-odl_l2-nofeature-ha
-2017-05-29 02:08;fuel;os-odl_l3-nofeature-noha
-2017-05-29 02:09;fuel;os-nosdn-nofeature-ha
-2017-05-30 02:02;fuel;os-nosdn-kvm-noha
-2017-05-30 02:03;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-30 02:03;fuel;os-nosdn-ovs-noha
-2017-05-30 02:04;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-30 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-05-30 02:06;fuel;os-nosdn-kvm-ha
-2017-05-30 02:07;fuel;os-nosdn-nofeature-noha
-2017-05-30 02:09;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-30 02:10;fuel;os-nosdn-ovs-ha
-2017-05-30 02:10;fuel;os-odl_l2-nofeature-ha
-2017-05-30 02:11;fuel;os-odl_l3-nofeature-noha
-2017-05-30 02:11;fuel;os-nosdn-nofeature-ha
-2017-05-31 02:03;fuel;os-nosdn-kvm-noha
-2017-05-31 02:04;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-05-31 02:04;fuel;os-nosdn-ovs-noha
-2017-05-31 02:05;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-05-31 02:05;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-05-31 02:07;fuel;os-nosdn-kvm-ha
-2017-05-31 02:08;fuel;os-nosdn-nofeature-noha
-2017-05-31 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-05-31 02:11;fuel;os-nosdn-ovs-ha
-2017-05-31 02:11;fuel;os-odl_l2-nofeature-ha
-2017-05-31 02:12;fuel;os-nosdn-nofeature-ha
-2017-06-01 02:04;fuel;os-nosdn-kvm-noha
-2017-06-01 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-01 02:05;fuel;os-nosdn-ovs-noha
-2017-06-01 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-01 02:06;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-01 02:08;fuel;os-nosdn-kvm-ha
-2017-06-01 02:09;fuel;os-nosdn-nofeature-noha
-2017-06-01 02:10;fuel;os-odl_l2-sfc-ha
-2017-06-01 02:11;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-06-01 02:11;fuel;os-nosdn-ovs-ha
-2017-06-01 02:12;fuel;os-odl_l2-nofeature-ha
-2017-06-01 02:13;fuel;os-nosdn-nofeature-ha
-2017-06-02 02:04;fuel;os-nosdn-kvm-noha
-2017-06-02 02:05;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-02 02:05;fuel;os-nosdn-ovs-noha
-2017-06-02 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-02 02:08;fuel;os-nosdn-kvm-ha
-2017-06-02 02:09;fuel;os-nosdn-nofeature-noha
-2017-06-02 02:10;fuel;os-odl_l2-sfc-ha
-2017-06-02 02:11;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-06-02 02:11;fuel;os-nosdn-ovs-ha
-2017-06-02 02:12;fuel;os-odl_l2-nofeature-ha
-2017-06-03 02:06;fuel;os-nosdn-kvm-noha
-2017-06-03 02:06;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-03 02:07;fuel;os-nosdn-ovs-noha
-2017-06-03 02:07;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-03 02:10;fuel;os-nosdn-kvm-ha
-2017-06-03 02:10;fuel;os-nosdn-nofeature-noha
-2017-06-03 02:12;fuel;os-odl_l2-sfc-ha
-2017-06-03 02:12;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-06-03 02:13;fuel;os-nosdn-ovs-ha
-2017-06-03 02:13;fuel;os-odl_l2-nofeature-ha
-2017-06-04 02:10;fuel;os-nosdn-kvm-noha
-2017-06-04 02:11;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-04 02:11;fuel;os-nosdn-ovs-ha
-2017-06-04 02:12;fuel;os-nosdn-ovs-noha
-2017-06-04 02:14;fuel;os-nosdn-kvm-ha
-2017-06-04 02:14;fuel;os-nosdn-nofeature-noha
-2017-06-04 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-04 02:16;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-06-04 02:17;fuel;os-odl_l2-sfc-ha
-2017-06-04 02:18;fuel;os-odl_l2-nofeature-ha
-2017-06-04 02:18;fuel;os-odl_l3-nofeature-noha
-2017-06-04 02:19;fuel;os-nosdn-nofeature-ha
-2017-06-05 02:10;compass;os-nosdn-nofeature-ha
-2017-06-05 02:10;fuel;os-nosdn-kvm-noha
-2017-06-05 02:11;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-05 02:12;fuel;os-nosdn-ovs-ha
-2017-06-05 02:12;fuel;os-nosdn-ovs-noha
-2017-06-05 02:13;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-05 02:15;fuel;os-nosdn-kvm-ha
-2017-06-05 02:16;fuel;os-nosdn-nofeature-noha
-2017-06-05 02:19;fuel;os-odl_l2-nofeature-ha
-2017-06-05 02:19;fuel;os-nosdn-nofeature-ha
-2017-06-06 02:10;compass;os-nosdn-nofeature-ha
-2017-06-06 02:11;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-06 02:12;fuel;os-nosdn-kvm-noha
-2017-06-06 02:12;fuel;os-nosdn-ovs-noha
-2017-06-06 02:15;fuel;os-nosdn-kvm-ha
-2017-06-06 02:15;fuel;os-nosdn-nofeature-noha
-2017-06-06 02:18;fuel;os-nosdn-ovs-ha
-2017-06-06 02:19;fuel;os-nosdn-nofeature-ha
-2017-06-07 02:10;compass;os-nosdn-nofeature-ha
-2017-06-07 02:11;fuel;os-nosdn-kvm-noha
-2017-06-07 02:11;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-07 02:12;fuel;os-nosdn-ovs-ha
-2017-06-07 02:12;fuel;os-nosdn-ovs-noha
-2017-06-07 02:13;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-07 02:15;fuel;os-nosdn-kvm-ha
-2017-06-07 02:15;fuel;os-nosdn-nofeature-noha
-2017-06-07 02:20;fuel;os-nosdn-nofeature-ha
-2017-06-08 02:10;compass;os-nosdn-nofeature-ha
-2017-06-08 02:11;fuel;os-nosdn-kvm-noha
-2017-06-08 02:11;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-08 02:12;fuel;os-nosdn-ovs-noha
-2017-06-08 02:13;fuel;os-nosdn-nofeature-noha
-2017-06-08 02:13;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-08 02:15;fuel;os-nosdn-kvm-ha
-2017-06-08 02:19;fuel;os-nosdn-ovs-ha
-2017-06-08 02:19;fuel;os-nosdn-nofeature-ha
-2017-06-09 02:12;compass;os-nosdn-nofeature-ha
-2017-06-09 02:12;fuel;os-nosdn-kvm-noha
-2017-06-09 02:13;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-09 02:14;fuel;os-nosdn-ovs-ha
-2017-06-09 02:14;fuel;os-nosdn-ovs-noha
-2017-06-09 02:15;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-09 02:17;fuel;os-nosdn-kvm-ha
-2017-06-09 02:17;fuel;os-nosdn-nofeature-noha
-2017-06-09 02:18;fuel;os-odl_l3-nofeature-noha
-2017-06-09 02:19;fuel;os-odl_l2-sfc-ha
-2017-06-09 02:19;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-06-09 02:21;fuel;os-nosdn-nofeature-ha
-2017-06-10 02:11;compass;os-nosdn-nofeature-ha
-2017-06-10 02:11;fuel;os-nosdn-kvm-noha
-2017-06-10 02:12;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-10 02:12;fuel;os-nosdn-ovs-ha
-2017-06-10 02:14;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-10 02:15;fuel;os-nosdn-kvm-ha
-2017-06-10 02:16;fuel;os-nosdn-nofeature-noha
-2017-06-10 02:17;fuel;os-odl_l2-sfc-ha
-2017-06-10 02:19;fuel;os-odl_l3-nofeature-noha
-2017-06-10 02:20;fuel;os-nosdn-nofeature-ha
-2017-06-11 02:11;compass;os-nosdn-nofeature-ha
-2017-06-11 02:11;fuel;os-nosdn-kvm-noha
-2017-06-11 02:12;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-11 02:12;fuel;os-nosdn-ovs-ha
-2017-06-11 02:14;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-11 02:15;fuel;os-nosdn-kvm-ha
-2017-06-11 02:16;fuel;os-nosdn-nofeature-noha
-2017-06-11 02:19;fuel;os-odl_l2-nofeature-ha
-2017-06-11 02:19;fuel;os-odl_l3-nofeature-noha
-2017-06-11 02:20;fuel;os-nosdn-nofeature-ha
-2017-06-12 02:11;compass;os-nosdn-nofeature-ha
-2017-06-12 02:11;fuel;os-nosdn-kvm-noha
-2017-06-12 02:12;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-12 02:12;fuel;os-nosdn-ovs-ha
-2017-06-12 02:14;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-12 02:16;fuel;os-nosdn-kvm-ha
-2017-06-12 02:16;fuel;os-nosdn-nofeature-noha
-2017-06-12 02:17;fuel;os-odl_l3-nofeature-noha
-2017-06-12 02:19;fuel;os-odl_l2-bgpvpn-noha
-2017-06-12 02:19;fuel;os-odl_l2-nofeature-ha
-2017-06-13 02:10;fuel;os-nosdn-kvm-noha
-2017-06-13 02:10;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-13 02:11;fuel;os-nosdn-ovs-ha
-2017-06-13 02:12;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-13 02:14;fuel;os-nosdn-kvm-ha
-2017-06-13 02:14;fuel;os-nosdn-nofeature-noha
-2017-06-13 02:17;fuel;os-odl_l2-bgpvpn-noha
-2017-06-13 02:18;fuel;os-odl_l3-nofeature-noha
-2017-06-14 02:05;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-14 02:06;fuel;os-nosdn-ovs-ha
-2017-06-14 02:06;fuel;os-nosdn-ovs-noha
-2017-06-14 02:07;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-14 02:08;fuel;os-odl_l2-sfc-ha
-2017-06-14 02:09;fuel;os-nosdn-kvm-ha
-2017-06-14 02:09;fuel;os-nosdn-nofeature-noha
-2017-06-14 02:12;fuel;os-odl_l2-bgpvpn-noha
-2017-06-14 02:13;fuel;os-odl_l3-nofeature-noha
-2017-06-15 02:04;compass;os-nosdn-nofeature-ha
-2017-06-15 02:06;fuel;os-nosdn-ovs-ha
-2017-06-15 02:06;fuel;os-nosdn-ovs-noha
-2017-06-15 02:07;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-15 02:09;fuel;os-nosdn-kvm-ha
-2017-06-15 02:09;fuel;os-nosdn-nofeature-noha
-2017-06-15 02:12;fuel;os-odl_l2-bgpvpn-noha
-2017-06-15 02:12;fuel;os-odl_l2-sfc-ha
-2017-06-15 02:13;fuel;os-nosdn-nofeature-ha
-2017-06-16 02:02;compass;os-nosdn-nofeature-ha
-2017-06-16 02:03;fuel;os-nosdn-ovs-ha
-2017-06-16 02:04;fuel;os-nosdn-ovs-noha
-2017-06-16 02:05;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-16 02:07;fuel;os-nosdn-nofeature-noha
-2017-06-16 02:08;fuel;os-odl_l2-sfc-ha
-2017-06-16 02:09;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-16 02:09;fuel;os-odl_l2-bgpvpn-noha
-2017-06-16 02:11;fuel;os-nosdn-nofeature-ha
-2017-06-17 02:02;fuel;os-nosdn-ovs-ha
-2017-06-17 02:03;fuel;os-nosdn-ovs-noha
-2017-06-17 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-17 02:08;fuel;os-odl_l2-sfc-ha
-2017-06-17 02:08;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-17 02:09;fuel;os-odl_l2-bgpvpn-noha
-2017-06-17 02:10;fuel;os-nosdn-nofeature-noha
-2017-06-18 02:02;fuel;os-nosdn-ovs-ha
-2017-06-18 02:03;fuel;os-nosdn-ovs-noha
-2017-06-18 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-18 02:06;fuel;os-nosdn-nofeature-noha
-2017-06-18 02:07;fuel;os-odl_l2-sfc-ha
-2017-06-18 02:08;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-18 02:09;fuel;os-odl_l2-nofeature-ha
-2017-06-19 02:01;compass;os-nosdn-nofeature-ha
-2017-06-19 02:02;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-19 02:02;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-19 02:03;fuel;os-nosdn-ovs-ha
-2017-06-19 02:03;fuel;os-nosdn-ovs-noha
-2017-06-19 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-19 02:06;fuel;os-nosdn-nofeature-noha
-2017-06-19 02:08;fuel;os-odl_l2-sfc-ha
-2017-06-19 02:09;fuel;os-odl_l2-nofeature-ha
-2017-06-19 02:10;fuel;os-odl_l3-nofeature-noha
-2017-06-20 02:01;compass;os-nosdn-nofeature-ha
-2017-06-20 02:02;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-20 02:02;fuel;os-nosdn-ovs-ha
-2017-06-20 02:03;fuel;os-nosdn-kvm_ovs_dpdk_bar-noha
-2017-06-20 02:03;fuel;os-nosdn-ovs-noha
-2017-06-20 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-20 02:05;fuel;os-nosdn-kvm-ha
-2017-06-20 02:06;fuel;os-nosdn-nofeature-noha
-2017-06-20 02:07;fuel;os-odl_l2-sfc-ha
-2017-06-20 02:08;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-20 02:09;fuel;os-odl_l2-nofeature-ha
-2017-06-20 02:10;fuel;os-odl_l3-nofeature-noha
-2017-06-21 02:01;compass;os-nosdn-nofeature-ha
-2017-06-21 02:02;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-21 02:02;fuel;os-nosdn-ovs-ha
-2017-06-21 02:03;fuel;os-nosdn-ovs-noha
-2017-06-21 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-21 02:05;fuel;os-nosdn-kvm-ha
-2017-06-21 02:06;fuel;os-nosdn-nofeature-noha
-2017-06-21 02:07;fuel;os-odl_l2-sfc-ha
-2017-06-21 02:08;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-21 02:09;fuel;os-odl_l3-nofeature-noha
-2017-06-21 02:10;fuel;os-nosdn-nofeature-ha
-2017-06-22 02:02;compass;os-nosdn-nofeature-ha
-2017-06-22 02:02;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-22 02:03;fuel;os-nosdn-ovs-noha
-2017-06-22 02:04;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-22 02:06;fuel;os-nosdn-kvm-ha
-2017-06-22 02:08;fuel;os-odl_l2-sfc-ha
-2017-06-22 02:08;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-22 02:09;fuel;os-nosdn-ovs-ha
-2017-06-22 02:10;fuel;os-nosdn-nofeature-noha
-2017-06-22 02:10;fuel;os-nosdn-nofeature-ha
-2017-06-23 02:01;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-23 02:02;fuel;os-nosdn-ovs-noha
-2017-06-23 02:03;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-23 02:05;fuel;os-nosdn-kvm-ha
-2017-06-23 02:05;fuel;os-nosdn-nofeature-noha
-2017-06-23 02:07;fuel;os-odl_l2-sfc-ha
-2017-06-23 02:07;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-23 02:09;fuel;os-nosdn-nofeature-ha
-2017-06-24 02:00;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-24 02:01;fuel;os-nosdn-ovs-noha
-2017-06-24 02:01;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-24 02:03;fuel;os-nosdn-kvm-ha
-2017-06-25 02:04;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-25 02:05;fuel;os-nosdn-ovs-noha
-2017-06-25 02:06;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-25 02:07;fuel;os-nosdn-kvm-ha
-2017-06-25 02:08;fuel;os-odl_l2-nofeature-noha
-2017-06-25 02:10;fuel;os-nosdn-kvm_ovs_dpdk-noha
-2017-06-25 02:11;fuel;os-odl_l2-nofeature-ha
-2017-06-25 02:11;fuel;os-odl_l3-nofeature-noha
-2017-06-26 02:02;compass;os-nosdn-nofeature-ha
-2017-06-26 02:03;fuel;os-nosdn-kvm-noha
-2017-06-26 02:04;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-26 02:05;fuel;os-nosdn-ovs-noha
-2017-06-26 02:06;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-06-26 02:10;fuel;os-odl_l2-nofeature-ha
-2017-06-26 02:11;fuel;os-odl_l3-nofeature-noha
-2017-06-26 02:11;fuel;os-nosdn-nofeature-ha
-2017-06-26 12:31;apex;os-nosdn-kvm-noha
-2017-06-27 07:13;compass;os-nosdn-nofeature-ha
-2017-06-27 07:13;fuel;os-nosdn-kvm-noha
-2017-06-27 07:14;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-27 07:15;fuel;os-nosdn-ovs-noha
-2017-06-27 07:18;fuel;os-nosdn-kvm-ha
-2017-06-27 07:18;fuel;os-odl_l3-nofeature-noha
-2017-06-27 07:21;fuel;os-odl_l2-nofeature-ha
-2017-06-27 07:59;apex;os-nosdn-nofeature-noha
-2017-06-27 08:05;compass;os-nosdn-nofeature-ha
-2017-06-27 08:05;fuel;os-nosdn-kvm-noha
-2017-06-27 08:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-27 08:07;fuel;os-nosdn-ovs-noha
-2017-06-27 08:09;fuel;os-nosdn-kvm-ha
-2017-06-27 08:10;fuel;os-odl_l3-nofeature-noha
-2017-06-27 08:13;fuel;os-odl_l2-nofeature-ha
-2017-06-27 08:31;apex;os-nosdn-nofeature-noha
-2017-06-27 08:38;compass;os-nosdn-nofeature-ha
-2017-06-27 08:39;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-06-27 08:40;fuel;os-nosdn-kvm-noha
-2017-06-27 08:40;fuel;os-nosdn-ovs-noha
-2017-06-27 08:44;fuel;os-nosdn-kvm-ha
-2017-06-27 08:45;fuel;os-odl_l3-nofeature-noha
-2017-06-27 08:47;fuel;os-odl_l2-nofeature-ha
-2017-07-07 15:15;fuel;os-nosdn-kvm-noha
-2017-07-07 15:16;fuel;os-nosdn-ovs-noha
-2017-07-07 15:19;fuel;os-nosdn-kvm-ha
-2017-07-07 15:23;fuel;os-odl_l2-nofeature-ha
-2017-07-07 15:25;fuel;os-nosdn-ovs-ha
-2017-07-07 15:26;fuel;os-nosdn-nofeature-noha
-2017-07-07 15:26;fuel;os-nosdn-nofeature-ha
-2017-07-08 01:59;apex;os-nosdn-nofeature-ha
-2017-07-08 02:03;fuel;os-nosdn-kvm-noha
-2017-07-08 02:04;fuel;os-nosdn-ovs-ha
-2017-07-08 02:05;fuel;os-nosdn-ovs-noha
-2017-07-08 02:08;fuel;os-nosdn-kvm-ha
-2017-07-08 02:08;fuel;os-nosdn-nofeature-noha
-2017-07-08 02:12;fuel;os-odl_l2-nofeature-ha
-2017-07-08 02:13;fuel;os-nosdn-nofeature-ha
-2017-07-09 02:01;apex;os-nosdn-nofeature-ha
-2017-07-09 02:05;fuel;os-nosdn-kvm-noha
-2017-07-09 02:06;fuel;os-nosdn-ovs-noha
-2017-07-09 02:07;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-07-09 02:09;fuel;os-nosdn-kvm-ha
-2017-07-09 02:09;fuel;os-odl_l2-nofeature-ha
-2017-07-09 02:10;fuel;os-nosdn-nofeature-noha
-2017-07-09 02:13;fuel;os-nosdn-ovs-ha
-2017-07-09 02:14;fuel;os-odl_l3-nofeature-noha
-2017-07-09 02:14;fuel;os-nosdn-nofeature-ha
-2017-07-10 02:01;apex;os-nosdn-nofeature-ha
-2017-07-10 02:04;fuel;os-nosdn-kvm-noha
-2017-07-10 02:06;fuel;os-nosdn-ovs-noha
-2017-07-10 02:06;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-07-10 02:09;fuel;os-nosdn-kvm-ha
-2017-07-10 02:09;fuel;os-nosdn-nofeature-noha
-2017-07-10 02:11;fuel;os-odl_l3-nofeature-ha
-2017-07-10 02:12;fuel;os-odl_l2-nofeature-ha
-2017-07-10 02:13;fuel;os-nosdn-ovs-ha
-2017-07-10 02:13;fuel;os-odl_l3-nofeature-noha
-2017-07-10 02:14;fuel;os-nosdn-nofeature-ha
-2017-07-12 02:04;fuel;os-nosdn-kvm-noha
-2017-07-12 02:04;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-07-12 02:05;fuel;os-nosdn-ovs-ha
-2017-07-12 02:06;fuel;os-nosdn-ovs-noha
-2017-07-12 02:06;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-07-12 02:08;fuel;os-nosdn-kvm-ha
-2017-07-12 02:09;fuel;os-nosdn-nofeature-noha
-2017-07-12 02:10;fuel;os-odl_l3-nofeature-noha
-2017-07-12 02:12;fuel;os-odl_l2-sfc-ha
-2017-07-12 02:13;fuel;os-odl_l2-nofeature-ha
-2017-07-12 02:13;fuel;os-nosdn-nofeature-ha
-2017-07-12 02:15;joid;os-nosdn-nofeature-ha
-2017-07-12 12:20;apex;os-nosdn-fdio-ha
-2017-07-12 12:30;fuel;os-nosdn-kvm-noha
-2017-07-12 12:31;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-07-12 12:31;fuel;os-nosdn-ovs-ha
-2017-07-12 12:32;fuel;os-nosdn-ovs-noha
-2017-07-12 12:33;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-07-12 12:35;fuel;os-nosdn-kvm-ha
-2017-07-12 12:35;fuel;os-nosdn-nofeature-noha
-2017-07-12 12:37;fuel;os-odl_l3-nofeature-noha
-2017-07-12 12:39;fuel;os-odl_l2-sfc-ha
-2017-07-12 12:39;fuel;os-odl_l2-nofeature-ha
-2017-07-12 12:40;fuel;os-nosdn-nofeature-ha
-2017-07-12 12:42;joid;os-nosdn-nofeature-ha
-2017-07-13 02:05;fuel;os-nosdn-kvm-noha
-2017-07-13 02:06;fuel;os-nosdn-kvm_ovs_dpdk_bar-ha
-2017-07-13 02:06;fuel;os-nosdn-ovs-ha
-2017-07-13 02:08;fuel;os-nosdn-ovs-noha
-2017-07-13 02:08;fuel;os-nosdn-kvm_ovs_dpdk-ha
-2017-07-13 02:10;fuel;os-nosdn-kvm-ha
-2017-07-13 02:10;fuel;os-nosdn-nofeature-noha
-2017-07-13 02:11;fuel;os-odl_l2-nofeature-noha
-2017-07-13 02:12;fuel;os-odl_l3-nofeature-noha
-2017-07-13 02:14;fuel;os-odl_l2-sfc-ha
-2017-07-13 02:14;fuel;os-odl_l2-nofeature-ha
-2017-07-13 02:15;fuel;os-nosdn-nofeature-ha
-2017-07-13 02:17;joid;os-nosdn-nofeature-ha
diff --git a/docs/results/euphrates/5.0/apex.html b/docs/results/euphrates/5.0/apex.html
deleted file mode 100644
index 2a75054c..00000000
--- a/docs/results/euphrates/5.0/apex.html
+++ /dev/null
@@ -1,1464 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');var gaugeScenario13 = gauge('#gaugeScenario13');var gaugeScenario14 = gauge('#gaugeScenario14');var gaugeScenario15 = gauge('#gaugeScenario15');var gaugeScenario16 = gauge('#gaugeScenario16');var gaugeScenario17 = gauge('#gaugeScenario17');var gaugeScenario18 = gauge('#gaugeScenario18');var gaugeScenario19 = gauge('#gaugeScenario19');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(22.2222222222);gaugeScenario2.update(50.0);gaugeScenario3.update(72.7272727273);gaugeScenario4.update(26.6666666667);gaugeScenario5.update(72.7272727273);gaugeScenario6.update(22.2222222222);gaugeScenario7.update(33.3333333333);gaugeScenario8.update(22.2222222222);gaugeScenario9.update(88.8888888889);gaugeScenario10.update(90.0);gaugeScenario11.update(22.2222222222);gaugeScenario12.update(66.6666666667);gaugeScenario13.update(90.0);gaugeScenario14.update(18.1818181818);gaugeScenario15.update(100.0);gaugeScenario16.update(100.0);gaugeScenario17.update(96.2962962963);gaugeScenario18.update(100.0);gaugeScenario19.update(96.2962962963);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-kvm_ovs_dpdk-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-fdio-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl-fdio-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl-fdio-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl-sfc-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl-sfc-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-odl-fdio-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-odl-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-kvm_ovs_dpdk-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm_ovs_dpdk-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-ovn-nofeature-noha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-ovn-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-nosdn-ovs_dpdk-ha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs_dpdk-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-odl-bgpvpn-ha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-odl-bgpvpn-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-odl-nofeature-noha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-odl-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-nosdn-ovs_dpdk-noha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs_dpdk-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-nosdn-fdio-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-fdio-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************// for scenario os-odl-nofeature-ha
- // Filter results
- var trend13 = data.filter(function(row) {
- return row["scenario"]=="os-odl-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend13.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg13",trend13)
- // ****************************************// for scenario os-odl-fdio_dvr-noha
- // Filter results
- var trend14 = data.filter(function(row) {
- return row["scenario"]=="os-odl-fdio_dvr-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend14.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg14",trend14)
- // ****************************************// for scenario os-nosdn-bar-noha
- // Filter results
- var trend15 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-bar-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend15.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg15",trend15)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend16 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend16.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg16",trend16)
- // ****************************************// for scenario os-nosdn-bar-ha
- // Filter results
- var trend17 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-bar-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend17.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg17",trend17)
- // ****************************************// for scenario os-nosdn-calipso-noha
- // Filter results
- var trend18 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-calipso-noha" && row["installer"]=="apex";
- })
- // Parse the date
- trend18.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg18",trend18)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend19 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="apex";
- })
- // Parse the date
- trend19.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg19",trend19)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (euphrates, 2017-10-20 08:41)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./daisy.html">Daisy</a></li>
- <li><a href="./fuel@x86.html">Fuel@x86</a></li>
- <li><a href="./fuel@aarch64.html">Fuel@aarch64</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>apex</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (euphrates) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">HA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl-fdio-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>24/33</td>
- <td>12</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/130/console>os-nosdn-kvm_ovs_dpdk-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>4/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/108/console>os-nosdn-ovs_dpdk-ha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>4/18</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/113/console>os-odl-bgpvpn-ha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>16/18</td>
- <td>2</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/139/console>os-nosdn-fdio-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>12/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/135/console>os-odl-nofeature-ha</a></td>
- <td><div id="gaugeScenario13"></div></td>
- <td><div id="trend_svg13"></div></td>
- <td>18/20</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/121/console>os-nosdn-bar-ha</a></td>
- <td><div id="gaugeScenario17"></div></td>
- <td><div id="trend_svg17"></div></td>
- <td>26/27</td>
- <td>4</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/134/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario19"></div></td>
- <td><div id="trend_svg19"></div></td>
- <td>26/27</td>
- <td>4</td>
- </tr>
- <br>
- </table>
- <br>
- <table class="table">
- <tr>
- <th width="40%">NOHA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/138/console>os-nosdn-kvm_ovs_dpdk-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>4/18</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/115/console>os-nosdn-fdio-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>9/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/137/console>os-odl-fdio-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>24/33</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/131/console>os-odl-sfc-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>8/30</td>
- <td>4</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/114/console>os-ovn-nofeature-noha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>6/18</td>
- <td>2</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/136/console>os-odl-nofeature-noha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>18/20</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/123/console>os-nosdn-ovs_dpdk-noha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>4/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=http://testresultS.opnfv.org/reporting>os-odl-fdio_dvr-noha</a></td>
- <td><div id="gaugeScenario14"></div></td>
- <td><div id="trend_svg14"></div></td>
- <td>6/33</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/122/console>os-nosdn-bar-noha</a></td>
- <td><div id="gaugeScenario15"></div></td>
- <td><div id="trend_svg15"></div></td>
- <td>18/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/133/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario16"></div></td>
- <td><div id="trend_svg16"></div></td>
- <td>18/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-apex-baremetal-daily-euphrates/128/console>os-nosdn-calipso-noha</a></td>
- <td><div id="gaugeScenario18"></div></td>
- <td><div id="trend_svg18"></div></td>
- <td>18/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr>
- </table>
-
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-fdio-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-sfc-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- SFC
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm_ovs_dpdk-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ovn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs_dpdk-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-bgpvpn-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- bgpvpn
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs_dpdk-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-fdio-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-fdio_dvr-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- FDS
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-bar-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th><th>
- Barometer
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-bar-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th><th>
- Barometer
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-calipso-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Doctor
- *
- </th><th>
- Domino
- *
- </th><th>
- vIMS (Cloudify)
- *
- </th><th>
- OpenIMS (OpenBaton)
- *
- </th><th>
- vIMS (OpenBaton)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-apex.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_apex.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/euphrates/5.0/compass.html b/docs/results/euphrates/5.0/compass.html
deleted file mode 100644
index d62ba4d2..00000000
--- a/docs/results/euphrates/5.0/compass.html
+++ /dev/null
@@ -1,943 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');var gaugeScenario8 = gauge('#gaugeScenario8');var gaugeScenario9 = gauge('#gaugeScenario9');var gaugeScenario10 = gauge('#gaugeScenario10');var gaugeScenario11 = gauge('#gaugeScenario11');var gaugeScenario12 = gauge('#gaugeScenario12');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(96.2962962963);gaugeScenario2.update(66.6666666667);gaugeScenario3.update(80.0);gaugeScenario4.update(77.7777777778);gaugeScenario5.update(96.2962962963);gaugeScenario6.update(86.6666666667);gaugeScenario7.update(96.2962962963);gaugeScenario8.update(11.1111111111);gaugeScenario9.update(11.1111111111);gaugeScenario10.update(77.7777777778);gaugeScenario11.update(86.6666666667);gaugeScenario12.update(88.8888888889);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-kvm-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-noha" && row["installer"]=="compass";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-odl-sfc-noha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-odl-sfc-noha" && row["installer"]=="compass";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl_l2-moon-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-moon-noha" && row["installer"]=="compass";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-odl_l3-nofeature-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-kvm-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-kvm-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-odl-sfc-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-odl-sfc-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="compass";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************// for scenario os-nosdn-ovs_dpdk-ha
- // Filter results
- var trend8 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs_dpdk-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend8.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg8",trend8)
- // ****************************************// for scenario os-nosdn-ovs_dpdk-noha
- // Filter results
- var trend9 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs_dpdk-noha" && row["installer"]=="compass";
- })
- // Parse the date
- trend9.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg9",trend9)
- // ****************************************// for scenario os-odl_l3-nofeature-noha
- // Filter results
- var trend10 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l3-nofeature-noha" && row["installer"]=="compass";
- })
- // Parse the date
- trend10.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg10",trend10)
- // ****************************************// for scenario os-odl_l2-moon-ha
- // Filter results
- var trend11 = data.filter(function(row) {
- return row["scenario"]=="os-odl_l2-moon-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend11.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg11",trend11)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend12 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="compass";
- })
- // Parse the date
- trend12.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg12",trend12)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (euphrates, 2017-10-20 08:41)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./daisy.html">Daisy</a></li>
- <li><a href="./fuel@x86.html">Fuel@x86</a></li>
- <li><a href="./fuel@aarch64.html">Fuel@aarch64</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>compass</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (euphrates) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">HA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/81/console>os-odl_l3-nofeature-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>21/27</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/84/console>os-nosdn-kvm-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>26/27</td>
- <td>9</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/87/console>os-odl-sfc-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>26/30</td>
- <td>9</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/72/console>os-nosdn-ovs_dpdk-ha</a></td>
- <td><div id="gaugeScenario8"></div></td>
- <td><div id="trend_svg8"></div></td>
- <td>2/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-baremetal-daily-euphrates/24/console>os-odl_l2-moon-ha</a></td>
- <td><div id="gaugeScenario11"></div></td>
- <td><div id="trend_svg11"></div></td>
- <td>26/30</td>
- <td>8</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/78/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario12"></div></td>
- <td><div id="trend_svg12"></div></td>
- <td>24/27</td>
- <td>9</td>
- </tr>
- <br>
- </table>
- <br>
- <table class="table">
- <tr>
- <th width="40%">NOHA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/83/console>os-nosdn-kvm-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>26/27</td>
- <td>7</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/77/console>os-odl-sfc-noha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>20/30</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/79/console>os-odl_l2-moon-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>24/30</td>
- <td>4</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/86/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>26/27</td>
- <td>6</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/82/console>os-nosdn-ovs_dpdk-noha</a></td>
- <td><div id="gaugeScenario9"></div></td>
- <td><div id="trend_svg9"></div></td>
- <td>3/27</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-compass-virtual-daily-euphrates/55/console>os-odl_l3-nofeature-noha</a></td>
- <td><div id="gaugeScenario10"></div></td>
- <td><div id="trend_svg10"></div></td>
- <td>14/18</td>
- <td>3</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr>
- </table>
-
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-sfc-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- SFC
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-moon-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-kvm-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-sfc-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- SFC
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs_dpdk-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs_dpdk-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l3-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl_l2-moon-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th><th>
- vIMS (Cloudify)
- *
- </th><th>
- OpenIMS (OpenBaton)
- *
- </th><th>
- vIMS (OpenBaton)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-compass.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_compass.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/euphrates/5.0/daisy.html b/docs/results/euphrates/5.0/daisy.html
deleted file mode 100644
index 6de8d089..00000000
--- a/docs/results/euphrates/5.0/daisy.html
+++ /dev/null
@@ -1,254 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(96.2962962963);gaugeScenario2.update(83.3333333333);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="daisy";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-odl-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-odl-nofeature-ha" && row["installer"]=="daisy";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (euphrates, 2017-10-20 08:41)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./daisy.html">Daisy</a></li>
- <li><a href="./fuel@x86.html">Fuel@x86</a></li>
- <li><a href="./fuel@aarch64.html">Fuel@aarch64</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>daisy</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (euphrates) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">HA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-daisy-baremetal-daily-euphrates/46/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>26/27</td>
- <td>11</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-daisy-virtual-daily-euphrates/23/console>os-odl-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>25/30</td>
- <td>13</td>
- </tr>
- <br>
- </table>
- <br>
- <table class="table">
- <tr>
- <th width="40%">NOHA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr>
- </table>
-
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th><th>
- vIMS (Cloudify)
- *
- </th><th>
- OpenIMS (OpenBaton)
- *
- </th><th>
- vIMS (OpenBaton)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-daisy.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_daisy.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/euphrates/5.0/fuel@aarch64.html b/docs/results/euphrates/5.0/fuel@aarch64.html
deleted file mode 100644
index c8a2f2db..00000000
--- a/docs/results/euphrates/5.0/fuel@aarch64.html
+++ /dev/null
@@ -1,334 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(11.1111111111);gaugeScenario2.update(85.1851851852);gaugeScenario3.update(85.0);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="fuel@aarch64";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="fuel@aarch64";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl-nofeature-ha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl-nofeature-ha" && row["installer"]=="fuel@aarch64";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (euphrates, 2017-10-20 08:41)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./daisy.html">Daisy</a></li>
- <li><a href="./fuel@x86.html">Fuel@x86</a></li>
- <li><a href="./fuel@aarch64.html">Fuel@aarch64</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>fuel@aarch64</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (euphrates) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">HA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-armband-baremetal-arm-daily-euphrates/31/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>23/27</td>
- <td>4</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-armband-baremetal-arm-daily-euphrates/30/console>os-odl-nofeature-ha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>23/27</td>
- <td>3</td>
- </tr>
- <br>
- </table>
- <br>
- <table class="table">
- <tr>
- <th width="40%">NOHA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-armband-virtual-arm-daily-euphrates/1/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>1/9</td>
- <td>1</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr>
- </table>
-
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th><th>
- vIMS (Cloudify)
- *
- </th><th>
- OpenIMS (OpenBaton)
- *
- </th><th>
- vIMS (OpenBaton)
- *
- </th><th>
- vyos (Cloudify)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-fuel@aarch64.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_fuel@aarch64.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/euphrates/5.0/fuel@x86.html b/docs/results/euphrates/5.0/fuel@x86.html
deleted file mode 100644
index 3b918dd7..00000000
--- a/docs/results/euphrates/5.0/fuel@x86.html
+++ /dev/null
@@ -1,550 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(92.5925925926);gaugeScenario2.update(96.6666666667);gaugeScenario3.update(100.0);gaugeScenario4.update(100.0);gaugeScenario5.update(44.4444444444);gaugeScenario6.update(83.3333333333);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-nosdn-ovs-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-noha" && row["installer"]=="fuel@x86";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-odl-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-odl-nofeature-ha" && row["installer"]=="fuel@x86";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-odl-nofeature-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-odl-nofeature-noha" && row["installer"]=="fuel@x86";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="fuel@x86";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-ovs-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-ovs-ha" && row["installer"]=="fuel@x86";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="fuel@x86";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (euphrates, 2017-10-20 08:41)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./daisy.html">Daisy</a></li>
- <li><a href="./fuel@x86.html">Fuel@x86</a></li>
- <li><a href="./fuel@aarch64.html">Fuel@aarch64</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>fuel@x86</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (euphrates) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">HA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-euphrates/40/console>os-odl-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>29/30</td>
- <td>6</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-euphrates/38/console>os-nosdn-ovs-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>12/27</td>
- <td>6</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-baremetal-daily-euphrates/37/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>15/18</td>
- <td>2</td>
- </tr>
- <br>
- </table>
- <br>
- <table class="table">
- <tr>
- <th width="40%">NOHA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-euphrates/90/console>os-nosdn-ovs-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>25/27</td>
- <td>10</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-euphrates/91/console>os-odl-nofeature-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>30/30</td>
- <td>10</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-daily-euphrates/89/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>27/27</td>
- <td>9</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr>
- </table>
-
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-odl-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- ODL
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-ovs-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th><th>
- vIMS (Cloudify)
- *
- </th><th>
- OpenIMS (OpenBaton)
- *
- </th><th>
- vIMS (OpenBaton)
- *
- </th><th>
- vyos (Cloudify)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-fuel@x86.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_fuel@x86.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/euphrates/5.0/joid.html b/docs/results/euphrates/5.0/joid.html
deleted file mode 100644
index d58efcca..00000000
--- a/docs/results/euphrates/5.0/joid.html
+++ /dev/null
@@ -1,576 +0,0 @@
- <html>
- <head>
- <meta charset="utf-8">
- <!-- Bootstrap core CSS -->
- <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../js/default.css" rel="stylesheet">
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
- <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../js/gauge.js"></script>
- <script type="text/javascript" src="../../js/trend.js"></script>
- <script>
- function onDocumentReady() {
- // Gauge management
- var gaugeScenario1 = gauge('#gaugeScenario1');var gaugeScenario2 = gauge('#gaugeScenario2');var gaugeScenario3 = gauge('#gaugeScenario3');var gaugeScenario4 = gauge('#gaugeScenario4');var gaugeScenario5 = gauge('#gaugeScenario5');var gaugeScenario6 = gauge('#gaugeScenario6');var gaugeScenario7 = gauge('#gaugeScenario7');
-
- // assign success rate to the gauge
- function updateReadings() {
- gaugeScenario1.update(11.1111111111);gaugeScenario2.update(11.1111111111);gaugeScenario3.update(55.5555555556);gaugeScenario4.update(27.7777777778);gaugeScenario5.update(13.3333333333);gaugeScenario6.update(20.0);gaugeScenario7.update(55.5555555556);
- }
- updateReadings();
- }
-
- // trend line management
- d3.csv("./scenario_history.txt", function(data) {
- // ***************************************
- // Create the trend line
- // for scenario os-ocl-nofeature-noha
- // Filter results
- var trend1 = data.filter(function(row) {
- return row["scenario"]=="os-ocl-nofeature-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend1.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg1",trend1)
- // ****************************************// for scenario os-ocl-nofeature-ha
- // Filter results
- var trend2 = data.filter(function(row) {
- return row["scenario"]=="os-ocl-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend2.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg2",trend2)
- // ****************************************// for scenario os-nosdn-nofeature-noha
- // Filter results
- var trend3 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend3.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg3",trend3)
- // ****************************************// for scenario os-nosdn-openbaton-ha
- // Filter results
- var trend4 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-openbaton-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend4.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg4",trend4)
- // ****************************************// for scenario os-nosdn-lxd-ha
- // Filter results
- var trend5 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend5.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg5",trend5)
- // ****************************************// for scenario os-nosdn-lxd-noha
- // Filter results
- var trend6 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-lxd-noha" && row["installer"]=="joid";
- })
- // Parse the date
- trend6.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg6",trend6)
- // ****************************************// for scenario os-nosdn-nofeature-ha
- // Filter results
- var trend7 = data.filter(function(row) {
- return row["scenario"]=="os-nosdn-nofeature-ha" && row["installer"]=="joid";
- })
- // Parse the date
- trend7.forEach(function(d) {
- d.date = parseDate(d.date);
- d.score = +d.score
- });
- // Draw the trend line
- var mytrend = trend("#trend_svg7",trend7)
- // ****************************************
- });
- if ( !window.isLoaded ) {
- window.addEventListener("load", function() {
- onDocumentReady();
- }, false);
- } else {
- onDocumentReady();
- }
-</script>
-<script type="text/javascript">
-$(document).ready(function (){
- $(".btn-more").click(function() {
- $(this).hide();
- $(this).parent().find(".panel-default").show();
- });
-})
-</script>
-
- </head>
- <body>
- <div class="container">
- <div class="masthead">
- <h3 class="text-muted">Functest status page (euphrates, 2017-10-20 08:41)</h3>
- <nav>
- <ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="./apex.html">Apex</a></li>
- <li><a href="./compass.html">Compass</a></li>
- <li><a href="./daisy.html">Daisy</a></li>
- <li><a href="./fuel@x86.html">Fuel@x86</a></li>
- <li><a href="./fuel@aarch64.html">Fuel@aarch64</a></li>
- <li><a href="./joid.html">Joid</a></li>
- </ul>
- </nav>
- </div>
-<div class="row">
- <div class="col-md-1"></div>
- <div class="col-md-10">
- <div class="page-header">
- <h2>joid</h2>
- </div>
-
- <div class="scenario-overview">
- <div class="panel-heading"><h4><b>List of last scenarios (euphrates) run over the last 10 days </b></h4></div>
- <table class="table">
- <tr>
- <th width="40%">HA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/84/console>os-ocl-nofeature-ha</a></td>
- <td><div id="gaugeScenario2"></div></td>
- <td><div id="trend_svg2"></div></td>
- <td>3/27</td>
- <td>10</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/67/console>os-nosdn-openbaton-ha</a></td>
- <td><div id="gaugeScenario4"></div></td>
- <td><div id="trend_svg4"></div></td>
- <td>5/18</td>
- <td>2</td>
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/56/console>os-nosdn-lxd-ha</a></td>
- <td><div id="gaugeScenario5"></div></td>
- <td><div id="trend_svg5"></div></td>
- <td>2/15</td>
- <td>4</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/81/console>os-nosdn-nofeature-ha</a></td>
- <td><div id="gaugeScenario7"></div></td>
- <td><div id="trend_svg7"></div></td>
- <td>10/18</td>
- <td>3</td>
- </tr>
- <br>
- </table>
- <br>
- <table class="table">
- <tr>
- <th width="40%">NOHA Scenario</th>
- <th width="20%">Status</th>
- <th width="20%">Trend</th>
- <th width="10%">Score</th>
- <th width="10%">Iteration</th>
- </tr>
- <tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/85/console>os-ocl-nofeature-noha</a></td>
- <td><div id="gaugeScenario1"></div></td>
- <td><div id="trend_svg1"></div></td>
- <td>3/27</td>
- <td>9</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/90/console>os-nosdn-nofeature-noha</a></td>
- <td><div id="gaugeScenario3"></div></td>
- <td><div id="trend_svg3"></div></td>
- <td>15/27</td>
- <td>9</td>
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
-
- </tr><tr class="tr-ok">
- <td><a href=https://build.opnfv.org/ci/view/functest/job/functest-joid-baremetal-daily-euphrates/88/console>os-nosdn-lxd-noha</a></td>
- <td><div id="gaugeScenario6"></div></td>
- <td><div id="trend_svg6"></div></td>
- <td>3/15</td>
- <td>9</td>
- </tr><tr class="tr-ok">
-
- </tr>
- </table>
-
- </div>
-
-
- <div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ocl-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-ocl-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-openbaton-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-overcast.png"></td><td><img src="../../img/weather-overcast.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-lxd-noha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-clear.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-clear.png"></td>
- </tr>
- </table>
- </div>
- </div><div class="scenario-part">
- <div class="page-header">
- <h3><span class="glyphicon glyphicon-chevron-right"> <b>os-nosdn-nofeature-ha</b></h3>
- </div>
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="panel-header-item">
- </span>
- </div>
- <table class="table">
- <tr>
- <th>
- Health (connection)
-
- </th><th>
- Health (api)
-
- </th><th>
- Health (dhcp)
-
- </th><th>
- vPing (ssh)
-
- </th><th>
- vPing (userdata)
-
- </th><th>
- Tempest (smoke)
-
- </th><th>
- Rally (smoke)
-
- </th><th>
- Refstack
-
- </th><th>
- SNAPS
-
- </th><th>
- Promise
- *
- </th><th>
- Domino
- *
- </th><th>
- vIMS (Cloudify)
- *
- </th><th>
- OpenIMS (OpenBaton)
- *
- </th><th>
- vIMS (OpenBaton)
- *
- </th>
- </tr>
- <tr class="tr-weather-weather">
- <td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-few-clouds.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td><td><img src="../../img/weather-storm.png"></td>
- </tr>
- </table>
- </div>
- </div>
- see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
- <div> <br>
- <a href="./status-joid.pdf" class="myButtonPdf">Export to PDF</a> <a href="./scenario_history_joid.txt" class="myButtonCSV">Export to CSV</a>
- </div>
- </div>
- <div class="col-md-1"></div>
-</div>
diff --git a/docs/results/euphrates/5.0/scenario_history.txt b/docs/results/euphrates/5.0/scenario_history.txt
deleted file mode 100644
index be2f2e80..00000000
--- a/docs/results/euphrates/5.0/scenario_history.txt
+++ /dev/null
@@ -1,783 +0,0 @@
-date,scenario,installer,detail,score
-2017-09-25 07:27,os-odl-nofeature-ha,apex,5/30,17.0
-2017-09-25 07:27,os-ovn-nofeature-noha,apex,5/27,19.0
-2017-09-25 07:27,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-09-25 07:27,os-odl-nofeature-noha,apex,6/30,20.0
-2017-09-25 07:27,os-nosdn-nofeature-noha,apex,8/27,30.0
-2017-09-25 07:27,os-nosdn-nofeature-ha,apex,8/27,30.0
-2017-09-25 07:27,os-odl-nofeature-noha,fuel@x86,14/30,47.0
-2017-09-25 07:27,os-nosdn-nofeature-noha,fuel@x86,12/27,44.0
-2017-09-25 07:27,os-nosdn-ovs-noha,fuel@x86,14/27,52.0
-2017-09-26 13:13,os-nosdn-fdio-noha,apex,3/27,11.0
-2017-09-26 13:13,os-odl-sfc-noha,apex,4/30,13.0
-2017-09-26 13:13,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-09-26 13:13,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-09-26 13:13,os-ovn-nofeature-noha,apex,5/27,19.0
-2017-09-26 13:13,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-09-26 13:13,os-odl-nofeature-noha,apex,6/30,20.0
-2017-09-26 13:13,os-nosdn-nofeature-noha,apex,8/27,30.0
-2017-09-26 13:13,os-odl-nofeature-ha,apex,5/30,17.0
-2017-09-26 13:13,os-nosdn-nofeature-ha,apex,8/27,30.0
-2017-09-26 13:13,os-nosdn-nofeature-ha,daisy,9/27,33.0
-2017-09-26 13:13,os-odl-nofeature-noha,fuel@x86,14/30,47.0
-2017-09-26 13:13,os-nosdn-nofeature-noha,fuel@x86,12/27,44.0
-2017-09-26 13:13,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-09-28 06:03,os-nosdn-fdio-noha,apex,3/27,11.0
-2017-09-28 06:03,os-odl-sfc-noha,apex,4/30,13.0
-2017-09-28 06:03,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-09-28 06:03,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-09-28 06:03,os-ovn-nofeature-noha,apex,5/27,19.0
-2017-09-28 06:03,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-09-28 06:03,os-odl-nofeature-noha,apex,6/30,20.0
-2017-09-28 06:03,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-09-28 06:03,os-odl-nofeature-ha,apex,10/30,33.0
-2017-09-28 06:03,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-09-28 06:03,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-09-28 06:03,os-odl-nofeature-ha,daisy,25/30,83.0
-2017-09-28 06:03,os-odl-nofeature-noha,fuel@x86,20/30,67.0
-2017-09-28 06:03,os-nosdn-nofeature-noha,fuel@x86,12/27,44.0
-2017-09-28 06:03,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-09-28 06:03,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-09-28 06:03,os-ocl-nofeature-ha,joid,1/27,4.0
-2017-09-28 06:03,os-nosdn-lxd-noha,joid,1/15,7.0
-2017-09-28 06:03,os-ocl-nofeature-noha,joid,1/27,4.0
-2017-09-28 06:03,os-nosdn-nofeature-ha,joid,5/27,19.0
-2017-09-28 06:03,os-nosdn-nofeature-noha,joid,4/27,15.0
-2017-09-29 06:33,os-nosdn-fdio-noha,apex,3/27,11.0
-2017-09-29 06:33,os-odl-sfc-noha,apex,4/30,13.0
-2017-09-29 06:33,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-09-29 06:33,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-09-29 06:33,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-09-29 06:33,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-09-29 06:33,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-09-29 06:33,os-odl-nofeature-noha,apex,14/30,47.0
-2017-09-29 06:33,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-09-29 06:33,os-odl-fdio-noha,apex,2/33,6.0
-2017-09-29 06:33,os-odl-nofeature-ha,apex,10/30,33.0
-2017-09-29 06:33,os-odl-fdio-ha,apex,10/33,30.0
-2017-09-29 06:33,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-09-29 06:33,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-09-29 06:33,os-odl-nofeature-ha,daisy,26/30,87.0
-2017-09-29 06:33,os-odl-nofeature-noha,fuel@x86,20/30,67.0
-2017-09-29 06:33,os-nosdn-nofeature-noha,fuel@x86,12/27,44.0
-2017-09-29 06:33,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-09-29 06:33,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-09-29 06:33,os-ocl-nofeature-noha,joid,1/27,4.0
-2017-09-29 06:33,os-ocl-nofeature-ha,joid,1/27,4.0
-2017-09-29 06:33,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-09-29 06:33,os-nosdn-lxd-ha,joid,1/15,7.0
-2017-09-29 06:33,os-nosdn-lxd-noha,joid,1/15,7.0
-2017-09-29 06:33,os-nosdn-nofeature-ha,joid,5/27,19.0
-2017-09-29 09:47,os-nosdn-fdio-noha,apex,3/27,11.0
-2017-09-29 09:47,os-odl-sfc-noha,apex,4/30,13.0
-2017-09-29 09:47,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-09-29 09:47,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-09-29 09:47,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-09-29 09:47,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-09-29 09:47,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-09-29 09:47,os-odl-nofeature-noha,apex,14/30,47.0
-2017-09-29 09:47,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-09-29 09:47,os-odl-fdio-noha,apex,2/33,6.0
-2017-09-29 09:47,os-odl-nofeature-ha,apex,10/30,33.0
-2017-09-29 09:47,os-odl-fdio-ha,apex,10/33,30.0
-2017-09-29 09:47,os-nosdn-bar-ha,apex,8/27,30.0
-2017-09-29 09:47,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-09-29 09:47,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-09-29 09:47,os-odl-nofeature-ha,daisy,26/30,87.0
-2017-09-29 09:47,os-odl-nofeature-noha,fuel@x86,20/30,67.0
-2017-09-29 09:47,os-nosdn-nofeature-noha,fuel@x86,12/27,44.0
-2017-09-29 09:47,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-09-29 09:47,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-09-29 09:47,os-ocl-nofeature-noha,joid,1/27,4.0
-2017-09-29 09:47,os-ocl-nofeature-ha,joid,1/27,4.0
-2017-09-29 09:47,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-09-29 09:47,os-nosdn-lxd-ha,joid,1/15,7.0
-2017-09-29 09:47,os-nosdn-lxd-noha,joid,1/15,7.0
-2017-09-29 09:47,os-nosdn-nofeature-ha,joid,5/27,19.0
-2017-09-30 10:07,os-nosdn-fdio-noha,apex,3/27,11.0
-2017-09-30 10:07,os-odl-sfc-noha,apex,4/30,13.0
-2017-09-30 10:07,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-09-30 10:07,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-09-30 10:07,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-09-30 10:07,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-09-30 10:07,os-odl-fdio-noha,apex,11/33,33.0
-2017-09-30 10:07,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-09-30 10:07,os-odl-nofeature-noha,apex,14/30,47.0
-2017-09-30 10:07,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-09-30 10:07,os-nosdn-ovs_dpdk-ha,apex,2/27,7.0
-2017-09-30 10:07,os-nosdn-ovs_dpdk-noha,apex,2/27,7.0
-2017-09-30 10:07,os-odl-nofeature-ha,apex,10/30,33.0
-2017-09-30 10:07,os-odl-fdio-ha,apex,12/33,36.0
-2017-09-30 10:07,os-nosdn-bar-noha,apex,8/27,30.0
-2017-09-30 10:07,os-nosdn-bar-ha,apex,8/27,30.0
-2017-09-30 10:07,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-09-30 10:07,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-09-30 10:07,os-odl-sfc-noha,compass,8/30,27.0
-2017-09-30 10:07,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-09-30 10:07,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-09-30 10:07,os-odl-sfc-ha,compass,7/30,23.0
-2017-09-30 10:07,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-09-30 10:07,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-09-30 10:07,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-09-30 10:07,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-09-30 10:07,os-odl-nofeature-ha,daisy,26/30,87.0
-2017-09-30 10:07,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-09-30 10:07,os-nosdn-nofeature-noha,fuel@x86,13/27,48.0
-2017-09-30 10:07,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-09-30 10:07,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-09-30 10:07,os-odl_l2-nofeature-ha,fuel@aarch64,8/30,27.0
-2017-09-30 10:07,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-09-30 10:07,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-09-30 10:07,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-09-30 10:07,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-09-30 10:07,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-09-30 10:07,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-01 06:48,os-nosdn-fdio-noha,apex,5/27,19.0
-2017-10-01 06:48,os-odl-sfc-noha,apex,4/30,13.0
-2017-10-01 06:48,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-10-01 06:48,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-10-01 06:48,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-10-01 06:50,os-nosdn-fdio-noha,apex,5/27,19.0
-2017-10-01 06:48,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-10-01 06:50,os-odl-sfc-noha,apex,4/30,13.0
-2017-10-01 06:48,os-odl-fdio-noha,apex,11/33,33.0
-2017-10-01 06:50,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-10-01 06:48,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-10-01 06:50,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-10-01 06:48,os-odl-nofeature-noha,apex,16/30,53.0
-2017-10-01 06:50,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-10-01 06:52,os-nosdn-fdio-noha,apex,5/27,19.0
-2017-10-01 06:48,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-10-01 06:50,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-10-01 06:52,os-odl-sfc-noha,apex,4/30,13.0
-2017-10-01 06:48,os-nosdn-ovs_dpdk-ha,apex,2/27,7.0
-2017-10-01 06:50,os-odl-fdio-noha,apex,11/33,33.0
-2017-10-01 06:52,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-10-01 06:48,os-nosdn-ovs_dpdk-noha,apex,2/27,7.0
-2017-10-01 06:50,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-10-01 06:52,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-10-01 06:48,os-odl-nofeature-ha,apex,13/30,43.0
-2017-10-01 06:50,os-odl-nofeature-noha,apex,16/30,53.0
-2017-10-01 06:52,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-10-01 06:48,os-odl-fdio-ha,apex,12/33,36.0
-2017-10-01 06:50,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-10-01 06:54,os-nosdn-fdio-noha,apex,5/27,19.0
-2017-10-01 06:52,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-10-01 06:48,os-nosdn-bar-noha,apex,8/27,30.0
-2017-10-01 06:50,os-nosdn-ovs_dpdk-ha,apex,2/27,7.0
-2017-10-01 06:54,os-odl-sfc-noha,apex,4/30,13.0
-2017-10-01 06:52,os-odl-fdio-noha,apex,11/33,33.0
-2017-10-01 06:48,os-nosdn-bar-ha,apex,8/27,30.0
-2017-10-01 06:50,os-nosdn-ovs_dpdk-noha,apex,2/27,7.0
-2017-10-01 06:54,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-10-01 06:52,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-10-01 06:48,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-10-01 06:50,os-odl-nofeature-ha,apex,13/30,43.0
-2017-10-01 06:54,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-10-01 06:52,os-odl-nofeature-noha,apex,16/30,53.0
-2017-10-01 06:48,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-10-01 06:50,os-odl-fdio-ha,apex,12/33,36.0
-2017-10-01 06:54,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-10-01 06:52,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-10-01 06:48,os-odl-sfc-noha,compass,8/30,27.0
-2017-10-01 06:50,os-nosdn-bar-noha,apex,8/27,30.0
-2017-10-01 06:54,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-10-01 06:52,os-nosdn-ovs_dpdk-ha,apex,2/27,7.0
-2017-10-01 06:48,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-10-01 06:50,os-nosdn-bar-ha,apex,8/27,30.0
-2017-10-01 06:54,os-odl-fdio-noha,apex,11/33,33.0
-2017-10-01 06:52,os-nosdn-ovs_dpdk-noha,apex,2/27,7.0
-2017-10-01 06:48,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-10-01 06:50,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-10-01 06:54,os-odl-bgpvpn-ha,apex,5/27,19.0
-2017-10-01 06:52,os-odl-nofeature-ha,apex,13/30,43.0
-2017-10-01 06:48,os-odl-sfc-ha,compass,7/30,23.0
-2017-10-01 06:50,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-10-01 06:54,os-odl-nofeature-noha,apex,16/30,53.0
-2017-10-01 06:52,os-odl-fdio-ha,apex,12/33,36.0
-2017-10-01 06:48,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-10-01 06:50,os-odl-sfc-noha,compass,8/30,27.0
-2017-10-01 06:54,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-10-01 06:52,os-nosdn-bar-noha,apex,8/27,30.0
-2017-10-01 06:48,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-10-01 06:50,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-10-01 06:54,os-nosdn-ovs_dpdk-ha,apex,2/27,7.0
-2017-10-01 06:52,os-nosdn-bar-ha,apex,8/27,30.0
-2017-10-01 06:48,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-10-01 06:50,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-10-01 06:54,os-nosdn-ovs_dpdk-noha,apex,2/27,7.0
-2017-10-01 06:52,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-10-01 06:48,os-nosdn-nofeature-ha,compass,6/27,22.0
-2017-10-01 06:50,os-odl-sfc-ha,compass,7/30,23.0
-2017-10-01 06:54,os-odl-nofeature-ha,apex,13/30,43.0
-2017-10-01 06:52,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-10-01 06:48,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-10-01 06:50,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-10-01 06:54,os-odl-fdio-ha,apex,12/33,36.0
-2017-10-01 06:52,os-odl-sfc-noha,compass,8/30,27.0
-2017-10-01 06:48,os-odl-nofeature-ha,daisy,27/30,90.0
-2017-10-01 06:50,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-10-01 06:54,os-nosdn-bar-noha,apex,8/27,30.0
-2017-10-01 06:52,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-10-01 06:48,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-10-01 06:50,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-10-01 06:54,os-nosdn-bar-ha,apex,8/27,30.0
-2017-10-01 06:52,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-10-01 06:48,os-nosdn-nofeature-noha,fuel@x86,13/27,48.0
-2017-10-01 06:50,os-nosdn-nofeature-ha,compass,6/27,22.0
-2017-10-01 06:54,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-10-01 06:52,os-odl-sfc-ha,compass,7/30,23.0
-2017-10-01 06:48,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-10-01 06:50,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-10-01 06:54,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-10-01 06:52,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-10-01 06:48,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-10-01 06:50,os-odl-nofeature-ha,daisy,27/30,90.0
-2017-10-01 06:54,os-odl-sfc-noha,compass,8/30,27.0
-2017-10-01 06:52,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-10-01 06:48,os-odl_l2-nofeature-ha,fuel@aarch64,8/30,27.0
-2017-10-01 06:50,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-10-01 06:54,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-10-01 06:52,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-10-01 06:48,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-10-01 06:50,os-nosdn-nofeature-noha,fuel@x86,13/27,48.0
-2017-10-01 06:54,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-10-01 06:52,os-nosdn-nofeature-ha,compass,6/27,22.0
-2017-10-01 06:48,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-10-01 06:50,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-10-01 06:54,os-odl-sfc-ha,compass,7/30,23.0
-2017-10-01 06:52,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-10-01 06:48,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-10-01 06:50,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-10-01 06:54,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-10-01 06:48,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-01 06:52,os-odl-nofeature-ha,daisy,27/30,90.0
-2017-10-01 06:50,os-odl_l2-nofeature-ha,fuel@aarch64,8/30,27.0
-2017-10-01 06:54,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-10-01 06:48,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-10-01 06:52,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-10-01 06:50,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-10-01 06:54,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-10-01 06:48,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-01 06:52,os-nosdn-nofeature-noha,fuel@x86,13/27,48.0
-2017-10-01 06:50,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-10-01 06:54,os-nosdn-nofeature-ha,compass,6/27,22.0
-2017-10-01 06:52,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-10-01 06:45,os-nosdn-ovs-ha,fuel@x86,9/18,56
-2017-10-01 06:50,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-10-01 06:54,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-10-01 06:52,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-10-01 06:50,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-01 06:54,os-odl-nofeature-ha,daisy,27/30,90.0
-2017-10-01 06:52,os-odl_l2-nofeature-ha,fuel@aarch64,8/30,27.0
-2017-10-01 06:50,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-10-01 06:54,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-10-01 06:52,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-10-01 06:50,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-01 06:54,os-nosdn-nofeature-noha,fuel@x86,13/27,48.0
-2017-10-01 06:52,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-10-01 06:54,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-10-01 06:52,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-10-01 06:54,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-10-01 06:52,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-01 06:54,os-odl_l2-nofeature-ha,fuel@aarch64,8/30,27.0
-2017-10-01 06:52,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-10-01 06:54,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-10-01 06:52,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-01 06:54,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-10-01 06:54,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-10-01 06:54,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-01 06:54,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-10-01 06:54,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-02 02:32,os-nosdn-kvm_ovs_dpdk-noha,apex,2/27,7.0
-2017-10-02 02:32,os-nosdn-fdio-noha,apex,5/27,19.0
-2017-10-02 02:32,os-odl-nofeature-ha,apex,13/30,43.0
-2017-10-02 02:32,os-odl-sfc-noha,apex,4/30,13.0
-2017-10-02 02:32,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-10-02 02:32,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-10-02 02:32,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-10-02 02:32,os-odl-fdio-noha,apex,18/33,55.0
-2017-10-02 02:32,os-odl-bgpvpn-ha,apex,10/27,37.0
-2017-10-02 02:32,os-odl-nofeature-noha,apex,16/30,53.0
-2017-10-02 02:32,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-10-02 02:32,os-nosdn-ovs_dpdk-ha,apex,4/27,15.0
-2017-10-02 02:32,os-nosdn-ovs_dpdk-noha,apex,4/27,15.0
-2017-10-02 02:32,os-odl-fdio-ha,apex,12/33,36.0
-2017-10-02 02:32,os-nosdn-bar-noha,apex,16/27,59.0
-2017-10-02 02:32,os-nosdn-bar-ha,apex,9/27,33.0
-2017-10-02 02:32,os-nosdn-fdio-ha,apex,5/27,19.0
-2017-10-02 02:32,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-10-03 06:45,os-nosdn-ovs-ha,fuel@x86,9/18,56
-2017-10-02 02:32,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-10-02 02:32,os-odl-sfc-noha,compass,8/30,27.0
-2017-10-02 02:32,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-10-02 02:32,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-10-02 02:32,os-odl-sfc-ha,compass,7/30,23.0
-2017-10-02 02:32,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-10-02 02:32,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-10-02 02:32,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-10-02 02:32,os-nosdn-nofeature-ha,compass,6/27,22.0
-2017-10-02 02:32,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-10-02 02:32,os-odl-nofeature-ha,daisy,27/30,90.0
-2017-10-02 02:32,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-10-02 02:32,os-nosdn-nofeature-noha,fuel@x86,13/27,48.0
-2017-10-02 02:32,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-10-02 02:32,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-10-02 02:32,os-odl_l2-nofeature-ha,fuel@aarch64,8/30,27.0
-2017-10-02 02:32,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-10-02 02:32,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-10-02 02:32,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-10-02 02:32,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-02 02:32,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-10-02 02:32,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-03 02:32,os-nosdn-kvm_ovs_dpdk-noha,apex,2/27,7.0
-2017-10-03 02:32,os-nosdn-fdio-noha,apex,5/27,19.0
-2017-10-03 02:32,os-odl-nofeature-ha,apex,13/30,43.0
-2017-10-03 02:32,os-odl-sfc-noha,apex,4/30,13.0
-2017-10-03 02:32,os-nosdn-kvm_ovs_dpdk-ha,apex,2/27,7.0
-2017-10-03 02:32,os-odl-fdio-dvr-noha,apex,4/33,12.0
-2017-10-03 02:32,os-odl-fdio-dvr-ha,apex,4/33,12.0
-2017-10-03 02:32,os-odl-fdio-noha,apex,18/33,55.0
-2017-10-03 02:32,os-odl-bgpvpn-ha,apex,10/27,37.0
-2017-10-03 02:32,os-odl-nofeature-noha,apex,16/30,53.0
-2017-10-03 02:32,os-nosdn-nofeature-noha,apex,16/27,59.0
-2017-10-03 02:32,os-nosdn-ovs_dpdk-ha,apex,4/27,15.0
-2017-10-03 02:32,os-nosdn-ovs_dpdk-noha,apex,4/27,15.0
-2017-10-03 02:32,os-ovn-nofeature-noha,apex,10/27,37.0
-2017-10-03 02:32,os-odl-fdio-ha,apex,11/33,33.0
-2017-10-03 02:32,os-nosdn-bar-noha,apex,16/27,59.0
-2017-10-03 02:32,os-nosdn-bar-ha,apex,16/27,59.0
-2017-10-03 02:32,os-nosdn-fdio-ha,apex,8/27,30.0
-2017-10-03 02:32,os-nosdn-nofeature-ha,apex,16/27,59.0
-2017-10-03 02:32,os-nosdn-kvm-noha,compass,7/27,26.0
-2017-10-03 02:32,os-odl-sfc-noha,compass,8/30,27.0
-2017-10-03 02:32,os-odl_l3-nofeature-ha,compass,12/27,44.0
-2017-10-03 02:32,os-nosdn-kvm-ha,compass,6/27,22.0
-2017-10-03 02:32,os-odl-sfc-ha,compass,7/30,23.0
-2017-10-03 02:32,os-nosdn-nofeature-noha,compass,6/27,22.0
-2017-10-03 02:32,os-nosdn-ovs_dpdk-noha,compass,1/27,4.0
-2017-10-03 02:32,os-odl_l2-moon-ha,compass,7/30,23.0
-2017-10-03 02:32,os-nosdn-nofeature-ha,compass,6/27,22.0
-2017-10-03 02:32,os-nosdn-nofeature-ha,daisy,25/27,93.0
-2017-10-03 02:32,os-odl-nofeature-ha,daisy,26/30,87.0
-2017-10-03 02:32,os-odl-nofeature-noha,fuel@x86,21/30,70.0
-2017-10-03 02:32,os-nosdn-nofeature-noha,fuel@x86,14/27,52.0
-2017-10-03 02:32,os-nosdn-nofeature-ha,fuel@x86,3/27,11.0
-2017-10-03 02:32,os-nosdn-ovs-noha,fuel@x86,21/27,78.0
-2017-10-03 02:32,os-odl-nofeature-ha,fuel@x86,8/30,27.0
-2017-10-03 02:32,os-odl_l2-nofeature-ha,fuel@aarch64,9/30,30.0
-2017-10-03 02:32,os-nosdn-nofeature-ha,fuel@aarch64,3/27,11.0
-2017-10-03 02:32,os-ocl-nofeature-noha,joid,2/27,7.0
-2017-10-03 02:32,os-ocl-nofeature-ha,joid,2/27,7.0
-2017-10-03 02:32,os-nosdn-nofeature-noha,joid,5/27,19.0
-2017-10-03 02:32,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-03 02:32,os-nosdn-lxd-noha,joid,2/15,13.0
-2017-10-03 02:32,os-nosdn-nofeature-ha,joid,9/27,33.0
-2017-10-03 06:45,os-nosdn-ovs-ha,fuel@x86,15/27,56
-2017-10-06 06:45,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-07 06:45,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-08 06:45,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-09 06:45,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-09 06:45,os-nosdn-fdio-noha,apex,9/18,50.0
-2017-10-09 06:45,os-odl-fdio-noha,apex,18/33,55.0
-2017-10-09 06:45,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-09 06:45,os-odl-sfc-noha,apex,2/10,20.0
-2017-10-09 06:45,os-odl-fdio-ha,apex,7/33,21.0
-2017-10-09 06:45,os-odl-nofeature-ha,apex,15/20,75.0
-2017-10-09 06:45,os-ovn-nofeature-noha,apex,6/18,33.0
-2017-10-09 06:45,os-nosdn-bar-ha,apex,25/27,93.0
-2017-10-09 06:45,os-odl-bgpvpn-ha,apex,13/18,72.0
-2017-10-09 06:45,os-nosdn-ovs_dpdk-ha,apex,6/27,22.0
-2017-10-09 06:45,os-nosdn-nofeature-noha,apex,26/27,96.0
-2017-10-09 06:45,os-nosdn-fdio-ha,apex,12/18,67.0
-2017-10-09 06:45,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-09 06:45,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-09 06:45,os-nosdn-bar-noha,apex,26/27,96.0
-2017-10-09 06:45,os-odl-nofeature-noha,apex,17/20,85.0
-2017-10-09 06:45,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-09 06:45,os-nosdn-calipso-noha,apex,9/9,100.0
-2017-10-09 06:45,os-nosdn-nofeature-ha,apex,18/18,100.0
-2017-10-09 06:45,os-nosdn-kvm-noha,compass,7/9,78.0
-2017-10-09 06:45,os-odl-sfc-noha,compass,8/10,80.0
-2017-10-09 06:45,os-odl_l3-nofeature-ha,compass,12/18,67.0
-2017-10-09 06:45,os-nosdn-kvm-ha,compass,6/9,67.0
-2017-10-09 06:45,os-odl-sfc-ha,compass,7/10,70.0
-2017-10-09 06:45,os-nosdn-nofeature-noha,compass,6/9,67.0
-2017-10-09 06:45,os-nosdn-ovs_dpdk-noha,compass,1/9,11.0
-2017-10-09 06:45,os-odl_l2-moon-ha,compass,7/10,70.0
-2017-10-09 06:45,os-nosdn-nofeature-ha,compass,6/9,67.0
-2017-10-09 06:45,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-09 06:45,os-odl-nofeature-ha,daisy,28/30,93.0
-2017-10-09 06:45,os-nosdn-ovs-noha,fuel@x86,23/27,85.0
-2017-10-09 06:45,os-odl-nofeature-ha,fuel@x86,25/30,83.0
-2017-10-09 06:45,os-odl-nofeature-noha,fuel@x86,23/30,77.0
-2017-10-09 06:45,os-nosdn-nofeature-noha,fuel@x86,22/27,81.0
-2017-10-09 06:45,os-nosdn-ovs-ha,fuel@x86,16/27,59.0
-2017-10-09 06:45,os-nosdn-nofeature-ha,fuel@x86,20/27,74.0
-2017-10-09 06:45,os-odl_l2-nofeature-ha,fuel@aarch64,9/20,45.0
-2017-10-09 06:45,os-nosdn-nofeature-ha,fuel@aarch64,20/27,74.0
-2017-10-09 06:45,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-09 06:45,os-ocl-nofeature-ha,joid,1/9,11.0
-2017-10-09 06:45,os-nosdn-lxd-noha,joid,1/5,20.0
-2017-10-09 06:45,os-ocl-nofeature-noha,joid,1/9,11.0
-2017-10-09 06:45,os-nosdn-nofeature-ha,joid,4/9,44.0
-2017-10-09 06:45,os-nosdn-lxd-ha,joid,1/5,20.0
-2017-10-09 09:08,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-09 09:08,os-nosdn-fdio-noha,apex,9/18,50.0
-2017-10-09 09:08,os-nosdn-ovs_dpdk-ha,apex,6/27,22.0
-2017-10-09 09:08,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-09 09:08,os-odl-sfc-noha,apex,2/10,20.0
-2017-10-09 09:08,os-odl-fdio-ha,apex,7/33,21.0
-2017-10-09 09:08,os-odl-nofeature-ha,apex,15/20,75.0
-2017-10-09 09:08,os-ovn-nofeature-noha,apex,6/18,33.0
-2017-10-09 09:08,os-odl-fdio-noha,apex,18/33,55.0
-2017-10-09 09:08,os-odl-bgpvpn-ha,apex,13/18,72.0
-2017-10-09 09:08,os-odl-nofeature-noha,apex,17/20,85.0
-2017-10-09 09:08,os-nosdn-nofeature-noha,apex,26/27,96.0
-2017-10-09 09:08,os-nosdn-fdio-ha,apex,12/18,67.0
-2017-10-09 09:08,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-09 09:08,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-09 09:08,os-nosdn-bar-noha,apex,26/27,96.0
-2017-10-09 09:08,os-nosdn-bar-ha,apex,18/18,100.0
-2017-10-09 09:08,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-09 09:08,os-nosdn-calipso-noha,apex,9/9,100.0
-2017-10-09 09:08,os-nosdn-nofeature-ha,apex,18/18,100.0
-2017-10-09 09:08,os-nosdn-kvm-noha,compass,7/9,78.0
-2017-10-09 09:08,os-odl-sfc-noha,compass,8/10,80.0
-2017-10-09 09:08,os-odl_l3-nofeature-ha,compass,12/18,67.0
-2017-10-09 09:08,os-nosdn-kvm-ha,compass,6/9,67.0
-2017-10-09 09:08,os-odl-sfc-ha,compass,7/10,70.0
-2017-10-09 09:08,os-nosdn-nofeature-noha,compass,6/9,67.0
-2017-10-09 09:08,os-nosdn-ovs_dpdk-noha,compass,1/9,11.0
-2017-10-09 09:08,os-odl_l2-moon-ha,compass,7/10,70.0
-2017-10-09 09:08,os-nosdn-nofeature-ha,compass,6/9,67.0
-2017-10-09 09:08,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-09 09:08,os-odl-nofeature-ha,daisy,28/30,93.0
-2017-10-09 09:08,os-nosdn-ovs-noha,fuel@x86,23/27,85.0
-2017-10-09 09:08,os-odl-nofeature-ha,fuel@x86,25/30,83.0
-2017-10-09 09:08,os-odl-nofeature-noha,fuel@x86,23/30,77.0
-2017-10-09 09:08,os-nosdn-nofeature-noha,fuel@x86,22/27,81.0
-2017-10-09 09:08,os-nosdn-ovs-ha,fuel@x86,16/27,59.0
-2017-10-09 09:08,os-nosdn-nofeature-ha,fuel@x86,20/27,74.0
-2017-10-09 09:08,os-odl_l2-nofeature-ha,fuel@aarch64,9/20,45.0
-2017-10-09 09:08,os-nosdn-nofeature-ha,fuel@aarch64,20/27,74.0
-2017-10-09 09:08,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-09 09:08,os-ocl-nofeature-ha,joid,1/9,11.0
-2017-10-09 09:08,os-nosdn-lxd-noha,joid,1/5,20.0
-2017-10-09 09:08,os-ocl-nofeature-noha,joid,1/9,11.0
-2017-10-09 09:08,os-nosdn-nofeature-ha,joid,4/9,44.0
-2017-10-09 09:08,os-nosdn-lxd-ha,joid,1/5,20.0
-2017-10-10 02:32,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-10 02:32,os-nosdn-fdio-noha,apex,14/27,52.0
-2017-10-10 02:32,os-odl-fdio-noha,apex,18/33,55.0
-2017-10-10 02:32,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-10 02:32,os-odl-sfc-noha,apex,2/10,20.0
-2017-10-10 02:32,os-odl-fdio-ha,apex,4/22,18.0
-2017-10-10 02:32,os-odl-nofeature-ha,apex,20/30,67.0
-2017-10-10 02:32,os-ovn-nofeature-noha,apex,9/27,33.0
-2017-10-10 02:32,os-nosdn-ovs_dpdk-ha,apex,4/18,22.0
-2017-10-10 02:32,os-odl-bgpvpn-ha,apex,19/27,70.0
-2017-10-10 02:32,os-odl-nofeature-noha,apex,17/20,85.0
-2017-10-10 02:32,os-nosdn-nofeature-noha,apex,26/27,96.0
-2017-10-10 02:32,os-nosdn-fdio-ha,apex,15/27,56.0
-2017-10-10 02:32,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-10 02:32,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-10 02:32,os-nosdn-bar-noha,apex,18/18,100.0
-2017-10-10 02:32,os-nosdn-bar-ha,apex,18/18,100.0
-2017-10-10 02:32,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-10 02:32,os-nosdn-calipso-noha,apex,9/9,100.0
-2017-10-10 02:32,os-nosdn-nofeature-ha,apex,18/18,100.0
-2017-10-10 02:32,os-nosdn-kvm-noha,compass,7/9,78.0
-2017-10-10 02:32,os-odl-sfc-noha,compass,8/10,80.0
-2017-10-10 02:32,os-odl_l3-nofeature-ha,compass,12/18,67.0
-2017-10-10 02:32,os-nosdn-kvm-ha,compass,7/9,78.0
-2017-10-10 02:32,os-odl_l2-moon-ha,compass,7/10,70.0
-2017-10-10 02:32,os-nosdn-nofeature-ha,compass,6/9,67.0
-2017-10-10 02:32,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-10 02:32,os-odl-nofeature-ha,daisy,28/30,93.0
-2017-10-10 02:32,os-nosdn-ovs-noha,fuel@x86,24/27,89.0
-2017-10-10 02:32,os-odl-nofeature-ha,fuel@x86,25/30,83.0
-2017-10-10 02:32,os-odl-nofeature-noha,fuel@x86,24/30,80.0
-2017-10-10 02:32,os-nosdn-nofeature-noha,fuel@x86,23/27,85.0
-2017-10-10 02:32,os-nosdn-ovs-ha,fuel@x86,17/27,63.0
-2017-10-10 02:32,os-nosdn-nofeature-ha,fuel@x86,20/27,74.0
-2017-10-10 02:32,os-odl_l2-nofeature-ha,fuel@aarch64,1/10,10.0
-2017-10-10 02:32,os-nosdn-nofeature-ha,fuel@aarch64,20/27,74.0
-2017-10-10 02:32,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-10 02:32,os-nosdn-lxd-noha,joid,1/5,20.0
-2017-10-10 02:32,os-nosdn-nofeature-ha,joid,4/9,44.0
-2017-10-10 06:10,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-10 06:10,os-nosdn-fdio-noha,apex,14/27,52.0
-2017-10-10 06:10,os-odl-fdio-noha,apex,19/33,58.0
-2017-10-10 06:10,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-10 06:10,os-odl-sfc-noha,apex,2/10,20.0
-2017-10-10 06:10,os-odl-fdio-ha,apex,4/22,18.0
-2017-10-10 06:10,os-odl-nofeature-ha,apex,20/30,67.0
-2017-10-10 06:10,os-ovn-nofeature-noha,apex,9/27,33.0
-2017-10-10 06:10,os-nosdn-ovs_dpdk-ha,apex,4/18,22.0
-2017-10-10 06:10,os-odl-bgpvpn-ha,apex,19/27,70.0
-2017-10-10 06:10,os-odl-nofeature-noha,apex,17/20,85.0
-2017-10-10 06:10,os-nosdn-nofeature-noha,apex,26/27,96.0
-2017-10-10 06:10,os-nosdn-fdio-ha,apex,15/27,56.0
-2017-10-10 06:10,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-10 06:10,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-10 06:10,os-nosdn-bar-noha,apex,18/18,100.0
-2017-10-10 06:10,os-nosdn-bar-ha,apex,18/18,100.0
-2017-10-10 06:10,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-10 06:10,os-nosdn-calipso-noha,apex,9/9,100.0
-2017-10-10 06:10,os-nosdn-nofeature-ha,apex,18/18,100.0
-2017-10-10 06:10,os-odl_l3-nofeature-ha,compass,6/9,67.0
-2017-10-10 06:10,os-nosdn-nofeature-ha,compass,6/9,67.0
-2017-10-10 06:10,os-nosdn-kvm-ha,compass,7/9,78.0
-2017-10-10 06:10,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-10 06:10,os-odl-nofeature-ha,daisy,28/30,93.0
-2017-10-10 06:10,os-nosdn-ovs-noha,fuel@x86,24/27,89.0
-2017-10-10 06:10,os-odl-nofeature-ha,fuel@x86,25/30,83.0
-2017-10-10 06:10,os-odl-nofeature-noha,fuel@x86,24/30,80.0
-2017-10-10 06:10,os-nosdn-nofeature-noha,fuel@x86,23/27,85.0
-2017-10-10 06:10,os-nosdn-ovs-ha,fuel@x86,17/27,63.0
-2017-10-10 06:10,os-nosdn-nofeature-ha,fuel@x86,20/27,74.0
-2017-10-10 06:10,os-odl_l2-nofeature-ha,fuel@aarch64,1/10,10.0
-2017-10-10 06:10,os-nosdn-nofeature-ha,fuel@aarch64,20/27,74.0
-2017-10-10 06:10,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-10 06:10,os-nosdn-lxd-noha,joid,1/5,20.0
-2017-10-10 06:10,os-nosdn-nofeature-ha,joid,4/9,44.0
-2017-10-11 02:32,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-11 02:32,os-nosdn-fdio-noha,apex,12/18,67.0
-2017-10-11 02:32,os-odl-fdio-noha,apex,15/33,45.0
-2017-10-11 02:32,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-11 02:32,os-odl-sfc-noha,apex,2/10,20.0
-2017-10-11 02:32,os-odl-fdio-ha,apex,4/22,18.0
-2017-10-11 02:32,os-odl-nofeature-ha,apex,15/20,75.0
-2017-10-11 02:32,os-ovn-nofeature-noha,apex,9/27,33.0
-2017-10-11 02:32,os-nosdn-ovs_dpdk-ha,apex,6/27,22.0
-2017-10-11 02:32,os-odl-bgpvpn-ha,apex,19/27,70.0
-2017-10-11 02:32,os-odl-nofeature-noha,apex,16/20,80.0
-2017-10-11 02:32,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-11 02:32,os-nosdn-fdio-ha,apex,15/27,56.0
-2017-10-11 02:32,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-11 02:32,os-nosdn-bar-noha,apex,26/27,96.0
-2017-10-11 02:32,os-nosdn-nofeature-noha,apex,18/18,100.0
-2017-10-11 02:32,os-nosdn-bar-ha,apex,25/27,93.0
-2017-10-11 02:32,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-11 02:32,os-nosdn-calipso-noha,apex,9/9,100.0
-2017-10-11 02:32,os-nosdn-nofeature-ha,apex,18/18,100.0
-2017-10-11 02:32,os-nosdn-kvm-noha,compass,7/9,78.0
-2017-10-11 02:32,os-odl-sfc-noha,compass,7/10,70.0
-2017-10-11 02:32,os-odl_l3-nofeature-ha,compass,6/9,67.0
-2017-10-11 02:32,os-nosdn-kvm-ha,compass,13/18,72.0
-2017-10-11 02:32,os-odl-sfc-ha,compass,6/10,60.0
-2017-10-11 02:32,os-nosdn-nofeature-noha,compass,7/9,78.0
-2017-10-11 02:32,os-nosdn-ovs_dpdk-ha,compass,1/9,11.0
-2017-10-11 02:32,os-nosdn-ovs_dpdk-noha,compass,1/9,11.0
-2017-10-11 02:32,os-odl_l2-moon-ha,compass,7/10,70.0
-2017-10-11 02:32,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-11 02:32,os-odl-nofeature-ha,daisy,27/30,90.0
-2017-10-11 02:32,os-nosdn-ovs-noha,fuel@x86,24/27,89.0
-2017-10-11 02:32,os-odl-nofeature-ha,fuel@x86,25/30,83.0
-2017-10-11 02:32,os-odl-nofeature-noha,fuel@x86,26/30,87.0
-2017-10-11 02:32,os-nosdn-nofeature-noha,fuel@x86,22/27,81.0
-2017-10-11 02:32,os-nosdn-ovs-ha,fuel@x86,17/27,63.0
-2017-10-11 02:32,os-nosdn-nofeature-ha,fuel@x86,20/27,74.0
-2017-10-11 02:32,os-odl_l2-nofeature-ha,fuel@aarch64,1/10,10.0
-2017-10-11 02:32,os-nosdn-nofeature-ha,fuel@aarch64,20/27,74.0
-2017-10-11 02:32,os-odl-nofeature-ha,fuel@aarch64,25/30,83.0
-2017-10-11 02:32,os-ocl-nofeature-ha,joid,1/9,11.0
-2017-10-11 02:32,os-ocl-nofeature-noha,joid,1/9,11.0
-2017-10-12 02:32,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-12 02:32,os-nosdn-fdio-noha,apex,14/27,52.0
-2017-10-12 02:32,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-12 02:32,os-odl-sfc-noha,apex,4/20,20.0
-2017-10-12 02:32,os-odl-fdio-ha,apex,4/22,18.0
-2017-10-12 02:32,os-odl-nofeature-ha,apex,20/30,67.0
-2017-10-12 02:32,os-ovn-nofeature-noha,apex,6/18,33.0
-2017-10-12 02:32,os-nosdn-fdio-ha,apex,15/27,56.0
-2017-10-12 02:32,os-odl-bgpvpn-ha,apex,14/18,78.0
-2017-10-12 02:32,os-nosdn-ovs_dpdk-ha,apex,4/18,22.0
-2017-10-12 02:32,os-nosdn-nofeature-noha,apex,27/27,100.0
-2017-10-12 02:32,os-odl-fdio-noha,apex,4/22,18.0
-2017-10-12 02:32,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-12 02:32,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-12 02:32,os-nosdn-bar-noha,apex,18/18,100.0
-2017-10-12 02:32,os-odl-nofeature-noha,apex,16/20,80.0
-2017-10-12 02:32,os-nosdn-bar-ha,apex,25/27,93.0
-2017-10-12 02:32,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-12 02:32,os-nosdn-calipso-noha,apex,18/18,100.0
-2017-10-12 02:32,os-nosdn-nofeature-ha,apex,18/18,100.0
-2017-10-12 02:32,os-nosdn-kvm-noha,compass,7/9,78.0
-2017-10-12 02:32,os-odl-sfc-noha,compass,8/10,80.0
-2017-10-12 02:32,os-odl_l2-moon-noha,compass,7/10,70.0
-2017-10-12 02:32,os-odl_l3-nofeature-ha,compass,12/18,67.0
-2017-10-12 02:32,os-nosdn-kvm-ha,compass,14/18,78.0
-2017-10-12 02:32,os-odl-sfc-ha,compass,15/20,75.0
-2017-10-12 02:32,os-nosdn-nofeature-noha,compass,7/9,78.0
-2017-10-12 02:32,os-nosdn-ovs_dpdk-ha,compass,1/9,11.0
-2017-10-12 02:32,os-nosdn-ovs_dpdk-noha,compass,1/9,11.0
-2017-10-12 02:32,os-odl_l3-nofeature-noha,compass,7/9,78.0
-2017-10-12 02:32,os-odl_l2-moon-ha,compass,14/20,70.0
-2017-10-12 02:32,os-nosdn-nofeature-ha,compass,13/18,72.0
-2017-10-12 02:32,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-12 02:32,os-odl-nofeature-ha,daisy,26/30,87.0
-2017-10-12 02:32,os-nosdn-ovs-noha,fuel@x86,24/27,89.0
-2017-10-12 02:32,os-odl-nofeature-ha,fuel@x86,24/30,80.0
-2017-10-12 02:32,os-odl-nofeature-noha,fuel@x86,25/30,83.0
-2017-10-12 02:32,os-nosdn-nofeature-noha,fuel@x86,21/27,78.0
-2017-10-12 02:32,os-nosdn-ovs-ha,fuel@x86,23/27,85.0
-2017-10-12 02:32,os-nosdn-nofeature-ha,fuel@x86,20/27,74.0
-2017-10-12 02:32,os-odl_l2-nofeature-ha,fuel@aarch64,1/10,10.0
-2017-10-12 02:32,os-nosdn-nofeature-noha,fuel@aarch64,1/9,11.0
-2017-10-12 02:32,os-nosdn-nofeature-ha,fuel@aarch64,20/27,74.0
-2017-10-12 02:32,os-odl-nofeature-ha,fuel@aarch64,24/30,80.0
-2017-10-12 02:32,os-ocl-nofeature-noha,joid,1/9,11.0
-2017-10-12 02:32,os-ocl-nofeature-ha,joid,1/9,11.0
-2017-10-12 02:32,os-nosdn-nofeature-noha,joid,5/9,56.0
-2017-10-12 02:32,os-nosdn-lxd-ha,joid,1/5,20.0
-2017-10-12 02:32,os-nosdn-lxd-noha,joid,1/5,20.0
-2017-10-12 02:32,os-nosdn-nofeature-ha,joid,5/9,56.0
-2017-10-13 02:32,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-13 02:32,os-nosdn-fdio-noha,apex,14/27,52.0
-2017-10-13 02:32,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-13 02:32,os-odl-fdio-noha,apex,4/22,18.0
-2017-10-13 02:32,os-odl-nofeature-ha,apex,20/30,67.0
-2017-10-13 02:32,os-odl-fdio-ha,apex,2/11,18.0
-2017-10-13 02:32,os-odl-sfc-noha,apex,4/20,20.0
-2017-10-13 02:32,os-ovn-nofeature-noha,apex,9/27,33.0
-2017-10-13 02:32,os-nosdn-ovs_dpdk-ha,apex,4/18,22.0
-2017-10-13 02:32,os-odl-bgpvpn-ha,apex,21/27,78.0
-2017-10-13 02:32,os-odl-nofeature-noha,apex,17/20,85.0
-2017-10-13 02:32,os-nosdn-nofeature-noha,apex,27/27,100.0
-2017-10-13 02:32,os-nosdn-fdio-ha,apex,12/18,67.0
-2017-10-13 02:32,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-13 02:32,os-odl-fdio_dvr-noha,apex,2/11,18.0
-2017-10-13 02:32,os-nosdn-bar-noha,apex,18/18,100.0
-2017-10-13 02:32,os-nosdn-bar-ha,apex,18/18,100.0
-2017-10-13 02:32,os-odl-sfc-ha,apex,2/10,20.0
-2017-10-13 02:32,os-nosdn-calipso-noha,apex,18/18,100.0
-2017-10-13 02:32,os-nosdn-nofeature-ha,apex,26/27,96.0
-2017-10-13 02:32,os-nosdn-kvm-noha,compass,14/18,78.0
-2017-10-13 02:32,os-odl-sfc-noha,compass,16/20,80.0
-2017-10-13 02:32,os-odl_l2-moon-noha,compass,14/20,70.0
-2017-10-13 02:32,os-odl_l3-nofeature-ha,compass,13/18,72.0
-2017-10-13 02:32,os-nosdn-kvm-ha,compass,14/18,78.0
-2017-10-13 02:32,os-odl-sfc-ha,compass,15/20,75.0
-2017-10-13 02:32,os-nosdn-nofeature-noha,compass,14/18,78.0
-2017-10-13 02:32,os-nosdn-ovs_dpdk-ha,compass,2/18,11.0
-2017-10-13 02:32,os-nosdn-ovs_dpdk-noha,compass,2/18,11.0
-2017-10-13 02:32,os-odl_l3-nofeature-noha,compass,7/9,78.0
-2017-10-13 02:32,os-odl_l2-moon-ha,compass,14/20,70.0
-2017-10-13 02:32,os-nosdn-nofeature-ha,compass,20/27,74.0
-2017-10-13 02:32,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-13 02:32,os-odl-nofeature-ha,daisy,28/30,93.0
-2017-10-13 02:32,os-nosdn-ovs-noha,fuel@x86,24/27,89.0
-2017-10-13 02:32,os-odl-nofeature-ha,fuel@x86,24/30,80.0
-2017-10-13 02:32,os-odl-nofeature-noha,fuel@x86,25/30,83.0
-2017-10-13 02:32,os-nosdn-nofeature-noha,fuel@x86,21/27,78.0
-2017-10-13 02:32,os-nosdn-ovs-ha,fuel@x86,23/27,85.0
-2017-10-13 02:32,os-nosdn-nofeature-ha,fuel@x86,22/18,122.0
-2017-10-13 02:32,os-nosdn-nofeature-noha,fuel@aarch64,1/9,11.0
-2017-10-13 02:32,os-nosdn-nofeature-ha,fuel@aarch64,22/27,81.0
-2017-10-13 02:32,os-odl-nofeature-ha,fuel@aarch64,24/30,80.0
-2017-10-13 02:32,os-ocl-nofeature-noha,joid,2/18,11.0
-2017-10-13 02:32,os-ocl-nofeature-ha,joid,2/18,11.0
-2017-10-13 02:32,os-nosdn-nofeature-noha,joid,10/18,56.0
-2017-10-13 02:32,os-nosdn-openbaton-ha,joid,5/9,56.0
-2017-10-13 02:32,os-nosdn-lxd-ha,joid,2/10,20.0
-2017-10-13 02:32,os-nosdn-lxd-noha,joid,2/10,20.0
-2017-10-13 02:32,os-nosdn-nofeature-ha,joid,5/9,56.0
-2017-10-20 07:42,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-20 07:42,os-nosdn-fdio-noha,apex,9/18,50.0
-2017-10-20 07:42,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-20 07:42,os-odl-fdio-ha,apex,24/33,73.0
-2017-10-20 07:42,os-odl-sfc-noha,apex,8/30,27.0
-2017-10-20 07:42,os-ovn-nofeature-noha,apex,6/18,33.0
-2017-10-20 07:42,os-nosdn-fdio-ha,apex,12/18,67.0
-2017-10-20 07:42,os-odl-bgpvpn-ha,apex,16/18,89.0
-2017-10-20 07:42,os-nosdn-ovs_dpdk-ha,apex,4/18,22.0
-2017-10-20 07:42,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-20 07:42,os-odl-fdio-noha,apex,24/33,73.0
-2017-10-20 07:42,os-odl-nofeature-ha,apex,18/20,90.0
-2017-10-20 07:42,os-nosdn-nofeature-noha,apex,18/18,100.0
-2017-10-20 07:42,os-odl-fdio_dvr-noha,apex,6/33,18.0
-2017-10-20 07:42,os-nosdn-bar-noha,apex,18/18,100.0
-2017-10-20 07:42,os-odl-nofeature-noha,apex,18/20,90.0
-2017-10-20 07:42,os-nosdn-bar-ha,apex,26/27,96.0
-2017-10-20 07:42,os-nosdn-calipso-noha,apex,18/18,100.0
-2017-10-20 07:42,os-nosdn-nofeature-ha,apex,26/27,96.0
-2017-10-20 07:42,os-nosdn-kvm-noha,compass,26/27,96.0
-2017-10-20 07:42,os-odl-sfc-noha,compass,20/30,67.0
-2017-10-20 07:42,os-odl_l2-moon-noha,compass,24/30,80.0
-2017-10-20 07:42,os-odl_l3-nofeature-ha,compass,21/27,78.0
-2017-10-20 07:42,os-nosdn-kvm-ha,compass,26/27,96.0
-2017-10-20 07:42,os-odl-sfc-ha,compass,25/30,83.0
-2017-10-20 07:42,os-nosdn-nofeature-noha,compass,26/27,96.0
-2017-10-20 07:42,os-nosdn-ovs_dpdk-ha,compass,2/18,11.0
-2017-10-20 07:42,os-nosdn-ovs_dpdk-noha,compass,3/27,11.0
-2017-10-20 07:42,os-odl_l3-nofeature-noha,compass,14/18,78.0
-2017-10-20 07:42,os-odl_l2-moon-ha,compass,26/30,87.0
-2017-10-20 07:42,os-nosdn-nofeature-ha,compass,24/27,89.0
-2017-10-20 07:42,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-20 07:42,os-odl-nofeature-ha,daisy,25/30,83.0
-2017-10-20 07:42,os-nosdn-ovs-noha,fuel@x86,25/27,93.0
-2017-10-20 07:42,os-odl-nofeature-ha,fuel@x86,29/30,97.0
-2017-10-20 07:42,os-odl-nofeature-noha,fuel@x86,30/30,100.0
-2017-10-20 07:42,os-nosdn-nofeature-noha,fuel@x86,27/27,100.0
-2017-10-20 07:42,os-nosdn-ovs-ha,fuel@x86,12/27,44.0
-2017-10-20 07:42,os-nosdn-nofeature-ha,fuel@x86,15/18,83.0
-2017-10-20 07:42,os-nosdn-nofeature-noha,fuel@aarch64,1/9,11.0
-2017-10-20 07:42,os-nosdn-nofeature-ha,fuel@aarch64,23/27,85.0
-2017-10-20 07:42,os-ocl-nofeature-noha,joid,3/27,11.0
-2017-10-20 07:42,os-ocl-nofeature-ha,joid,3/27,11.0
-2017-10-20 07:42,os-nosdn-nofeature-noha,joid,15/27,56.0
-2017-10-20 07:42,os-nosdn-openbaton-ha,joid,5/18,28.0
-2017-10-20 07:42,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-20 07:42,os-nosdn-lxd-noha,joid,3/15,20.0
-2017-10-20 07:42,os-nosdn-nofeature-ha,joid,10/18,56.0
-2017-10-20 08:41,os-nosdn-kvm_ovs_dpdk-noha,apex,4/18,22.0
-2017-10-20 08:41,os-nosdn-fdio-noha,apex,9/18,50.0
-2017-10-20 08:41,os-nosdn-kvm_ovs_dpdk-ha,apex,4/18,22.0
-2017-10-20 08:41,os-odl-fdio-ha,apex,24/33,73.0
-2017-10-20 08:41,os-odl-sfc-noha,apex,8/30,27.0
-2017-10-20 08:41,os-ovn-nofeature-noha,apex,6/18,33.0
-2017-10-20 08:41,os-nosdn-fdio-ha,apex,12/18,67.0
-2017-10-20 08:41,os-odl-bgpvpn-ha,apex,16/18,89.0
-2017-10-20 08:41,os-nosdn-ovs_dpdk-ha,apex,4/18,22.0
-2017-10-20 08:41,os-nosdn-ovs_dpdk-noha,apex,4/18,22.0
-2017-10-20 08:41,os-odl-fdio-noha,apex,24/33,73.0
-2017-10-20 08:41,os-odl-nofeature-ha,apex,18/20,90.0
-2017-10-20 08:41,os-nosdn-nofeature-noha,apex,18/18,100.0
-2017-10-20 08:41,os-odl-fdio_dvr-noha,apex,6/33,18.0
-2017-10-20 08:41,os-nosdn-bar-noha,apex,18/18,100.0
-2017-10-20 08:41,os-odl-nofeature-noha,apex,18/20,90.0
-2017-10-20 08:41,os-nosdn-bar-ha,apex,26/27,96.0
-2017-10-20 08:41,os-nosdn-calipso-noha,apex,18/18,100.0
-2017-10-20 08:41,os-nosdn-nofeature-ha,apex,26/27,96.0
-2017-10-20 08:41,os-nosdn-kvm-noha,compass,26/27,96.0
-2017-10-20 08:41,os-odl-sfc-noha,compass,20/30,67.0
-2017-10-20 08:41,os-odl_l2-moon-noha,compass,24/30,80.0
-2017-10-20 08:41,os-odl_l3-nofeature-ha,compass,21/27,78.0
-2017-10-20 08:41,os-nosdn-kvm-ha,compass,26/27,96.0
-2017-10-20 08:41,os-odl-sfc-ha,compass,26/30,87.0
-2017-10-20 08:41,os-nosdn-nofeature-noha,compass,26/27,96.0
-2017-10-20 08:41,os-nosdn-ovs_dpdk-ha,compass,2/18,11.0
-2017-10-20 08:41,os-nosdn-ovs_dpdk-noha,compass,3/27,11.0
-2017-10-20 08:41,os-odl_l3-nofeature-noha,compass,14/18,78.0
-2017-10-20 08:41,os-odl_l2-moon-ha,compass,26/30,87.0
-2017-10-20 08:41,os-nosdn-nofeature-ha,compass,24/27,89.0
-2017-10-20 08:41,os-nosdn-nofeature-ha,daisy,26/27,96.0
-2017-10-20 08:41,os-odl-nofeature-ha,daisy,25/30,83.0
-2017-10-20 08:41,os-nosdn-ovs-noha,fuel@x86,25/27,93.0
-2017-10-20 08:41,os-odl-nofeature-ha,fuel@x86,29/30,97.0
-2017-10-20 08:41,os-odl-nofeature-noha,fuel@x86,30/30,100.0
-2017-10-20 08:41,os-nosdn-nofeature-noha,fuel@x86,27/27,100.0
-2017-10-20 08:41,os-nosdn-ovs-ha,fuel@x86,12/27,44.0
-2017-10-20 08:41,os-nosdn-nofeature-ha,fuel@x86,15/18,83.0
-2017-10-20 08:41,os-nosdn-nofeature-noha,fuel@aarch64,1/9,11.0
-2017-10-20 08:41,os-nosdn-nofeature-ha,fuel@aarch64,23/27,85.0
-2017-10-20 08:41,os-odl-nofeature-ha,fuel@aarch64,23/27,115.0
-2017-10-20 08:41,os-ocl-nofeature-noha,joid,3/27,11.0
-2017-10-20 08:41,os-ocl-nofeature-ha,joid,3/27,11.0
-2017-10-20 08:41,os-nosdn-nofeature-noha,joid,15/27,56.0
-2017-10-20 08:41,os-nosdn-openbaton-ha,joid,5/18,28.0
-2017-10-20 08:41,os-nosdn-lxd-ha,joid,2/15,13.0
-2017-10-20 08:41,os-nosdn-lxd-noha,joid,3/15,20.0
-2017-10-20 08:41,os-nosdn-nofeature-ha,joid,10/18,56.0
diff --git a/docs/results/img/weather-clear.png b/docs/results/img/weather-clear.png
deleted file mode 100644
index a0d96775..00000000
--- a/docs/results/img/weather-clear.png
+++ /dev/null
Binary files differ
diff --git a/docs/results/img/weather-few-clouds.png b/docs/results/img/weather-few-clouds.png
deleted file mode 100644
index acfa7839..00000000
--- a/docs/results/img/weather-few-clouds.png
+++ /dev/null
Binary files differ
diff --git a/docs/results/img/weather-overcast.png b/docs/results/img/weather-overcast.png
deleted file mode 100644
index 4296246d..00000000
--- a/docs/results/img/weather-overcast.png
+++ /dev/null
Binary files differ
diff --git a/docs/results/img/weather-storm.png b/docs/results/img/weather-storm.png
deleted file mode 100644
index 956f0e20..00000000
--- a/docs/results/img/weather-storm.png
+++ /dev/null
Binary files differ
diff --git a/docs/results/js/default.css b/docs/results/js/default.css
deleted file mode 100644
index e32fa5fb..00000000
--- a/docs/results/js/default.css
+++ /dev/null
@@ -1,194 +0,0 @@
-.panel-header-item {
- position: relative;
- display: inline-block;
- padding-left: 17px;
- padding-right: 17px;
-}
-
-.panel-pod-name {
- margin-top: 10px;
- margin-right: 27px;
- float:right;
- padding: 6px;
-}
-
-.panel-default > .panel-heading .badge {
- background-color: #007e88;
- position: relative;
- display: inline-block;
-}
-
-.panel-default > .panel-heading .progress-bar {
- height: 100%;
- position: absolute;
- left: 0;
- top: 0;
- width: 100%;
- background-color: #0095a2
-}
-.panel-default > .panel-heading h4 {
- color: white;
-}
-
-.panel-default > .panel-heading {
- background-color: #00ADBB;
- overflow: hidden;
- position: relative;
- width: 100%;
-}
-
-th{
- text-align: center;
-}
-
-td{
- text-align: center;
-}
-
-.tr-danger {
- background-color: #177870;
- color: white;
-}
-
-.btn-more {
- color: white;
- background-color: #0095a2;
-}
-
-h1 {
- display: block;
- font-size: 2em;
- margin-top: 0.67em;
- margin-bottom: 0.67em;
- margin-left: 0;
- margin-right: 0;
- font-weight: bold;
-}
-
-h2 {
- display: block;
- font-size: 1.5em;
- margin-top: 0.83em;
- margin-bottom: 0.83em;
- margin-left: 0;
- margin-right: 0;
- font-weight: bold;
- color:rgb(128, 128, 128)
-}
-
-#power-gauge g.arc {
- fill: steelblue;
-}
-
-#power-gauge g.pointer {
- fill: #e85116;
- stroke: #b64011;
-}
-
-#power-gauge g.label text {
- text-anchor: middle;
- font-size: 14px;
- font-weight: bold;
- fill: #666;
-}
-
-#power-gauge path {
-
-}
-
-.axis path,
-.axis line {
- fill: none;
- stroke: #000;
- shape-rendering: crispEdges;
-}
-
-.dot {
- fill: steelblue;
- stroke: steelblue;
- stroke-width: 1.5px;
-}
-
-.myButtonPdf {
- -moz-box-shadow:inset 0px 1px 0px 0px #f29c93;
- -webkit-box-shadow:inset 0px 1px 0px 0px #f29c93;
- box-shadow:inset 0px 1px 0px 0px #f29c93;
- background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #fe1a00), color-stop(1, #ce0100));
- background:-moz-linear-gradient(top, #fe1a00 5%, #ce0100 100%);
- background:-webkit-linear-gradient(top, #fe1a00 5%, #ce0100 100%);
- background:-o-linear-gradient(top, #fe1a00 5%, #ce0100 100%);
- background:-ms-linear-gradient(top, #fe1a00 5%, #ce0100 100%);
- background:linear-gradient(to bottom, #fe1a00 5%, #ce0100 100%);
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fe1a00', endColorstr='#ce0100',GradientType=0);
- background-color:#fe1a00;
- -moz-border-radius:6px;
- -webkit-border-radius:6px;
- border-radius:6px;
- border:1px solid #d83526;
- display:inline-block;
- cursor:pointer;
- color:#ffffff;
- font-family:Arial;
- font-size:15px;
- font-weight:bold;
- padding:6px 24px;
- text-decoration:none;
- text-shadow:0px 1px 0px #b23e35;
-}
-.myButtonPdf:hover {
- background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ce0100), color-stop(1, #fe1a00));
- background:-moz-linear-gradient(top, #ce0100 5%, #fe1a00 100%);
- background:-webkit-linear-gradient(top, #ce0100 5%, #fe1a00 100%);
- background:-o-linear-gradient(top, #ce0100 5%, #fe1a00 100%);
- background:-ms-linear-gradient(top, #ce0100 5%, #fe1a00 100%);
- background:linear-gradient(to bottom, #ce0100 5%, #fe1a00 100%);
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ce0100', endColorstr='#fe1a00',GradientType=0);
- background-color:#ce0100;
-}
-.myButtonPdf:active {
- position:relative;
- top:1px;
-}
-
-
-.myButtonCSV {
- -moz-box-shadow:inset 0px 1px 0px 0px #bbdaf7;
- -webkit-box-shadow:inset 0px 1px 0px 0px #bbdaf7;
- box-shadow:inset 0px 1px 0px 0px #bbdaf7;
- background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #79bbff), color-stop(1, #378de5));
- background:-moz-linear-gradient(top, #79bbff 5%, #378de5 100%);
- background:-webkit-linear-gradient(top, #79bbff 5%, #378de5 100%);
- background:-o-linear-gradient(top, #79bbff 5%, #378de5 100%);
- background:-ms-linear-gradient(top, #79bbff 5%, #378de5 100%);
- background:linear-gradient(to bottom, #79bbff 5%, #378de5 100%);
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#79bbff', endColorstr='#378de5',GradientType=0);
- background-color:#79bbff;
- -moz-border-radius:6px;
- -webkit-border-radius:6px;
- border-radius:6px;
- border:1px solid #84bbf3;
- display:inline-block;
- cursor:pointer;
- color:#ffffff;
- font-family:Arial;
- font-size:15px;
- font-weight:bold;
- padding:6px 24px;
- text-decoration:none;
- text-shadow:0px 1px 0px #528ecc;
-}
-.myButtonCSV:hover {
- background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #378de5), color-stop(1, #79bbff));
- background:-moz-linear-gradient(top, #378de5 5%, #79bbff 100%);
- background:-webkit-linear-gradient(top, #378de5 5%, #79bbff 100%);
- background:-o-linear-gradient(top, #378de5 5%, #79bbff 100%);
- background:-ms-linear-gradient(top, #378de5 5%, #79bbff 100%);
- background:linear-gradient(to bottom, #378de5 5%, #79bbff 100%);
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#378de5', endColorstr='#79bbff',GradientType=0);
- background-color:#378de5;
-}
-.myButtonCSV:active {
- position:relative;
- top:1px;
-}
-
diff --git a/docs/results/js/gauge.js b/docs/results/js/gauge.js
deleted file mode 100644
index 4cad16c6..00000000
--- a/docs/results/js/gauge.js
+++ /dev/null
@@ -1,165 +0,0 @@
-// ******************************************
-// Gauge for reporting
-// Each scenario has a score
-// We use a gauge to indicate the trust level
-// ******************************************
-var gauge = function(container) {
- var that = {};
- var config = {
- size : 150,
- clipWidth : 250,
- clipHeight : 100,
- ringInset : 20,
- ringWidth : 40,
-
- pointerWidth : 7,
- pointerTailLength : 5,
- pointerHeadLengthPercent : 0.8,
-
- minValue : 0,
- maxValue : 100,
-
- minAngle : -90,
- maxAngle : 90,
-
- transitionMs : 4000,
-
- majorTicks : 7,
- labelFormat : d3.format(',g'),
- labelInset : 10,
-
- arcColorFn : d3.interpolateHsl(d3.rgb('#ff0000'), d3.rgb('#00ff00'))
- };
-
-
-var range = undefined;
-var r = undefined;
-var pointerHeadLength = undefined;
-var value = 0;
-
-var svg = undefined;
-var arc = undefined;
-var scale = undefined;
-var ticks = undefined;
-var tickData = undefined;
-var pointer = undefined;
-
-var donut = d3.layout.pie();
-
-function deg2rad(deg) {
- return deg * Math.PI / 180;
-}
-
-function newAngle(d) {
- var ratio = scale(d);
- var newAngle = config.minAngle + (ratio * range);
- return newAngle;
-}
-
-function configure() {
- range = config.maxAngle - config.minAngle;
- r = config.size / 2;
- pointerHeadLength = Math.round(r * config.pointerHeadLengthPercent);
-
- // a linear scale that maps domain values to a percent from 0..1
- scale = d3.scale.linear()
- .range([0,1])
- .domain([config.minValue, config.maxValue]);
-
- ticks = scale.ticks(config.majorTicks);
- tickData = d3.range(config.majorTicks).map(function() {return 1/config.majorTicks;});
-
- arc = d3.svg.arc()
- .innerRadius(r - config.ringWidth - config.ringInset)
- .outerRadius(r - config.ringInset)
- .startAngle(function(d, i) {
- var ratio = d * i;
- return deg2rad(config.minAngle + (ratio * range));
- })
- .endAngle(function(d, i) {
- var ratio = d * (i+1);
- return deg2rad(config.minAngle + (ratio * range));
- });
-}
-that.configure = configure;
-
-function centerTranslation() {
- return 'translate('+r +','+ r +')';
-}
-
-function isRendered() {
- return (svg !== undefined);
-}
-that.isRendered = isRendered;
-
-function render(newValue) {
- svg = d3.select(container)
- .append('svg:svg')
- .attr('class', 'gauge')
- .attr('width', config.clipWidth)
- .attr('height', config.clipHeight);
-
- var centerTx = centerTranslation();
-
- var arcs = svg.append('g')
- .attr('class', 'arc')
- .attr('transform', centerTx);
-
- arcs.selectAll('path')
- .data(tickData)
- .enter().append('path')
- .attr('fill', function(d, i) {
- return config.arcColorFn(d * i);
- })
- .attr('d', arc);
-
- var lg = svg.append('g')
- .attr('class', 'label')
- .attr('transform', centerTx);
- lg.selectAll('text')
- .data(ticks)
- .enter().append('text')
- .attr('transform', function(d) {
- var ratio = scale(d);
- var newAngle = config.minAngle + (ratio * range);
- return 'rotate(' +newAngle +') translate(0,' +(config.labelInset - r) +')';
- })
- .text(config.labelFormat);
-
- var lineData = [ [config.pointerWidth / 2, 0],
- [0, -pointerHeadLength],
- [-(config.pointerWidth / 2), 0],
- [0, config.pointerTailLength],
- [config.pointerWidth / 2, 0] ];
- var pointerLine = d3.svg.line().interpolate('monotone');
- var pg = svg.append('g').data([lineData])
- .attr('class', 'pointer')
- .attr('transform', centerTx);
-
- pointer = pg.append('path')
- .attr('d', pointerLine/*function(d) { return pointerLine(d) +'Z';}*/ )
- .attr('transform', 'rotate(' +config.minAngle +')');
-
- update(newValue === undefined ? 0 : newValue);
-}
-that.render = render;
-
-function update(newValue, newConfiguration) {
- if ( newConfiguration !== undefined) {
- configure(newConfiguration);
- }
- var ratio = scale(newValue);
- var newAngle = config.minAngle + (ratio * range);
- pointer.transition()
- .duration(config.transitionMs)
- .ease('elastic')
- .attr('transform', 'rotate(' +newAngle +')');
-}
-that.update = update;
-
-configure();
-
-render();
-
-return that;
-};
diff --git a/docs/results/js/trend.js b/docs/results/js/trend.js
deleted file mode 100644
index f2421338..00000000
--- a/docs/results/js/trend.js
+++ /dev/null
@@ -1,75 +0,0 @@
-// ******************************************
-// Trend line for reporting
-// based on scenario_history.txt
-// where data looks like
-// date,scenario,installer,detail,score
-// 2016-09-22 13:12,os-nosdn-fdio-noha,apex,4/12,33.0
-// 2016-09-22 13:13,os-odl_l2-fdio-noha,apex,12/15,80.0
-// 2016-09-22 13:13,os-odl_l2-sfc-noha,apex,18/24,75.0
-// .....
-// ******************************************
-// Set the dimensions of the canvas / graph
-var trend_margin = {top: 20, right: 30, bottom: 50, left: 40},
- trend_width = 300 - trend_margin.left - trend_margin.right,
- trend_height = 130 - trend_margin.top - trend_margin.bottom;
-
-// Parse the date / time
-var parseDate = d3.time.format("%Y-%m-%d %H:%M").parse;
-
-// Set the ranges
-var trend_x = d3.time.scale().range([0, trend_width]);
-var trend_y = d3.scale.linear().range([trend_height, 0]);
-
-// Define the axes
-var trend_xAxis = d3.svg.axis().scale(trend_x)
- .orient("bottom").ticks(2).tickFormat(d3.time.format("%m-%d"));
-
-var trend_yAxis = d3.svg.axis().scale(trend_y)
- .orient("left").ticks(2);
-
-// Define the line
-var valueline = d3.svg.line()
- .x(function(d) { return trend_x(d.date); })
- .y(function(d) { return trend_y(d.score); });
-
-var trend = function(container, trend_data) {
-
- var trend_svg = d3.select(container)
- .append("svg")
- .attr("width", trend_width + trend_margin.left + trend_margin.right)
- .attr("height", trend_height + trend_margin.top + trend_margin.bottom)
- .append("g")
- .attr("transform",
- "translate(" + trend_margin.left + "," + trend_margin.top + ")");
-
- // Scale the range of the data
- trend_x.domain(d3.extent(trend_data, function(d) { return d.date; }));
- trend_y.domain([0, d3.max(trend_data, function(d) { return d.score; })]);
-
- // Add the X Axis
- trend_svg.append("g")
- .attr("class", "x axis")
- .attr("transform", "translate(0," + trend_height + ")")
- .call(trend_xAxis);
-
- // Add the Y Axis
- trend_svg.append("g")
- .attr("class", "y axis")
- .call(trend_yAxis);
-
- // Add the valueline path.
- trend_svg.append("path")
- .attr("class", "line")
- .attr("d", valueline(trend_data))
- .attr("stroke", "steelblue")
- .attr("fill", "none");
-
- trend_svg.selectAll(".dot")
- .data(trend_data)
- .enter().append("circle")
- .attr("r", 2.5)
- .attr("cx", function(d) { return trend_x(d.date); })
- .attr("cy", function(d) { return trend_y(d.score); });
-
- return trend;
-}
diff --git a/docs/testing/developer/devguide/index.rst b/docs/testing/developer/devguide/index.rst
deleted file mode 100644
index 19a1bdcb..00000000
--- a/docs/testing/developer/devguide/index.rst
+++ /dev/null
@@ -1,315 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. SPDX-License-Identifier: CC-BY-4.0
-
-************************
-Functest Developer Guide
-************************
-
-.. toctree::
- :numbered:
- :maxdepth: 2
-
-============
-Introduction
-============
-
-Functest is a project dealing with functional testing.
-The project produces its own internal test cases but can also be considered
-as a framework to support feature and VNF onboarding project testing.
-
-Therefore there are many ways to contribute to Functest. You can:
-
- * Develop new internal test cases
- * Integrate the tests from your feature project
- * Develop the framework to ease the integration of external test cases
-
-Additional tasks involving Functest but addressing all the test projects
-may also be mentioned:
-
- * The API / Test collection framework
- * The dashboards
- * The automatic reporting portals
- * The testcase catalog
-
-This document describes how, as a developer, you may interact with the
-Functest project. The first section details the main working areas of
-the project. The Second part is a list of "How to" to help you to join
-the Functest family whatever your field of interest is.
-
-
-========================
-Functest developer areas
-========================
-
-
-Functest High level architecture
-================================
-
-Functest is a project delivering test containers dedicated to OPNFV.
-It includes the tools, the scripts and the test scenarios.
-In Euphrates Alpine containers have been introduced in order to lighten the
-container and manage testing slicing. The new containers are created according
-to the different tiers:
-
- * functest-core: https://hub.docker.com/r/opnfv/functest-core/
- * functest-healthcheck: https://hub.docker.com/r/opnfv/functest-healthcheck/
- * functest-smoke: https://hub.docker.com/r/opnfv/functest-smoke/
- * functest-features: https://hub.docker.com/r/opnfv/functest-features/
- * functest-components: https://hub.docker.com/r/opnfv/functest-components/
- * functest-vnf: https://hub.docker.com/r/opnfv/functest-vnf/
- * functest-parser: https://hub.docker.com/r/opnfv/functest-parser/
- * functest-restapi: https://hub.docker.com/r/opnfv/functest-restapi/
-
-Standalone functest dockers are maintained for Euphrates but Alpine containers
-are recommended.
-
-Functest can be described as follow::
-
- +----------------------+
- | |
- | +--------------+ | +-------------------+
- | | | | Public | |
- | | Tools | +------------------+ OPNFV |
- | | Scripts | | | System Under Test |
- | | Scenarios | | | |
- | | | | | |
- | +--------------+ | +-------------------+
- | |
- | Functest Docker |
- | |
- +----------------------+
-
-Functest internal test cases
-============================
-The internal test cases in Euphrates are:
-
-
- * api_check
- * connection_check
- * snaps_health_check
- * vping_ssh
- * vping_userdata
- * odl
- * odl_netvirt
- * rally_full
- * rally_sanity
- * tempest_smoke_serial
- * tempest_full_parallel
- * cloudify_ims
-
-By internal, we mean that this particular test cases have been developed and/or
-integrated by functest contributors and the associated code is hosted in the
-Functest repository.
-An internal case can be fully developed or a simple integration of
-upstream suites (e.g. Tempest/Rally developed in OpenStack, or odl suites are
-just integrated in Functest).
-
-The structure of this repository is detailed in `[1]`_.
-The main internal test cases are in the opnfv_tests subfolder of the
-repository, the internal test cases can be grouped by domain:
-
- * sdn: odl, odl_netvirt, odl_fds
- * openstack: api_check, connection_check, snaps_health_check, vping_ssh, vping_userdata, tempest_*, rally_*
- * vnf: cloudify_ims
-
-If you want to create a new test case you will have to create a new folder under
-the testcases directory (See next section for details).
-
-Functest external test cases
-============================
-The external test cases are inherited from other OPNFV projects, especially the
-feature projects.
-
-The external test cases are:
-
- * barometer
- * bgpvpn
- * doctor
- * domino
- * fds
- * parser
- * promise
- * refstack_defcore
- * snaps_smoke
- * functest-odl-sfc
- * orchestra_clearwaterims
- * orchestra_openims
- * vyos_vrouter
- * juju_vepc
-
-External test cases integrated in previous versions but not released in
-Euphrates:
-
- * copper
- * moon
- * netready
- * security_scan
-
-
-The code to run these test cases is hosted in the repository of the project.
-Please note that orchestra test cases are hosted in Functest repository and not
-in orchestra repository. Vyos_vrouter and juju_vepc code is also hosted in
-functest as there are no dedicated projects.
-
-
-Functest framework
-==================
-
-Functest is a framework.
-
-Historically Functest is released as a docker file, including tools, scripts and
-a CLI to prepare the environment and run tests.
-It simplifies the integration of external test suites in CI pipeline and provide
-commodity tools to collect and display results.
-
-Since Colorado, test categories also known as **tiers** have been created to
-group similar tests, provide consistent sub-lists and at the end optimize
-test duration for CI (see How To section).
-
-The definition of the tiers has been agreed by the testing working group.
-
-The tiers are:
- * healthcheck
- * smoke
- * features
- * components
- * vnf
-
-Functest abstraction classes
-============================
-
-In order to harmonize test integration, abstraction classes have been
-introduced:
-
- * testcase: base for any test case
- * unit: run unit tests as test case
- * feature: abstraction for feature project
- * vnf: abstraction for vnf onboarding
-
-The goal is to unify the way to run tests in Functest.
-
-Feature, unit and vnf_base inherit from testcase::
-
- +----------------------------------------------------------------+
- | |
- | TestCase |
- | |
- | - init() |
- | - run() |
- | - push_to_db() |
- | - is_successful() |
- | |
- +----------------------------------------------------------------+
- | | | |
- V V V V
- +--------------------+ +---------+ +------------------------+ +-----------------+
- | | | | | | | |
- | feature | | unit | | vnf | | robotframework |
- | | | | | | | |
- | | | | |- prepare() | | |
- | - execute() | | | |- deploy_orchestrator() | | |
- | BashFeature class | | | |- deploy_vnf() | | |
- | | | | |- test_vnf() | | |
- | | | | |- clean() | | |
- +--------------------+ +---------+ +------------------------+ +-----------------+
-
-
-Testcase
---------
-.. raw:: html
- :url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.testcase.html
-
-Feature
--------
-.. raw:: html
- :url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.feature.html
-
-Unit
-----
-.. raw:: html
- :url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.unit.html
-
-VNF
----
-.. raw:: html
- :url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.vnf.html
-
-Robotframework
---------------
-.. raw:: html
- :url: http://artifacts.opnfv.org/functest/docs/apidoc/functest.core.robotframework.html
-
-
-see `[5]`_ to get code samples
-
-
-Functest util classes
-=====================
-
-In order to simplify the creation of test cases, Functest develops also some
-functions that are used by internal test cases.
-Several features are supported such as logger, configuration management and
-Openstack capabilities (tacker,..).
-These functions can be found under <repo>/functest/utils and can be described as
-follows::
-
- functest/utils/
- |-- config.py
- |-- constants.py
- |-- decorators.py
- |-- env.py
- |-- functest_utils.py
- |-- openstack_tacker.py
- `-- openstack_utils.py
-
-It is recommended to use the SNAPS-OO library for deploying OpenStack instances.
-SNAPS `[4]`_ is an OPNFV project providing OpenStack utils.
-
-
-TestAPI
-=======
-Functest is using the Test collection framework and the TestAPI developed by
-the OPNFV community. See `[6]`_ for details.
-
-
-Reporting
-=========
-A web page is automatically generated every day to display the status based on
-jinja2 templates `[3]`_.
-
-
-Dashboard
-=========
-
-Additional dashboarding is managed at the testing group level, see `[7]`_ for
-details.
-
-
-=======
-How TOs
-=======
-
-See How to section on Functest wiki `[8]`_
-
-
-==========
-References
-==========
-
-_`[1]`: http://artifacts.opnfv.org/functest/docs/configguide/index.html Functest configuration guide
-
-_`[2]`: http://artifacts.opnfv.org/functest/docs/userguide/index.html functest user guide
-
-_`[3]`: https://git.opnfv.org/cgit/releng/tree/utils/test/reporting
-
-_`[4]`: https://git.opnfv.org/snaps/
-
-_`[5]` : http://testresults.opnfv.org/functest/framework/index.html
-
-_`[6]`: http://docs.opnfv.org/en/latest/testing/testing-dev.html
-
-_`[7]`: https://opnfv.biterg.io/goto/283dba93ca18e95964f852c63af1d1ba
-
-_`[8]`: https://wiki.opnfv.org/pages/viewpage.action?pageId=7768932
-
-IRC support chan: #opnfv-functest
diff --git a/docs/testing/developer/internship/security_group/index.rst b/docs/testing/developer/internship/security_group/index.rst
deleted file mode 100644
index d1cdbdd8..00000000
--- a/docs/testing/developer/internship/security_group/index.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-=======
-License
-=======
-
-Functest Docs are licensed under a Creative Commons Attribution 4.0
-International License.
-You should have received a copy of the license along with this.
-If not, see <http://creativecommons.org/licenses/by/4.0/>.
-
-==================================
-Functest Security group test cases
-==================================
-
-Author: Girish Sukhatankar
-mentors: D.Blaisonneau, J.Lausuch, M.Richomme
-
-Abstract
-========
-
-
-Version history
-===============
-
-+------------+----------+------------------+------------------------+
-| **Date** | **Ver.** | **Author** | **Comment** |
-| | | | |
-+------------+----------+------------------+------------------------+
-| 2016-??-?? | 0.0.1 | Morgan Richomme | Beginning of the |
-| | | (Orange) | Internship |
-+------------+----------+------------------+------------------------+
-
-
-Overview:
-=========
-
-
-
-
-Problem Statement:
-------------------
-
-
-
-Curation Phase
---------------
-
-
-
-
-
-Schedule:
-=========
-
-
-
-+--------------------------+------------------------------------------+
-| **Date** | **Comment** |
-| | |
-+--------------------------+------------------------------------------+
-| December - January | ........ |
-+--------------------------+------------------------------------------+
-| January - february | ........ |
-+--------------------------+------------------------------------------+
-
-
-References:
-===========
-
-.. _`[1]` : https://wiki.opnfv.org/display/DEV/Intern+Project%3A+Security+groups+test+case+in+Functest
-
diff --git a/docs/testing/developer/internship/testapi_evolution/index.rst b/docs/testing/developer/internship/testapi_evolution/index.rst
deleted file mode 100644
index 3038d0ac..00000000
--- a/docs/testing/developer/internship/testapi_evolution/index.rst
+++ /dev/null
@@ -1,237 +0,0 @@
-=======
-License
-=======
-
-Functest Docs are licensed under a Creative Commons Attribution 4.0
-International License.
-You should have received a copy of the license along with this.
-If not, see <http://creativecommons.org/licenses/by/4.0/>.
-
-=================
-TestAPI evolution
-=================
-
-Author: Sakala Venkata Krishna Rohit
-Mentors: S. Feng, J.Lausuch, M.Richomme
-
-Abstract
-========
-
-The TestAPI is used by all the test opnfv projects to report results.
-It is also used to declare projects, test cases and labs. A major refactoring
-has been done in Colorado with the introduction of swagger. The TestAPI is defined in Functest
-developer guide. The purpose of this project is to add more features to the TestAPI that automate
-the tasks that are done manually now, though there are tasks other than automation.
-
-Version history
-===============
-
-+------------+----------+------------------+------------------------+
-| **Date** | **Ver.** | **Author** | **Comment** |
-| | | | |
-+------------+----------+------------------+------------------------+
-| 2016-11-14 | 0.0.1 | Morgan Richomme | Beginning of the |
-| | | (Orange) | Internship |
-+------------+----------+------------------+------------------------+
-| 2017-02-17 | 0.0.2 | S.V.K Rohit | End of the Internship |
-| | | (IIIT Hyderabad) | |
-+------------+----------+------------------+------------------------+
-
-Overview:
-=========
-
-The internhip time period was from Nov 14th to Feb 17th. The project prosposal page is here `[1]`_.
-The intern project was assigned to Svk Rohit and was mentored by S. Feng, J.Lausuch, M.Richomme.
-The link to the patches submitted is `[2]`_. The internship was successfully completed and the
-documentation is as follows.
-
-Problem Statement:
-------------------
-
-The problem statement could be divided into pending features that needed to be added into TestAPI
-repo. The following were to be accomplished within the internship time frame.
-
-* **Add verification jenkins job for the TestAPI code**
- The purpose of this job is to verify whehter the unit tests are successful or not with the
- inclusion of the patchset submitted.
-
-* **Automatic update of opnfv/testapi docker image**
- The docker image of TestAPI is hosted in the opnfv docker hub. To ensure that the TestAPI image
- is always updated with the repository, automatic updation of the image is necessary and a job
- is triggered whenever a new patch gets merged.
-
-* **Automation deployment of testresults.opnfv.org/test/ website**
- In the same manner as the docker image of TestAPI is updated, the TestAPI website needs to be
- in sync with the repository code. So, a job has been added to the opnfv jenkins ci for the
- updation of the testresults website.
-
-* **Generate static documentation of TestAPI calls**
- The purpose of this is to give an static/offline view of TestAPI. If someone wants to have a
- look at the Restful APIs of TestAPI, he/she does't need to go to the website, he can download
- a html page and view it anytime.
-
-* **Backup MongoDB of TestAPI**
- The mongoDB needs to be backed up every week. Till now it was done manually, but due to this
- internship, it is now automated using a jenkins job.
-
-* **Add token based authorization to the TestAPI calls**
- The token based authorization was implemented to ensure that only ci_pods could access the
- database. Authentication has been added to only delete/put/post requests.
-
-Curation Phase:
----------------
-
-The curation phase was the first 3 to 4 weeks of the internship. This phase was to get familiar
-with the TestAPI code and functionality and propose the solutions/tools for the tasks mentioned
-above. Swagger codegen was choosen out of the four tools proposed `[3]`_ for generating static
-documentaion.
-
-Also, specific amount of time was spent on the script flow of the jenkins jobs. The automatic
-deployment task involves accessing a remote server from inside the jenkins build. The deployment
-had to be done only after the docker image update is done. For these constraints to satisfy, a
-multijob jenkins job was choosen instead of a freestyle job.
-
-Important Links:
-----------------
-
-* MongoDB Backup Link - `[4]`_
-* Static Documentation - `[5]`_
-* TestAPI Token addition to ci_pods - `[6]`_
-
-Schedule:
-=========
-
-The progress and completion of the tasks is described in the below table.
-
-+--------------------------+------------------------------------------+
-| **Date** | **Comment** |
-| | |
-+--------------------------+------------------------------------------+
-| Nov 14th - Dec 31st | Understand TestAPI code and the |
-| | requirements. |
-+--------------------------+------------------------------------------+
-| Jan 1st - Jan 7th | Add jenkins job to create static |
-| | documentation and write build scripts. |
-+--------------------------+------------------------------------------+
-| Jan 8th - Jan 21st | Add verification jenkins job for unit |
-| | tests. |
-+--------------------------+------------------------------------------+
-| Jan 22nd - Jan 28th | Add jenkins job for mongodb backup |
-| | |
-+--------------------------+------------------------------------------+
-| Jan 29th - Feb 11th | Enable automatic deployment of |
-| | testresults.opnfv.org/test/ |
-+--------------------------+------------------------------------------+
-| Feb 12th - Feb 17th | Add token based authentication |
-| | |
-+--------------------------+------------------------------------------+
-
-FAQ's
-=====
-
-This section lists the problems that I have faced and the understanding that I have acquired during
-the internship. This section may help other developers in solving any errors casused because of the
-code written as a part of this internship.
-
-
-TestAPI
--------
-
-What is the difference between defining data_file as "/etc/.." and "etc/.." in setup.cfg ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If in the setup.cfg, it is defined as
-
-[files]
-data_files =
-etc/a.conf = etc/a.conf.sample
-
-then it ends up installed in the /usr/etc/. With this configuration, it would be installed
-correctly within a venv. but when it is defined as
-
-[files]
-data_files =
-/etc/a.conf = etc/a.conf.sample
-
-then it ends up installed on the root of the filesystem instead of properly be installed within the
-venv.
-
-Which attribute does swagger-codegen uses as the title in the generation of document generation ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It uses the nickname of the api call in swagger as the title in the generation of the document
-generation.
-
-Does swagger-codegen take more than one yaml file as input ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-No, swagger-codegen only takes one yaml file as input to its jar file. If there more than one yaml
-file, one needs to merge them and give it as an input keeping mind the swagger specs.
-
-
-Jenkins & JJB
--------------
-
-Which scm macro is used for verification jenkins jobs ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are two macros for scm one is git-scm and other git-scm-gerrit. git-scm-gerrit is used for
-verification jenkins job.
-
-Does the virtualenv created in one build script exists in other build scripts too ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-No, the virtualenv created in one build script only exists in that build script/shell.
-
-What parameters are needed for the scm macros ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Project and Branch are the two parameters needed for scm macros.
-
-What is the directory inside the jenkins build ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The directory of the jenkins build is the directory of the repo. `ls $WORKSPACE` command will give
-you all the contents of the directory.
-
-How to include a bash script in jenkins job yaml file ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-An example might be apt here as an answer.
-
-builders:
- - shell:
- !include-raw: include-raw001-hello-world.sh
-
-
-How do you make a build server run on a specific machine ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It can be done by defining a label parameter 'SLAVE_LABEL' or in OPNFV , there are macros for each
-server, one can use those parameter macros.
-Ex: opnfv-build-defaults. Note, if we use macro, then no need to define GIT_BASE, but if one uses
-SLAVE_LABEL, one needs to define a parameter GIT_BASE. This is because macro already has GIT_BASE
-defined.
-
-What job style should be used when there is a situation like one build should trigger other builds
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-or when different build scripts need to be run on different machines ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-MultiJob style should be used as it has phases where each phase can be taken as a build scipt and
-can have its own parameters by which one can define the SLAVE_LABEL parameter.
-
-References:
-===========
-
-_`[1]` : https://wiki.opnfv.org/display/DEV/Intern+Project%3A+testapi+evolution
-
-_`[2]` : https://gerrit.opnfv.org/gerrit/#/q/status:merged+owner:%22Rohit+Sakala+%253Crohitsakala%2540gmail.com%253E%22
-
-_`[3]` : https://docs.google.com/document/d/1jWwVZ1ZpKgKcOS_zSz2KzX1nwg4BXxzBxcwkesl7krw/edit?usp=sharing
-
-_`[4]` : http://artifacts.opnfv.org/testapibackup.html
-
-_`[5]` : http://artifacts.opnfv.org/releng/docs/testapi.html
-
-_`[6]` : http://artifacts.opnfv.org/functest/docs/devguide/index.html#test-api-authorization
diff --git a/docs/testing/developer/internship/unit_tests/index.rst b/docs/testing/developer/internship/unit_tests/index.rst
deleted file mode 100644
index a117c860..00000000
--- a/docs/testing/developer/internship/unit_tests/index.rst
+++ /dev/null
@@ -1,126 +0,0 @@
-=======
-License
-=======
-
-Functest Docs are licensed under a Creative Commons Attribution 4.0
-International License.
-You should have received a copy of the license along with this.
-If not, see <http://creativecommons.org/licenses/by/4.0/>.
-
-===================
-Functest Unit tests
-===================
-
-Author: Ashish Kumar
-Mentors: H.Yao, J.Lausuch, M.Richomme
-
-Abstract
-========
-
-
-Version history
-===============
-
-+------------+----------+------------------+------------------------+
-| **Date** | **Ver.** | **Author** | **Comment** |
-| | | | |
-+------------+----------+------------------+------------------------+
-| 2016-11-14 | 0.0.1 | Morgan Richomme | Beginning of the |
-| | | (Orange) | Internship |
-+------------+----------+------------------+------------------------+
-| 2017-03-31 | 0.0.2 | Ashish Kumar | During the |
-| | | (IIIT Hyderabad) | Internship |
-+------------+----------+------------------+------------------------+
-
-
-Overview:
-=========
-Functest project is developing and integrating functional test cases for OPNFV
-and it is part of OPNFV since the beginning. Functest develops its own testcases
-and framework. This framework includes several utility libraries. The Project is
-growing rapidly with more features, tests added as per requirement. It becomes
-the responsibility of every developer to maintain the integrity of code i.e. new
-patch should not break the previous functionality of the project. To automate this
-process of software development, we should write unit tests and add them to CI so
-that when a new patch is ready to merge, we shouldn't allow those which are breaking
-previous unit tests or decreasing the coverage.
-
-
-
-Problem Statement:
-------------------
-The goal of the intership consists in creating unit test suites on Functest code
-with good code coverage (>80%) and integrate it in continuous integration in order
-to consolidate existing code.
-
-
-Curation Phase
---------------
-The curation phase was the first 3 to 4 weeks of the internship. This phase was to get
-familiar with the functest code and functionality and explore the solutions for unit
-testing in other projects and come up with the strategy for writing unit tests in functest.
-
-In this phase we decided,
-- Coverage should be 80%. There are some functions like __init__, getter, setter and other
- private methods for which writing unit test is a tedious job, so we are leaving these methods
- for now.
-- Do method wise testing for every module.
-- Use mock for external or third party services, system calls and other external library calls
- which could impact the behaviour of system during the run of unit test.
-- Add it in jenkins as passing criteria for patches.
-- Write tests in modular way so that it can help to serve as a form of documentation.
-
-
-
-Schedule:
-=========
-+--------------------------+------------------------------------------+
-| **Date** | **Comment** |
-| | |
-+--------------------------+------------------------------------------+
-| Nov 14th - Nov 28th | 1. Learn Functest Project Business |
-| | 2. Set up the development environment |
-| | 3. Run Functest code |
-+--------------------------+------------------------------------------+
-| Nov 28th - Dec.9th | 1. Explore Unit Testing Strategy, |
-| | 2. Learn about Mock in python |
-+--------------------------+------------------------------------------+
-| Dec 12th - Dec 23rd | Implement Unit Tests for CLI |
-| | |
-+--------------------------+------------------------------------------+
-| Dec 26th - Jan 6th | Implement Unit Tests for Utils |
-| | |
-+--------------------------+------------------------------------------+
-| Jan 9th - Jan 20th | Implement Unit Tests for CI |
-| | |
-+--------------------------+------------------------------------------+
-| Jan 23rd - Feb 3rd | Implement Unit Tests for Core |
-| | |
-+--------------------------+------------------------------------------+
-| Feb 6th - Feb 17th | Implement Unit Tests for |
-| | opnfv_tests/openstack/tempest |
-+--------------------------+------------------------------------------+
-| Feb 20th - Mar 3rd | Implement Unit Tests for |
-| | opnfv_tests/openstack/rally |
-+--------------------------+------------------------------------------+
-| Mar 6th - Mar 17th | Implement Unit Tests for |
-| | opnfv_tests/vnf/ims |
-+--------------------------+------------------------------------------+
-| Mar 20th - Mar 31st | Recheck and Increase Coverage for all |
-| | modules > 80% |
-+--------------------------+------------------------------------------+
-| Apr 3rd - Apr 14th | Add CI Gating for unit tests |
-| | |
-+--------------------------+------------------------------------------+
-| Apr 17th - Apr 28th | Use Tox Utility, Documentation |
-| | |
-+--------------------------+------------------------------------------+
-| Apr 28th - End | Bug Fixing |
-| | |
-+--------------------------+------------------------------------------+
-
-
-References:
-===========
-
-.. _`[1]` : https://wiki.opnfv.org/display/DEV/Intern+Project%3A+Functest+unit+tests
diff --git a/docs/testing/developer/internship/vnf_catalog/index.rst b/docs/testing/developer/internship/vnf_catalog/index.rst
deleted file mode 100644
index df763339..00000000
--- a/docs/testing/developer/internship/vnf_catalog/index.rst
+++ /dev/null
@@ -1,170 +0,0 @@
-=======
-License
-=======
-
-Functest Docs are licensed under a Creative Commons Attribution 4.0
-International License.
-You should have received a copy of the license along with this.
-If not, see <http://creativecommons.org/licenses/by/4.0/>.
-
-=======================
-Open Source VNF Catalog
-=======================
-
-Author: Kumar Rishabh
-Mentors: B.Souville, M.Richomme, J.Lausuch
-
-Abstract
-========
-
-
-
-Version hissory
-===============
-
-+------------+----------+------------------+------------------------+
-| **Date** | **Ver.** | **Author** | **Comment** |
-| | | | |
-+------------+----------+------------------+------------------------+
-| 2016-12-12 | 0.0.1 | Morgan Richomme | Beginning of the |
-| | | (Orange) | Internship |
-+------------+----------+------------------+------------------------+
-
-
-Overview:
-=========
-
-
-This project aims to create an Open Source catalog for reference and
-classification of Virtual Network Functions (VNFs)s available on
-Internet. The classification method proposed will be in sync with the
-requirements of Telcos active in NFV landscape. The project aims to have
-running web platform similar to [1] by the mid of internship (2nd week
-of March). By the penultimate month of internship I aim to have fully
-functional implementation of an Open Source VNF in functest.
-
-
-Problem Statement:
-------------------
-
-OPNFV aims to be the reference platform for development,
-standardization and integration of Open Source NFV components across
-various Open Source Platforms. It mainly deals with the infrastructure
-through the Network Function Virtualization Infrastructure (NFVI) and
-Virtual Infrastructure manager (VIM). The MANO (Management and
-orchestration) stacks have been introduced recently. VNFs are not
-directly in OPNFV scope, however VNFs are needed to test and qualify the
-infrastructure. In this regard having a common curated Open Source
-Reference VNF catalog would be of immense importance to community.
-
-Since major focus of OPNFV is Telcos, a curated platform targeted from
-industry point of view would be very useful. We plan to divide the
-entire project into three major phases(with some iterative improvements
-and overlaps)
-
-
-Curation Phase
---------------
-This phase pertains to studying various Open Source VNFs available and
-classification of them based on certain parameters. The parameters that
-I currently have in mind are:
- * Developer Metrics: These pertain to repo characteristics of VNF under
- study
- * Usage Statistics - Activity, Number of Commits, stars
- * Maturity Statistics - For instance if an NFV community decides code
- coverage is important for them, it shows the NFV community is serious
- about taking the project forward
- * Technical Tagging: These are the tags that pertain to technical
- characteristics of a VNF
- * Broad Use Cases - Whether the VNF fits strictly in IaaS, PaaS or
- SaaS layer or is an hybrid of two/all.
- * Generic Use Cases - This in my opinion is the broadest
- classification category. For instance a VNF could be built with a
- broad idea of powering IOT devices at home or from usage perspective
- of Telco Operators (vFW, vEPC, vIMS, vCDN, vAAA, vCPE,...).`[2]`_
- * Fields of Application
- * Library Status - Whether APIs are standardized, support RESTful
- services.
- * Dependency Forwarding Graph - This is pretty complex tagging
- mechanism. It essentially tries to establish a graph relationship
- between the VNFs (elementary VNFs are used in Service Function
- Chaining chains such as Firewall, DPI, content enrichment,..). In my
- opinion this is useful immensely. This will allow users to go to
- platform and ask a question like - “I have this X tech stack to
- support, Y and Z are my use cases, which NFVs should I use to support
- this.
- * Visitor Score - Based on `[1]`_ I plan to evolve a visitor score for
- the platform. This will allow users to score an NFV on certain
- parameters, may be post comments.
-
-**I plan to use the above three scores and evolve cumulative score which
-will be displayed next to each of the NFV on the platform.**
-
- * Platform building phase - This will involve erecting a Web Platform
- which will be similar to this `[1]`_. I am decently familiar with
- Django and hence I will write the platform in Django. There are two
- action plans that I have in mind right now. Either I can start writing
- the platform simultaneously which will help keep track of my progress
- or I can write the platform after 1.5 - 2 months into the internship.
- Either way I aim to have the Web Platform ready by March 12.
-
- * Functest VNF implementation phase - This is the last phase that will
- involve writing a fully functional implementation of an Open Source VNF
- into Functest. I will undertake this after I am 3 months into the
- internship. I have a decent familiarity with python and hence I think
- it shouldn’t be too difficult. I need to decide how complex the VNFI
- should undertake this exercise for (e.g. AAA such as free radius sounds
- relatively easy, vCDN is much more challenging).
- This will be decided in consent with my mentors.
-
-
-
-
-Schedule:
-=========
-I plan to take this project in 6 months time frame as I want to use it
-as a chance to read more about NFVs in particular and SDN in general
-
-
-+--------------------------+------------------------------------------+
-| **Date** | **Comment** |
-| | |
-+--------------------------+------------------------------------------+
-| December 12 - January 12 | Study the above mentioned metrics |
-| | Decide which of them are important for |
-| | community (and which are not). |
-+--------------------------+------------------------------------------+
-| January 12 - January 27 | Make a database for the above studied |
-| | metrics and evolve it further based on |
-| | Mentors’ input. + associated API |
-+--------------------------+------------------------------------------+
-| January 27 - February 5 | Compile the data collected above and make|
-| | it public. Although I can keep everything|
-| | public from the beginning too. My |
-| | rationale of not making the entire data |
-| | public in initial stage as the errors |
-| | caused by me could be misleading for |
-| | developers. |
-+--------------------------+------------------------------------------+
-| February 5 - March 5 | Erect the Web Platform and release it |
-| | for restricted group for alpha testing. |
-+--------------------------+------------------------------------------+
-| March 5 - March 12 | Make it public. Release it to public for |
-| | beta testing. Fix Bugs. |
-+--------------------------+------------------------------------------+
-| March 12 - April 12 | Start working on implementation of an |
-| | Open Source VNF in Functest. |
-+--------------------------+------------------------------------------+
-| April 12 - May 12 | I will decided what to do here based on |
-| | discussion with mentors. |
-+--------------------------+------------------------------------------+
-
-
-References:
-===========
-
-.. _`[1]` : Openhub: https://www.openhub.net/explore/projects
-
-.. _`[2]` : ETSI NFV White Paper: https://portal.etsi.org/Portals/0/TBpages/NFV/Docs/NFV_White_Paper3.pdf
-
-.. _`[3]` : https://wiki.opnfv.org/display/DEV/Intern+Project%3A+Open+Source+VNF+catalog
diff --git a/docs/testing/user/configguide/ci.rst b/docs/testing/user/configguide/ci.rst
deleted file mode 100644
index f3901d86..00000000
--- a/docs/testing/user/configguide/ci.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Integration in CI
-=================
-In CI we use the Docker images and execute the appropriate commands within the
-container from Jenkins.
-
-4 steps have been defined::
- * functest-cleanup: clean existing functest dockers on the jumphost
- * functest-daily: run dockers opnfv/functest-* (healthcheck, smoke, features, vnf)
- * functest-store-results: push logs to artifacts
-
-See `[3]`_ for details.
-
-.. _`[3]`: https://git.opnfv.org/releng/tree/jjb/functest/functest-daily-jobs.yml
diff --git a/docs/testing/user/configguide/configguide.rst b/docs/testing/user/configguide/configguide.rst
deleted file mode 100644
index f6581081..00000000
--- a/docs/testing/user/configguide/configguide.rst
+++ /dev/null
@@ -1,727 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. SPDX-License-Identifier: CC-BY-4.0
-
-Installation and configuration
-==============================
-
-Alpine containers have been introduced in Euphrates.
-Alpine allows Functest testing in several very light containers and thanks to
-the refactoring on dependency management should allow the creation of light and
-fully customized docker images.
-
-
-Functest Dockers
-----------------
-Docker images are available on the dockerhub:
-
- * opnfv/functest-core
- * opnfv/functest-healthcheck
- * opnfv/functest-smoke
- * opnfv/functest-features
- * opnfv/functest-components
- * opnfv/functest-vnf
- * opnfv/functest-parser
- * opnfv/functest-restapi
-
-The tag "opnfv-5.0.0" is the official release image in Euphrates, but you can also pull "euphrates"
-tag as it is being maintained by Functest team and might include bugfixes.
-
-The Functest docker container environment can -in principle- be also
-used with non-OPNFV official installers (e.g. 'devstack'), with the
-**disclaimer** that support for such environments is outside of the
-scope and responsibility of the OPNFV project.
-
-
-Preparing your environment
---------------------------
-
-cat env::
-
- INSTALLER_TYPE=XXX
- EXTERNAL_NETWORK=XXX
- DEPLOY_SCENARIO=XXX
-
-See section on environment variables for details.
-
-cat env_file::
-
- export OS_AUTH_URL=XXX
- export OS_USER_DOMAIN_NAME=XXX
- export OS_PROJECT_DOMAIN_NAME=XXX
- export OS_USERNAME=XXX
- export OS_TENANT_NAME=XXX
- export OS_PROJECT_NAME=XXX
- export OS_PASSWORD=XXX
- export OS_VOLUME_API_VERSION=XXX
- export OS_IDENTITY_API_VERSION=XXX
- export OS_IMAGE_API_VERSION=XXX
-
-See section on OpenStack credentials for details.
-
-Create a directory for the different images (attached as a Docker volume)::
-
- mkdir -p images && wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh?h=stable/euphrates | bash -s -- images && ls -1 images/*
-
- images/CentOS-7-aarch64-GenericCloud.qcow2
- images/CentOS-7-aarch64-GenericCloud.qcow2.xz
- images/CentOS-7-x86_64-GenericCloud.qcow2
- images/cirros-0.4.0-x86_64-disk.img
- images/cirros-0.4.0-x86_64-lxc.tar.gz
- images/cirros-d161201-aarch64-disk.img
- images/cirros-d161201-aarch64-initramfs
- images/cirros-d161201-aarch64-kernel
- images/cloudify-manager-premium-4.0.1.qcow2
- images/img
- images/trusty-server-cloudimg-amd64-disk1.img
- images/ubuntu-14.04-server-cloudimg-amd64-disk1.img
- images/ubuntu-14.04-server-cloudimg-arm64-uefi1.img
- images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
- images/vyos-1.1.7.img
-
-Testing healthcheck suite
---------------------------
-
-Run healthcheck suite::
-
- sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-healthcheck
-
-Results shall be displayed as follows::
-
- +----------------------------+------------------+---------------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +----------------------------+------------------+---------------------+------------------+----------------+
- | connection_check | functest | healthcheck | 00:06 | PASS |
- | api_check | functest | healthcheck | 06:52 | PASS |
- | snaps_health_check | functest | healthcheck | 00:42 | PASS |
- +----------------------------+------------------+---------------------+------------------+----------------+
- NOTE: the duration is a reference and it might vary depending on your SUT.
-
-Testing smoke suite
--------------------
-
-Run smoke suite::
-
- sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-smoke
-
-Results shall be displayed as follows::
-
- +------------------------------+------------------+---------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +------------------------------+------------------+---------------+------------------+----------------+
- | vping_ssh | functest | smoke | 00:45 | PASS |
- | vping_userdata | functest | smoke | 00:36 | PASS |
- | tempest_smoke_serial | functest | smoke | 14:04 | PASS |
- | rally_sanity | functest | smoke | 23:59 | PASS |
- | refstack_defcore | functest | smoke | 14:37 | FAIL |
- | snaps_smoke | functest | smoke | 42:09 | PASS |
- | odl | functest | smoke | 00:00 | SKIP |
- | odl_netvirt | functest | smoke | 00:00 | SKIP |
- +------------------------------+------------------+---------------+------------------+----------------+
- Note: if the scenario does not support some tests, they are indicated as SKIP.
- See User guide for details.
-
-Testing features suite
-----------------------
-
-Run features suite::
-
- sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-features
-
-Results shall be displayed as follows::
-
- +-----------------------------+------------------------+------------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +-----------------------------+------------------------+------------------+------------------+----------------+
- | doctor-notification | doctor | features | 00:00 | SKIP |
- | bgpvpn | sdnvpn | features | 00:00 | SKIP |
- | functest-odl-sfc | sfc | features | 00:00 | SKIP |
- | barometercollectd | barometer | features | 00:00 | SKIP |
- | fds | fastdatastacks | features | 00:00 | SKIP |
- +-----------------------------+------------------------+------------------+------------------+----------------+
- Note: if the scenario does not support some tests, they are indicated as SKIP.
- See User guide for details.
-
-Testing components suite
-------------------------
-
-Run components suite::
-
- sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-components
-
-Results shall be displayed as follows::
-
- +-------------------------------+------------------+--------------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +-------------------------------+------------------+--------------------+------------------+----------------+
- | tempest_full_parallel | functest | components | 52:42 | PASS |
- | rally_full | functest | components | 114:22 | PASS |
- +-------------------------------+------------------+--------------------+------------------+----------------+
-
-Testing vnf suite
------------------
-
-Run vnf suite::
-
-sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-vnf
-
-Results shall be displayed as follows::
-
- +---------------------------------+-------------------+--------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +---------------------------------+-------------------+--------------+------------------+----------------+
- | cloudify_ims | functest | vnf | 28:49 | FAIL |
- | vyos_vrouter | functest | vnf | 27:57 | FAIL |
- | juju_epc | functest | vnf | 55:03 | PASS |
- | orchestra_openims | orchestra | vnf | 00:00 | SKIP |
- | orchestra_clearwaterims | orchestra | vnf | 00:00 | SKIP |
- +---------------------------------+-------------------+--------------+------------------+----------------+
-
-
-Environment variables
-=====================
-
-Several environement variables may be specified:
- * INSTALLER_TYPE=(apex|compass|daisy|fuel|joid)
- * INSTALLER_IP=<Specific IP Address>
- * DEPLOY_SCENARIO=<vim>-<controller>-<nfv_feature>-<ha_mode>
-
-
-INSTALLER_IP is required by Barometer in order to access the installer node and
-the deployment.
-
-The format for the DEPLOY_SCENARIO env variable can be described as follows:
- * vim: (os|k8s) = OpenStack or Kubernetes
- * controller is one of ( nosdn | odl )
- * nfv_feature is one or more of ( ovs | kvm | sfc | bgpvpn | nofeature )
- * ha_mode (high availability) is one of ( ha | noha )
-
-If several features are pertinent then use the underscore character '_' to
-separate each feature (e.g. ovs_kvm). 'nofeature' indicates that no OPNFV
-feature is deployed.
-
-The list of supported scenarios per release/installer is indicated in the
-release note.
-
-**NOTE:** The scenario name is mainly used to automatically detect
-if a test suite is runnable or not (e.g. it will prevent ODL test suite to be
-run on 'nosdn' scenarios). If not set, Functest will try to run the default test
-cases that might not include SDN controller or a specific feature
-
-**NOTE:** An HA scenario means that 3 OpenStack controller nodes are
-deployed. It does not necessarily mean that the whole system is HA. See
-installer release notes for details.
-
-Finally, three additional environment variables can also be passed in
-to the Functest Docker Container, using the -e
-"<EnvironmentVariable>=<Value>" mechanism. The first two parameters are
-only relevant to Jenkins CI invoked testing and **should not be used**
-when performing manual test scenarios:
-
- * NODE_NAME = <Test POD Name>
- * BUILD_TAG = <Jenkins Build Tag>
-
-where:
-
- * <Test POD Name> = Symbolic name of the POD where the tests are run.
- Visible in test results files, which are stored
- to the database. This option is only used when
- tests are activated under Jenkins CI control.
- It indicates the POD/hardware where the test has
- been run. If not specified, then the POD name is
- defined as "Unknown" by default.
- DO NOT USE THIS OPTION IN MANUAL TEST SCENARIOS.
- * <Jenkins Build tag> = Symbolic name of the Jenkins Build Job.
- Visible in test results files, which are stored
- to the database. This option is only set when
- tests are activated under Jenkins CI control.
- It enables the correlation of test results,
- which are independently pushed to the results database
- from different Jenkins jobs.
- DO NOT USE THIS OPTION IN MANUAL TEST SCENARIOS.
-
-
-Openstack credentials
-=====================
-OpenStack credentials are mandatory and must be provided to Functest.
-When running the command "functest env prepare", the framework will
-automatically look for the Openstack credentials file
-"/home/opnfv/functest/conf/env_file" and will exit with
-error if it is not present or is empty.
-
-There are 2 ways to provide that file:
-
- * by using a Docker volume with -v option when creating the Docker container.
- This is referred to in docker documentation as "Bind Mounting".
- See the usage of this parameter in the following chapter.
- * or creating manually the file '/home/opnfv/functest/conf/env_file'
- inside the running container and pasting the credentials in it. Consult
- your installer guide for further details. This is however not
- instructed in this document.
-
-In proxified environment you may need to change the credentials file.
-There are some tips in chapter: `Proxy support`_
-
-SSL Support
------------
-If you need to connect to a server that is TLS-enabled (the auth URL
-begins with "https") and it uses a certificate from a private CA or a
-self-signed certificate, then you will need to specify the path to an
-appropriate CA certificate to use, to validate the server certificate
-with the environment variable OS_CACERT::
-
- echo $OS_CACERT
- /etc/ssl/certs/ca.crt
-
-However, this certificate does not exist in the container by default.
-It has to be copied manually from the OpenStack deployment. This can be
-done in 2 ways:
-
- #. Create manually that file and copy the contents from the OpenStack
- controller.
- #. (Recommended) Add the file using a Docker volume when starting the
- container::
-
- -v <path_to_your_cert_file>:/etc/ssl/certs/ca.cert
-
-You might need to export OS_CACERT environment variable inside the
-credentials file::
-
- export OS_CACERT=/etc/ssl/certs/ca.crt
-
-Certificate verification can be turned off using OS_INSECURE=true. For
-example, Fuel uses self-signed cacerts by default, so an pre step would
-be::
-
- export OS_INSECURE=true
-
-Functest docker container directory structure
-=============================================
-Inside the Functest docker container, the following directory structure
-should now be in place::
-
- `--
- |- home
- | |-- opnfv
- | | `- functest
- | | |-- conf
- | | `-- results
- | `-- repos
- | `-- vnfs
- |- src
- | |-- tempest
- | |-- vims-test
- | |-- odl_test
- | `-- fds
- `- usr
- `- lib
- `- python2.7
- `- site-packages
- `- functest
- |-- ...
-
-Underneath the '/home/opnfv/functest' directory, the Functest docker container
-includes two main directories:
-
- * The **conf** directory stores configuration files (e.g. the
- OpenStack creds are stored in path '/home/opnfv/functest/conf/env_file'),
- * the **results** directory stores some temporary result log files
-
-src and repos directories are used to host third party code used for the tests.
-
-The structure of functest repo can be described as follows::
-
- |-- INFO
- |-- LICENSE
- |-- api
- | `-- apidoc
- |-- build.sh
- |-- commons
- |-- docker
- | |-- components
- | |-- core
- | |-- features
- | |-- healthcheck
- | |-- smoke
- | |-- vnf
- | |-- parser
- | |-- restapi
- | |-- thirdparty-requirements.txt
- |-- docs
- | |-- com
- | |-- images
- | |-- release
- | | `-- release-notes
- | |-- results
- | | testing
- | | |-- developer
- | | `-- user
- | | |-- configguide
- | | `-- userguide
- `-- functest
- |-- api
- | |-- base.py
- | |-- server.py
- | |-- urls.py
- | |-- common
- | | |-- api_utils.py
- | | |-- thread.py
- | `-- resources
- | `-- v1
- | |-- creds.py
- | |-- envs.py
- | |-- testcases.py
- | |-- tiers.py
- | |-- tasks.py
- | `-- database
- | |-- db.py
- | `-- v1
- | |-- handlers.py
- | |-- models.py
- | `-- swagger
- |-- ci
- │ |-- check_deployment.py
- │ |-- config_aarch64_patch.yaml
- │ |-- config_functest.yaml
- │ |-- config_patch.yaml
- │ |-- download_images.sh
- │ |-- logging.ini
- │ |-- rally_aarch64_patch.conf
- │ |-- run_tests.py
- │ |-- testcases.yaml
- │ |-- tier_builder.py
- │ |-- tier_handler.py
- |-- cli
- │ |-- cli_base.py
- │ |-- commands
- │ │ |-- cli_env.py
- │ │ |-- cli_os.py
- │ │ |-- cli_testcase.py
- │ │ |-- cli_tier.py
- │ |-- functest-complete.sh
- |-- core
- │ |-- feature.py
- │ |-- robotframework.py
- │ |-- testcase.py
- │ |-- unit.py
- │ |-- vnf.py
- |-- energy
- │ |-- energy.py
- |-- opnfv_tests
- │ `-- openstack
- │ |-- rally
- │ |-- refstack_client
- │ |-- snaps
- │ |-- tempest
- │ |-- vping
- │ `-- sdn
- │ │ `-- odl
- │ `-- vnf
- │ |-- ims
- │ `-- router
- |-- tests
- │ `-- unit
- │ |-- ci
- │ |-- cli
- │ |-- core
- │ |-- energy
- │ |-- features
- │ |-- odl
- │ |-- openstack
- │ |-- opnfv_tests
- │ |-- test_utils.py
- │ |-- utils
- │ `-- vnf
- |-- utils
- | |-- config.py
- | |-- constants.py
- | |-- decorators.py
- | |-- env.py
- | |-- functest_utils.py
- | |-- functest_vacation.py
- | |-- openstack_clean.py
- | |-- openstack_tacker.py
- | `-- openstack_utils.py
- |-- requirements.txt
- |-- setup.cfg
- |-- setup.py
- |-- test-requirements.txt
- |-- tox.ini
- |-- upper-constraints.txt
-
- (Note: All *.pyc files removed from above list for brevity...)
-
-We may distinguish several directories, the first level has 5 directories:
-
-* **api**: This directory is dedicated to the API (framework) documentations.
-* **commons**: This directory is dedicated for storage of traffic profile or
- any other test inputs that could be reused by any test project.
-* **docker**: This directory includes the needed files and tools to
- build the Functest Docker images.
-* **docs**: This directory includes documentation: Release Notes,
- User Guide, Configuration Guide and Developer Guide.
-* **functest**: This directory contains all the code needed to run
- functest internal cases and OPNFV onboarded feature or VNF test cases.
-
-Functest directory has 7 sub-directories, which is located under
-/usr/lib/python2.7/site-packages/functest:
- * **api**: This directory is dedicated for the internal Functest API.
- * **ci**: This directory contains test structure definition files
- (e.g <filename>.yaml) and bash shell/python scripts used to
- configure and execute Functional tests. The test execution script
- can be executed under the control of Jenkins CI jobs.
- * **cli**: This directory holds the python based Functest CLI utility
- source code, which is based on the Python 'click' framework.
- * **core**: This directory holds the python based Functest core
- source code. Three abstraction classes have been created to ease
- the integration of internal, feature or vnf cases.
- * **opnfv_tests**: This directory includes the scripts required by
- Functest internal test cases and other feature projects test cases.
- * **tests**: This directory includes the functest unit tests.
- * **utils**: this directory holds Python source code for some general
- purpose helper utilities, which testers can also re-use in their
- own test code. See for an example the Openstack helper utility:
- 'openstack_utils.py'.
-
-
-Logs
-====
-By default all the logs are put un /home/opnfv/functest/results/functest.log.
-If you want to have more logs in console, you may edit the logging.ini file
-manually.
-Connect on the docker then edit the file located in
-/usr/lib/python2.7/site-packages/functest/ci/logging.ini
-
-Change wconsole to console in the desired module to get more traces.
-
-
-Configuration
-=============
-
-You may also directly modify the python code or the configuration file (e.g.
-testcases.yaml used to declare test constraints) under
-/usr/lib/python2.7/site-packages/functest
-
-
-Tips
-====
-
-Docker
-------
-When typing **exit** in the container prompt, this will cause exiting
-the container and probably stopping it. When stopping a running Docker
-container all the changes will be lost, there is a keyboard shortcut
-to quit the container without stopping it: <CTRL>-P + <CTRL>-Q. To
-reconnect to the running container **DO NOT** use the *run* command
-again (since it will create a new container), use the *exec* or *attach*
-command instead::
-
- docker ps # <check the container ID from the output>
- docker exec -ti <CONTAINER_ID> /bin/bash
-
-There are other useful Docker commands that might be needed to manage possible
-issues with the containers.
-
-List the running containers::
-
- docker ps
-
-List all the containers including the stopped ones::
-
- docker ps -a
-
-Start a stopped container named "FunTest"::
-
- docker start FunTest
-
-Attach to a running container named "StrikeTwo"::
-
- docker attach StrikeTwo
-
-It is useful sometimes to remove a container if there are some problems::
-
- docker rm <CONTAINER_ID>
-
-Use the *-f* option if the container is still running, it will force to
-destroy it::
-
- docker rm -f <CONTAINER_ID>
-
-Check the Docker documentation [`dockerdocs`_] for more information.
-
-
-Checking Openstack and credentials
-----------------------------------
-It is recommended and fairly straightforward to check that Openstack
-and credentials are working as expected.
-
-Once the credentials are there inside the container, they should be
-sourced before running any Openstack commands::
-
- source /home/opnfv/functest/conf/env_file
-
-After this, try to run any OpenStack command to see if you get any
-output, for instance::
-
- openstack user list
-
-This will return a list of the actual users in the OpenStack
-deployment. In any other case, check that the credentials are sourced::
-
- env|grep OS_
-
-This command must show a set of environment variables starting with
-*OS_*, for example::
-
- OS_REGION_NAME=RegionOne
- OS_USER_DOMAIN_NAME=Default
- OS_PROJECT_NAME=admin
- OS_AUTH_VERSION=3
- OS_IDENTITY_API_VERSION=3
- OS_PASSWORD=da54c27ae0d10dfae5297e6f0d6be54ebdb9f58d0f9dfc
- OS_AUTH_URL=http://10.1.0.9:5000/v3
- OS_USERNAME=admin
- OS_TENANT_NAME=admin
- OS_ENDPOINT_TYPE=internalURL
- OS_INTERFACE=internalURL
- OS_NO_CACHE=1
- OS_PROJECT_DOMAIN_NAME=Default
-
-
-If the OpenStack command still does not show anything or complains
-about connectivity issues, it could be due to an incorrect url given to
-the OS_AUTH_URL environment variable. Check the deployment settings.
-
-Proxy support
--------------
-If your Jumphost node is operating behind a http proxy, then there are
-2 places where some special actions may be needed to make operations
-succeed:
-
- #. Initial installation of docker engine First, try following the
- official Docker documentation for Proxy settings. Some issues were
- experienced on CentOS 7 based Jumphost. Some tips are documented
- in section: `Docker Installation on CentOS behind http proxy`_
- below.
-
-If that is the case, make sure the resolv.conf and the needed
-http_proxy and https_proxy environment variables, as well as the
-'no_proxy' environment variable are set correctly::
-
- # Make double sure that the 'no_proxy=...' line in the
- # 'env_file' file is commented out first. Otherwise, the
- # values set into the 'no_proxy' environment variable below will
- # be ovewrwritten, each time the command
- # 'source ~/functest/conf/env_file' is issued.
-
- cd ~/functest/conf/
- sed -i 's/export no_proxy/#export no_proxy/' env_file
- source ./env_file
-
- # Next calculate some IP addresses for which http_proxy
- # usage should be excluded:
-
- publicURL_IP=$(echo $OS_AUTH_URL | grep -Eo "([0-9]+\.){3}[0-9]+")
-
- adminURL_IP=$(openstack catalog show identity | \
- grep adminURL | grep -Eo "([0-9]+\.){3}[0-9]+")
-
- export http_proxy="<your http proxy settings>"
- export https_proxy="<your https proxy settings>"
- export no_proxy="127.0.0.1,localhost,$publicURL_IP,$adminURL_IP"
-
- # Ensure that "git" uses the http_proxy
- # This may be needed if your firewall forbids SSL based git fetch
- git config --global http.sslVerify True
- git config --global http.proxy <Your http proxy settings>
-
-For example, try to use the **nc** command from inside the functest
-docker container::
-
- nc -v opnfv.org 80
- Connection to opnfv.org 80 port [tcp/http] succeeded!
-
- nc -v opnfv.org 443
- Connection to opnfv.org 443 port [tcp/https] succeeded!
-
-Note: In a Jumphost node based on the CentOS family OS, the **nc**
-commands might not work. You can use the **curl** command instead.
-
- curl http://www.opnfv.org:80
-
- <HTML><HEAD><meta http-equiv="content-type"
- .
- .
- </BODY></HTML>
-
- curl https://www.opnfv.org:443
-
- <HTML><HEAD><meta http-equiv="content-type"
- .
- .
- </BODY></HTML>
-
- (Ignore the content. If command returns a valid HTML page, it proves
- the connection.)
-
-Docker Installation on CentOS behind http proxy
------------------------------------------------
-This section is applicable for CentOS family OS on Jumphost which
-itself is behind a proxy server. In that case, the instructions below
-should be followed **before** installing the docker engine::
-
- 1) # Make a directory '/etc/systemd/system/docker.service.d'
- # if it does not exist
- sudo mkdir /etc/systemd/system/docker.service.d
-
- 2) # Create a file called 'env.conf' in that directory with
- # the following contents:
- [Service]
- EnvironmentFile=-/etc/sysconfig/docker
-
- 3) # Set up a file called 'docker' in directory '/etc/sysconfig'
- # with the following contents:
- HTTP_PROXY="<Your http proxy settings>"
- HTTPS_PROXY="<Your https proxy settings>"
- http_proxy="${HTTP_PROXY}"
- https_proxy="${HTTPS_PROXY}"
-
- 4) # Reload the daemon
- systemctl daemon-reload
-
- 5) # Sanity check - check the following docker settings:
- systemctl show docker | grep -i env
-
- Expected result:
- ----------------
- EnvironmentFile=/etc/sysconfig/docker (ignore_errors=yes)
- DropInPaths=/etc/systemd/system/docker.service.d/env.conf
-
-Now follow the instructions in [`Install Docker on CentOS`_] to download
-and install the **docker-engine**. The instructions conclude with a
-"test pull" of a sample "Hello World" docker container. This should now
-work with the above pre-requisite actions.
-
-
-.. _`[4]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/configguide/index.html
-.. _`dockerdocs`: https://docs.docker.com/
-.. _`Proxy`: https://docs.docker.com/engine/admin/systemd/#http-proxy
-.. _`Install Docker on CentOS`: https://docs.docker.com/engine/installation/linux/centos/
-.. _`Functest User Guide`: http://docs.opnfv.org/en/stable-danube/submodules/functest/docs/testing/user/userguide/index.html
-.. _`images/CentOS-7-x86_64-GenericCloud.qcow2`: https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
-.. _`images/cirros-0.4.0-x86_64-disk.img`: http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
-.. _`images/ubuntu-14.04-server-cloudimg-amd64-disk1.img`: https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img
diff --git a/docs/testing/user/configguide/index.rst b/docs/testing/user/configguide/index.rst
deleted file mode 100644
index fd997344..00000000
--- a/docs/testing/user/configguide/index.rst
+++ /dev/null
@@ -1,130 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-***************************
-Functest Installation Guide
-***************************
-
-.. toctree::
- :numbered:
- :maxdepth: 2
-
-
-Introduction
-============
-This document describes how to install and configure Functest in OPNFV.
-
-High level architecture
------------------------
-
-The high level architecture of Functest within OPNFV can be described as
-follows::
-
- CIMC/Lights+out management Admin Mgmt/API Public Storage Private
- PXE
- + + + + + +
- | | | | | |
- | +----------------------------+ | | | | |
- | | | | | | | |
- +-----+ Jumphost | | | | | |
- | | | | | | | |
- | | +--------------------+ | | | | | |
- | | | | | | | | | |
- | | | Tools | +----------------+ | | |
- | | | - Rally | | | | | | |
- | | | - Robot | | | | | | |
- | | | - RefStack | | | | | | |
- | | | | |-------------------------+ | |
- | | | Testcases | | | | | | |
- | | | - VIM | | | | | | |
- | | | | | | | | | |
- | | | - SDN Controller | | | | | | |
- | | | | | | | | | |
- | | | - Features | | | | | | |
- | | | | | | | | | |
- | | | - VNF | | | | | | |
- | | | | | | | | | |
- | | +--------------------+ | | | | | |
- | | Functest Docker + | | | | |
- | | | | | | | |
- | | | | | | | |
- | | | | | | | |
- | +----------------------------+ | | | | |
- | | | | | |
- | +----------------+ | | | | |
- | | 1 | | | | | |
- +----+ +--------------+-+ | | | | |
- | | | 2 | | | | | |
- | | | +--------------+-+ | | | | |
- | | | | 3 | | | | | |
- | | | | +--------------+-+ | | | | |
- | | | | | 4 | | | | | |
- | +-+ | | +--------------+-+ | | | | |
- | | | | | 5 +-------------+ | | | |
- | +-+ | | nodes for | | | | | |
- | | | | deploying +---------------------+ | | |
- | +-+ | OPNFV | | | | | |
- | | | +------------------------------+ | |
- | +-+ SUT | | | | | |
- | | +--------------------------------------+ |
- | | | | | | | |
- | | +----------------------------------------------+
- | +----------------+ | | | | |
- | | | | | |
- + + + + + +
- SUT = System Under Test
-
-Note connectivity to management network is not needed for most of the testcases.
-But it may be needed for some specific snaps tests.
-
-All the libraries and dependencies needed by all of the Functest tools are
-pre-installed into the Docker images. This allows running Functest on any
-platform.
-
-The automated mechanisms inside the Functest Docker containers will:
-
- * Prepare the environment according to the System Under Test (SUT)
- * Perform the appropriate functional tests
- * Push the test results into the OPNFV test result database (optional)
-
-The OpenStack credentials file must be provided to the container.
-
-These Docker images can be integrated into CI or deployed independently.
-
-Please note that the Functest Docker images have been designed for OPNFV,
-however, it would be possible to adapt them to any OpenStack based VIM +
-controller environment, since most of the test cases are integrated from
-upstream communities.
-
-The functional test cases are described in the Functest User Guide `[2]`_
-
-.. include:: ./prerequisites.rst
-
-.. include:: ./configguide.rst
-
-.. include:: ./ci.rst
-
-
-References
-==========
-
-`[1]`_ : Keystone and public end point constraint
-
-`[2]`_ : Functest User guide
-
-`[3]`_ : Functest Jenkins jobs
-
-`[4]`_ : Functest Configuration guide
-
-`[5]`_ : OPNFV main site
-
-`[6]`_ : Functest wiki page
-
-IRC support channel: #opnfv-functest
-
-.. _`[1]`: https://ask.openstack.org/en/question/68144/keystone-unable-to-use-the-public-endpoint/
-.. _`[2]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/userguide/index.html
-.. _`[3]`: https://git.opnfv.org/releng/tree/jjb/functest/functest-daily-jobs.yml
-.. _`[4]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/configguide/index.html
-.. _`[5]`: http://www.opnfv.org
-.. _`[6]`: https://wiki.opnfv.org/functest
diff --git a/docs/testing/user/configguide/prerequisites.rst b/docs/testing/user/configguide/prerequisites.rst
deleted file mode 100644
index 8289803b..00000000
--- a/docs/testing/user/configguide/prerequisites.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-Prerequisites
-=============
-The OPNFV deployment is out of the scope of this document but it can be
-found in http://docs.opnfv.org.
-The OPNFV platform is considered as the SUT in this document.
-
-Several prerequisites are needed for Functest:
-
- #. A Jumphost to run Functest on
- #. A Docker daemon shall be installed on the Jumphost
- #. A public/external network created on the SUT
- #. An admin/management network created on the SUT
- #. Connectivity from the Jumphost to the SUT public/external network
-
-Some specific SNAPS tests may require a connectivity from the Jumphost to the
-SUT admin/management network but most of the test cases do not. This requirement
-can be changed by overriding the 'interface' attribute (OS_INTERFACE) value
-to 'public' in the credentials file. Another means to circumvent this issue
-would be to change the 'snaps.use_keystone' value from True to False.
-
-WARNING: Connectivity from Jumphost is essential and it is of paramount
-importance to make sure it is working before even considering to install
-and run Functest. Make also sure you understand how your networking is
-designed to work.
-
-NOTE: **Jumphost** refers to any server which meets the previous
-requirements. Normally it is the same server from where the OPNFV
-deployment has been triggered previously, but it could be any server
-with proper connectivity to the SUT.
-
-NOTE: If your Jumphost is operating behind a company http proxy and/or
-firewall, please consult first the section `Proxy Support`_, towards
-the end of this document. The section details some tips/tricks which
-*may* be of help in a proxified environment.
-
-Docker installation
--------------------
-Docker installation and configuration is only needed to be done once
-through the life cycle of Jumphost.
-
-If your Jumphost is based on Ubuntu, SUSE, RHEL or CentOS linux, please
-consult the references below for more detailed instructions. The
-commands below are offered as a short reference.
-
-*Tip:* For running docker containers behind the proxy, you need first
-some extra configuration which is described in section
-`Docker Installation on CentOS behind http proxy`_. You should follow
-that section before installing the docker engine.
-
-Docker installation needs to be done as root user. You may use other
-userid's to create and run the actual containers later if so desired.
-Log on to your Jumphost as root user and install the Docker Engine
-(e.g. for CentOS family)::
-
- curl -sSL https://get.docker.com/ | sh
- systemctl start docker
-
- *Tip:* If you are working through proxy, please set the https_proxy
- environment variable first before executing the curl command.
-
-Add your user to docker group to be able to run commands without sudo::
-
- sudo usermod -aG docker <your_user>
-
-A reconnection is needed. There are 2 ways for this:
- #. Re-login to your account
- #. su - <username>
-
-References - Installing Docker Engine on different Linux Operating Systems:
- * Ubuntu_
- * RHEL_
- * CentOS_
- * SUSE_
-
-.. _Ubuntu: https://docs.docker.com/engine/installation/linux/ubuntulinux/
-.. _RHEL: https://docs.docker.com/engine/installation/linux/rhel/
-.. _CentOS: https://docs.docker.com/engine/installation/linux/centos/
-.. _SUSE: https://docs.docker.com/engine/installation/linux/suse/
-
-Public/External network on SUT
-------------------------------
-Some of the tests against the VIM (Virtual Infrastructure Manager) need
-connectivity through an existing public/external network in order to
-succeed. This is needed, for example, to create floating IPs to access
-VM instances through the public/external network (i.e. from the Docker
-container).
-
-By default, the five OPNFV installers provide a fresh installation with
-a public/external network created along with a router. Make sure that
-the public/external subnet is reachable from the Jumphost and an external
-router exists.
-
-*Hint:* For the given OPNFV Installer in use, the IP sub-net address
-used for the public/external network is usually a planning item and
-should thus be known. Ensure you can reach each node in the SUT, from the
-Jumphost using the 'ping' command using the respective IP address on the
-public/external network for each node in the SUT. The details of how to
-determine the needed IP addresses for each node in the SUT may vary according
-to the used installer and are therefore ommitted here.
-
-.. _`[1]`: https://ask.openstack.org/en/question/68144/keystone-unable-to-use-the-public-endpoint/
-.. _`[4]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/configguide/index.html
diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst
deleted file mode 100644
index 66dfd3e7..00000000
--- a/docs/testing/user/userguide/index.rst
+++ /dev/null
@@ -1,106 +0,0 @@
-.. _functest-userguide:
-
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. SPDX-License-Identifier: CC-BY-4.0
-
-*******************
-Functest User Guide
-*******************
-
-.. toctree::
- :maxdepth: 2
-
-
-
-Introduction
-============
-
-The goal of this document is to describe the OPNFV Functest test cases and to
-provide a procedure to execute them.
-
-**IMPORTANT**: It is assumed here that Functest has been properly deployed
-following the installation guide procedure `[1]`_.
-
-.. include:: ./test_overview.rst
-
-.. include:: ./test_details.rst
-
-.. include:: ./runfunctest.rst
-
-.. include:: ./test_results.rst
-
-.. include:: ./reporting.rst
-
-.. figure:: ../../../images/functest-reporting-status.png
- :align: center
- :alt: Functest reporting portal Fuel status page
-
-.. include:: ./troubleshooting.rst
-
-
-References
-==========
-
-`[1]`_: Functest configuration guide
-
-`[2]`_: OpenStack Tempest documentation
-
-`[3]`_: Rally documentation
-
-`[4]`_: Functest in depth (Danube)
-
-`[5]`_: Clearwater vIMS blueprint
-
-`[6]`_: NIST web site
-
-`[7]`_: OpenSCAP web site
-
-`[8]`_: Refstack client
-
-`[9]`_: Defcore
-
-`[10]`_: OpenStack interoperability procedure
-
-`[11]`_: Robot Framework web site
-
-`[12]`_: Functest User guide
-
-`[13]`_: SNAPS wiki
-
-`[14]`_: vRouter
-
-`[15]`_: Testing OpenStack Tempest part 1
-
-`[16]`_: Running Functest through internal REST API
-
-`[17]`_: OPNFV Test API
-
-`OPNFV main site`_: OPNFV official web site
-
-`Functest page`_: Functest wiki page
-
-IRC support chan: #opnfv-functest
-
-.. _`[1]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/configguide/index.html
-.. _`[2]`: http://docs.openstack.org/developer/tempest/overview.html
-.. _`[3]`: https://rally.readthedocs.org/en/latest/index.html
-.. _`[4]`: http://events.linuxfoundation.org/sites/events/files/slides/Functest%20in%20Depth_0.pdf
-.. _`[5]`: https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/blob/master/openstack-blueprint.yaml
-.. _`[6]`: https://scap.nist.gov/
-.. _`[7]`: https://github.com/OpenSCAP/openscap
-.. _`[8]`: https://github.com/openstack/refstack-client
-.. _`[9]`: https://github.com/openstack/defcore
-.. _`[10]`: https://github.com/openstack/interop/blob/master/2016.08/procedure.rst
-.. _`[11]`: http://robotframework.org/
-.. _`[12]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/userguide/index.html
-.. _`[13]`: https://wiki.opnfv.org/display/PROJ/SNAPS-OO
-.. _`[14]`: https://github.com/oolorg/opnfv-functest-vrouter
-.. _`[15]`: https://aptira.com/testing-openstack-tempest-part-1/
-.. _`[16]`: https://wiki.opnfv.org/display/functest/Running+test+cases+via+new+Functest+REST+API
-.. _`[17]`: http://docs.opnfv.org/en/latest/testing/testing-dev.html
-.. _`OPNFV main site`: http://www.opnfv.org
-.. _`Functest page`: https://wiki.opnfv.org/functest
-.. _`OpenRC`: http://docs.openstack.org/user-guide/common/cli_set_environment_variables_using_openstack_rc.html
-.. _`Rally installation procedure`: https://rally.readthedocs.org/en/latest/tutorial/step_0_installation.html
-.. _`config_functest.yaml` : https://git.opnfv.org/cgit/functest/tree/functest/ci/config_functest.yaml
-.. _`Functest reporting`: http://testresults.opnfv.org/reporting/master/functest/status-apex.html
diff --git a/docs/testing/user/userguide/reporting.rst b/docs/testing/user/userguide/reporting.rst
deleted file mode 100644
index 88f5e865..00000000
--- a/docs/testing/user/userguide/reporting.rst
+++ /dev/null
@@ -1,90 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Test reporting
-==============
-
-An automatic reporting page has been created in order to provide a consistent
-view of the Functest tests on the different scenarios.
-
-In this page, each scenario is evaluated according to test criteria.
-
-The results are collected from the centralized database every day and, per
-scenario. A score is calculated based on the results from the last 10 days.
-This score is the addition of single test scores. Each test case has a success
-criteria reflected in the criteria field from the results.
-
-As an illustration, let's consider the scenario
-os-odl_l2-nofeature-ha scenario, the scenario scoring is the addition of the
-scores of all the runnable tests from the categories (tiers, healthcheck, smoke
-and features) corresponding to this scenario.
-
- +---------------------+---------+---------+---------+---------+
- | Test | Apex | Compass | Fuel | Joid |
- +=====================+=========+=========+=========+=========+
- | vPing_ssh | X | X | X | X |
- +---------------------+---------+---------+---------+---------+
- | vPing_userdata | X | X | X | X |
- +---------------------+---------+---------+---------+---------+
- | tempest_smoke_serial| X | X | X | X |
- +---------------------+---------+---------+---------+---------+
- | rally_sanity | X | X | X | X |
- +---------------------+---------+---------+---------+---------+
- | odl | X | X | X | X |
- +---------------------+---------+---------+---------+---------+
- | promise | | | X | X |
- +---------------------+---------+---------+---------+---------+
- | doctor | X | | X | |
- +---------------------+---------+---------+---------+---------+
- | security_scan | X | | | |
- +---------------------+---------+---------+---------+---------+
- | parser | | | X | |
- +---------------------+---------+---------+---------+---------+
- | copper | X | | | X |
- +---------------------+---------+---------+---------+---------+
- src: os-odl_l2-nofeature-ha Colorado (see release note for the last matrix version)
-
-All the testcases (X) listed in the table are runnable on os-odl_l2-nofeature
-scenarios.
-Please note that other test cases (e.g. sfc_odl, bgpvpn) need ODL configuration
-addons and, as a consequence, specific scenario.
-There are not considered as runnable on the generic odl_l2 scenario.
-
-
-If no result is available or if all the results are failed, the test case get 0
-point.
-If it was successful at least once but not anymore during the 4 runs, the case
-get 1 point (it worked once).
-If at least 3 of the last 4 runs were successful, the case get 2 points.
-If the last 4 runs of the test are successful, the test get 3 points.
-
-In the example above, the target score for fuel/os-odl_l2-nofeature-ha is
-3 x 8 = 24 points and for compass it is 3 x 5 = 15 points .
-
-The scenario is validated per installer when we got 3 points for all individual
-test cases (e.g 24/24 for fuel, 15/15 for compass).
-
-Please note that complex or long duration tests are not considered yet for the
-scoring. In fact the success criteria are not always easy to define and may
-require specific hardware configuration.
-
-Please also note that all the test cases have the same "weight" for the score
-calculation whatever the complexity of the test case. Concretely a vping has the
-same weith than the 200 tempst tests.
-Moreover some installers support more features than others. The more cases your
-scenario is dealing with, the most difficult to rich a good scoring.
-
-Therefore the scoring provides 3 types of indicators:
-
- * the richness of the scenario: if the target scoring is high, it means that the scenario includes lots of features
- * the maturity: if the percentage (scoring/target scoring * 100) is high, it means that all the tests are PASS
- * the stability: as the number of iteration is included in the calculation, the pecentage can be high only if the scenario is run regularly (at least more than 4 iterations over the last 10 days in CI)
-
-In any case, the scoring is used to give feedback to the other projects and
-does not represent an absolute value of the scenario.
-
-See `reporting page`_ for details. For the status, click on the version,
-Functest then the Status menu.
-
-
-.. _`reporting page`: http://testresults.opnfv.org/reporting/
diff --git a/docs/testing/user/userguide/runfunctest.rst b/docs/testing/user/userguide/runfunctest.rst
deleted file mode 100644
index d5b95101..00000000
--- a/docs/testing/user/userguide/runfunctest.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-Executing Functest suites
-=========================
-
-As mentioned in the configuration guide `[1]`_, Alpine docker containers have
-been introduced in Euphrates.
-Tier containers have been created.
-Assuming that you pulled the container and your environement is ready, you can
-simply run the tiers by typing (e.g. with functest-healthcheck)::
-
- sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-healthcheck
-
-You should get::
-
- +----------------------------+------------------+---------------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +----------------------------+------------------+---------------------+------------------+----------------+
- | connection_check | functest | healthcheck | 00:02 | PASS |
- | api_check | functest | healthcheck | 03:19 | PASS |
- | snaps_health_check | functest | healthcheck | 00:46 | PASS |
- +----------------------------+------------------+---------------------+------------------+----------------+
-
-You can run functest-healcheck, functest-smoke, functest-features,
-functest-components and functest-vnf.
-
-The result tables show the results by test case, it can be::
-
- * PASS
- * FAIL
- * SKIP: if the scenario/installer does not support the test case
-
-
-Manual run
-==========
-If you want to run the test step by step, you may add docker option then run the
-different commands within the docker.
-
-Considering the healthcheck example, running functest manaully means::
-
- sudo docker run -ti --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- opnfv/functest-healthcheck /bin/bash
-
-The docker prompt shall be returned. Then within the docker run the following
-commands::
-
- $ source /home/opnfv/functest/conf/env_file
-
-Tier
-----
-Each Alpine container provided on the docker hub matches with a tier.
-The following commands are available::
-
- # functest tier list
- - 0. healthcheck:
- ['connection_check', 'api_check', 'snaps_health_check']
- # functest tier show healthcheck
- +---------------------+---------------+--------------------------+-------------------------------------------------+------------------------------------+
- | TIERS | ORDER | CI LOOP | DESCRIPTION | TESTCASES |
- +---------------------+---------------+--------------------------+-------------------------------------------------+------------------------------------+
- | healthcheck | 0 | (daily)|(weekly) | First tier to be executed to verify the | connection_check api_check |
- | | | | basic operations in the VIM. | snaps_health_check |
- +---------------------+---------------+--------------------------+-------------------------------------------------+------------------------------------+
-
-To run all the cases of the tier, type::
-
- # functest tier run healthcheck
-
-Testcase
---------
-Testcases can be listed, shown and run though the CLI::
-
- # functest testcase list
- connection_check
- api_check
- snaps_health_check
- # functest testcase show api_check
- +-------------------+--------------------------------------------------+------------------+---------------------------+
- | TEST CASE | DESCRIPTION | CRITERIA | DEPENDENCY |
- +-------------------+--------------------------------------------------+------------------+---------------------------+
- | api_check | This test case verifies the retrieval of | 100 | ^((?!netvirt).)*$ |
- | | OpenStack clients: Keystone, Glance, | | |
- | | Neutron and Nova and may perform some | | |
- | | simple queries. When the config value of | | |
- | | snaps.use_keystone is True, functest | | |
- | | must have access to the cloud's private | | |
- | | network. | | |
- +-------------------+--------------------------------------------------+------------------+---------------------------+
- # functest testcase run connection_check
- ...
- # functest run all
-
-You can also type run_tests -t all to run all the tests.
-
-Note the list of test cases depend on the installer and the scenario.
-
-
-Reporting results to the test Database
-======================================
-In OPNFV CI we collect all the results from CI. A test APi shall be available
-as well as a test database `[17]`_.
-
-Functest internal API
-=====================
-
-An internal API has been introduced in Euphrates. The goal is to trigger
-Functest operations through an API in addition of the CLI.
-This could be considered as a first step towards a pseudo micro services
-approach where the different test projects could expose and consume APIs to the
-other test projects.
-
-In Euphrates the main method of the APIs are:
-
- * Show credentials
- * Update openrc file
- * Show environment
- * Update hosts info for domain name
- * Prepare environment
- * List all testcases
- * Show a testcase
- * Run a testcase
- * List all tiers
- * Show a tier
- * List all testcases within given tier
- * Get the result of the specified task
- * Get the log of the specified task
-
-See `[16]`_ to get examples on how to use the API.
-
-
-.. _`[1]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/configguide/index.html
-.. _`[16]`: https://wiki.opnfv.org/display/functest/Running+test+cases+via+new+Functest+REST+API
-.. _`[17]`: http://docs.opnfv.org/en/latest/testing/testing-dev.html
diff --git a/docs/testing/user/userguide/test_details.rst b/docs/testing/user/userguide/test_details.rst
deleted file mode 100644
index 97c4688c..00000000
--- a/docs/testing/user/userguide/test_details.rst
+++ /dev/null
@@ -1,497 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-
-The different test cases are described in the remaining sections of this document.
-
-VIM (Virtualized Infrastructure Manager)
-----------------------------------------
-
-Healthcheck tests
-^^^^^^^^^^^^^^^^^
-Since Danube, healthcheck tests have been refactored and rely on SNAPS, an
-OPNFV middleware project.
-
-SNAPS stands for "SDN/NFV Application development Platform and Stack".
-SNAPS is an object-oriented OpenStack library packaged with tests that exercise
-OpenStack.
-More information on SNAPS can be found in  `[13]`_
-
-Three tests are declared as healthcheck tests and can be used for gating by the
-installer, they cover functionally the tests previously done by healthcheck
-test case.
-
-The tests are:
-
-
- * *connection_check*
- * *api_check*
- * *snaps_health_check*
-
-Connection_check consists in 9 test cases (test duration < 5s) checking the
-connectivity with Glance, Keystone, Neutron, Nova and the external network.
-
-Api_check verifies the retrieval of OpenStack clients: Keystone, Glance,
-Neutron and Nova and may perform some simple queries. When the config value of
-snaps.use_keystone is True, functest must have access to the cloud's private
-network. This suite consists in 49 tests (test duration < 2 minutes).
-
-Snaps_health_check creates a VM with a single port with an IPv4 address that
-is assigned by DHCP and then validates the expected IP with the actual.
-
-Self-obviously, successful completion of the 'healthcheck' testcase is a
-necessary pre-requisite for the execution of all other test Tiers.
-
-
-vPing_ssh
-^^^^^^^^^
-
-Given the script **ping.sh**::
-
- #!/bin/sh
- ping -c 1 $1 2>&1 >/dev/null
- RES=$?
- if [ "Z$RES" = "Z0" ] ; then
- echo 'vPing OK'
- else
- echo 'vPing KO'
- fi
-
-
-The goal of this test is to establish an SSH connection using a floating IP
-on the Public/External network and verify that 2 instances can talk over a Private
-Tenant network::
-
- vPing_ssh test case
- +-------------+ +-------------+
- | | | |
- | | Boot VM1 with IP1 | |
- | +------------------->| |
- | Tester | | System |
- | | Boot VM2 | Under |
- | +------------------->| Test |
- | | | |
- | | Create floating IP | |
- | +------------------->| |
- | | | |
- | | Assign floating IP | |
- | | to VM2 | |
- | +------------------->| |
- | | | |
- | | Establish SSH | |
- | | connection to VM2 | |
- | | through floating IP| |
- | +------------------->| |
- | | | |
- | | SCP ping.sh to VM2 | |
- | +------------------->| |
- | | | |
- | | VM2 executes | |
- | | ping.sh to VM1 | |
- | +------------------->| |
- | | | |
- | | If ping: | |
- | | exit OK | |
- | | else (timeout): | |
- | | exit Failed | |
- | | | |
- +-------------+ +-------------+
-
-This test can be considered as an "Hello World" example.
-It is the first basic use case which **must** work on any deployment.
-
-vPing_userdata
-^^^^^^^^^^^^^^
-
-This test case is similar to vPing_ssh but without the use of Floating IPs
-and the Public/External network to transfer the ping script.
-Instead, it uses Nova metadata service to pass it to the instance at booting time.
-As vPing_ssh, it checks that 2 instances can talk to
-each other on a Private Tenant network::
-
- vPing_userdata test case
- +-------------+ +-------------+
- | | | |
- | | Boot VM1 with IP1 | |
- | +-------------------->| |
- | | | |
- | | Boot VM2 with | |
- | | ping.sh as userdata | |
- | | with IP1 as $1. | |
- | +-------------------->| |
- | Tester | | System |
- | | VM2 executes ping.sh| Under |
- | | (ping IP1) | Test |
- | +-------------------->| |
- | | | |
- | | Monitor nova | |
- | | console-log VM 2 | |
- | | If ping: | |
- | | exit OK | |
- | | else (timeout) | |
- | | exit Failed | |
- | | | |
- +-------------+ +-------------+
-
-When the second VM boots it will execute the script passed as userdata
-automatically. The ping will be detected by periodically capturing the output
-in the console-log of the second VM.
-
-
-Tempest
-^^^^^^^
-
-Tempest `[2]`_ is the reference OpenStack Integration test suite.
-It is a set of integration tests to be run against a live OpenStack cluster.
-Tempest has suites of tests for:
-
- * OpenStack API validation
- * Scenarios
- * Other specific tests useful in validating an OpenStack deployment
-
-Functest uses Rally `[3]`_ to run the Tempest suite.
-Rally generates automatically the Tempest configuration file **tempest.conf**.
-Before running the actual test cases,
-Functest creates the needed resources (user, tenant) and
-updates the appropriate parameters into the configuration file.
-
-When the Tempest suite is executed, each test duration is measured and the full
-console output is stored to a *log* file for further analysis.
-
-The Tempest testcases are distributed across two
-Tiers:
-
- * Smoke Tier - Test Case 'tempest_smoke_serial'
- * Components Tier - Test case 'tempest_full_parallel'
-
-NOTE: Test case 'tempest_smoke_serial' executes a defined set of tempest smoke
-tests with a single thread (i.e. serial mode). Test case 'tempest_full_parallel'
-executes all defined Tempest tests using several concurrent threads
-(i.e. parallel mode). The number of threads activated corresponds to the number
-of available logical CPUs.
-
-The goal of the Tempest test suite is to check the basic functionalities of the
-different OpenStack components on an OPNFV fresh installation, using the
-corresponding REST API interfaces.
-
-
-Rally bench test suites
-^^^^^^^^^^^^^^^^^^^^^^^
-
-Rally `[3]`_ is a benchmarking tool that answers the question:
-
-*How does OpenStack work at scale?*
-
-The goal of this test suite is to benchmark all the different OpenStack modules and
-get significant figures that could help to define Telco Cloud KPIs.
-
-The OPNFV Rally scenarios are based on the collection of the actual Rally scenarios:
-
- * authenticate
- * cinder
- * glance
- * heat
- * keystone
- * neutron
- * nova
- * quotas
- * ceilometer
-
-A basic SLA (stop test on errors) has been implemented.
-
-The Rally testcases are distributed across two Tiers:
-
- * Smoke Tier - Test Case 'rally_sanity'
- * Components Tier - Test case 'rally_full'
-
-NOTE: Test case 'rally_sanity' executes a limited number of Rally smoke test
-cases. Test case 'rally_full' executes the full defined set of Rally tests.
-
-
-Refstack-client to run OpenStack interop testcases
---------------------------------------------------
-
-Refstack-client `[8]`_ is a command line utility that allows you to
-execute Tempest test runs based on configurations you specify.
-It is the official tool to run Openstack Interop (previously known as Defcore)
-testcases `[9]`_, which focus on testing interoperability between OpenStack
-clouds.
-
-Refstack-client is integrated in Functest, consumed by Dovetail, which
-intends to define and provide a set of OPNFV related validation criteria
-that will provide input for the evaluation of the use of OPNFV trademarks.
-This progress is under the guideline of Compliance Verification Program(CVP).
-
-Running methods
-^^^^^^^^^^^^^^^
-
-Two running methods are provided after refstack-client integrated into
-Functest, Functest command line and manually, respectively.
-
-By default, for Defcore test cases run by Functest command line,
-are run followed with automatically generated
-configuration file, i.e., refstack_tempest.conf. In some circumstances,
-the automatic configuration file may not quite satisfied with the SUT,
-Functest also inherits the refstack-client command line and provides a way
-for users to set its configuration file according to its own SUT manually.
-
-*command line*
-
-Inside the Functest container, first to prepare Functest environment:
-
-::
-
- functest env prepare
-
-then to run default defcore testcases by using refstack-client:
-
-::
-
- functest testcase run refstack_defcore
-
-In OPNFV Continuous Integration(CI) system, the command line method is used.
-
-*manually*
-
-Prepare the tempest configuration file and the testcases want to run with the SUT,
-run the testcases with:
-
-::
-
- ./refstack-client test -c <Path of the tempest configuration file to use> -v --test-list <Path or URL of test list>
-
-using help for more information:
-
-::
-
- ./refstack-client --help
- ./refstack-client test --help
-
-Reference tempest configuration
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-*command line method*
-
-When command line method is used, the default tempest configuration file
-is generated by Rally.
-
-*manually*
-
-When running manually is used, recommended way to generate tempest configuration
-file is:
-
-::
-
- cd /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/refstack_client
- python tempest_conf.py
-
-a file called tempest.conf is stored in the current path by default, users can do
-some adjustment according to the SUT:
-
-::
-
- vim refstack_tempest.conf
-
-a reference article can be used `[15]`_.
-
-
-snaps_smoke
-------------
-
-This test case contains tests that setup and destroy environments with VMs with
-and without Floating IPs with a newly created user and project. Set the config
-value snaps.use_floating_ips (True|False) to toggle this functionality.
-Please note that When the configuration value of snaps.use_keystone is True, Functest must have access
-the cloud's private network.
-This suite consists in 38 tests (test duration < 10 minutes)
-
-
-SDN Controllers
----------------
-
-OpenDaylight
-^^^^^^^^^^^^
-
-The OpenDaylight (ODL) test suite consists of a set of basic tests inherited
-from the ODL project using the Robot `[11]`_ framework.
-The suite verifies creation and deletion of networks, subnets and ports with
-OpenDaylight and Neutron.
-
-The list of tests can be described as follows:
-
- * Basic Restconf test cases
- * Connect to Restconf URL
- * Check the HTTP code status
-
- * Neutron Reachability test cases
- * Get the complete list of neutron resources (networks, subnets, ports)
-
- * Neutron Network test cases
- * Check OpenStack networks
- * Check OpenDaylight networks
- * Create a new network via OpenStack and check the HTTP status code returned by Neutron
- * Check that the network has also been successfully created in OpenDaylight
-
- * Neutron Subnet test cases
- * Check OpenStack subnets
- * Check OpenDaylight subnets
- * Create a new subnet via OpenStack and check the HTTP status code returned by Neutron
- * Check that the subnet has also been successfully created in OpenDaylight
-
- * Neutron Port test cases
- * Check OpenStack Neutron for known ports
- * Check OpenDaylight ports
- * Create a new port via OpenStack and check the HTTP status code returned by Neutron
- * Check that the new port has also been successfully created in OpenDaylight
-
- * Delete operations
- * Delete the port previously created via OpenStack
- * Check that the port has been also successfully deleted in OpenDaylight
- * Delete previously subnet created via OpenStack
- * Check that the subnet has also been successfully deleted in OpenDaylight
- * Delete the network created via OpenStack
- * Check that the network has also been successfully deleted in OpenDaylight
-
-Note: the checks in OpenDaylight are based on the returned HTTP status
-code returned by OpenDaylight.
-
-
-Features
---------
-
-Functest has been supporting several feature projects since Brahpamutra:
-
-
-+-----------------+---------+----------+--------+-----------+
-| Test | Brahma | Colorado | Danube | Euphrates |
-+=================+=========+==========+========+===========+
-| barometer | | | X | X |
-+-----------------+---------+----------+--------+-----------+
-| bgpvpn | | X | X | X |
-+-----------------+---------+----------+--------+-----------+
-| copper | | X | | |
-+-----------------+---------+----------+--------+-----------+
-| doctor | X | X | X | X |
-+-----------------+---------+----------+--------+-----------+
-| domino | | X | X | X |
-+-----------------+---------+----------+--------+-----------+
-| fds | | | X | X |
-+-----------------+---------+----------+--------+-----------+
-| moon | | X | | |
-+-----------------+---------+----------+--------+-----------+
-| multisite | | X | X | |
-+-----------------+---------+----------+--------+-----------+
-| netready | | | X | |
-+-----------------+---------+----------+--------+-----------+
-| odl_sfc | | X | X | X |
-+-----------------+---------+----------+--------+-----------+
-| opera | | | X | |
-+-----------------+---------+----------+--------+-----------+
-| orchestra | | | X | X |
-+-----------------+---------+----------+--------+-----------+
-| parser | | | X | X |
-+-----------------+---------+----------+--------+-----------+
-| promise | X | X | X | X |
-+-----------------+---------+----------+--------+-----------+
-| security_scan | | X | X | |
-+-----------------+---------+----------+--------+-----------+
-
-Please refer to the dedicated feature user guides for details.
-
-
-VNF
----
-
-
-cloudify_ims
-^^^^^^^^^^^^
-The IP Multimedia Subsystem or IP Multimedia Core Network Subsystem (IMS) is an
-architectural framework for delivering IP multimedia services.
-
-vIMS has been integrated in Functest to demonstrate the capability to deploy a
-relatively complex NFV scenario on the OPNFV platform. The deployment of a complete
-functional VNF allows the test of most of the essential functions needed for a
-NFV platform.
-
-The goal of this test suite consists of:
-
- * deploy a VNF orchestrator (Cloudify)
- * deploy a Clearwater vIMS (IP Multimedia Subsystem) VNF from this
- orchestrator based on a TOSCA blueprint defined in `[5]`_
- * run suite of signaling tests on top of this VNF
-
-The Clearwater architecture is described as follows:
-
-.. figure:: ../../../images/clearwater-architecture.png
- :align: center
- :alt: vIMS architecture
-
-
-cloudify_ims_perf
-^^^^^^^^^^^^^^^^^
-This testcase extends the cloudify_ims test case.
-The first part is similar but the testing part is different.
-The testing part consists in automating a realistic signaling load on the vIMS
-using an Ixia loader (proprietary tools)
- - You need to have access to an Ixia licence server defined in the configuration
- file and have ixia image locally.
-
-This test case is available but not declared in testcases.yaml. The declaration
-of the testcase is simple, connect to your functest-vnf docker, add the following
-section in /usr/lib/python2.7/site-packacges/functest/ci/testcases.yaml::
-
- -
- case_name: cloudify_ims_perf
- project_name: functest
- criteria: 80
- blocking: false
- description: >-
- Stress tests based on Cloudify. Ixia loader images and access to Ixia
- server license.
- dependencies:
- installer: ''
- scenario: 'os-nosdn-nofeature-ha'
- run:
- module: 'functest.opnfv_tests.vnf.ims.cloudify_ims_perf'
- class: 'CloudifyImsPerf'
-
-orchestra_openims
-^^^^^^^^^^^^^^^^^
-Orchestra test case deals with the deployment of OpenIMS with OpenBaton
-orchestrator.
-
-orchestra_clearwaterims
-^^^^^^^^^^^^^^^^^^^^^^^
-Orchestra test case deals with the deployment of Clearwater vIMS with OpenBaton
-orchestrator.
-
-vyos-vrouter
-^^^^^^^^^^^^
-This test case deals with the deployment and the test of vyos vrouter with
-Cloudify orchestrator. The test case can do testing for interchangeability of
-BGP Protocol using vyos.
-
-The Workflow is as follows:
- * Deploy
- Deploy VNF Testing topology by Cloudify using blueprint.
- * Configuration
- Setting configuration to Target VNF and reference VNF using ssh
- * Run
- Execution of test command for test item written YAML format file.
- Check VNF status and behavior.
- * Reporting
- Output of report based on result using JSON format.
-
-The vyos-vrouter architecture is described in `[14]`_
-
-
-.. _`[2]`: http://docs.openstack.org/developer/tempest/overview.html
-.. _`[3]`: https://rally.readthedocs.org/en/latest/index.html
-.. _`[5]`: https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/blob/master/openstack-blueprint.yaml
-.. _`[8]`: https://github.com/openstack/refstack-client
-.. _`[10]`: https://github.com/openstack/interop/blob/master/2016.08/procedure.rst
-.. _`[11]`: http://robotframework.org/
-.. _`[12]`: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/userguide/index.html
-.. _`[13]`: https://wiki.opnfv.org/display/PROJ/SNAPS-OO
-.. _`[14]`: https://github.com/oolorg/opnfv-functest-vrouter
-.. _`[15]`: https://aptira.com/testing-openstack-tempest-part-1/
diff --git a/docs/testing/user/userguide/test_overview.rst b/docs/testing/user/userguide/test_overview.rst
deleted file mode 100644
index a22a5067..00000000
--- a/docs/testing/user/userguide/test_overview.rst
+++ /dev/null
@@ -1,239 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Overview of the Functest suites
-===============================
-
-Functest is the OPNFV project primarily targeting functional testing.
-In the Continuous Integration pipeline, it is launched after an OPNFV fresh
-installation to validate and verify the basic functions of the
-infrastructure.
-
-The current list of test suites can be distributed over 4 main domains:
- * VIM (Virtualised Infrastructure Manager)
- * Controllers (i.e. SDN Controllers)
- * Features
- * VNF (Virtual Network Functions)
-
-Functest test suites are also distributed in the OPNFV testing categories:
-healthcheck, smoke, features, components, performance, VNF, Stress tests.
-
-All the Healthcheck and smoke tests of a given scenario must be succesful to
-validate the scenario for the release.
-
-+-------------+---------------+----------------+----------------------------------+
-| Domain | Tier | Test case | Comments |
-+=============+===============+================+==================================+
-| VIM | healthcheck | connection | Check OpenStack connectivity |
-| | | _check | through SNAPS framework |
-| | +----------------+----------------------------------+
-| | | api_check | Check OpenStack API through |
-| | | | SNAPS framework |
-| | +----------------+----------------------------------+
-| | | snaps_health | basic instance creation, check |
-| | | \_check | DHCP |
-| +---------------+----------------+----------------------------------+
-| | smoke | vping_ssh | NFV "Hello World" using an SSH |
-| | | | connection to a destination VM |
-| | | | over a created floating IP |
-| | | | address on the SUT Public / |
-| | | | External network. Using the SSH |
-| | | | connection a test script is then |
-| | | | copied to the destination |
-| | | | VM and then executed via SSH. |
-| | | | The script will ping another |
-| | | | VM on a specified IP address over|
-| | | | the SUT Private Tenant network |
-| | +----------------+----------------------------------+
-| | | vping_userdata | Uses Ping with given userdata |
-| | | | to test intra-VM connectivity |
-| | | | over the SUT Private Tenant |
-| | | | network. The correct operation |
-| | | | of the NOVA Metadata service is |
-| | | | also verified in this test |
-| | +----------------+----------------------------------+
-| | | tempest_smoke | Generate and run a relevant |
-| | | \_serial | Tempest Test Suite in smoke mode.|
-| | | | The generated test set is |
-| | | | dependent on the OpenStack |
-| | | | deployment environment |
-| | +----------------+----------------------------------+
-| | | rally_sanity | Run a subset of the OpenStack |
-| | | | Rally Test Suite in smoke mode |
-| | +----------------+----------------------------------+
-| | | snaps_smoke | Run the SNAPS-OO integration |
-| | | | tests |
-| | +----------------+----------------------------------+
-| | | refstack | Reference RefStack suite |
-| | | \_defcore | tempest selection for NFV |
-| +---------------+----------------+----------------------------------+
-| | components | tempest_full | Generate and run a full set of |
-| | | \_parallel | the OpenStack Tempest Test Suite.|
-| | | | See the OpenStack reference test |
-| | | | suite `[2]`_. The generated |
-| | | | test set is dependent on the |
-| | | | OpenStack deployment environment |
-| | +----------------+----------------------------------+
-| | | rally_full | Run the OpenStack testing tool |
-| | | | benchmarking OpenStack modules |
-| | | | See the Rally documents `[3]`_ |
-+-------------+---------------+----------------+----------------------------------+
-| Controllers | smoke | odl | Opendaylight Test suite |
-| | | | Limited test suite to check the |
-| | | | basic neutron (Layer 2) |
-| | | | operations mainly based on |
-| | | | upstream testcases. See below |
-| | | | for details |
-| | +----------------+----------------------------------+
-| | | odl_netvirt | Test Suite for the OpenDaylight |
-| | | | SDN Controller when the NetVirt |
-| | | | features are installed. It |
-| | | | integrates some test suites from |
-| | | | upstream using Robot as the test |
-| | | | framework |
-+-------------+---------------+----------------+----------------------------------+
-| Features | features | bgpvpn | Implementation of the OpenStack |
-| | | | bgpvpn API from the SDNVPN |
-| | | | feature project. It allows for |
-| | | | the creation of BGP VPNs. |
-| | | | See `SDNVPN User Guide`_ for |
-| | | | details |
-| | +----------------+----------------------------------+
-| | | doctor | Doctor platform, as of Colorado |
-| | | | release, provides the three |
-| | | | features: |
-| | | | * Immediate Notification |
-| | | | * Consistent resource state |
-| | | | awareness for compute host down |
-| | | | * Valid compute host status |
-| | | | given to VM owner |
-| | | | See `Doctor User Guide`_ for |
-| | | | details |
-| | +----------------+----------------------------------+
-| | | odl-sfc | SFC testing for odl scenarios |
-| | | | See `SFC User Guide`_ for details|
-| | +----------------+----------------------------------+
-| | | parser | Parser is an integration project |
-| | | | which aims to provide |
-| | | | placement/deployment templates |
-| | | | translation for OPNFV platform, |
-| | | | including TOSCA -> HOT, POLICY ->|
-| | | | TOSCA and YANG -> TOSCA. it |
-| | | | deals with a fake vRNC. |
-| | | | See `Parser User Guide`_ for |
-| | | | details |
-| | +----------------+----------------------------------+
-| | | fds | Test Suite for the OpenDaylight |
-| | | | SDN Controller when the GBP |
-| | | | features are installed. It |
-| | | | integrates some test suites from |
-| | | | upstream using Robot as the test |
-| | | | framework |
-+-------------+---------------+----------------+----------------------------------+
-| VNF | vnf | cloudify_ims | Example of a real VNF deployment |
-| | | | to show the NFV capabilities of |
-| | | | the platform. The IP Multimedia |
-| | | | Subsytem is a typical Telco test |
-| | | | case, referenced by ETSI. |
-| | | | It provides a fully functional |
-| | | | VoIP System |
-| | +----------------+----------------------------------+
-| | | orchestra | OpenIMS deployment using |
-| | | \_openims | Openbaton orchestrator |
-| | +----------------+----------------------------------+
-| | | orchestra | Cleawater IMS deployment using |
-| | | \_cleawaterims | Openbaton orchestrator |
-| | +----------------+----------------------------------+
-| | | vyos_vrouter | vRouter testing |
-| | +----------------+----------------------------------+
-| | | cloudify_ims | Based on cloudify_ims test case |
-| | | perf | cloudify_ims_perf substitutes |
-| | | | the signaling test suite by an |
-| | | | automatic deployment of an Ixia |
-| | | | loader and generic SIP stress |
-| | | | tests. |
-| | | | This work has been initiated |
-| | | | during the plugfest and allows |
-| | | | realistic load tests on top of |
-| | | | cloudify_ims. Please note that |
-| | | | this test is available but not |
-| | | | declared in testcases.yaml as it |
-| | | | requires access to proprietary |
-| | | | resources (Ixia loader) |
-+-------------+---------------+----------------+----------------------------------+
-
-
-As shown in the above table, Functest is structured into different 'domains',
-'tiers' and 'test cases'. Each 'test case' usually represents an actual
-'Test Suite' comprised -in turn- of several test cases internally.
-
-Test cases also have an implicit execution order. For example, if the early
-'healthcheck' Tier testcase fails, or if there are any failures in the 'smoke'
-Tier testcases, there is little point to launch a full testcase execution round.
-
-In Danube, we merged smoke and sdn controller tiers in smoke tier.
-
-An overview of the Functest Structural Concept is depicted graphically below:
-
-.. figure:: ../../../images/concepts_mapping_final.png
- :align: center
- :alt: Functest Concepts Structure
-
-Some of the test cases are developed by Functest team members, whereas others
-are integrated from upstream communities or other OPNFV projects. For example,
-`Tempest <http://docs.openstack.org/developer/tempest/overview.html>`_ is the
-OpenStack integration test suite and Functest is in charge of the selection,
-integration and automation of those tests that fit suitably to OPNFV.
-
-The Tempest test suite is the default OpenStack smoke test suite but no new test
-cases have been created in OPNFV Functest.
-
-The results produced by the tests run from CI are pushed and collected into a
-NoSQL database. The goal is to populate the database with results from different
-sources and scenarios and to show them on a `Functest Dashboard`_. A screenshot
-of a live Functest Dashboard is shown below:
-
-.. figure:: ../../../images/FunctestDashboardEuphrates.png
- :align: center
- :alt: Functest Dashboard
-
-
-Basic components (VIM, SDN controllers) are tested through their own suites.
-Feature projects also provide their own test suites with different ways of
-running their tests.
-
-The notion of domain has been introduced in the description of the test cases
-stored in the Database.
-This parameters as well as possible tags can be used for the Test case catalog.
-
-vIMS test case was integrated to demonstrate the capability to deploy a
-relatively complex NFV scenario on top of the OPNFV infrastructure.
-
-Functest considers OPNFV as a black box. OPNFV offers a lot of potential
-combinations (which may change from one version to another):
-
- * 3 controllers (OpenDaylight, ONOS, OpenContrail)
- * 5 installers (Apex, Compass, Daisy, Fuel, Joid)
-
-Most of the tests are runnable by any combination, but some tests might have
-restrictions imposed by the utilized installers or due to the available
-deployed features. The system uses the environment variables (INSTALLER_TYPE and
-DEPLOY_SCENARIO) to automatically determine the valid test cases, for each given
-environment.
-
-A convenience Functest CLI utility is also available to simplify setting up the
-Functest evironment, management of the OpenStack environment (e.g. resource
-clean-up) and for executing tests.
-The Functest CLI organised the testcase into logical Tiers, which contain in
-turn one or more testcases. The CLI allows execution of a single specified
-testcase, all test cases in a specified Tier, or the special case of execution
-of **ALL** testcases. The Functest CLI is introduced in more details in next
-section.
-
-.. _`[2]`: http://docs.openstack.org/developer/tempest/overview.html
-.. _`[3]`: https://rally.readthedocs.org/en/latest/index.html
-.. _`Doctor User Guide`: http://artifacts.opnfv.org/doctor/colorado/userguide/index.html
-.. _`SDNVPN User Guide`: http://artifacts.opnfv.org/sdnvpn/colorado/docs/userguide/index.html
-.. _`Parser User Guide`: http://artifacts.opnfv.org/parser/colorado/docs/userguide/index.html
-.. _`Functest Dashboard`: http://testresults.opnfv.org/kibana_dashboards/
-.. _`SFC User Guide`: http://artifacts.opnfv.org/sfc/colorado/userguide/index.html
diff --git a/docs/testing/user/userguide/test_results.rst b/docs/testing/user/userguide/test_results.rst
deleted file mode 100644
index 3941ba0a..00000000
--- a/docs/testing/user/userguide/test_results.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-Test results
-============
-
-Manual testing
---------------
-
-In manual mode test results are displayed in the console and result files
-are put in /home/opnfv/functest/results.
-
-If you want additional logs, you may configure the logging.ini under
-/usr/lib/python2.7/site-packages/functest/ci.
-
-Automated testing
---------------
-
-In automated mode, test results are displayed in jenkins logs, a summary is provided
-at the end of the job and can be described as follow::
-
- +-------------------------+----------------------------------------------------------+
- | ENV VAR | VALUE |
- +-------------------------+----------------------------------------------------------+
- | INSTALLER_TYPE | daisy |
- | DEPLOY_SCENARIO | os-nosdn-nofeature-ha |
- | BUILD_TAG | jenkins-functest-daisy-baremetal-daily-master-67 |
- | CI_LOOP | daily |
- +-------------------------+----------------------------------------------------------+
-
- +------------------------------+------------------+---------------------+------------------+----------------+
- | TEST CASE | PROJECT | TIER | DURATION | RESULT |
- +------------------------------+------------------+---------------------+------------------+----------------+
- | connection_check | functest | healthcheck | 00:08 | PASS |
- | api_check | functest | healthcheck | 04:22 | PASS |
- | snaps_health_check | functest | healthcheck | 00:35 | PASS |
- | vping_ssh | functest | smoke | 00:54 | PASS |
- | vping_userdata | functest | smoke | 00:27 | PASS |
- | tempest_smoke_serial | functest | smoke | 19:39 | FAIL |
- | rally_sanity | functest | smoke | 15:16 | PASS |
- | refstack_defcore | functest | smoke | 15:55 | PASS |
- | snaps_smoke | functest | smoke | 26:45 | FAIL |
- | cloudify_ims | functest | vnf | 23:56 | PASS |
- | orchestra_openims | orchestra | vnf | 15:07 | PASS |
- | orchestra_clearwaterims | orchestra | vnf | 19:10 | PASS |
- | vyos_vrouter | functest | vnf | 00:00 | SKIP |
- +------------------------------+------------------+---------------------+------------------+----------------+
-
-Results are automatically pushed to the test results database, some additional
-result files are pushed to OPNFV artifact web sites.
-
-Based on the results stored in the result database, a `Functest reporting`_
-portal is also automatically updated. This portal provides information on the
-overall status per scenario and per installer
-
-.. _`Functest reporting`: http://testresults.opnfv.org/reporting/master/functest/status-apex.html
diff --git a/docs/testing/user/userguide/troubleshooting.rst b/docs/testing/user/userguide/troubleshooting.rst
deleted file mode 100644
index 1649ac14..00000000
--- a/docs/testing/user/userguide/troubleshooting.rst
+++ /dev/null
@@ -1,378 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-
-Troubleshooting
-===============
-
-This section gives some guidelines about how to troubleshoot the test cases
-owned by Functest.
-
-**IMPORTANT**: As in the previous section, the steps defined below must be
-executed inside the Functest Docker container and after sourcing the OpenStack
-credentials::
-
- . $creds
-
-or::
-
- source /home/opnfv/functest/conf/env_file
-
-VIM
----
-
-This section covers the test cases related to the VIM (healthcheck, vping_ssh,
-vping_userdata, tempest_smoke_serial, tempest_full_parallel, rally_sanity,
-rally_full).
-
-vPing common
-^^^^^^^^^^^^
-For both vPing test cases (**vPing_ssh**, and **vPing_userdata**), the first steps are
-similar:
-
- * Create Glance image
- * Create Network
- * Create Security Group
- * Create Instances
-
-After these actions, the test cases differ and will be explained in their
-respective section.
-
-These test cases can be run inside the container, using new Functest CLI as follows::
-
- $ functest testcase run vping_ssh
- $ functest testcase run vping_userdata
-
-The Functest CLI is designed to route a call to the corresponding internal
-python scripts, located in paths
-/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/vping/vping_ssh.py
-and /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/vping/vping_userdata.py
-
-Notes:
-
- #. There is one difference, between the Functest CLI based test case
- execution compared to the earlier used Bash shell script, which is
- relevant to point out in troubleshooting scenarios:
-
- The Functest CLI does **not yet** support the option to suppress
- clean-up of the generated OpenStack resources, following the execution
- of a test case.
-
- Explanation: After finishing the test execution, the corresponding
- script will remove, by default, all created resources in OpenStack
- (image, instances, network and security group). When troubleshooting,
- it is advisable sometimes to keep those resources in case the test
- fails and a manual testing is needed.
-
- It is actually still possible to invoke test execution, with suppression
- of OpenStack resource cleanup, however this requires invocation of a
- **specific Python script:** 'run_tests'.
- The `OPNFV Functest Developer Guide`_ provides guidance on the use of that
- Python script in such troubleshooting cases.
-
-Some of the common errors that can appear in this test case are::
-
- vPing_ssh- ERROR - There has been a problem when creating the neutron network....
-
-This means that there has been some problems with Neutron, even before creating the
-instances. Try to create manually a Neutron network and a Subnet to see if that works.
-The debug messages will also help to see when it failed (subnet and router creation).
-Example of Neutron commands (using 10.6.0.0/24 range for example)::
-
- neutron net-create net-test
- neutron subnet-create --name subnet-test --allocation-pool start=10.6.0.2,end=10.6.0.100 \
- --gateway 10.6.0.254 net-test 10.6.0.0/24
- neutron router-create test_router
- neutron router-interface-add <ROUTER_ID> test_subnet
- neutron router-gateway-set <ROUTER_ID> <EXT_NET_NAME>
-
-Another related error can occur while creating the Security Groups for the instances::
-
- vPing_ssh- ERROR - Failed to create the security group...
-
-In this case, proceed to create it manually. These are some hints::
-
- neutron security-group-create sg-test
- neutron security-group-rule-create sg-test --direction ingress --protocol icmp \
- --remote-ip-prefix 0.0.0.0/0
- neutron security-group-rule-create sg-test --direction ingress --ethertype IPv4 \
- --protocol tcp --port-range-min 80 --port-range-max 80 --remote-ip-prefix 0.0.0.0/0
- neutron security-group-rule-create sg-test --direction egress --ethertype IPv4 \
- --protocol tcp --port-range-min 80 --port-range-max 80 --remote-ip-prefix 0.0.0.0/0
-
-The next step is to create the instances. The image used is located in
-*/home/opnfv/functest/data/cirros-0.4.0-x86_64-disk.img* and a Glance image is created
-with the name **functest-vping**. If booting the instances fails (i.e. the status
-is not **ACTIVE**), you can check why it failed by doing::
-
- nova list
- nova show <INSTANCE_ID>
-
-It might show some messages about the booting failure. To try that manually::
-
- nova boot --flavor m1.small --image functest-vping --nic net-id=<NET_ID> nova-test
-
-This will spawn a VM using the network created previously manually.
-In all the OPNFV tested scenarios from CI, it never has been a problem with the
-previous actions. Further possible problems are explained in the following sections.
-
-
-vPing_SSH
-^^^^^^^^^
-This test case creates a floating IP on the external network and assigns it to
-the second instance **opnfv-vping-2**. The purpose of this is to establish
-a SSH connection to that instance and SCP a script that will ping the first
-instance. This script is located in the repository under
-/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/vping/ping.sh
-and takes an IP as a parameter. When the SCP is completed, the test will do a
-SSH call to that script inside the second instance. Some problems can happen
-here::
-
- vPing_ssh- ERROR - Cannot establish connection to IP xxx.xxx.xxx.xxx. Aborting
-
-If this is displayed, stop the test or wait for it to finish, if you have used
-the special method of test invocation with specific supression of OpenStack
-resource clean-up, as explained earler. It means that the Container can not
-reach the Public/External IP assigned to the instance **opnfv-vping-2**. There
-are many possible reasons, and they really depend on the chosen scenario. For
-most of the ODL-L3 and ONOS scenarios this has been noticed and it is a known
-limitation.
-
-First, make sure that the instance **opnfv-vping-2** succeeded to get an IP
-from the DHCP agent. It can be checked by doing::
-
- nova console-log opnfv-vping-2
-
-If the message *Sending discover* and *No lease, failing* is shown, it probably
-means that the Neutron dhcp-agent failed to assign an IP or even that it was not
-responding. At this point it does not make sense to try to ping the floating IP.
-
-If the instance got an IP properly, try to ping manually the VM from the container::
-
- nova list
- <grab the public IP>
- ping <public IP>
-
-If the ping does not return anything, try to ping from the Host where the Docker
-container is running. If that solves the problem, check the iptable rules because
-there might be some rules rejecting ICMP or TCP traffic coming/going from/to the
-container.
-
-At this point, if the ping does not work either, try to reproduce the test
-manually with the steps described above in the vPing common section with the
-addition::
-
- neutron floatingip-create <EXT_NET_NAME>
- nova floating-ip-associate nova-test <FLOATING_IP>
-
-
-Further troubleshooting is out of scope of this document, as it might be due to
-problems with the SDN controller. Contact the installer team members or send an
-email to the corresponding OPNFV mailing list for more information.
-
-
-
-vPing_userdata
-^^^^^^^^^^^^^^
-This test case does not create any floating IP neither establishes an SSH
-connection. Instead, it uses nova-metadata service when creating an instance
-to pass the same script as before (ping.sh) but as 1-line text. This script
-will be executed automatically when the second instance **opnfv-vping-2** is booted.
-
-The only known problem here for this test to fail is mainly the lack of support
-of cloud-init (nova-metadata service). Check the console of the instance::
-
- nova console-log opnfv-vping-2
-
-If this text or similar is shown::
-
- checking http://169.254.169.254/2009-04-04/instance-id
- failed 1/20: up 1.13. request failed
- failed 2/20: up 13.18. request failed
- failed 3/20: up 25.20. request failed
- failed 4/20: up 37.23. request failed
- failed 5/20: up 49.25. request failed
- failed 6/20: up 61.27. request failed
- failed 7/20: up 73.29. request failed
- failed 8/20: up 85.32. request failed
- failed 9/20: up 97.34. request failed
- failed 10/20: up 109.36. request failed
- failed 11/20: up 121.38. request failed
- failed 12/20: up 133.40. request failed
- failed 13/20: up 145.43. request failed
- failed 14/20: up 157.45. request failed
- failed 15/20: up 169.48. request failed
- failed 16/20: up 181.50. request failed
- failed 17/20: up 193.52. request failed
- failed 18/20: up 205.54. request failed
- failed 19/20: up 217.56. request failed
- failed 20/20: up 229.58. request failed
- failed to read iid from metadata. tried 20
-
-it means that the instance failed to read from the metadata service. Contact
-the Functest or installer teams for more information.
-
-
-Tempest
-^^^^^^^
-
-In the upstream OpenStack CI all the Tempest test cases are supposed to pass.
-If some test cases fail in an OPNFV deployment, the reason is very probably one
-of the following
-
-+-----------------------------+-----------------------------------------------------+
-| Error | Details |
-+=============================+=====================================================+
-| Resources required for test | Such resources could be e.g. an external network |
-| case execution are missing | and access to the management subnet (adminURL) from |
-| | the Functest docker container. |
-+-----------------------------+-----------------------------------------------------+
-| OpenStack components or | Check running services in the controller and compute|
-| services are missing or not | nodes (e.g. with "systemctl" or "service" commands).|
-| configured properly | Configuration parameters can be verified from the |
-| | related .conf files located under '/etc/<component>'|
-| | directories. |
-+-----------------------------+-----------------------------------------------------+
-| Some resources required for | The tempest.conf file, automatically generated by |
-| execution test cases are | Rally in Functest, does not contain all the needed |
-| missing | parameters or some parameters are not set properly. |
-| | The tempest.conf file is located in directory |
-| | 'root/.rally/verification/verifier-<UUID> |
-| | /for-deployment-<UUID>' |
-| | in the Functest Docker container. Use the "rally |
-| | deployment list" command in order to check the UUID |
-| | the UUID of the current deployment. |
-+-----------------------------+-----------------------------------------------------+
-
-
-When some Tempest test case fails, captured traceback and possibly also the
-related REST API requests/responses are output to the console. More detailed debug
-information can be found from tempest.log file stored into related Rally deployment
-folder.
-
-Functest offers a possibility to test a customized list of Tempest test cases.
-To enable that, add a new entry in docker/components/testcases.yaml on the "components" container
-with the following content::
-
- -
- case_name: tempest_custom
- project_name: functest
- criteria: 100
- blocking: false
- description: >-
- The test case allows running a customized list of tempest
- test cases
- dependencies:
- installer: ''
- scenario: ''
- run:
- module: 'functest.opnfv_tests.openstack.tempest.tempest'
- class: 'TempestCustom'
-
-Also, a list of the Tempest test cases must be provided to the container or modify
-the existing one in
-/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt
-
-Example of custom list of tests 'my-custom-tempest-tests.txt'::
-
- tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops[compute,id-7fff3fb3-91d8-4fd0-bd7d-0204f1f180ba,network,smoke]
- tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops[compute,id-f323b3ba-82f8-4db7-8ea6-6a895869ec49,network,smoke]
-
-This is an example of running a customized list of Tempest tests in Functest::
-
- sudo docker run --env-file env \
- -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
- -v $(pwd)/images:/home/opnfv/functest/images \
- -v $(pwd)/my-custom-testcases.yaml:/usr/lib/python2.7/site-packages/functest/ci/testcases.yaml \
- -v $(pwd)/my-custom-tempest-tests.txt:/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt \
- opnfv/functest-components run_tests -t tempest_custom
-
-
-Rally
-^^^^^
-
-The same error causes which were mentioned above for Tempest test cases, may also
-lead to errors in Rally as well.
-
-Possible scenarios are:
- * authenticate
- * glance
- * cinder
- * heat
- * keystone
- * neutron
- * nova
- * ceilometer
- * quotas
- * vm
-
-To know more about what those scenarios are doing, they are defined in directory:
-/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/rally/scenario
-For more info about Rally scenario definition please refer to the Rally official
-documentation. `[3]`_
-
-To check any possible problems with Rally, the logs are stored under
-*/home/opnfv/functest/results/rally/* in the Functest Docker container.
-
-
-Controllers
------------
-
-Opendaylight
-^^^^^^^^^^^^
-
-If the Basic Restconf test suite fails, check that the ODL controller is
-reachable and its Restconf module has been installed.
-
-If the Neutron Reachability test fails, verify that the modules
-implementing Neutron requirements have been properly installed.
-
-If any of the other test cases fails, check that Neutron and ODL have
-been correctly configured to work together. Check Neutron configuration
-files, accounts, IP addresses etc.).
-
-
-Features
---------
-
-Please refer to the dedicated feature user guides for details.
-
-
-VNF
----
-
-cloudify_ims
-^^^^^^^^^^^^
-vIMS deployment may fail for several reasons, the most frequent ones are
-described in the following table:
-
-+-----------------------------------+------------------------------------+
-| Error | Comments |
-+===================================+====================================+
-| Keystone admin API not reachable | Impossible to create vIMS user and |
-| | tenant |
-+-----------------------------------+------------------------------------+
-| Impossible to retrieve admin role | Impossible to create vIMS user and |
-| id | tenant |
-+-----------------------------------+------------------------------------+
-| Error when uploading image from | impossible to deploy VNF |
-| OpenStack to glance | |
-+-----------------------------------+------------------------------------+
-| Cinder quota cannot be updated | Default quotas not sufficient, they|
-| | are adapted in the script |
-+-----------------------------------+------------------------------------+
-| Impossible to create a volume | VNF cannot be deployed |
-+-----------------------------------+------------------------------------+
-| SSH connection issue between the | if vPing test fails, vIMS test will|
-| Test Docker container and the VM | fail... |
-+-----------------------------------+------------------------------------+
-| No Internet access from the VM | the VMs of the VNF must have an |
-| | external access to Internet |
-+-----------------------------------+------------------------------------+
-| No access to OpenStack API from | Orchestrator can be installed but |
-| the VM | the vIMS VNF installation fails |
-+-----------------------------------+------------------------------------+
-
-Please note that this test case requires resources (8 VM (2Go) + 1 VM (4Go)), it
-is there fore not recommended to run it on a light configuration.
-
-.. _`OPNFV Functest Developer Guide`: http://artifacts.opnfv.org/functest/docs/testing_developer_devguide/index.html#
diff --git a/functest/api/__init__.py b/functest/api/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/api/__init__.py
+++ /dev/null
diff --git a/functest/api/base.py b/functest/api/base.py
deleted file mode 100644
index 75f059b7..00000000
--- a/functest/api/base.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-The base class to dispatch request
-
-"""
-
-import logging
-
-from flask import request
-from flask_restful import Resource
-
-from functest.api.common import api_utils
-
-
-LOGGER = logging.getLogger(__name__)
-
-
-class ApiResource(Resource):
- """ API Resource class"""
-
- def __init__(self):
- super(ApiResource, self).__init__()
-
- def _post_args(self): # pylint: disable=no-self-use
- # pylint: disable=maybe-no-member
- """ Return action and args after parsing request """
-
- data = request.json if request.json else {}
- params = api_utils.change_to_str_in_dict(data)
- action = params.get('action', request.form.get('action', ''))
- args = params.get('args', {})
- try:
- args['file'] = request.files['file']
- except KeyError:
- pass
- LOGGER.debug('Input args are: action: %s, args: %s', action, args)
-
- return action, args
-
- def _get_args(self): # pylint: disable=no-self-use
- """ Convert the unicode to string for request.args """
- args = api_utils.change_to_str_in_dict(request.args)
- return args
-
- def _dispatch_post(self):
- """ Dispatch request """
- action, args = self._post_args()
- return self._dispatch(args, action)
-
- def _dispatch(self, args, action):
- """
- Dynamically load the classes with reflection and
- obtain corresponding methods
- """
- try:
- return getattr(self, action)(args)
- except AttributeError:
- api_utils.result_handler(status=1, data='No such action')
-
-
-# Import modules from package "functest.api.resources"
-# and append them into sys.modules
-api_utils.import_modules_from_package("functest.api.resources")
diff --git a/functest/api/common/__init__.py b/functest/api/common/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/api/common/__init__.py
+++ /dev/null
diff --git a/functest/api/common/api_utils.py b/functest/api/common/api_utils.py
deleted file mode 100644
index d85acf92..00000000
--- a/functest/api/common/api_utils.py
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Utils for functest restapi
-
-"""
-
-import collections
-import logging
-import os
-import sys
-from oslo_utils import importutils
-
-from flask import jsonify
-import six
-
-import functest
-
-LOGGER = logging.getLogger(__name__)
-
-
-def change_to_str_in_dict(obj):
- """
- Return a dict with key and value both in string if they are in Unicode
- """
- if isinstance(obj, collections.Mapping):
- return {str(k): change_to_str_in_dict(v) for k, v in obj.items()}
- elif isinstance(obj, list):
- return [change_to_str_in_dict(ele) for ele in obj]
- elif isinstance(obj, six.text_type):
- return str(obj)
- return obj
-
-
-def itersubclasses(cls, _seen=None):
- """ Generator over all subclasses of a given class in depth first order """
-
- if not isinstance(cls, type):
- raise TypeError("itersubclasses must be called with "
- "new-style classes, not %.100r" % cls)
- _seen = _seen or set()
- try:
- subs = cls.__subclasses__()
- except TypeError: # fails only when cls is type
- subs = cls.__subclasses__(cls)
- for sub in subs:
- if sub not in _seen:
- _seen.add(sub)
- yield sub
- for itersub in itersubclasses(sub, _seen):
- yield itersub
-
-
-def import_modules_from_package(package):
- """
- Import modules from package and append into sys.modules
- :param: package - Full package name. For example: functest.api.resources
- """
- path = [os.path.dirname(functest.__file__), ".."] + package.split(".")
- path = os.path.join(*path)
- for root, _, files in os.walk(path):
- for filename in files:
- if filename.startswith("__") or not filename.endswith(".py"):
- continue
- new_package = ".".join(root.split(os.sep)).split("....")[1]
- module_name = "%s.%s" % (new_package, filename[:-3])
- try:
- try_append_module(module_name, sys.modules)
- except ImportError:
- LOGGER.exception("unable to import %s", module_name)
-
-
-def try_append_module(name, modules):
- """ Append the module into specified module system """
-
- if name not in modules:
- modules[name] = importutils.import_module(name)
-
-
-def change_obj_to_dict(obj):
- """ Transfer the object into dict """
- dic = {}
- for key, value in vars(obj).items():
- dic.update({key: value})
- return dic
-
-
-def result_handler(status, data):
- """ Return the json format of result in dict """
- result = {
- 'status': status,
- 'result': data
- }
- return jsonify(result)
diff --git a/functest/api/common/thread.py b/functest/api/common/thread.py
deleted file mode 100644
index fb60aaac..00000000
--- a/functest/api/common/thread.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Used to handle multi-thread tasks
-"""
-
-import logging
-import threading
-
-from oslo_serialization import jsonutils
-
-
-LOGGER = logging.getLogger(__name__)
-
-
-class TaskThread(threading.Thread):
- """ Task Thread Class """
-
- def __init__(self, target, args, handler):
- super(TaskThread, self).__init__(target=target, args=args)
- self.target = target
- self.args = args
- self.handler = handler
-
- def run(self):
- """ Override the function run: run testcase and update database """
- update_data = {'task_id': self.args.get('task_id'),
- 'status': 'IN PROGRESS'}
- self.handler.insert(update_data)
-
- LOGGER.info('Starting running test case')
-
- try:
- data = self.target(self.args)
- except Exception as err: # pylint: disable=broad-except
- LOGGER.exception('Task Failed')
- update_data = {'status': 'FAIL', 'error': str(err)}
- self.handler.update_attr(self.args.get('task_id'), update_data)
- else:
- LOGGER.info('Task Finished')
- LOGGER.debug('Result: %s', data)
- new_data = {'status': 'FINISHED',
- 'result': jsonutils.dumps(data.get('result', {}))}
-
- self.handler.update_attr(self.args.get('task_id'), new_data)
diff --git a/functest/api/database/__init__.py b/functest/api/database/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/api/database/__init__.py
+++ /dev/null
diff --git a/functest/api/database/db.py b/functest/api/database/db.py
deleted file mode 100644
index ea861ddb..00000000
--- a/functest/api/database/db.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Create database to store task results using sqlalchemy
-"""
-
-from sqlalchemy import create_engine
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy.orm import scoped_session, sessionmaker
-
-
-SQLITE = 'sqlite:////tmp/functest.db'
-
-ENGINE = create_engine(SQLITE, convert_unicode=True)
-DB_SESSION = scoped_session(sessionmaker(autocommit=False,
- autoflush=False,
- bind=ENGINE))
-BASE = declarative_base()
-BASE.query = DB_SESSION.query_property()
diff --git a/functest/api/database/v1/__init__.py b/functest/api/database/v1/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/api/database/v1/__init__.py
+++ /dev/null
diff --git a/functest/api/database/v1/handlers.py b/functest/api/database/v1/handlers.py
deleted file mode 100644
index 7bd286de..00000000
--- a/functest/api/database/v1/handlers.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Used to handle tasks: insert the task info into database and update it
-"""
-
-from functest.api.database.db import DB_SESSION
-from functest.api.database.v1.models import Tasks
-
-
-class TasksHandler(object):
- """ Tasks Handler Class """
-
- def insert(self, kwargs): # pylint: disable=no-self-use
- """ To insert the task info into database """
- task = Tasks(**kwargs)
- DB_SESSION.add(task) # pylint: disable=maybe-no-member
- DB_SESSION.commit() # pylint: disable=maybe-no-member
- return task
-
- def get_task_by_taskid(self, task_id): # pylint: disable=no-self-use
- """ Obtain the task by task id """
- # pylint: disable=maybe-no-member
- task = Tasks.query.filter_by(task_id=task_id).first()
- if not task:
- raise ValueError
-
- return task
-
- def update_attr(self, task_id, attr):
- """ Update the required attributes of the task """
- task = self.get_task_by_taskid(task_id)
-
- for key, value in attr.items():
- setattr(task, key, value)
- DB_SESSION.commit() # pylint: disable=maybe-no-member
diff --git a/functest/api/database/v1/models.py b/functest/api/database/v1/models.py
deleted file mode 100644
index c5de91bc..00000000
--- a/functest/api/database/v1/models.py
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Define tables for tasks
-"""
-
-from sqlalchemy import Column
-from sqlalchemy import Integer
-from sqlalchemy import String
-from sqlalchemy import Text
-
-from functest.api.database.db import BASE
-
-
-class Tasks(BASE): # pylint: disable=too-few-public-methods, no-init
- """ Create a table for tasks"""
-
- __tablename__ = 'tasks'
- id = Column(Integer, primary_key=True) # pylint: disable=invalid-name
- task_id = Column(String(50))
- status = Column(Integer)
- error = Column(String(120))
- result = Column(Text)
-
- def __repr__(self):
- return '<Task %r>' % Tasks.task_id
diff --git a/functest/api/resources/__init__.py b/functest/api/resources/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/api/resources/__init__.py
+++ /dev/null
diff --git a/functest/api/resources/v1/__init__.py b/functest/api/resources/v1/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/api/resources/v1/__init__.py
+++ /dev/null
diff --git a/functest/api/resources/v1/creds.py b/functest/api/resources/v1/creds.py
deleted file mode 100644
index 3eae1966..00000000
--- a/functest/api/resources/v1/creds.py
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Resources to handle openstack related requests
-"""
-
-import collections
-import logging
-import socket
-
-from flask import jsonify
-from flasgger.utils import swag_from
-import pkg_resources
-
-from functest.api.base import ApiResource
-from functest.api.common import api_utils
-from functest.ci import run_tests
-from functest.cli.commands.cli_os import OpenStack
-from functest.utils import constants
-
-LOGGER = logging.getLogger(__name__)
-
-ADDRESS = socket.gethostbyname(socket.gethostname())
-ENDPOINT_CREDS = ('http://{}:5000/api/v1/functest/openstack'.format(ADDRESS))
-
-
-class V1Creds(ApiResource):
- """ V1Creds Resource class"""
-
- @swag_from(
- pkg_resources.resource_filename('functest', 'api/swagger/creds.yaml'),
- endpoint='{0}/credentials'.format(ENDPOINT_CREDS))
- def get(self): # pylint: disable=no-self-use
- """ Get credentials """
- run_tests.Runner.source_envfile(constants.ENV_FILE)
- credentials_show = OpenStack.show_credentials()
- return jsonify(credentials_show)
-
- @swag_from(
- pkg_resources.resource_filename('functest',
- 'api/swagger/creds_action.yaml'),
- endpoint='{0}/action'.format(ENDPOINT_CREDS))
- def post(self):
- """ Used to handle post request """
- return self._dispatch_post()
-
- def update_openrc(self, args): # pylint: disable=no-self-use
- """ Used to update the OpenStack RC file """
- try:
- openrc_vars = args['openrc']
- except KeyError:
- return api_utils.result_handler(
- status=0, data='openrc must be provided')
- else:
- if not isinstance(openrc_vars, collections.Mapping):
- return api_utils.result_handler(
- status=0, data='args should be a dict')
-
- lines = ['export {}={}\n'.format(k, v) for k, v in openrc_vars.items()]
-
- rc_file = constants.ENV_FILE
- with open(rc_file, 'w') as creds_file:
- creds_file.writelines(lines)
-
- LOGGER.info("Sourcing the OpenStack RC file...")
- try:
- run_tests.Runner.source_envfile(rc_file)
- except Exception as err: # pylint: disable=broad-except
- LOGGER.exception('Failed to source the OpenStack RC file')
- return api_utils.result_handler(status=0, data=str(err))
-
- return api_utils.result_handler(
- status=0, data='Update openrc successfully')
diff --git a/functest/api/resources/v1/envs.py b/functest/api/resources/v1/envs.py
deleted file mode 100644
index 3e6f05ac..00000000
--- a/functest/api/resources/v1/envs.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Resources to handle environment related requests
-"""
-
-import pkg_resources
-import socket
-
-import IPy
-from flask import jsonify
-from flasgger.utils import swag_from
-
-from functest.api.base import ApiResource
-from functest.api.common import api_utils
-from functest.cli.commands.cli_env import Env
-
-ADDRESS = socket.gethostbyname(socket.gethostname())
-ENDPOINT_ENVS = ('http://{}:5000/api/v1/functest/envs'.format(ADDRESS))
-
-
-class V1Envs(ApiResource):
- """ V1Envs Resource class"""
-
- @swag_from(
- pkg_resources.resource_filename('functest', 'api/swagger/envs.yaml'),
- endpoint=ENDPOINT_ENVS)
- def get(self): # pylint: disable=no-self-use
- """ Get environment """
- environment_show = Env().show()
- return jsonify(environment_show)
-
- @swag_from(
- pkg_resources.resource_filename('functest',
- 'api/swagger/envs_action.yaml'),
- endpoint='{0}/action'.format(ENDPOINT_ENVS))
- def post(self):
- """ Used to handle post request """
- return self._dispatch_post()
-
- def update_hosts(self, hosts_info): # pylint: disable=no-self-use
- """ Update hosts info """
-
- if not isinstance(hosts_info, dict):
- return api_utils.result_handler(
- status=1, data='Error, args should be a dict')
-
- for key, value in hosts_info.items():
- if key:
- try:
- IPy.IP(value)
- except Exception: # pylint: disable=broad-except
- return api_utils.result_handler(
- status=1, data='The IP %s is invalid' % value)
- else:
- return api_utils.result_handler(
- status=1, data='Domain name is absent')
-
- try:
- functest_flag = "# SUT hosts info for Functest"
- hosts_list = ('\n{} {} {}'.format(ip, host_name, functest_flag)
- for host_name, ip in hosts_info.items())
-
- with open("/etc/hosts", 'r') as file_hosts:
- origin_lines = [line for line in file_hosts
- if functest_flag not in line]
-
- with open("/etc/hosts", 'w') as file_hosts:
- file_hosts.writelines(origin_lines)
- file_hosts.write(functest_flag)
- file_hosts.writelines(hosts_list)
- except Exception: # pylint: disable=broad-except
- return api_utils.result_handler(
- status=1, data='Error when updating hosts info')
- else:
- return api_utils.result_handler(
- status=0, data='Update hosts info successfully')
diff --git a/functest/api/resources/v1/tasks.py b/functest/api/resources/v1/tasks.py
deleted file mode 100644
index 30501adf..00000000
--- a/functest/api/resources/v1/tasks.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Resources to retrieve the task results
-"""
-
-import errno
-import json
-import logging
-import os
-import uuid
-
-from flask import jsonify
-from flasgger.utils import swag_from
-import pkg_resources
-
-from functest.api.base import ApiResource
-from functest.api.common import api_utils
-from functest.api.database.v1.handlers import TasksHandler
-from functest.utils import config
-
-
-LOGGER = logging.getLogger(__name__)
-
-
-class V1Task(ApiResource):
- """ V1Task Resource class"""
-
- @swag_from(pkg_resources.resource_filename(
- 'functest', 'api/swagger/task.yaml'))
- def get(self, task_id): # pylint: disable=no-self-use
- """ GET the result of the task id """
- try:
- uuid.UUID(task_id)
- except ValueError:
- return api_utils.result_handler(status=1, data='Invalid task id')
-
- task_handler = TasksHandler()
- try:
- task = task_handler.get_task_by_taskid(task_id)
- except ValueError:
- return api_utils.result_handler(status=1, data='No such task id')
-
- status = task.status
- LOGGER.debug('Task status is: %s', status)
-
- if status not in ['IN PROGRESS', 'FAIL', 'FINISHED']:
- return api_utils.result_handler(status=1,
- data='internal server error')
-
- switcher = {'IN PROGRESS': 0, 'FAIL': 1, 'FINISHED': 2}
- if status == 'IN PROGRESS':
- result = {'status': switcher.get(status), 'result': ''}
- elif status == 'FAIL':
- result = {'status': switcher.get(status), 'error': task.error}
- else:
- result = {'status': switcher.get(status),
- 'result': json.loads(task.result)}
-
- return jsonify(result)
-
-
-class V1TaskLog(ApiResource):
- """ V1TaskLog Resource class"""
-
- @swag_from(pkg_resources.resource_filename(
- 'functest', 'api/swagger/task_log.yaml'))
- def get(self, task_id): # pylint: disable=no-self-use
- """ GET the log of the task id """
- try:
- uuid.UUID(task_id)
- except ValueError:
- return api_utils.result_handler(status=1, data='Invalid task id')
-
- task_handler = TasksHandler()
- try:
- task = task_handler.get_task_by_taskid(task_id)
- except ValueError:
- return api_utils.result_handler(status=1, data='No such task id')
-
- task_log_dir = getattr(config.CONF, 'dir_results')
- # pylint: disable=maybe-no-member
- index = int(self._get_args().get('index', 0))
-
- try:
- with open(os.path.join(task_log_dir,
- '{}.log'.format(task_id)), 'r') as log_file:
- log_file.seek(index)
- data = log_file.readlines()
- index = log_file.tell()
- except OSError as err:
- if err.errno == errno.ENOENT:
- return api_utils.result_handler(
- status=1, data='Log file does not exist')
-
- return api_utils.result_handler(
- status=1, data='Error with log file')
-
- return_data = {'data': data, 'index': index}
-
- switcher = {'IN PROGRESS': 0, 'FAIL': 1, 'FINISHED': 2}
-
- return api_utils.result_handler(status=switcher.get(task.status),
- data=return_data)
diff --git a/functest/api/resources/v1/testcases.py b/functest/api/resources/v1/testcases.py
deleted file mode 100644
index 2dbf97e4..00000000
--- a/functest/api/resources/v1/testcases.py
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Resources to handle testcase related requests
-"""
-
-import ConfigParser
-import logging
-import os
-import re
-import socket
-import uuid
-
-from flask import jsonify
-from flasgger.utils import swag_from
-import pkg_resources
-
-from functest.api.base import ApiResource
-from functest.api.common import api_utils, thread
-from functest.cli.commands.cli_testcase import Testcase
-from functest.api.database.v1.handlers import TasksHandler
-from functest.utils import config
-from functest.utils import env
-import functest.utils.functest_utils as ft_utils
-
-LOGGER = logging.getLogger(__name__)
-
-ADDRESS = socket.gethostbyname(socket.gethostname())
-ENDPOINT_TESTCASES = ('http://{}:5000/api/v1/functest/testcases'
- .format(ADDRESS))
-
-
-class V1Testcases(ApiResource):
- """ V1Testcases Resource class"""
-
- @swag_from(pkg_resources.resource_filename(
- 'functest', 'api/swagger/testcases.yaml'))
- def get(self): # pylint: disable=no-self-use
- """ GET all testcases """
- testcases_list = Testcase().list()
- result = {'testcases': re.split(' |\n ', testcases_list)[1:]}
- return jsonify(result)
-
-
-class V1Testcase(ApiResource):
- """ V1Testcase Resource class"""
-
- @swag_from(
- pkg_resources.resource_filename('functest',
- 'api/swagger/testcase.yaml'),
- endpoint='{0}/<testcase_name>'.format(ENDPOINT_TESTCASES))
- def get(self, testcase_name): # pylint: disable=no-self-use
- """ GET the info of one testcase"""
- testcase = Testcase().show(testcase_name)
- if not testcase:
- return api_utils.result_handler(
- status=1,
- data="The test case '%s' does not exist or is not supported"
- % testcase_name)
-
- testcase_info = api_utils.change_obj_to_dict(testcase)
- dependency_dict = api_utils.change_obj_to_dict(
- testcase_info.get('dependency'))
- testcase_info.pop('name')
- testcase_info.pop('dependency')
- result = {'testcase': testcase_name}
- result.update(testcase_info)
- result.update({'dependency': dependency_dict})
- return jsonify(result)
-
- @swag_from(
- pkg_resources.resource_filename('functest',
- 'api/swagger/testcase_run.yaml'),
- endpoint='{0}/action'.format(ENDPOINT_TESTCASES))
- def post(self):
- """ Used to handle post request """
- return self._dispatch_post()
-
- def run_test_case(self, args):
- """ Run a testcase """
- try:
- case_name = args['testcase']
- except KeyError:
- return api_utils.result_handler(
- status=1, data='testcase name must be provided')
-
- testcase = Testcase().show(case_name)
- if not testcase:
- return api_utils.result_handler(
- status=1,
- data="The test case '%s' does not exist or is not supported"
- % case_name)
-
- task_id = str(uuid.uuid4())
-
- task_args = {'testcase': case_name, 'task_id': task_id}
-
- task_args.update(args.get('opts', {}))
-
- task_thread = thread.TaskThread(self._run, task_args, TasksHandler())
- task_thread.start()
-
- result = {'testcase': case_name, 'task_id': task_id}
- return jsonify({'result': result})
-
- def _run(self, args): # pylint: disable=no-self-use
- """ The built_in function to run a test case """
-
- case_name = args.get('testcase')
- self._update_logging_ini(args.get('task_id'))
-
- try:
- cmd = "run_tests -t {}".format(case_name)
- runner = ft_utils.execute_command(cmd)
- except Exception: # pylint: disable=broad-except
- result = 'FAIL'
- LOGGER.exception("Running test case %s failed!", case_name)
- if runner == os.EX_OK:
- result = 'PASS'
- else:
- result = 'FAIL'
-
- env_info = {
- 'installer': env.get('INSTALLER_TYPE'),
- 'scenario': env.get('DEPLOY_SCENARIO'),
- 'build_tag': env.get('BUILD_TAG'),
- 'ci_loop': env.get('CI_LOOP')
- }
- result = {
- 'task_id': args.get('task_id'),
- 'testcase': case_name,
- 'env_info': env_info,
- 'result': result
- }
-
- return {'result': result}
-
- def _update_logging_ini(self, task_id): # pylint: disable=no-self-use
- """ Update the log file for each task"""
- rconfig = ConfigParser.RawConfigParser()
- rconfig.read(
- pkg_resources.resource_filename('functest', 'ci/logging.ini'))
- log_path = os.path.join(getattr(config.CONF, 'dir_results'),
- '{}.log'.format(task_id))
- rconfig.set('handler_file', 'args', '("{}",)'.format(log_path))
-
- with open(
- pkg_resources.resource_filename(
- 'functest', 'ci/logging.ini'), 'wb') as configfile:
- rconfig.write(configfile)
diff --git a/functest/api/resources/v1/tiers.py b/functest/api/resources/v1/tiers.py
deleted file mode 100644
index 523df130..00000000
--- a/functest/api/resources/v1/tiers.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Resources to handle tier related requests
-"""
-
-import pkg_resources
-import re
-
-from flask import jsonify
-from flasgger.utils import swag_from
-
-from functest.api.base import ApiResource
-from functest.api.common import api_utils
-from functest.cli.commands.cli_tier import Tier
-
-
-class V1Tiers(ApiResource):
- """ V1Tiers Resource class """
-
- @swag_from(pkg_resources.resource_filename(
- 'functest', 'api/swagger/tiers.yaml'))
- def get(self):
- # pylint: disable=no-self-use
- """ GET all tiers """
- tiers_list = Tier().list()
- data = re.split("[\n\t]", tiers_list)
- data = [i.strip() for i in data if i != '']
- data_dict = dict()
- for i in range(len(data) / 2):
- one_data = {data[i * 2].lstrip('- ').rstrip(':'): data[i * 2 + 1]}
- if i == 0:
- data_dict = one_data
- else:
- data_dict.update(one_data)
- result = {'tiers': data_dict}
- return jsonify(result)
-
-
-class V1Tier(ApiResource):
- """ V1Tier Resource class """
-
- @swag_from(pkg_resources.resource_filename(
- 'functest', 'api/swagger/tier.yaml'))
- def get(self, tier_name): # pylint: disable=no-self-use
- """ GET the info of one tier """
- tier_info = Tier().show(tier_name)
- if not tier_info:
- return api_utils.result_handler(
- status=1,
- data="The tier with name '%s' does not exist." % tier_name)
- tier_info.__dict__.pop('name')
- tier_info.__dict__.pop('tests_array')
- tier_info.__dict__.pop('skipped_tests_array')
- testcases = Tier().gettests(tier_name)
- result = {'tier': tier_name, 'testcases': testcases}
- result.update(tier_info.__dict__)
- return jsonify(result)
-
-
-class V1TestcasesinTier(ApiResource):
- """ V1TestcasesinTier Resource class """
-
- @swag_from(pkg_resources.resource_filename(
- 'functest', 'api/swagger/testcases_in_tier.yaml'))
- def get(self, tier_name): # pylint: disable=no-self-use
- """ GET all testcases within given tier """
- tier_info = Tier().show(tier_name)
- if not tier_info:
- return api_utils.result_handler(
- status=1,
- data="The tier with name '%s' does not exist." % tier_name)
- testcases = Tier().gettests(tier_name)
- result = {'tier': tier_name, 'testcases': testcases}
- return jsonify(result)
diff --git a/functest/api/server.py b/functest/api/server.py
deleted file mode 100644
index 3200c1a2..00000000
--- a/functest/api/server.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Used to launch Functest RestApi
-
-"""
-
-import inspect
-import logging
-import socket
-from urlparse import urljoin
-import pkg_resources
-
-from flask import Flask
-from flask_restful import Api
-from flasgger import Swagger
-
-from functest.api.base import ApiResource
-from functest.api.common import api_utils
-from functest.api.database.db import BASE
-from functest.api.database.db import DB_SESSION
-from functest.api.database.db import ENGINE
-from functest.api.database.v1 import models
-from functest.api.urls import URLPATTERNS
-
-
-LOGGER = logging.getLogger(__name__)
-
-APP = Flask(__name__)
-API = Api(APP)
-Swagger(APP)
-
-
-@APP.teardown_request
-def shutdown_session(exception=None): # pylint: disable=unused-argument
- """
- To be called at the end of each request whether it is successful
- or an exception is raised
- """
- DB_SESSION.remove()
-
-
-def get_resource(resource_name):
- """ Obtain the required resource according to resource name """
- name = ''.join(resource_name.split('_'))
- return next((r for r in api_utils.itersubclasses(ApiResource)
- if r.__name__.lower() == name))
-
-
-def get_endpoint(url):
- """ Obtain the endpoint of url """
- address = socket.gethostbyname(socket.gethostname())
- return urljoin('http://{}:5000'.format(address), url)
-
-
-def api_add_resource():
- """
- The resource has multiple URLs and you can pass multiple URLs to the
- add_resource() method on the Api object. Each one will be routed to
- your Resource
- """
- for url_pattern in URLPATTERNS:
- try:
- API.add_resource(
- get_resource(url_pattern.target), url_pattern.url,
- endpoint=get_endpoint(url_pattern.url))
- except StopIteration:
- LOGGER.error('url resource not found: %s', url_pattern.url)
-
-
-def init_db():
- """
- Import all modules here that might define models so that
- they will be registered properly on the metadata, and then
- create a database
- """
- def func(subcls):
- """ To check the subclasses of BASE"""
- try:
- if issubclass(subcls[1], BASE):
- return True
- except TypeError:
- pass
- return False
- # pylint: disable=bad-builtin
- subclses = filter(func, inspect.getmembers(models, inspect.isclass))
- LOGGER.debug('Import models: %s', [subcls[1] for subcls in subclses])
- BASE.metadata.create_all(bind=ENGINE)
-
-
-def main():
- """Entry point"""
- logging.config.fileConfig(pkg_resources.resource_filename(
- 'functest', 'ci/logging.ini'))
- logging.captureWarnings(True)
- LOGGER.info('Starting Functest server')
- api_add_resource()
- init_db()
- APP.run(host='0.0.0.0')
diff --git a/functest/api/swagger/creds.yaml b/functest/api/swagger/creds.yaml
deleted file mode 100644
index eec7cb34..00000000
--- a/functest/api/swagger/creds.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
----
-Show credentials
-
-This api offers the interface to show credentials.
-The credentials dict will be returned.
----
-tags:
- - Creds
-definitions:
- Credentials:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Name'
- Name:
- type: dict
-responses:
- 200:
- description: Show credentials
- schema:
- $ref: '#/definitions/Credentials'
- examples:
- "OS_AUTH_URL": "https://192.16.1.222:5000/v3"
- "OS_AUTH_VERSION": "3"
- "OS_CACERT": "/home/opnfv/functest/conf/os_cacert"
- "OS_ENDPOINT_TYPE": "publicURL"
- "OS_IDENTITY_API_VERSION": "3"
- "OS_INTERFACE": "publicURL"
- "OS_NO_CACHE": "1"
- "OS_PASSWORD": "990232e0885da343ac805528522d"
- "OS_PROJECT_DOMAIN_NAME": "Default"
- "OS_PROJECT_NAME": "admin"
- "OS_REGION_NAME": "RegionOne"
- "OS_TENANT_NAME": "admin"
- "OS_USERNAME": "admin"
- "OS_USER_DOMAIN_NAME": "Default"
diff --git a/functest/api/swagger/creds_action.yaml b/functest/api/swagger/creds_action.yaml
deleted file mode 100644
index 7e7653bb..00000000
--- a/functest/api/swagger/creds_action.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-Update openrc
-
-This api offers the interface to Update openstack.creds.
----
-tags:
- - Creds
-parameters:
- - in: body
- name: body
- description: this is the input json dict
- schema:
- required:
- - action
- - args
- properties:
- action:
- type: string
- description: this is action for creds
- default: update_openrc
- args:
- schema:
- required:
- - openrc
- properties:
- openrc:
- type: string
- description: this is the test case name
- default:
- "OS_AUTH_URL": "http://192.16.1.222:5000/v3"
- "OS_ENDPOINT_TYPE": "publicURL"
- "OS_IDENTITY_API_VERSION": "3"
- "OS_INTERFACE": "publicURL"
- "OS_PASSWORD": "admn"
- "OS_PROJECT_DOMAIN_NAME": "Default"
- "OS_PROJECT_NAME": "admin"
- "OS_REGION_NAME": "RegionOne"
- "OS_TENANT_NAME": "admin"
- "OS_USERNAME": "admin"
- "OS_USER_DOMAIN_NAME": "Default"
-definitions:
- Credentials:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Name'
- Name:
- type: dict
-responses:
- 200:
- description: Update openrc
- schema:
- $ref: '#/definitions/Credentials'
- examples:
- 'status': 0
- 'result': 'Update openrc successfully'
diff --git a/functest/api/swagger/envs.yaml b/functest/api/swagger/envs.yaml
deleted file mode 100644
index 4ff50c86..00000000
--- a/functest/api/swagger/envs.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-Show environment
-
-This api offers the interface to show environment.
-The environment dict will be returned.
----
-tags:
- - Envs
-definitions:
- Environment:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Name'
- Name:
- type: dict
-responses:
- 200:
- description: Show environment
- schema:
- $ref: '#/definitions/Environment'
- examples:
- "DEBUG FLAG": "false"
- "INSTALLER": "compass, 192.168.200.2"
- "POD": "unknown_pod"
- "SCENARIO": "os-nosdn-nofeature-noha"
- "STATUS": "ready"
diff --git a/functest/api/swagger/envs_action.yaml b/functest/api/swagger/envs_action.yaml
deleted file mode 100644
index 3ad6c880..00000000
--- a/functest/api/swagger/envs_action.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-Update hosts info
-
-This api offers the interface to update hosts info.
----
-tags:
- - Envs
-parameters:
- - in: body
- name: body
- description: this is the input json dict
- schema:
- required:
- - action
- - args
- properties:
- action:
- type: string
- description: this is action for envs
- default: update_hosts
- args:
- type: string
- description: Hosts info to be updated
- default:
- "identity.ac.dz.com": "8.20.11.22"
- "image.ac.dz.com": "8.20.11.22"
-definitions:
- Environment:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Name'
- Name:
- type: dict
-responses:
- 200:
- description: Update hosts info
- schema:
- $ref: '#/definitions/Environment'
- examples:
- 'status': 0
- 'result': 'Update hosts info successfully'
diff --git a/functest/api/swagger/task.yaml b/functest/api/swagger/task.yaml
deleted file mode 100644
index 3375b906..00000000
--- a/functest/api/swagger/task.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-Get the result of the specified task
-
-This api offers the interface to get the result of the specified task.
----
-tags:
- - Tasks
-parameters:
- - name: task_id
- description: task id
- in: path
- type: string
- required: true
-definitions:
- Task:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Result'
- Result:
- type: dict
-responses:
- 200:
- description: Get the result of the specified task
- schema:
- $ref: '#/definitions/Task'
- examples:
- "result": {
- "case_name": "vping_ssh",
- "env_info": {
- "build_tag": null,
- "ci_loop": "weekly",
- "installer": "compass",
- "scenario": "os-nosdn-nofeature-noha"},
- "result": "PASS",
- "task_id": "1a9f3c5d-ce0b-4354-862e-dd08b26fc484"}
- "status": 2
diff --git a/functest/api/swagger/task_log.yaml b/functest/api/swagger/task_log.yaml
deleted file mode 100644
index 120a8f6f..00000000
--- a/functest/api/swagger/task_log.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-Get the log of the specified task
-
-This api offers the interface to get the log of the specified task.
----
-tags:
- - Tasks
-parameters:
- - name: task_id
- description: task id
- in: path
- type: string
- required: true
-definitions:
- Task:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Result'
- Result:
- type: dict
-responses:
- 200:
- description: Get the log of the specified task
- schema:
- $ref: '#/definitions/Task'
- examples:
- "result": {
- "data": [
- "2017-09-14 06:46:26,106 - functest.ci.run_tests - DEBUG ",
- "- Sourcing the OpenStack RC file... ",
- "2017-09-14 06:46:26,107 - functest.ci.run_tests - DEBUG ",
- "- Test args: connection_check ",
- "2017-09-14 06:46:26,107 - functest.ci.run_tests - INFO ",
- "- Running test case 'connection_check'... ",
- "..."]}
- "status": 2
diff --git a/functest/api/swagger/testcase.yaml b/functest/api/swagger/testcase.yaml
deleted file mode 100644
index 34c13d21..00000000
--- a/functest/api/swagger/testcase.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
----
-Show the info of one testcase
-
-This api offers the interface to show the detailed info of one testcase.
-The info of one testcase will be returned.
----
-tags:
- - Testcases
-parameters:
- - name: testcase_name
- description: testcase name
- in: path
- type: string
- required: true
-definitions:
- Testcases:
- type: object
- properties:
- case_name:
- $ref: '#/definitions/Tests'
- Tests:
- type: dict
-responses:
- 200:
- description: Show the detailed info of one testcase
- schema:
- $ref: '#/definitions/Testcases'
- examples:
- "testcase": ""
- "blocking":
- "criteria":
- "dependency": {
- "installer": "",
- "scenario": ""}
- "description": ""
- "enabled":
diff --git a/functest/api/swagger/testcase_run.yaml b/functest/api/swagger/testcase_run.yaml
deleted file mode 100644
index 7b254c86..00000000
--- a/functest/api/swagger/testcase_run.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
----
-Run a test case
-
-This api offers the interface to run a test case
----
-tags:
- - Testcases
-parameters:
- - in: body
- name: body
- description: this is the input json dict
- schema:
- required:
- - action
- - args
- properties:
- action:
- type: string
- description: this is action for creds
- default: run_test_case
- args:
- schema:
- required:
- - testcase
- properties:
- testcase:
- type: string
- description: this is the test case name
- default:
- vping_ssh
-definitions:
- Testcases:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Tests'
- Tests:
- type: dict
-responses:
- 200:
- description: Run a test case
- schema:
- $ref: '#/definitions/Testcases'
- examples:
- 'task_id': '94c8ec94-d873-466f-a205-bf592f31ff5b'
- 'testcase': 'vping_ssh'
diff --git a/functest/api/swagger/testcases.yaml b/functest/api/swagger/testcases.yaml
deleted file mode 100644
index 1dea2152..00000000
--- a/functest/api/swagger/testcases.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-List all test cases
-
-This api offers the interface to list all test cases
-The testcases list will be returned
----
-tags:
- - Testcases
-definitions:
- Testcases:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Tests'
- Tests:
- type: dict
-responses:
- 200:
- description: List all test cases
- schema:
- $ref: '#/definitions/Testcases'
- examples:
- "testcases": []
diff --git a/functest/api/swagger/testcases_in_tier.yaml b/functest/api/swagger/testcases_in_tier.yaml
deleted file mode 100644
index af195ceb..00000000
--- a/functest/api/swagger/testcases_in_tier.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-List all testcases within given tier
-
-This api offers the interface to list all testcases within given tier.
-All testcases within given tier will be returned.
----
-tags:
- - Tiers
-parameters:
- - name: tier_name
- description: tier name
- in: path
- type: string
- required: true
-definitions:
- Testcases:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Tests'
- Tests:
- type: dict
-responses:
- 200:
- description: List all testcases within given tier
- schema:
- $ref: '#/definitions/Testcases'
- examples:
- "tier": ""
- "testcases": []
diff --git a/functest/api/swagger/tier.yaml b/functest/api/swagger/tier.yaml
deleted file mode 100644
index 250cddf7..00000000
--- a/functest/api/swagger/tier.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-Show the info of one tier
-
-This api offers the interface to show the detailed info of one tier.
-The info of one tier will be returned.
----
-tags:
- - Tiers
-parameters:
- - name: tier_name
- description: tier name
- in: path
- type: string
- required: true
-definitions:
- Tiers:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Name'
- Name:
- type: string
-responses:
- 200:
- description: Show the detailed info of one tier
- schema:
- $ref: '#/definitions/Tiers'
- examples:
- "tier": ""
- "ci_loop": ""
- "description": ""
- "order":
- "testcases": []
diff --git a/functest/api/swagger/tiers.yaml b/functest/api/swagger/tiers.yaml
deleted file mode 100644
index d42b2cd9..00000000
--- a/functest/api/swagger/tiers.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-List all tiers
-
-This api offers the interface to list all tiers.
-The tiers list will be returned.
----
-tags:
- - Tiers
-definitions:
- Tiers:
- type: object
- properties:
- creds_name:
- $ref: '#/definitions/Tier'
- Tier:
- type: dict
-responses:
- 200:
- description: List all tiers
- schema:
- $ref: '#/definitions/Tiers'
- examples:
- "tiers": ""
diff --git a/functest/api/urls.py b/functest/api/urls.py
deleted file mode 100644
index 10b7b293..00000000
--- a/functest/api/urls.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Define multiple URLs
-"""
-
-
-class Url(object): # pylint: disable=too-few-public-methods
- """ Url Class """
-
- def __init__(self, url, target):
- super(Url, self).__init__()
- self.url = url
- self.target = target
-
-
-URLPATTERNS = [
- # GET /api/v1/functest/envs => GET environment
- Url('/api/v1/functest/envs', 'v1_envs'),
-
- # POST /api/v1/functest/envs/action
- # {"action":"update_hosts", "args": {}} => Update hosts info
- Url('/api/v1/functest/envs/action', 'v1_envs'),
-
- # GET /api/v1/functest/openstack/credentials => GET credentials
- Url('/api/v1/functest/openstack/credentials', 'v1_creds'),
-
- # POST /api/v1/functest/openstack/action
- # {"action":"update_openrc", "args": {"openrc": {}}} => Update openrc
- Url('/api/v1/functest/openstack/action', 'v1_creds'),
-
- # GET /api/v1/functest/testcases => GET all testcases
- Url('/api/v1/functest/testcases', 'v1_test_cases'),
-
- # GET /api/v1/functest/testcases/<testcase_name>
- # => GET the info of one testcase
- Url('/api/v1/functest/testcases/<testcase_name>', 'v1_testcase'),
-
- # POST /api/v1/functest/testcases/action
- # {"action":"run_test_case", "args": {"opts": {}, "testcase": "vping_ssh"}}
- # => Run a testcase
- Url('/api/v1/functest/testcases/action', 'v1_testcase'),
-
- # GET /api/v1/functest/testcases => GET all tiers
- Url('/api/v1/functest/tiers', 'v1_tiers'),
-
- # GET /api/v1/functest/tiers/<tier_name>
- # => GET the info of one tier
- Url('/api/v1/functest/tiers/<tier_name>', 'v1_tier'),
-
- # GET /api/v1/functest/tiers/<tier_name>/testcases
- # => GET all testcases within given tier
- Url('/api/v1/functest/tiers/<tier_name>/testcases',
- 'v1_testcases_in_tier'),
-
- # GET /api/v1/functest/tasks/<task_id>
- # => GET the result of the task id
- Url('/api/v1/functest/tasks/<task_id>', 'v1_task'),
-
- # GET /api/v1/functest/tasks/<task_id>/log
- # => GET the log of the task
- Url('/api/v1/functest/tasks/<task_id>/log', 'v1_task_log')
-]
diff --git a/functest/ci/check_deployment.py b/functest/ci/check_deployment.py
deleted file mode 100644
index a475491a..00000000
--- a/functest/ci/check_deployment.py
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Ericsson and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-OpenStack deployment checker
-
-Verifies that:
- - Credentials file is given and contains the right information
- - OpenStack endpoints are reachable
-"""
-
-import logging
-import logging.config
-import os
-import socket
-
-import pkg_resources
-from six.moves import urllib
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import glance_utils
-from snaps.openstack.utils import keystone_utils
-from snaps.openstack.utils import neutron_utils
-from snaps.openstack.utils import nova_utils
-
-from functest.utils import constants
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-
-__author__ = "Jose Lausuch <jose.lausuch@ericsson.com>"
-
-LOGGER = logging.getLogger(__name__)
-
-
-def verify_connectivity(endpoint):
- """ Returns true if an hostname/port is reachable"""
- try:
- connection = socket.socket()
- connection.settimeout(10)
- url = urllib.parse.urlparse(endpoint)
- port = url.port
- if not port:
- port = 443 if url.scheme == "https" else 80
- connection.connect((url.hostname, port))
- LOGGER.debug('%s:%s is reachable!', url.hostname, port)
- return True
- except socket.error:
- LOGGER.error('%s:%s is not reachable.', url.hostname, port)
- except Exception: # pylint: disable=broad-except
- LOGGER.exception(
- 'Errors when verifying connectivity to %s:%s', url.hostname, port)
- return False
-
-
-def get_auth_token(os_creds):
- """ Get auth token """
- sess = keystone_utils.keystone_session(os_creds)
- try:
- return sess.get_token()
- except Exception as error:
- LOGGER.error("Got token ...FAILED")
- raise error
-
-
-class CheckDeployment(object):
- """ Check deployment class."""
-
- def __init__(self, rc_file=constants.ENV_FILE):
- self.rc_file = rc_file
- self.services = ('compute', 'network', 'image')
- self.os_creds = None
-
- def check_rc(self):
- """ Check if RC file exists and contains OS_AUTH_URL """
- if not os.path.isfile(self.rc_file):
- raise IOError('RC file {} does not exist!'.format(self.rc_file))
- if 'OS_AUTH_URL' not in open(self.rc_file).read():
- raise SyntaxError('OS_AUTH_URL not defined in {}.'.
- format(self.rc_file))
-
- def check_auth_endpoint(self):
- """ Verifies connectivity to the OS_AUTH_URL given in the RC file
- and get auth token"""
- rc_endpoint = self.os_creds.auth_url
- if not verify_connectivity(rc_endpoint):
- raise Exception("OS_AUTH_URL {} is not reachable.".
- format(rc_endpoint))
- LOGGER.info("Connectivity to OS_AUTH_URL %s ...OK", rc_endpoint)
- if get_auth_token(self.os_creds):
- LOGGER.info("Got token ...OK")
-
- def check_public_endpoint(self):
- """ Gets the public endpoint and verifies connectivity to it """
- public_endpoint = keystone_utils.get_endpoint(self.os_creds,
- 'identity',
- interface='public')
- if not verify_connectivity(public_endpoint):
- raise Exception("Public endpoint {} is not reachable.".
- format(public_endpoint))
- LOGGER.info("Connectivity to the public endpoint %s ...OK",
- public_endpoint)
-
- def check_service_endpoint(self, service):
- """ Verifies connectivity to a given openstack service """
- endpoint = keystone_utils.get_endpoint(self.os_creds,
- service,
- interface='public')
- if not verify_connectivity(endpoint):
- raise Exception("{} endpoint {} is not reachable.".
- format(service, endpoint))
- LOGGER.info("Connectivity to endpoint '%s' %s ...OK",
- service, endpoint)
-
- def check_nova(self):
- """ checks that a simple nova operation works """
- try:
- client = nova_utils.nova_client(self.os_creds)
- client.servers.list()
- LOGGER.info("Nova service ...OK")
- except Exception as error:
- LOGGER.error("Nova service ...FAILED")
- raise error
-
- def check_neutron(self):
- """ checks that a simple neutron operation works """
- try:
- client = neutron_utils.neutron_client(self.os_creds)
- client.list_networks()
- LOGGER.info("Neutron service ...OK")
- except Exception as error:
- LOGGER.error("Neutron service ...FAILED")
- raise error
-
- def check_glance(self):
- """ checks that a simple glance operation works """
- try:
- client = glance_utils.glance_client(self.os_creds)
- client.images.list()
- LOGGER.info("Glance service ...OK")
- except Exception as error:
- LOGGER.error("Glance service ...FAILED")
- raise error
-
- def check_ext_net(self):
- """ checks if external network exists """
- ext_net = snaps_utils.get_ext_net_name(self.os_creds)
- if ext_net:
- LOGGER.info("External network found: %s", ext_net)
- else:
- raise Exception("ERROR: No external networks in the deployment.")
-
- def check_all(self):
- """
- Calls all the class functions and returns 0 if all of them succeed.
- This is the method called by CLI
- """
- self.check_rc()
- try:
- self.os_creds = openstack_tests.get_credentials(
- os_env_file=self.rc_file,
- proxy_settings_str=None,
- ssh_proxy_cmd=None)
- except:
- raise Exception("Problem while getting credentials object.")
- if self.os_creds is None:
- raise Exception("Credentials is None.")
- self.check_auth_endpoint()
- self.check_public_endpoint()
- for service in self.services:
- self.check_service_endpoint(service)
- self.check_nova()
- self.check_neutron()
- self.check_glance()
- self.check_ext_net()
- return 0
-
-
-def main():
- """Entry point"""
- logging.config.fileConfig(pkg_resources.resource_filename(
- 'functest', 'ci/logging.ini'))
- logging.captureWarnings(True)
- deployment = CheckDeployment()
- return deployment.check_all()
diff --git a/functest/ci/config_aarch64_patch.yaml b/functest/ci/config_aarch64_patch.yaml
deleted file mode 100644
index a87fe25b..00000000
--- a/functest/ci/config_aarch64_patch.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-os:
- general:
- openstack:
- image_name: TestVM
- image_file_name: cirros-d161201-aarch64-disk.img
- image_password: gocubsgo
- extra_properties:
- hw_firmware_type: 'uefi'
- hw_video_model: 'vga'
- short_id: 'ubuntu16.04'
- snaps:
- images:
- glance_tests:
- disk_file:
- /home/opnfv/functest/images/cirros-d161201-aarch64-disk.img
- extra_properties:
- hw_firmware_type: 'uefi'
- short_id: 'ubuntu16.04'
- hw_video_model: 'vga'
- cirros:
- disk_file:
- /home/opnfv/functest/images/cirros-d161201-aarch64-disk.img
- extra_properties:
- hw_firmware_type: 'uefi'
- short_id: 'ubuntu16.04'
- hw_video_model: 'vga'
- ubuntu:
- disk_file:
- /home/opnfv/functest/images/ubuntu-14.04-server-cloudimg-arm64-uefi1.img
- extra_properties:
- hw_firmware_type: 'uefi'
- hw_video_model: 'vga'
- centos:
- disk_file:
- /home/opnfv/functest/images/CentOS-7-aarch64-GenericCloud.qcow2
- extra_properties:
- hw_firmware_type: 'uefi'
- hw_video_model: 'vga'
-
- vping:
- image_name: TestVM
-
- tempest:
- use_custom_flavors: 'True'
-
- odl_sfc:
- image_base_url: "http://artifacts.opnfv.org/sfc/demo"
- image_name: sfc_nsh_danube
- image_file_name: sf_nsh_danube_arm64.img
- image_initrd: sf_nsh_danube_arm64-initrd
- image_kernel: sf_nsh_danube_arm64-kernel
- image_format: ami
- os_cmd_line: 'root=LABEL=cloudimg-rootfs ro'
- doctor:
- image_name: TestVM
diff --git a/functest/ci/config_functest.yaml b/functest/ci/config_functest.yaml
deleted file mode 100644
index eaa860aa..00000000
--- a/functest/ci/config_functest.yaml
+++ /dev/null
@@ -1,185 +0,0 @@
----
-general:
- dir:
- home: /home/opnfv
- repos: /home/opnfv/repos
- repo_tempest: /src/tempest
- repo_vims_test: /src/vims-test
- repo_odl_test: /src/odl_test
- functest: /home/opnfv/functest
- results: /home/opnfv/functest/results
- functest_conf: /home/opnfv/functest/conf
- functest_data: /home/opnfv/functest/data
- ims_data: /home/opnfv/functest/data/ims/
- refstack_data: /home/opnfv/functest/data/refstack
- router_data: /home/opnfv/functest/data/router/
- functest_images: /home/opnfv/functest/images
- rally_inst: /root/.rally
-
- openstack:
- image_name: Cirros-0.4.0
- image_name_alt: Cirros-0.4.0-1
- image_file_name: cirros-0.4.0-x86_64-disk.img
- image_url:
- http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
- image_user: cirros
- image_disk_format: qcow2
- image_username: cirros
- image_password: gocubsgo
-
- flavor_name: opnfv_flavor
- flavor_name_alt: opnfv_flavor_1
- flavor_ram: 512
- flavor_disk: 1
- flavor_vcpus: 1
-
- # Private network for functest. Will be created by config_functest.py
- neutron_private_net_name: functest-net
- neutron_private_subnet_name: functest-subnet
- neutron_private_subnet_cidr: 192.168.120.0/24
- neutron_private_subnet_start: 192.168.120.2
- neutron_private_subnet_end: 192.168.120.254
- neutron_private_subnet_gateway: 192.168.120.254
- neutron_router_name: functest-router
-
-snaps:
- use_keystone: 'True'
- use_floating_ips: 'True'
- images:
- glance_tests:
- disk_file: /home/opnfv/functest/images/cirros-0.4.0-x86_64-disk.img
- cirros:
- disk_file: /home/opnfv/functest/images/cirros-0.4.0-x86_64-disk.img
- ubuntu:
- disk_file:
- /home/opnfv/functest/images/ubuntu-14.04-server-cloudimg-amd64-disk1.img
- centos:
- disk_file:
- /home/opnfv/functest/images/CentOS-7-x86_64-GenericCloud.qcow2
-# netconf_override:
-# network_type: vlan
-# physical_network: physnet2
-# segmentation_id: 2366
-
-# All of these values are optional and will override the values retrieved
-# by the RC file
-# os_creds_override:
-# username: {user}
-# password: {password}
-# auth_url: {auth_url}
-# project_name: {project_name}
-# identity_api_version: {2|3}
-# network_api_version: {2}
-# compute_api_version: {2}
-# image_api_version: {1|2}
-# user_domain_id: {user_domain_id}
-# project_domain_id: {projects_domain_id}
-# interface: {interface}
-# cacert: {True|False}
-# proxy_settings:
-# host: {proxy_host}
-# port: {proxy_port}
-# ssh_proxy_cmd: {OpenSSH -o ProxyCommand value}
-
-vping:
- ping_timeout: 200
- vm_flavor: m1.tiny # adapt to your environment
- vm_name_1: opnfv-vping-1
- vm_name_2: opnfv-vping-2
- image_name: functest-vping
- private_net_name: vping-net
- # network_type: vlan
- # physical_network: physnet2
- # segmentation_id: 2366
- private_subnet_name: vping-subnet
- private_subnet_cidr: 192.168.130.0/24
- router_name: vping-router
- sg_name: vPing-sg
- sg_desc: Security group for vPing test case
- keypair_name: vPing-keypair
- keypair_priv_file: /tmp/vPing-keypair
- keypair_pub_file: /tmp/vPing-keypair.pub
- vm_boot_timeout: 180
- vm_delete_timeout: 100
- vm_ssh_connect_timeout: 60
- cleanup_objects: 'True'
-
-odl_sfc:
- image_base_url: "http://artifacts.opnfv.org/sfc/images"
- image_name: sfc_nsh_danube
- image_file_name: sfc_nsh_danube.qcow2
- image_format: qcow2
-
-tempest:
- verifier_name: opnfv-tempest
- identity:
- tenant_name: tempest
- tenant_description: Tenant for Tempest test suite
- user_name: tempest
- user_password: Tempest123!
- validation:
- ssh_timeout: 130
- object_storage:
- operator_role: SwiftOperator
- # network_type: vlan
- # physical_network: physnet2
- # segmentation_id: 2366
- private_net_name: tempest-net
- private_subnet_name: tempest-subnet
- private_subnet_cidr: 192.168.150.0/24
- router_name: tempest-router
- use_custom_flavors: 'False'
- volume_device_name: vdc
-
-rally:
- deployment_name: opnfv-rally
- network_name: rally-net
- # network_type: vlan
- # physical_network: physnet2
- # segmentation_id: 2366
- subnet_name: rally-subnet
- subnet_cidr: 192.168.140.0/24
- router_name: rally-router
- flavor_name: rally-tiny
- flavor_alt_name: rally-mini
-
-vnf:
- juju_epc:
- config: juju_epc.yaml
- tenant_description: OAI EPC deployed with Juju
- tenant_name: abotepc
- private_net_name: abot-net
- private_subnet_cidr: 172.16.0.0/24
- private_subnet_name: abot-subnet
- external_router: abot-router
- cloudify_ims:
- tenant_name: cloudify_ims
- tenant_description: vIMS
- config: cloudify_ims.yaml
- cloudify_ims_perf:
- tenant_name: cloudify_ims_perf
- tenant_description: vIMS
- config: cloudify_ims_perf.yaml
- orchestra_openims:
- tenant_name: orchestra_openims
- tenant_description: OpenIMS deployed with Open Baton
- config: orchestra.yaml
- orchestra_clearwaterims:
- tenant_name: orchestra_clearwaterims
- tenant_description: Clearwater IMS deployed with Open Baton
- config: orchestra.yaml
- vyos_vrouter:
- tenant_name: vrouter
- tenant_description: vRouter
- config: cloudify_vrouter.yaml
-
-example:
- vm_name: example-vm
- flavor: m1.small
- image_name: functest-example-vm
- private_net_name: example-net
- private_subnet_name: example-subnet
- private_subnet_cidr: 192.168.170.0/24
- router_name: example-router
- sg_name: example-sg
- sg_desc: Example Security group
diff --git a/functest/ci/config_patch.yaml b/functest/ci/config_patch.yaml
deleted file mode 100644
index 32b67057..00000000
--- a/functest/ci/config_patch.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-lxd:
- general:
- openstack:
- image_name: Cirros-0.4.0
- image_file_name: cirros-0.4.0-x86_64-lxc.tar.gz
- image_disk_format: raw
-
-fdio:
- general:
- flavor_extra_specs: {'hw:mem_page_size':'large'}
- image_properties: {'hw_mem_page_size':'large'}
- tempest:
- use_custom_flavors: 'True'
-ovs:
- general:
- flavor_extra_specs: {'hw:mem_page_size':'large'}
- image_properties: {'hw_mem_page_size':'large'}
- tempest:
- use_custom_flavors: 'True'
diff --git a/functest/ci/download_images.sh b/functest/ci/download_images.sh
deleted file mode 100644
index 14cda147..00000000
--- a/functest/ci/download_images.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-wget_opts="-N --tries=1 --connect-timeout=30"
-
-cat << EOF | wget ${wget_opts} -i - -P ${1:-/home/opnfv/functest/images}
-http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
-https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img
-https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
-https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
-http://repository.cloudifysource.org/cloudify/4.0.1/sp-release/cloudify-manager-premium-4.0.1.qcow2
-http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-lxc.tar.gz
-http://download.cirros-cloud.net/daily/20161201/cirros-d161201-aarch64-disk.img
-http://download.cirros-cloud.net/daily/20161201/cirros-d161201-aarch64-initramfs
-http://download.cirros-cloud.net/daily/20161201/cirros-d161201-aarch64-kernel
-https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-arm64-uefi1.img
-http://cloud.centos.org/altarch/7/images/aarch64/CentOS-7-aarch64-GenericCloud.qcow2.xz
-https://sourceforge.net/projects/ool-opnfv/files/vyos-1.1.7.img
-http://marketplace.openbaton.org:8080/api/v1/images/52e2ccc0-1dce-4663-894d-28aab49323aa/img
-EOF
-
-xz --decompress --force --keep ${1:-/home/opnfv/functest/images}/CentOS-7-aarch64-GenericCloud.qcow2.xz
diff --git a/functest/ci/rally_aarch64_patch.conf b/functest/ci/rally_aarch64_patch.conf
deleted file mode 100644
index e5cae813..00000000
--- a/functest/ci/rally_aarch64_patch.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-img_name_regex = ^TestVM$
-img_url = http://download.cirros-cloud.net/daily/20161201/cirros-d161201-aarch64-disk.img
-flavor_ref_ram = 256
-flavor_ref_alt_ram = 256
-heat_instance_type_ram = 256
diff --git a/functest/cli/__init__.py b/functest/cli/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/cli/__init__.py
+++ /dev/null
diff --git a/functest/cli/cli_base.py b/functest/cli/cli_base.py
deleted file mode 100644
index 1a057e1b..00000000
--- a/functest/cli/cli_base.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging.config
-import pkg_resources
-
-import click
-
-from functest.cli.commands.cli_env import CliEnv
-from functest.cli.commands.cli_os import CliOpenStack
-from functest.cli.commands.cli_testcase import CliTestcase
-from functest.cli.commands.cli_tier import CliTier
-
-
-CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
-
-
-@click.group(context_settings=CONTEXT_SETTINGS)
-@click.version_option(version='opnfv colorado.0.1 ')
-def cli():
- logging.config.fileConfig(pkg_resources.resource_filename(
- 'functest', 'ci/logging.ini'))
- logging.captureWarnings(True)
-
-
-ENV = CliEnv()
-OPENSTACK = CliOpenStack()
-TESTCASE = CliTestcase()
-TIER = CliTier()
-
-
-@cli.group()
-@click.pass_context
-def env(ctx): # pylint: disable=unused-argument
- pass
-
-
-@cli.group()
-@click.pass_context
-def openstack(ctx): # pylint: disable=unused-argument
- pass
-
-
-@cli.group()
-@click.pass_context
-def testcase(ctx): # pylint: disable=unused-argument
- pass
-
-
-@cli.group()
-@click.pass_context
-def tier(ctx): # pylint: disable=unused-argument
- pass
-
-
-@openstack.command('check', help="Checks connectivity and status "
- "to the OpenStack deployment.")
-def os_check():
- OPENSTACK.check()
-
-
-@openstack.command('show-credentials',
- help="Prints the OpenStack credentials.")
-def os_show_credentials():
- OPENSTACK.show_credentials()
-
-
-@env.command('show', help="Shows information about the current environment.")
-def env_show():
- ENV.show()
-
-
-@testcase.command('list', help="Lists the available testcases.")
-def testcase_list():
- TESTCASE.list()
-
-
-@testcase.command('show', help="Shows information about a test case.")
-@click.argument('testname', type=click.STRING, required=True)
-def testcase_show(testname):
- TESTCASE.show(testname)
-
-
-@testcase.command('run', help="Executes a test case.")
-@click.argument('testname', type=click.STRING, required=True)
-@click.option('-n', '--noclean', is_flag=True, default=False,
- help='The created openstack resources by the test'
- 'will not be cleaned after the execution.')
-@click.option('-r', '--report', is_flag=True, default=False,
- help='Push results to the results DataBase. Only CI Pods'
- 'have rights to do that.')
-def testcase_run(testname, noclean, report):
- TESTCASE.run(testname, noclean, report)
-
-
-@tier.command('list', help="Lists the available tiers.")
-def tier_list():
- TIER.list()
-
-
-@tier.command('show', help="Shows information about a tier.")
-@click.argument('tiername', type=click.STRING, required=True)
-def tier_show(tiername):
- TIER.show(tiername)
-
-
-@tier.command('get-tests', help="Prints the tests in a tier.")
-@click.argument('tiername', type=click.STRING, required=True)
-def tier_gettests(tiername):
- TIER.gettests(tiername)
-
-
-@tier.command('run', help="Executes all the tests within a tier.")
-@click.argument('tiername', type=click.STRING, required=True)
-@click.option('-n', '--noclean', is_flag=True, default=False,
- help='The created openstack resources by the tests'
- 'will not be cleaned after the execution.')
-@click.option('-r', '--report', is_flag=True, default=False,
- help='Push results to the results DataBase. Only CI Pods'
- 'have rights to do that.')
-def tier_run(tiername, noclean, report):
- TIER.run(tiername, noclean, report)
diff --git a/functest/cli/commands/__init__.py b/functest/cli/commands/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/cli/commands/__init__.py
+++ /dev/null
diff --git a/functest/cli/commands/cli_env.py b/functest/cli/commands/cli_env.py
deleted file mode 100644
index 18c8895a..00000000
--- a/functest/cli/commands/cli_env.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import click
-import prettytable
-import six
-
-from functest.utils import env
-
-
-class Env(object): # pylint: disable=too-few-public-methods
-
- @staticmethod
- def show():
- install_type = env.get('INSTALLER_TYPE')
- scenario = env.get('DEPLOY_SCENARIO')
- node = env.get('NODE_NAME')
- build_tag = env.get('BUILD_TAG')
- if build_tag:
- build_tag = build_tag.lstrip(
- "jenkins-").lstrip("functest").lstrip("-")
-
- env_info = {'INSTALLER': install_type,
- 'SCENARIO': scenario,
- 'POD': node,
- 'BUILD_TAG': build_tag}
-
- return env_info
-
-
-class CliEnv(object): # pylint: disable=too-few-public-methods
-
- @staticmethod
- def show():
- env_info = Env.show()
- msg = prettytable.PrettyTable(
- header_style='upper', padding_width=5,
- field_names=['Functest Environment', 'value'])
- for key, value in six.iteritems(env_info):
- if key is not None:
- msg.add_row([key, value])
- click.echo(msg.get_string())
diff --git a/functest/cli/commands/cli_os.py b/functest/cli/commands/cli_os.py
deleted file mode 100644
index d3e229c8..00000000
--- a/functest/cli/commands/cli_os.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import os
-
-import click
-from six.moves import urllib
-
-from functest.ci import check_deployment
-from functest.utils import constants
-
-
-class OpenStack(object):
-
- def __init__(self):
- self.os_auth_url = os.environ.get('OS_AUTH_URL', None)
- self.endpoint_ip = None
- self.endpoint_port = None
- self.openstack_creds = constants.ENV_FILE
- if self.os_auth_url:
- self.endpoint_ip = urllib.parse.urlparse(self.os_auth_url).hostname
- self.endpoint_port = urllib.parse.urlparse(self.os_auth_url).port
-
- def ping_endpoint(self):
- if self.os_auth_url is None:
- click.echo("Source the OpenStack credentials first")
- exit(0)
- response = os.system("ping -c 1 " + self.endpoint_ip + ">/dev/null")
- if response == 0:
- return 0
- else:
- click.echo("Cannot talk to the endpoint %s\n" % self.endpoint_ip)
- exit(0)
-
- @staticmethod
- def show_credentials():
- dic_credentials = {}
- for key, value in os.environ.items():
- if key.startswith('OS_'):
- dic_credentials.update({key: value})
- return dic_credentials
-
- def check(self):
- self.ping_endpoint()
- deployment = check_deployment.CheckDeployment()
- deployment.check_all()
-
-
-class CliOpenStack(OpenStack):
-
- @staticmethod
- def show_credentials():
- dic_credentials = OpenStack.show_credentials()
- for key, value in dic_credentials.items():
- if key.startswith('OS_'):
- click.echo("{}={}".format(key, value))
diff --git a/functest/cli/commands/cli_testcase.py b/functest/cli/commands/cli_testcase.py
deleted file mode 100644
index a8ead5f5..00000000
--- a/functest/cli/commands/cli_testcase.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import click
-
-from functest.cli.commands import cli_tier
-from functest.utils import functest_utils
-
-
-class Testcase(cli_tier.Tier):
-
- def list(self):
- summary = ""
- for tier in self.tiers.get_tiers():
- for test in tier.get_tests():
- summary += (" %s\n" % test.get_name())
- return summary
-
- def show(self, name):
- description = self.tiers.get_test(name)
- return description
-
- @staticmethod
- def run(name, noclean=False, report=False):
- tests = name.split(",")
- for test in tests:
- cmd = "run_tests {}-t {}".format(
- Testcase.get_flags(noclean, report), test)
- functest_utils.execute_command(cmd)
-
-
-class CliTestcase(Testcase):
-
- def list(self):
- click.echo(super(CliTestcase, self).list())
-
- def show(self, name):
- testcase_show = super(CliTestcase, self).show(name)
- if testcase_show:
- click.echo(testcase_show)
- else:
- click.echo("The test case '%s' does not exist or is not supported."
- % name)
diff --git a/functest/cli/commands/cli_tier.py b/functest/cli/commands/cli_tier.py
deleted file mode 100644
index 3694c1ae..00000000
--- a/functest/cli/commands/cli_tier.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import pkg_resources
-
-import click
-
-from functest.ci import tier_builder
-from functest.utils import functest_utils
-from functest.utils import env
-
-
-class Tier(object):
-
- def __init__(self):
- self.tiers = tier_builder.TierBuilder(
- env.get('INSTALLER_TYPE'),
- env.get('DEPLOY_SCENARIO'),
- pkg_resources.resource_filename('functest', 'ci/testcases.yaml'))
-
- def list(self):
- summary = ""
- for tier in self.tiers.get_tiers():
- summary += (" - %s. %s:\n\t %s\n"
- % (tier.get_order(),
- tier.get_name(),
- tier.get_test_names()))
- return summary
-
- def show(self, name):
- tier = self.tiers.get_tier(name)
- if tier is None:
- return None
- tier_info = self.tiers.get_tier(name)
- return tier_info
-
- def gettests(self, name):
- tier = self.tiers.get_tier(name)
- if tier is None:
- return None
- tests = tier.get_test_names()
- return tests
-
- @staticmethod
- def get_flags(noclean=False, report=False):
- flags = ""
- if noclean:
- flags += "-n "
- if report:
- flags += "-r "
- return flags
-
- @staticmethod
- def run(name, noclean=False, report=False):
- cmd = "run_tests {}-t {}".format(Tier.get_flags(noclean, report), name)
- functest_utils.execute_command(cmd)
-
-
-class CliTier(Tier):
-
- def list(self):
- click.echo(super(CliTier, self).list())
-
- def show(self, name):
- tier_info = super(CliTier, self).show(name)
- if tier_info:
- click.echo(tier_info)
- else:
- tier_names = self.tiers.get_tier_names()
- click.echo("The tier with name '%s' does not exist. "
- "Available tiers are:\n %s\n" % (name, tier_names))
-
- def gettests(self, name):
- tests = super(CliTier, self).gettests(name)
- if tests:
- click.echo("Test cases in tier '%s':\n %s\n" % (name, tests))
- else:
- tier_names = self.tiers.get_tier_names()
- click.echo("The tier with name '%s' does not exist. "
- "Available tiers are:\n %s\n" % (name, tier_names))
diff --git a/functest/cli/functest-complete.sh b/functest/cli/functest-complete.sh
deleted file mode 100644
index f0149071..00000000
--- a/functest/cli/functest-complete.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-_functest_completion() {
- COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \
- COMP_CWORD=$COMP_CWORD \
- _FUNCTEST_COMPLETE=complete $1 ) )
- return 0
-}
-
-complete -F _functest_completion -o default functest;
diff --git a/functest/opnfv_tests/__init__.py b/functest/opnfv_tests/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/__init__.py b/functest/opnfv_tests/openstack/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/rally/__init__.py b/functest/opnfv_tests/openstack/rally/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/rally/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/rally/blacklist.txt b/functest/opnfv_tests/openstack/rally/blacklist.txt
deleted file mode 100644
index fe08b5b9..00000000
--- a/functest/opnfv_tests/openstack/rally/blacklist.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-scenario:
- -
- scenarios:
- - '^os-nosdn-lxd-(no)?ha$'
- installers:
- - '.+' # all installers
- tests:
- - NovaServers.boot_server_from_volume_and_delete
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Following tests currently fail due to required Gnocchi API:
- # HTTP 410: "This telemetry installation is configured to use
- # Gnocchi. Please use the Gnocchi API available on the
- # metric endpoint to retrieve data."
- # Issue: https://bugs.launchpad.net/rally/+bug/1704322
- - CeilometerMeters.list_matched_meters
- - CeilometerMeters.list_meters
- - CeilometerQueries.create_and_query_samples
- - CeilometerResource.get_tenant_resources
- - CeilometerResource.list_matched_resources
- - CeilometerResource.list_resources
- - CeilometerSamples.list_matched_samples
- - CeilometerSamples.list_samples
- - CeilometerStats.create_meter_and_get_stats
- - CeilometerStats.get_stats
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Following test currently fails due to but in
- # python-ceilometerclient during fetching of event_types
- # Bug: https://bugs.launchpad.net/ubuntu/+bug/1704138
- # Fix: https://review.openstack.org/#/c/483402/
- - CeilometerEvents.create_user_and_list_event_types
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Starting from ocata, following tests require the presence of
- # panko in the deployment. This is not currently fulfilled
- # Ref: https://docs.openstack.org/releasenotes/ceilometer/ocata.html
- - 'CeilometerEvents..*'
- - 'CeilometerTraits..*'
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Rally is still utilizing Ceilometer API which is deprecated
- # in Pike.
- # Ref: https://docs.openstack.org/releasenotes/ceilometer/pike.html
- - 'Ceilometer..*'
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Following test occasionally fails due to race condition issue on
- # quota manipulation in nova.
- # Ref: https://bugs.launchpad.net/nova/+bug/1552622
- - 'Quotas.nova_update_and_delete'
-
-functionality:
- -
- functions:
- - no_migration
- tests:
- - NovaServers.boot_and_live_migrate_server
- - NovaServers.boot_server_attach_created_volume_and_live_migrate
- - NovaServers.boot_server_from_volume_and_live_migrate
- - NovaServers.boot_and_migrate_server
diff --git a/functest/opnfv_tests/openstack/rally/macro/macro.yaml b/functest/opnfv_tests/openstack/rally/macro/macro.yaml
deleted file mode 100644
index 48c0333e..00000000
--- a/functest/opnfv_tests/openstack/rally/macro/macro.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-{%- macro user_context(tenants,users_per_tenant, use_existing_users) -%}
-{%- if use_existing_users and caller is not defined -%} {}
-{%- else %}
- {%- if not use_existing_users %}
- users:
- tenants: {{ tenants }}
- users_per_tenant: {{ users_per_tenant }}
- {%- endif %}
- {%- if caller is defined %}
- {{ caller() }}
- {%- endif %}
-{%- endif %}
-{%- endmacro %}
-
-{%- macro vm_params(image=none, flavor=none, size=none) %}
-{%- if flavor is not none %}
- flavor:
- name: {{ flavor }}
-{%- endif %}
-{%- if image is not none %}
- image:
- name: {{ image }}
-{%- endif %}
-{%- if size is not none %}
- size: {{ size }}
-{%- endif %}
-{%- endmacro %}
-
-{%- macro unlimited_volumes() %}
- cinder:
- gigabytes: -1
- snapshots: -1
- volumes: -1
-{%- endmacro %}
-
-{%- macro constant_runner(concurrency=1, times=1, is_smoke=True) %}
- type: "constant"
- {%- if is_smoke %}
- concurrency: 1
- times: 1
- {%- else %}
- concurrency: {{ concurrency }}
- times: {{ times }}
- {%- endif %}
-{%- endmacro %}
-
-{%- macro rps_runner(rps=1, times=1, is_smoke=True) %}
- type: rps
- {%- if is_smoke %}
- rps: 1
- times: 1
- {%- else %}
- rps: {{ rps }}
- times: {{ times }}
- {%- endif %}
-{%- endmacro %}
-
-{%- macro no_failures_sla() %}
- failure_rate:
- max: 0
-{%- endmacro %}
-
-{%- macro volumes(size=1, volumes_per_tenant=1) %}
- volumes:
- size: {{ size }}
- volumes_per_tenant: {{ volumes_per_tenant }}
-{%- endmacro %}
-
-{%- macro unlimited_nova(keypairs=false) %}
- nova:
- cores: -1
- floating_ips: -1
- instances: -1
- {%- if keypairs %}
- key_pairs: -1
- {%- endif %}
- ram: -1
- security_group_rules: -1
- security_groups: -1
-{%- endmacro %}
-
-{%- macro unlimited_neutron(secgroups=false) %}
- neutron:
- network: -1
- port: -1
- subnet: -1
- {%- if secgroups %}
- security_group: -1
- security_group_rule: -1
- {%- endif %}
-{%- endmacro %}
-
-{%- macro glance_args(location, container="bare", type="qcow2") %}
- container_format: {{ container }}
- disk_format: {{ type }}
- image_location: {{ location }}
-{%- endmacro %}
diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py
deleted file mode 100644
index b2213c94..00000000
--- a/functest/opnfv_tests/openstack/rally/rally.py
+++ /dev/null
@@ -1,619 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-"""Rally testcases implementation."""
-
-from __future__ import division
-
-import json
-import logging
-import os
-import re
-import subprocess
-import time
-import uuid
-
-import pkg_resources
-import prettytable
-import yaml
-
-from functest.core import testcase
-from functest.energy import energy
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.opnfv_tests.openstack.tempest import conf_utils
-from functest.utils import config
-from functest.utils import env
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.utils import deploy_utils
-
-LOGGER = logging.getLogger(__name__)
-
-
-class RallyBase(testcase.TestCase):
- """Base class form Rally testcases implementation."""
-
- # pylint: disable=too-many-instance-attributes
- TESTS = ['authenticate', 'glance', 'ceilometer', 'cinder', 'heat',
- 'keystone', 'neutron', 'nova', 'quotas', 'vm', 'all']
- GLANCE_IMAGE_NAME = getattr(config.CONF, 'openstack_image_name')
- GLANCE_IMAGE_FILENAME = getattr(config.CONF, 'openstack_image_file_name')
- GLANCE_IMAGE_PATH = os.path.join(getattr(
- config.CONF, 'dir_functest_images'), GLANCE_IMAGE_FILENAME)
- GLANCE_IMAGE_FORMAT = getattr(config.CONF, 'openstack_image_disk_format')
- GLANCE_IMAGE_USERNAME = getattr(config.CONF, 'openstack_image_username')
- GLANCE_IMAGE_EXTRA_PROPERTIES = getattr(
- config.CONF, 'openstack_extra_properties', {})
- FLAVOR_NAME = getattr(config.CONF, 'rally_flavor_name')
- FLAVOR_ALT_NAME = getattr(config.CONF, 'rally_flavor_alt_name')
- FLAVOR_RAM = 512
- FLAVOR_RAM_ALT = 1024
- FLAVOR_EXTRA_SPECS = getattr(config.CONF, 'flavor_extra_specs', None)
- if FLAVOR_EXTRA_SPECS:
- FLAVOR_RAM = 1024
- FLAVOR_RAM_ALT = 2048
-
- RALLY_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally')
- RALLY_SCENARIO_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally/scenario')
- TEMPLATE_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally/scenario/templates')
- SUPPORT_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally/scenario/support')
- USERS_AMOUNT = 2
- TENANTS_AMOUNT = 3
- ITERATIONS_AMOUNT = 10
- CONCURRENCY = 4
- RESULTS_DIR = os.path.join(getattr(config.CONF, 'dir_results'), 'rally')
- BLACKLIST_FILE = os.path.join(RALLY_DIR, "blacklist.txt")
- TEMP_DIR = os.path.join(RALLY_DIR, "var")
-
- RALLY_PRIVATE_NET_NAME = getattr(config.CONF, 'rally_network_name')
- RALLY_PRIVATE_SUBNET_NAME = getattr(config.CONF, 'rally_subnet_name')
- RALLY_PRIVATE_SUBNET_CIDR = getattr(config.CONF, 'rally_subnet_cidr')
- RALLY_ROUTER_NAME = getattr(config.CONF, 'rally_router_name')
-
- def __init__(self, **kwargs):
- """Initialize RallyBase object."""
- super(RallyBase, self).__init__(**kwargs)
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
- self.guid = '-' + str(uuid.uuid4())
- self.creators = []
- self.mode = ''
- self.summary = []
- self.scenario_dir = ''
- self.image_name = None
- self.ext_net_name = None
- self.priv_net_id = None
- self.flavor_name = None
- self.flavor_alt_name = None
- self.smoke = None
- self.test_name = None
- self.start_time = None
- self.result = None
- self.details = None
- self.compute_cnt = 0
-
- def _build_task_args(self, test_file_name):
- """Build arguments for the Rally task."""
- task_args = {'service_list': [test_file_name]}
- task_args['image_name'] = self.image_name
- task_args['flavor_name'] = self.flavor_name
- task_args['flavor_alt_name'] = self.flavor_alt_name
- task_args['glance_image_location'] = self.GLANCE_IMAGE_PATH
- task_args['glance_image_format'] = self.GLANCE_IMAGE_FORMAT
- task_args['tmpl_dir'] = self.TEMPLATE_DIR
- task_args['sup_dir'] = self.SUPPORT_DIR
- task_args['users_amount'] = self.USERS_AMOUNT
- task_args['tenants_amount'] = self.TENANTS_AMOUNT
- task_args['use_existing_users'] = False
- task_args['iterations'] = self.ITERATIONS_AMOUNT
- task_args['concurrency'] = self.CONCURRENCY
- task_args['smoke'] = self.smoke
-
- ext_net = self.ext_net_name
- if ext_net:
- task_args['floating_network'] = str(ext_net)
- else:
- task_args['floating_network'] = ''
-
- net_id = self.priv_net_id
- if net_id:
- task_args['netid'] = str(net_id)
- else:
- task_args['netid'] = ''
-
- return task_args
-
- def _prepare_test_list(self, test_name):
- """Build the list of test cases to be executed."""
- test_yaml_file_name = 'opnfv-{}.yaml'.format(test_name)
- scenario_file_name = os.path.join(self.RALLY_SCENARIO_DIR,
- test_yaml_file_name)
-
- if not os.path.exists(scenario_file_name):
- scenario_file_name = os.path.join(self.scenario_dir,
- test_yaml_file_name)
-
- if not os.path.exists(scenario_file_name):
- raise Exception("The scenario '%s' does not exist."
- % scenario_file_name)
-
- LOGGER.debug('Scenario fetched from : %s', scenario_file_name)
- test_file_name = os.path.join(self.TEMP_DIR, test_yaml_file_name)
-
- if not os.path.exists(self.TEMP_DIR):
- os.makedirs(self.TEMP_DIR)
-
- self._apply_blacklist(scenario_file_name, test_file_name)
- return test_file_name
-
- @staticmethod
- def get_task_id(cmd_raw):
- """
- Get task id from command rally result.
-
- :param cmd_raw:
- :return: task_id as string
- """
- taskid_re = re.compile('^Task +(.*): started$')
- for line in cmd_raw.splitlines(True):
- line = line.strip()
- match = taskid_re.match(line)
- if match:
- return match.group(1)
- return None
-
- @staticmethod
- def task_succeed(json_raw):
- """
- Parse JSON from rally JSON results.
-
- :param json_raw:
- :return: Bool
- """
- rally_report = json.loads(json_raw)
- for report in rally_report:
- if report is None or report.get('result') is None:
- return False
-
- for result in report.get('result'):
- if result is None or len(result.get('error')) > 0:
- return False
-
- return True
-
- def _migration_supported(self):
- """Determine if migration is supported."""
- if self.compute_cnt > 1:
- return True
-
- return False
-
- @staticmethod
- def get_cmd_output(proc):
- """Get command stdout."""
- result = ""
- for line in proc.stdout:
- result += line
- return result
-
- @staticmethod
- def excl_scenario():
- """Exclude scenario."""
- black_tests = []
- try:
- with open(RallyBase.BLACKLIST_FILE, 'r') as black_list_file:
- black_list_yaml = yaml.safe_load(black_list_file)
-
- installer_type = env.get('INSTALLER_TYPE')
- deploy_scenario = env.get('DEPLOY_SCENARIO')
- if (bool(installer_type) and bool(deploy_scenario) and
- 'scenario' in black_list_yaml.keys()):
- for item in black_list_yaml['scenario']:
- scenarios = item['scenarios']
- installers = item['installers']
- in_it = RallyBase.in_iterable_re
- if (in_it(deploy_scenario, scenarios) and
- in_it(installer_type, installers)):
- tests = item['tests']
- black_tests.extend(tests)
- except Exception: # pylint: disable=broad-except
- LOGGER.debug("Scenario exclusion not applied.")
-
- return black_tests
-
- @staticmethod
- def in_iterable_re(needle, haystack):
- """
- Check if given needle is in the iterable haystack, using regex.
-
- :param needle: string to be matched
- :param haystack: iterable of strings (optionally regex patterns)
- :return: True if needle is eqial to any of the elements in haystack,
- or if a nonempty regex pattern in haystack is found in needle.
- """
- # match without regex
- if needle in haystack:
- return True
-
- for pattern in haystack:
- # match if regex pattern is set and found in the needle
- if pattern and re.search(pattern, needle) is not None:
- return True
-
- return False
-
- def excl_func(self):
- """Exclude functionalities."""
- black_tests = []
- func_list = []
-
- try:
- with open(RallyBase.BLACKLIST_FILE, 'r') as black_list_file:
- black_list_yaml = yaml.safe_load(black_list_file)
-
- if not self._migration_supported():
- func_list.append("no_migration")
-
- if 'functionality' in black_list_yaml.keys():
- for item in black_list_yaml['functionality']:
- functions = item['functions']
- for func in func_list:
- if func in functions:
- tests = item['tests']
- black_tests.extend(tests)
- except Exception: # pylint: disable=broad-except
- LOGGER.debug("Functionality exclusion not applied.")
-
- return black_tests
-
- def _apply_blacklist(self, case_file_name, result_file_name):
- """Apply blacklist."""
- LOGGER.debug("Applying blacklist...")
- cases_file = open(case_file_name, 'r')
- result_file = open(result_file_name, 'w')
-
- black_tests = list(set(self.excl_func() +
- self.excl_scenario()))
-
- if black_tests:
- LOGGER.debug("Blacklisted tests: " + str(black_tests))
-
- include = True
- for cases_line in cases_file:
- if include:
- for black_tests_line in black_tests:
- if re.search(black_tests_line,
- cases_line.strip().rstrip(':')):
- include = False
- break
- else:
- result_file.write(str(cases_line))
- else:
- if cases_line.isspace():
- include = True
-
- cases_file.close()
- result_file.close()
-
- @staticmethod
- def file_is_empty(file_name):
- """Determine is a file is empty."""
- try:
- if os.stat(file_name).st_size > 0:
- return False
- except Exception: # pylint: disable=broad-except
- pass
-
- return True
-
- def _run_task(self, test_name):
- """Run a task."""
- LOGGER.info('Starting test scenario "%s" ...', test_name)
-
- task_file = os.path.join(self.RALLY_DIR, 'task.yaml')
- if not os.path.exists(task_file):
- LOGGER.error("Task file '%s' does not exist.", task_file)
- raise Exception("Task file '%s' does not exist.", task_file)
-
- file_name = self._prepare_test_list(test_name)
- if self.file_is_empty(file_name):
- LOGGER.info('No tests for scenario "%s"', test_name)
- return
-
- cmd = (["rally", "task", "start", "--abort-on-sla-failure", "--task",
- task_file, "--task-args",
- str(self._build_task_args(test_name))])
- LOGGER.debug('running command: %s', cmd)
-
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- output = self.get_cmd_output(proc)
- task_id = self.get_task_id(output)
-
- LOGGER.debug('task_id : %s', task_id)
-
- if task_id is None:
- LOGGER.error('Failed to retrieve task_id, validating task...')
- cmd = (["rally", "task", "validate", "--task", task_file,
- "--task-args", str(self._build_task_args(test_name))])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- output = self.get_cmd_output(proc)
- LOGGER.error("Task validation result:" + "\n" + output)
- return
-
- # check for result directory and create it otherwise
- if not os.path.exists(self.RESULTS_DIR):
- LOGGER.debug('%s does not exist, we create it.',
- self.RESULTS_DIR)
- os.makedirs(self.RESULTS_DIR)
-
- # get and save rally operation JSON result
- cmd = (["rally", "task", "detailed", task_id])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- json_detailed = self.get_cmd_output(proc)
- LOGGER.info('%s', json_detailed)
-
- cmd = (["rally", "task", "results", task_id])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- json_results = self.get_cmd_output(proc)
- self._append_summary(json_results, test_name)
- report_json_name = 'opnfv-{}.json'.format(test_name)
- report_json_dir = os.path.join(self.RESULTS_DIR, report_json_name)
- with open(report_json_dir, 'w') as r_file:
- LOGGER.debug('saving json file')
- r_file.write(json_results)
-
- # write html report file
- report_html_name = 'opnfv-{}.html'.format(test_name)
- report_html_dir = os.path.join(self.RESULTS_DIR, report_html_name)
- cmd = (["rally", "task", "report", task_id, "--out", report_html_dir])
- LOGGER.debug('running command: %s', cmd)
- subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
-
- # parse JSON operation result
- if self.task_succeed(json_results):
- LOGGER.info('Test scenario: "{}" OK.'.format(test_name) + "\n")
- else:
- LOGGER.info('Test scenario: "{}" Failed.'.format(test_name) + "\n")
-
- def _append_summary(self, json_raw, test_name):
- """Update statistics summary info."""
- nb_tests = 0
- nb_success = 0
- overall_duration = 0.0
-
- rally_report = json.loads(json_raw)
- for report in rally_report:
- if report.get('full_duration'):
- overall_duration += report.get('full_duration')
-
- if report.get('result'):
- for result in report.get('result'):
- nb_tests += 1
- if not result.get('error'):
- nb_success += 1
-
- scenario_summary = {'test_name': test_name,
- 'overall_duration': overall_duration,
- 'nb_tests': nb_tests,
- 'nb_success': nb_success}
- self.summary.append(scenario_summary)
-
- def _prepare_env(self):
- """Create resources needed by test scenarios."""
- LOGGER.debug('Validating the test name...')
- if self.test_name not in self.TESTS:
- raise Exception("Test name '%s' is invalid" % self.test_name)
-
- network_name = self.RALLY_PRIVATE_NET_NAME + self.guid
- subnet_name = self.RALLY_PRIVATE_SUBNET_NAME + self.guid
- router_name = self.RALLY_ROUTER_NAME + self.guid
- self.image_name = self.GLANCE_IMAGE_NAME + self.guid
- self.flavor_name = self.FLAVOR_NAME + self.guid
- self.flavor_alt_name = self.FLAVOR_ALT_NAME + self.guid
- self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
- self.compute_cnt = snaps_utils.get_active_compute_cnt(self.os_creds)
-
- LOGGER.debug("Creating image '%s'...", self.image_name)
- image_creator = deploy_utils.create_image(
- self.os_creds, ImageConfig(
- name=self.image_name,
- image_file=self.GLANCE_IMAGE_PATH,
- img_format=self.GLANCE_IMAGE_FORMAT,
- image_user=self.GLANCE_IMAGE_USERNAME,
- public=True,
- extra_properties=self.GLANCE_IMAGE_EXTRA_PROPERTIES))
- if image_creator is None:
- raise Exception("Failed to create image")
- self.creators.append(image_creator)
-
- LOGGER.debug("Creating network '%s'...", network_name)
-
- rally_network_type = getattr(config.CONF, 'rally_network_type', None)
- rally_physical_network = getattr(
- config.CONF, 'rally_physical_network', None)
- rally_segmentation_id = getattr(
- config.CONF, 'rally_segmentation_id', None)
-
- network_creator = deploy_utils.create_network(
- self.os_creds, NetworkConfig(
- name=network_name,
- shared=True,
- network_type=rally_network_type,
- physical_network=rally_physical_network,
- segmentation_id=rally_segmentation_id,
- subnet_settings=[SubnetConfig(
- name=subnet_name,
- cidr=self.RALLY_PRIVATE_SUBNET_CIDR)]))
- if network_creator is None:
- raise Exception("Failed to create private network")
- self.priv_net_id = network_creator.get_network().id
- self.creators.append(network_creator)
-
- LOGGER.debug("Creating router '%s'...", router_name)
- router_creator = deploy_utils.create_router(
- self.os_creds, RouterConfig(
- name=router_name,
- external_gateway=self.ext_net_name,
- internal_subnets=[subnet_name]))
- if router_creator is None:
- raise Exception("Failed to create router")
- self.creators.append(router_creator)
-
- LOGGER.debug("Creating flavor '%s'...", self.flavor_name)
- flavor_creator = OpenStackFlavor(
- self.os_creds, FlavorConfig(
- name=self.flavor_name, ram=self.FLAVOR_RAM, disk=1, vcpus=1,
- metadata=self.FLAVOR_EXTRA_SPECS))
- if flavor_creator is None or flavor_creator.create() is None:
- raise Exception("Failed to create flavor")
- self.creators.append(flavor_creator)
-
- LOGGER.debug("Creating flavor '%s'...", self.flavor_alt_name)
- flavor_alt_creator = OpenStackFlavor(
- self.os_creds, FlavorConfig(
- name=self.flavor_alt_name, ram=self.FLAVOR_RAM_ALT, disk=1,
- vcpus=1, metadata=self.FLAVOR_EXTRA_SPECS))
- if flavor_alt_creator is None or flavor_alt_creator.create() is None:
- raise Exception("Failed to create flavor")
- self.creators.append(flavor_alt_creator)
-
- def _run_tests(self):
- """Execute tests."""
- if self.test_name == 'all':
- for test in self.TESTS:
- if test == 'all' or test == 'vm':
- continue
- self._run_task(test)
- else:
- self._run_task(self.test_name)
-
- def _generate_report(self):
- """Generate test execution summary report."""
- total_duration = 0.0
- total_nb_tests = 0
- total_nb_success = 0
- payload = []
-
- res_table = prettytable.PrettyTable(
- padding_width=2,
- field_names=['Module', 'Duration', 'nb. Test Run', 'Success'])
- res_table.align['Module'] = "l"
- res_table.align['Duration'] = "r"
- res_table.align['Success'] = "r"
-
- # for each scenario we draw a row for the table
- for item in self.summary:
- total_duration += item['overall_duration']
- total_nb_tests += item['nb_tests']
- total_nb_success += item['nb_success']
- try:
- success_avg = 100 * item['nb_success'] / item['nb_tests']
- except ZeroDivisionError:
- success_avg = 0
- success_str = str("{:0.2f}".format(success_avg)) + '%'
- duration_str = time.strftime("%M:%S",
- time.gmtime(item['overall_duration']))
- res_table.add_row([item['test_name'], duration_str,
- item['nb_tests'], success_str])
- payload.append({'module': item['test_name'],
- 'details': {'duration': item['overall_duration'],
- 'nb tests': item['nb_tests'],
- 'success': success_str}})
-
- total_duration_str = time.strftime("%H:%M:%S",
- time.gmtime(total_duration))
- try:
- self.result = 100 * total_nb_success / total_nb_tests
- except ZeroDivisionError:
- self.result = 100
- success_rate = "{:0.2f}".format(self.result)
- success_rate_str = str(success_rate) + '%'
- res_table.add_row(["", "", "", ""])
- res_table.add_row(["TOTAL:", total_duration_str, total_nb_tests,
- success_rate_str])
-
- LOGGER.info("Rally Summary Report:\n\n%s\n", res_table.get_string())
- LOGGER.info("Rally '%s' success_rate is %s%%",
- self.case_name, success_rate)
- payload.append({'summary': {'duration': total_duration,
- 'nb tests': total_nb_tests,
- 'nb success': success_rate}})
- self.details = payload
-
- def _clean_up(self):
- """Cleanup all OpenStack objects. Should be called on completion."""
- for creator in reversed(self.creators):
- try:
- creator.clean()
- except Exception as exc: # pylint: disable=broad-except
- LOGGER.error('Unexpected error cleaning - %s', exc)
-
- @energy.enable_recording
- def run(self, **kwargs):
- """Run testcase."""
- self.start_time = time.time()
- try:
- conf_utils.create_rally_deployment()
- self._prepare_env()
- self._run_tests()
- self._generate_report()
- res = testcase.TestCase.EX_OK
- except Exception as exc: # pylint: disable=broad-except
- LOGGER.error('Error with run: %s', exc)
- res = testcase.TestCase.EX_RUN_ERROR
- finally:
- self._clean_up()
-
- self.stop_time = time.time()
- return res
-
-
-class RallySanity(RallyBase):
- """Rally sanity testcase implementation."""
-
- def __init__(self, **kwargs):
- """Initialize RallySanity object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "rally_sanity"
- super(RallySanity, self).__init__(**kwargs)
- self.mode = 'sanity'
- self.test_name = 'all'
- self.smoke = True
- self.scenario_dir = os.path.join(self.RALLY_SCENARIO_DIR, 'sanity')
-
-
-class RallyFull(RallyBase):
- """Rally full testcase implementation."""
-
- def __init__(self, **kwargs):
- """Initialize RallyFull object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "rally_full"
- super(RallyFull, self).__init__(**kwargs)
- self.mode = 'full'
- self.test_name = 'all'
- self.smoke = False
- self.scenario_dir = os.path.join(self.RALLY_SCENARIO_DIR, 'full')
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml
deleted file mode 100644
index 7efb5a83..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml
+++ /dev/null
@@ -1,458 +0,0 @@
- CeilometerMeters.list_meters:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.list_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_alarm_and_get_history:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- state: "ok"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_delete_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_get_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_list_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarm_history:
- -
- args:
- orderby: !!null
- limit: !!null
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarms:
- -
- args:
- filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]}
- orderby: !!null
- limit: 10
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_samples:
- -
- args:
- filter: {"=": {"counter_unit": "instance"}}
- orderby: !!null
- limit: 10
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resource_id: "resource_id"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_update_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerStats.create_meter_and_get_stats:
- -
- args:
- user_id: "user-id"
- resource_id: "resource-id"
- counter_volume: 1.0
- counter_unit: ""
- counter_type: "cumulative"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_get_event:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_events:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_event_types:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_trait_descriptions:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_traits:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerStats.get_stats:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- meter_name: "benchmark_meter"
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "terminated"
- period: 300
- groupby: "resource_id"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.get_tenant_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_volume: 1.0
- counter_unit: "instance"
- {% endcall %}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.list_alarms:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerSamples.list_matched_samples:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 60
- metadata_list:
- - status: "active"
- name: "fake_resource"
- deleted: "False"
- created_at: "2015-09-04T12:34:19.000000"
- - status: "not_active"
- name: "fake_resource_1"
- deleted: "False"
- created_at: "2015-09-10T06:55:12.000000"
- {% endcall %}
- args:
- limit: 50
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "not_active"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerMeters.list_matched_meters:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.list_matched_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- filter_by_user_id: true
- filter_by_project_id: true
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerSamples.list_samples:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 60
- metadata_list:
- - status: "active"
- name: "fake_resource"
- deleted: "False"
- created_at: "2015-09-04T12:34:19.000000"
- - status: "not_active"
- name: "fake_resource_1"
- deleted: "False"
- created_at: "2015-09-10T06:55:12.000000"
- batch_size: 5
- {% endcall %}
- args:
- limit: 50
- metadata_query:
- status: "not_active"
- sla:
- {{ no_failures_sla() }}
-
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml
deleted file mode 100644
index f36d0b2d..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml
+++ /dev/null
@@ -1,345 +0,0 @@
- CinderVolumes.create_and_attach_volume:
- -
- args:
- {{ vm_params(image_name,flavor_name,1) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_list_snapshots:
- -
- args:
- detailed: true
- force: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_list_volume:
- -
- args:
- detailed: true
- {{ vm_params(image_name,none,1) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- detailed: true
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_upload_volume_to_image:
- -
- args:
- container_format: "bare"
- disk_format: "raw"
- do_delete: true
- force: false
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_nested_snapshots_and_attach_volume:
- -
- args:
- {{ vm_params(image_name,flavor_name) }}
- nested_level: 1
- size:
- max: 1
- min: 1
- create_vm_params:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_snapshot_and_attach_volume:
- -
- args:
- {{ vm_params(image_name,flavor_name) }}
- size:
- min: 1
- max: 5
- create_vm_params:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_volume:
- -
- args:
- size: 1
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- -
- args:
- size:
- min: 1
- max: 5
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.list_volumes:
- -
- args:
- detailed: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- volumes:
- size: 1
- volumes_per_tenant: 4
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_delete_snapshot:
- -
- args:
- force: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_delete_volume:
- -
- args:
- size:
- max: 1
- min: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- {{ vm_params(image_name,none,1) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_extend_volume:
- -
- args:
- new_size: 2
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_from_volume_and_delete_volume:
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_get_qos:
- -
- args:
- consumer: "both"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_list_qos:
- -
- args:
- consumer: "both"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_set_qos:
- -
- args:
- consumer: "back-end"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- set_consumer: "both"
- set_write_iops_sec: "11"
- set_read_iops_sec: "1001"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_get_volume_type:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_list_volume_types:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_update_volume_type:
- -
- args:
- description: "test"
- update_description: "test update"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_volume_type_and_encryption_type:
- -
- args:
- description: "rally tests creating types"
- provider: "LuksEncryptor"
- cipher: "aes-xts-plain64"
- key_size: 512
- control_location: "front-end"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_volume_type_add_and_list_type_access:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml
deleted file mode 100644
index dfc1fc15..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
- GlanceImages.create_and_delete_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_list_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.list_images:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_image_and_boot_instances:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- flavor:
- name: {{ flavor_name }}
- number_instances: 2
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- quotas:
- {{ unlimited_nova() }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_deactivate_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_download_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_get_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_update_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml
deleted file mode 100644
index 3adf8f7f..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
- HeatStacks.create_and_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/default.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/server_with_ports.yaml.template"
- parameters:
- public_net: {{ floating_network }}
- image: {{ image_name }}
- flavor: {{ flavor_name }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/server_with_volume.yaml.template"
- parameters:
- image: {{ image_name }}
- flavor: {{ flavor_name }}
- network_id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_and_list_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/default.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_update_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_add.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_delete.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_resource_group_increase.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/autoscaling_policy.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_autoscaling_policy_inplace.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_resource_group_reduce.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_replace.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_check_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_suspend_resume_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.list_stacks_and_resources:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml
deleted file mode 100644
index 2951e953..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml
+++ /dev/null
@@ -1,362 +0,0 @@
- NeutronNetworks.create_and_update_networks:
- -
- args:
- network_create_args: {}
- network_update_args:
- admin_state_up: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_update_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- port_update_args:
- admin_state_up: false
- device_id: "dummy_id"
- device_owner: "dummy_owner"
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_update_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- router_update_args:
- admin_state_up: false
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- port: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_update_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.4.0.0/16"
- subnet_create_args: {}
- subnet_update_args:
- enable_dhcp: false
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- port: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_groups:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_group_rule:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_list_security_group_rules:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_show_security_group:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.set_and_clear_router_gateway:
- -
- args:
- network_create_args:
- router:external: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- router: -1
- roles:
- - "admin"
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_show_ports:
- -
- args:
- ports_per_network: 2
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_show_routers:
- -
- args:
- subnets_per_network: 2
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_show_subnets:
- -
- args:
- subnets_per_network: 2
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml
deleted file mode 100644
index 512448fd..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml
+++ /dev/null
@@ -1,416 +0,0 @@
- NovaKeypair.create_and_delete_keypair:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaKeypair.create_and_list_keypairs:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_bounce_server:
- -
- args:
- actions:
- -
- hard_reboot: 1
- -
- soft_reboot: 1
- -
- stop_start: 1
- -
- rescue_unrescue: 1
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_delete_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_list_server:
- -
- args:
- detailed: true
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_rebuild_server:
- -
- args:
- {{ vm_params(flavor=flavor_name) }}
- from_image:
- name: {{ image_name }}
- to_image:
- name: {{ image_name }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.snapshot_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 10
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.list_servers:
- -
- args:
- detailed: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- servers:
- {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
- servers_per_tenant: 2
- auto_assign_nic: true
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.resize_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- to_flavor:
- name: {{ flavor_alt_name }}
- confirm: true
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_live_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_attach_created_volume_and_live_migrate:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- size: 10
- block_migration: false
- boot_server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_live_migrate:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- volume_size: 10
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaKeypair.boot_and_delete_server_with_keypair:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 5
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_volumes() }}
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.pause_and_unpause_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_and_list_interfaces:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_get_console_url:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- console_type: "novnc"
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_and_attach_interface:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- network_create_args: {}
- subnet_create_args: {}
- boot_server_args:
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_attach_volume_and_list_attachments:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 1
- volume_num: 1
- create_volume_kwargs: {}
- boot_server_kwargs:
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_delete_server_group:
- -
- args:
- policies: ["affinity"]
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_get_server_group:
- -
- args:
- policies: ["affinity"]
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_list_server_groups:
- -
- args:
- policies: ["affinity"]
- all_projects: false
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml
deleted file mode 100644
index a04e4c1c..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
- Authenticate.keystone:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_cinder:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_glance:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_heat:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_neutron:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_nova:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml
deleted file mode 100644
index bfc9948b..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
- KeystoneBasic.add_and_remove_user_role:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_add_and_list_user_roles:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_list_tenants:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_delete_role:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_delete_service:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.get_entities:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_update_and_delete_tenant:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_user:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_tenant:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_list_users:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_tenant_with_users:
- -
- args:
- users_per_tenant: 10
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml
deleted file mode 100644
index a0682acc..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
- Quotas.cinder_update_and_delete:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.cinder_update:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.neutron_update:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.nova_update_and_delete:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.nova_update:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml
deleted file mode 100644
index 74f50992..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
- VMTasks.boot_runcommand_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- floating_network: {{ floating_network }}
- force_delete: false
- command:
- interpreter: /bin/sh
- script_file: {{ sup_dir }}/instance_dd_test.sh
- username: cirros
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- fixed_network: private
- floating_network: {{ floating_network }}
- force_delete: false
- command:
- interpreter: /bin/sh
- script_file: {{ sup_dir }}/instance_dd_test.sh
- use_floatingip: true
- username: cirros
- nics:
- - net-id: {{ netid }}
- volume_args:
- size: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml
deleted file mode 100644
index bb070cd3..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml
+++ /dev/null
@@ -1,247 +0,0 @@
- CeilometerAlarms.create_alarm_and_get_history:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- state: "ok"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_delete_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_get_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_list_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarm_history:
- -
- args:
- orderby: !!null
- limit: !!null
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarms:
- -
- args:
- filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]}
- orderby: !!null
- limit: 10
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_samples:
- -
- args:
- filter: {"=": {"counter_unit": "instance"}}
- orderby: !!null
- limit: 10
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resource_id: "resource_id"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_update_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_get_event:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_events:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_event_types:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_trait_descriptions:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_traits:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerStats.get_stats:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- meter_name: "benchmark_meter"
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "terminated"
- period: 300
- groupby: "resource_id"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.get_tenant_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_volume: 1.0
- counter_unit: "instance"
- {% endcall %}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.list_alarms:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml
deleted file mode 100644
index 83235807..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
- CinderVolumes.create_and_delete_snapshot:
- -
- args:
- force: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_delete_volume:
- -
- args:
- size:
- max: 1
- min: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- {{ vm_params(image_name,none,1) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_extend_volume:
- -
- args:
- new_size: 2
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_from_volume_and_delete_volume:
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_list_qos:
- -
- args:
- consumer: "both"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_set_qos:
- -
- args:
- consumer: "back-end"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- set_consumer: "both"
- set_write_iops_sec: "11"
- set_read_iops_sec: "1001"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_list_volume_types:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_volume_type_and_encryption_type:
- -
- args:
- description: "rally tests creating types"
- provider: "LuksEncryptor"
- cipher: "aes-xts-plain64"
- key_size: 512
- control_location: "front-end"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml
deleted file mode 100644
index 1b61762f..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
- GlanceImages.create_and_delete_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_list_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.list_images:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_image_and_boot_instances:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- flavor:
- name: {{ flavor_name }}
- number_instances: 2
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- quotas:
- {{ unlimited_nova() }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml
deleted file mode 100644
index 5df49aaa..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
- HeatStacks.create_update_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/autoscaling_policy.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_autoscaling_policy_inplace.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_check_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_suspend_resume_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.list_stacks_and_resources:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml
deleted file mode 100644
index da99a48b..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml
+++ /dev/null
@@ -1,197 +0,0 @@
- NeutronNetworks.create_and_delete_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- port: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_groups:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_group_rule:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.set_and_clear_router_gateway:
- -
- args:
- network_create_args:
- router:external: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- router: -1
- roles:
- - "admin"
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml
deleted file mode 100644
index 801938c4..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml
+++ /dev/null
@@ -1,144 +0,0 @@
- NovaServers.boot_and_live_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_attach_created_volume_and_live_migrate:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- size: 10
- block_migration: false
- boot_server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_live_migrate:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- volume_size: 10
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaKeypair.boot_and_delete_server_with_keypair:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 5
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_volumes() }}
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.pause_and_unpause_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_and_list_interfaces:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_delete_server_group:
- -
- args:
- policies: ["affinity"]
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh b/functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh
deleted file mode 100644
index e3bf2340..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-time_seconds(){ (time -p $1 ) 2>&1 |awk '/real/{print $2}'; }
-file=/tmp/test.img
-c=${1:-$SIZE}
-c=${c:-1000} #default is 1GB
-write_seq=$(time_seconds "dd if=/dev/zero of=$file bs=1M count=$c")
-read_seq=$(time_seconds "dd if=$file of=/dev/null bs=1M count=$c")
-[ -f $file ] && rm $file
-
-echo "{
- \"write_seq_${c}m\": $write_seq,
- \"read_seq_${c}m\": $read_seq
- }"
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template
deleted file mode 100644
index a22487e3..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template
+++ /dev/null
@@ -1,17 +0,0 @@
-heat_template_version: 2013-05-23
-
-resources:
- test_group:
- type: OS::Heat::AutoScalingGroup
- properties:
- desired_capacity: 0
- max_size: 0
- min_size: 0
- resource:
- type: OS::Heat::RandomString
- test_policy:
- type: OS::Heat::ScalingPolicy
- properties:
- adjustment_type: change_in_capacity
- auto_scaling_group_id: { get_resource: test_group }
- scaling_adjustment: 1 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template
deleted file mode 100644
index eb4f2f2d..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template
+++ /dev/null
@@ -1 +0,0 @@
-heat_template_version: 2014-10-16 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template
deleted file mode 100644
index 2dd676c1..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template
+++ /dev/null
@@ -1,13 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: Test template for rally create-update-delete scenario
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_two:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template
deleted file mode 100644
index b3f505fa..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template
+++ /dev/null
@@ -1,13 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: Test template for rally create-update-delete scenario
-
-resources:
- test_group:
- type: OS::Heat::ResourceGroup
- properties:
- count: 2
- resource_def:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template
deleted file mode 100644
index 35b10783..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template
+++ /dev/null
@@ -1,64 +0,0 @@
-heat_template_version: 2013-05-23
-
-parameters:
- # set all correct defaults for parameters before launch test
- public_net:
- type: string
- default: public
- image:
- type: string
- default: cirros-0.4.0-x86_64-uec
- flavor:
- type: string
- default: m1.tiny
- cidr:
- type: string
- default: 11.11.11.0/24
-
-resources:
- server:
- type: OS::Nova::Server
- properties:
- image: {get_param: image}
- flavor: {get_param: flavor}
- networks:
- - port: { get_resource: server_port }
-
- router:
- type: OS::Neutron::Router
- properties:
- external_gateway_info:
- network: {get_param: public_net}
-
- router_interface:
- type: OS::Neutron::RouterInterface
- properties:
- router_id: { get_resource: router }
- subnet_id: { get_resource: private_subnet }
-
- private_net:
- type: OS::Neutron::Net
-
- private_subnet:
- type: OS::Neutron::Subnet
- properties:
- network: { get_resource: private_net }
- cidr: {get_param: cidr}
-
- port_security_group:
- type: OS::Neutron::SecurityGroup
- properties:
- name: default_port_security_group
- description: >
- Default security group assigned to port. The neutron default group is not
- used because neutron creates several groups with the same name=default and
- nova cannot chooses which one should it use.
-
- server_port:
- type: OS::Neutron::Port
- properties:
- network: {get_resource: private_net}
- fixed_ips:
- - subnet: { get_resource: private_subnet }
- security_groups:
- - { get_resource: port_security_group }
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template
deleted file mode 100644
index 5c9a86b7..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template
+++ /dev/null
@@ -1,43 +0,0 @@
-heat_template_version: 2013-05-23
-
-parameters:
- # set all correct defaults for parameters before launch test
- image:
- type: string
- default: cirros-0.4.0-x86_64-uec
- flavor:
- type: string
- default: m1.tiny
- availability_zone:
- type: string
- description: The Availability Zone to launch the instance.
- default: nova
- volume_size:
- type: number
- description: Size of the volume to be created.
- default: 1
- constraints:
- - range: { min: 1, max: 1024 }
- description: must be between 1 and 1024 Gb.
- network_id:
- type: string
-
-resources:
- server:
- type: OS::Nova::Server
- properties:
- image: {get_param: image}
- flavor: {get_param: flavor}
- networks:
- - network: { get_param: network_id }
- cinder_volume:
- type: OS::Cinder::Volume
- properties:
- size: { get_param: volume_size }
- availability_zone: { get_param: availability_zone }
- volume_attachment:
- type: OS::Cinder::VolumeAttachment
- properties:
- volume_id: { get_resource: cinder_volume }
- instance_uuid: { get_resource: server}
- mountpoint: /dev/vdc
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template
deleted file mode 100644
index cf34879c..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template
+++ /dev/null
@@ -1,23 +0,0 @@
-heat_template_version: 2013-05-23
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates resource parameters without resource re-creation(replacement)
- in the stack defined by autoscaling_policy.yaml.template. It allows to measure
- performance of "pure" resource update operation only.
-
-resources:
- test_group:
- type: OS::Heat::AutoScalingGroup
- properties:
- desired_capacity: 0
- max_size: 0
- min_size: 0
- resource:
- type: OS::Heat::RandomString
- test_policy:
- type: OS::Heat::ScalingPolicy
- properties:
- adjustment_type: change_in_capacity
- auto_scaling_group_id: { get_resource: test_group }
- scaling_adjustment: -1 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template
deleted file mode 100644
index e06d42e0..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template
+++ /dev/null
@@ -1,19 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates the stack defined by random_strings.yaml.template with additional resource.
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_two:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_three:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template
deleted file mode 100644
index d02593e3..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template
+++ /dev/null
@@ -1,11 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template deletes one resource from the stack defined by random_strings.yaml.template.
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template
deleted file mode 100644
index 46d8bff4..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template
+++ /dev/null
@@ -1,19 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template deletes one resource from the stack defined by
- random_strings.yaml.template and re-creates it with the updated parameters
- (so-called update-replace). That happens because some parameters cannot be
- changed without resource re-creation. The template allows to measure performance
- of update-replace operation.
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_two:
- type: OS::Heat::RandomString
- properties:
- length: 40 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template
deleted file mode 100644
index 891074eb..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template
+++ /dev/null
@@ -1,16 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates one resource from the stack defined by resource_group.yaml.template
- and adds children resources to that resource.
-
-resources:
- test_group:
- type: OS::Heat::ResourceGroup
- properties:
- count: 3
- resource_def:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template
deleted file mode 100644
index b4d1d173..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template
+++ /dev/null
@@ -1,16 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates one resource from the stack defined by resource_group.yaml.template
- and deletes children resources from that resource.
-
-resources:
- test_group:
- type: OS::Heat::ResourceGroup
- properties:
- count: 1
- resource_def:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/task.yaml b/functest/opnfv_tests/openstack/rally/task.yaml
deleted file mode 100644
index 65f101fb..00000000
--- a/functest/opnfv_tests/openstack/rally/task.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{%- if smoke %}
-{%- set users_amount = 1 %}
-{%- set tenants_amount = 1 %}
-{%- endif %}
-
-{%- from "macro/macro.yaml" import user_context, vm_params, unlimited_volumes, constant_runner, rps_runner, no_failures_sla -%}
-{%- from "macro/macro.yaml" import volumes, unlimited_nova, unlimited_neutron, glance_args -%}
-
----
-{% if "authenticate" in service_list %}
-{%- include "var/opnfv-authenticate.yaml"-%}
-{% endif %}
-
-{% if "cinder" in service_list %}
-{%- include "var/opnfv-cinder.yaml"-%}
-{% endif %}
-
-{% if "keystone" in service_list %}
-{%- include "var/opnfv-keystone.yaml"-%}
-{% endif %}
-
-{% if "nova" in service_list %}
-{%- include "var/opnfv-nova.yaml"-%}
-{% endif %}
-
-{% if "glance" in service_list %}
-{%- include "var/opnfv-glance.yaml"-%}
-{% endif %}
-
-{% if "neutron" in service_list %}
-{%- include "var/opnfv-neutron.yaml"-%}
-{% endif %}
-
-{% if "ceilometer" in service_list %}
-{%- include "var/opnfv-ceilometer.yaml"-%}
-{% endif %}
-
-{% if "quotas" in service_list %}
-{%- include "var/opnfv-quotas.yaml"-%}
-{% endif %}
-
-{% if "heat" in service_list %}
-{%- include "var/opnfv-heat.yaml"-%}
-{% endif %}
-
-{% if "vm" in service_list %}
-{%- include "var/opnfv-vm.yaml"-%}
-{% endif %}
diff --git a/functest/opnfv_tests/openstack/refstack_client/__init__.py b/functest/opnfv_tests/openstack/refstack_client/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/refstack_client/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/refstack_client/refstack_client.py b/functest/opnfv_tests/openstack/refstack_client/refstack_client.py
deleted file mode 100644
index ada6ebab..00000000
--- a/functest/opnfv_tests/openstack/refstack_client/refstack_client.py
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Refstack client testcase implemenation."""
-
-from __future__ import division
-
-import argparse
-import ConfigParser
-import logging
-import os
-import re
-import sys
-import subprocess
-import time
-
-from functest.core import testcase
-from functest.energy import energy
-from functest.opnfv_tests.openstack.tempest import conf_utils
-from functest.opnfv_tests.openstack.tempest import tempest
-from functest.utils import config
-from functest.utils import functest_utils
-
-
-__author__ = ("Matthew Li <matthew.lijun@huawei.com>,"
- "Linda Wang <wangwulin@huawei.com>")
-
-# logging configuration """
-LOGGER = logging.getLogger(__name__)
-
-
-class RefstackClient(testcase.TestCase):
- """RefstackClient testcase implementation class."""
- # pylint: disable=too-many-instance-attributes
-
- defcorelist = os.path.join(
- getattr(config.CONF, 'dir_refstack_data'), 'defcore.txt')
-
- def __init__(self, **kwargs):
- """Initialize RefstackClient testcase object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "refstack_defcore"
- super(RefstackClient, self).__init__(**kwargs)
- self.resdir = os.path.join(
- getattr(config.CONF, 'dir_results'), 'refstack')
- self.conf_path = os.path.join(self.resdir, 'refstack_tempest.conf')
-
- @staticmethod
- def run_defcore(conf, testlist):
- """Run defcore sys command."""
- insecure = ''
- if ('https' in os.environ['OS_AUTH_URL'] and
- os.getenv('OS_INSECURE', '').lower() == 'true'):
- insecure = '-k'
- cmd = ("refstack-client test {0} -c {1} -v --test-list {2}"
- .format(insecure, conf, testlist))
- LOGGER.info("Starting Refstack_defcore test case: '%s'.", cmd)
- functest_utils.execute_command(cmd)
-
- def run_defcore_default(self):
- """Run default defcore sys command."""
- insecure = ''
- if ('https' in os.environ['OS_AUTH_URL'] and
- os.getenv('OS_INSECURE', '').lower() == 'true'):
- insecure = '-k'
- options = ["-v"] if not insecure else ["-v", insecure]
- cmd = (["refstack-client", "test", "-c", self.conf_path] +
- options + ["--test-list", self.defcorelist])
- LOGGER.info("Starting Refstack_defcore test case: '%s'.", cmd)
- with open(os.path.join(self.resdir, "refstack.log"), 'w+') as f_stdout:
- subprocess.call(cmd, shell=False, stdout=f_stdout,
- stderr=subprocess.STDOUT)
-
- def parse_refstack_result(self):
- """Parse Refstack results."""
- try:
- with open(os.path.join(self.resdir,
- "refstack.log"), 'r') as logfile:
- for line in logfile.readlines():
- if 'Tests' in line:
- break
- if re.search(r"\} tempest\.", line):
- LOGGER.info(line.replace('\n', ''))
-
- with open(os.path.join(self.resdir,
- "refstack.log"), 'r') as logfile:
- output = logfile.read()
-
- for match in re.findall(r"Ran: (\d+) tests in (\d+\.\d{4}) sec.",
- output):
- num_tests = match[0]
- LOGGER.info("Ran: %s tests in %s sec.", num_tests, match[1])
- for match in re.findall(r"(- Passed: )(\d+)", output):
- num_success = match[1]
- LOGGER.info("".join(match))
- for match in re.findall(r"(- Skipped: )(\d+)", output):
- num_skipped = match[1]
- LOGGER.info("".join(match))
- for match in re.findall(r"(- Failed: )(\d+)", output):
- num_failures = match[1]
- LOGGER.info("".join(match))
- success_testcases = []
- for match in re.findall(r"\{0\} (.*?) \.{3} ok", output):
- success_testcases.append(match)
- failed_testcases = []
- for match in re.findall(r"\{0\} (.*?) \.{3} FAILED", output):
- failed_testcases.append(match)
- skipped_testcases = []
- for match in re.findall(r"\{0\} (.*?) \.{3} SKIPPED:", output):
- skipped_testcases.append(match)
-
- num_executed = int(num_tests) - int(num_skipped)
-
- try:
- self.result = 100 * int(num_success) / int(num_executed)
- except ZeroDivisionError:
- LOGGER.error("No test has been executed")
-
- self.details = {"tests": int(num_tests),
- "failures": int(num_failures),
- "success": success_testcases,
- "errors": failed_testcases,
- "skipped": skipped_testcases}
- except Exception: # pylint: disable=broad-except
- self.result = 0
- LOGGER.info("Testcase %s success_rate is %s%%",
- self.case_name, self.result)
-
- def configure_tempest_defcore(self):
- # pylint: disable=too-many-arguments
- """
- Add/update needed parameters into tempest.conf file
- """
- resources = tempest.TempestResourcesManager().create(
- create_project=True, use_custom_images=True,
- use_custom_flavors=True)
- verifier_id = conf_utils.get_verifier_id()
- deployment_id = conf_utils.get_verifier_deployment_id()
- deployment_dir = conf_utils.get_verifier_deployment_dir(
- verifier_id, deployment_id)
- conf_file = conf_utils.configure_verifier(deployment_dir)
- conf_utils.configure_tempest_update_params(
- conf_file, resources.get("network_name"),
- resources.get("image_id"), resources.get("flavor_id"))
- LOGGER.debug(
- "Updating selected tempest.conf parameters for defcore...")
- rconfig = ConfigParser.RawConfigParser()
- rconfig.read(conf_file)
- rconfig.set(
- 'DEFAULT', 'log_file', '{}/tempest.log'.format(deployment_dir))
- rconfig.set('oslo_concurrency', 'lock_path',
- '{}/lock_files'.format(deployment_dir))
- conf_utils.generate_test_accounts_file(
- tenant_id=resources.get("project_id"))
- rconfig.set('auth', 'test_accounts_file',
- conf_utils.TEST_ACCOUNTS_FILE)
- rconfig.set('scenario', 'img_dir', '{}'.format(deployment_dir))
- rconfig.set('scenario', 'img_file', 'tempest-image')
- rconfig.set('compute', 'image_ref', resources.get("image_id"))
- rconfig.set('compute', 'image_ref_alt', resources.get("image_id_alt"))
- rconfig.set('compute', 'flavor_ref', resources.get("flavor_id"))
- rconfig.set('compute', 'flavor_ref_alt',
- resources.get("flavor_id_alt"))
- if not os.path.exists(self.resdir):
- os.makedirs(self.resdir)
- with open(self.conf_path, 'w') as config_fd:
- rconfig.write(config_fd)
-
- @energy.enable_recording
- def run(self, **kwargs):
- """
- Start RefstackClient testcase.
-
- used for functest command line,
- functest testcase run refstack_defcore
- """
- self.start_time = time.time()
- try:
- # Make sure that Tempest is configured
- self.configure_tempest_defcore()
- self.run_defcore_default()
- self.parse_refstack_result()
- res = testcase.TestCase.EX_OK
- except Exception: # pylint: disable=broad-except
- LOGGER.exception("Error with run")
- res = testcase.TestCase.EX_RUN_ERROR
- self.stop_time = time.time()
- return res
-
- @staticmethod
- def main(**kwargs):
- """
- Execute RefstackClient testcase manually.
-
- used for manually running,
- python refstack_client.py -c <tempest_conf_path>
- --testlist <testlist_path>
- can generate a reference refstack_tempest.conf by
- python tempest_conf.py
- """
- try:
- conf_path = kwargs['config']
- if not os.path.isfile(conf_path):
- LOGGER.error("Conf file not valid: %s", conf_path)
- return testcase.TestCase.EX_RUN_ERROR
- testlist = kwargs['testlist']
- if not os.path.isfile(testlist):
- LOGGER.error("testlist file not valid: %s", testlist)
- return testcase.TestCase.EX_RUN_ERROR
- except KeyError as exc:
- LOGGER.error("Cannot run refstack client. Please check "
- "%s", exc)
- return testcase.TestCase.EX_RUN_ERROR
- try:
- RefstackClient.run_defcore(conf_path, testlist)
- except Exception as exc: # pylint: disable=broad-except
- LOGGER.error('Error with run: %s', exc)
- return testcase.TestCase.EX_RUN_ERROR
- return testcase.TestCase.EX_OK
-
-
-class RefstackClientParser(object): # pylint: disable=too-few-public-methods
- """Command line argument parser helper."""
-
- def __init__(self):
- """Initialize helper object."""
- self.parser = argparse.ArgumentParser()
- self.parser.add_argument(
- '-c', '--config',
- help='the file path of refstack_tempest.conf')
- self.parser.add_argument(
- '-t', '--testlist',
- help='Specify the file path or URL of a test list text file. '
- 'This test list will contain specific test cases that '
- 'should be tested.',
- default=RefstackClient.defcorelist)
-
- def parse_args(self, argv=None):
- """Parse command line arguments."""
- return vars(self.parser.parse_args(argv))
-
-
-def main():
- """Run RefstackClient testcase with CLI."""
- logging.basicConfig()
- refstackclient = RefstackClient()
- parser = RefstackClientParser()
- args = parser.parse_args(sys.argv[1:])
- try:
- result = refstackclient.main(**args)
- if result != testcase.TestCase.EX_OK:
- return result
- except Exception: # pylint: disable=broad-except
- return testcase.TestCase.EX_RUN_ERROR
diff --git a/functest/opnfv_tests/openstack/snaps/__init__.py b/functest/opnfv_tests/openstack/snaps/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/snaps/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/snaps/api_check.py b/functest/opnfv_tests/openstack/snaps/api_check.py
deleted file mode 100644
index b8cd4fdd..00000000
--- a/functest/opnfv_tests/openstack/snaps/api_check.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""api_check test case implementation"""
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
- SnapsTestRunner
-
-
-class ApiCheck(SnapsTestRunner):
- """
- This test executes the Python Tests included with the SNAPS libraries
- that exercise many of the OpenStack APIs within Keystone, Glance, Neutron,
- and Nova
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "api_check"
- super(ApiCheck, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- snaps_suite_builder.add_openstack_api_tests(
- suite=self.suite,
- os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone,
- image_metadata=self.image_metadata)
- return super(ApiCheck, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/connection_check.py b/functest/opnfv_tests/openstack/snaps/connection_check.py
deleted file mode 100644
index f8bf8852..00000000
--- a/functest/opnfv_tests/openstack/snaps/connection_check.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
- SnapsTestRunner
-
-
-class ConnectionCheck(SnapsTestRunner):
- """
- This test executes the Python Tests included with the SNAPS libraries
- that simply obtain the different OpenStack clients and may perform
- simple queries
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "connection_check"
- super(ConnectionCheck, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- snaps_suite_builder.add_openstack_client_tests(
- suite=self.suite,
- os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone)
- return super(ConnectionCheck, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/health_check.py b/functest/opnfv_tests/openstack/snaps/health_check.py
deleted file mode 100644
index 8a88ac6b..00000000
--- a/functest/opnfv_tests/openstack/snaps/health_check.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""snaps_health_check test case implementation"""
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import (
- SnapsTestRunner)
-
-from snaps.openstack.tests.os_source_file_test import OSIntegrationTestCase
-from snaps.openstack.tests.create_instance_tests import SimpleHealthCheck
-
-
-class HealthCheck(SnapsTestRunner):
- """
- This test executes the SNAPS Python Test case SimpleHealthCheck which
- creates a VM with a single port with an IPv4 address that is assigned by
- DHCP. This test then validates the expected IP with the actual
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "snaps_images_cirros"
- super(HealthCheck, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- self.suite.addTest(
- OSIntegrationTestCase.parameterize(
- SimpleHealthCheck, os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone,
- flavor_metadata=self.flavor_metadata,
- image_metadata=self.image_metadata,
- netconf_override=self.netconf_override))
- return super(HealthCheck, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/smoke.py b/functest/opnfv_tests/openstack/snaps/smoke.py
deleted file mode 100644
index bc678118..00000000
--- a/functest/opnfv_tests/openstack/snaps/smoke.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""snaps_smoke test case implementation"""
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import (
- SnapsTestRunner)
-
-
-class SnapsSmoke(SnapsTestRunner):
- """
- This test executes the Python Tests included with the SNAPS libraries
- that exercise many of the OpenStack APIs within Keystone, Glance, Neutron,
- and Nova
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "snaps_smoke"
- super(SnapsSmoke, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- snaps_suite_builder.add_openstack_integration_tests(
- suite=self.suite,
- os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone,
- flavor_metadata=self.flavor_metadata,
- image_metadata=self.image_metadata,
- use_floating_ips=self.use_fip,
- netconf_override=self.netconf_override)
- return super(SnapsSmoke, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py b/functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py
deleted file mode 100644
index ed3b2825..00000000
--- a/functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Snaps test suite including openstack client tests, api tests and
-integration tests.
-add_openstack_client_tests: for connection_check
-add_openstack_api_tests: for api_check
-add_openstack_integration_tests: for snaps_smoke
-"""
-
-import logging
-
-from snaps.openstack.tests.create_flavor_tests import (
- CreateFlavorTests)
-from snaps.openstack.tests.create_image_tests import (
- CreateImageSuccessTests, CreateImageNegativeTests,
- CreateMultiPartImageTests)
-from snaps.openstack.tests.create_instance_tests import (
- CreateInstanceSingleNetworkTests, CreateInstanceOnComputeHost,
- CreateInstanceSimpleTests, InstanceSecurityGroupTests,
- CreateInstancePortManipulationTests, SimpleHealthCheck,
- CreateInstanceFromThreePartImage, CreateInstanceTwoNetTests,
- CreateInstanceVolumeTests)
-from snaps.openstack.tests.create_keypairs_tests import (
- CreateKeypairsTests, CreateKeypairsCleanupTests)
-from snaps.openstack.tests.create_network_tests import (
- CreateNetworkSuccessTests)
-from snaps.openstack.tests.create_project_tests import (
- CreateProjectSuccessTests, CreateProjectUserTests)
-from snaps.openstack.tests.create_qos_tests import (
- CreateQoSTests)
-from snaps.openstack.tests.create_router_tests import (
- CreateRouterSuccessTests, CreateRouterNegativeTests)
-from snaps.openstack.tests.create_security_group_tests import (
- CreateSecurityGroupTests)
-from snaps.openstack.tests.create_stack_tests import (
- CreateStackSuccessTests, CreateStackNegativeTests,
- CreateStackFlavorTests, CreateStackFloatingIpTests,
- CreateStackKeypairTests, CreateStackVolumeTests,
- CreateStackSecurityGroupTests)
-from snaps.openstack.tests.create_user_tests import (
- CreateUserSuccessTests)
-from snaps.openstack.tests.create_volume_tests import (
- CreateSimpleVolumeSuccessTests,
- CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
- CreateSimpleVolumeFailureTests)
-from snaps.openstack.tests.create_volume_type_tests import (
- CreateSimpleVolumeTypeSuccessTests,
- CreateVolumeTypeComplexTests)
-from snaps.openstack.tests.os_source_file_test import (
- OSComponentTestCase, OSIntegrationTestCase)
-from snaps.openstack.utils.tests.cinder_utils_tests import (
- CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
- CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
- CinderUtilsVolumeTests)
-from snaps.openstack.utils.tests.glance_utils_tests import (
- GlanceSmokeTests, GlanceUtilsTests)
-from snaps.openstack.utils.tests.heat_utils_tests import (
- HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
- HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
- HeatUtilsKeypairTests, HeatUtilsSecurityGroupTests)
-from snaps.openstack.utils.tests.keystone_utils_tests import (
- KeystoneSmokeTests, KeystoneUtilsTests)
-from snaps.openstack.utils.tests.neutron_utils_tests import (
- NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
- NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
- NeutronUtilsFloatingIpTests)
-from snaps.openstack.utils.tests.nova_utils_tests import (
- NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
- NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
-from snaps.provisioning.tests.ansible_utils_tests import (
- AnsibleProvisioningTests)
-
-
-def add_openstack_client_tests(suite, os_creds, ext_net_name,
- use_keystone=True, log_level=logging.INFO):
- """
- Adds tests written to exercise OpenStack client retrieval
-
- :param suite: the unittest.TestSuite object to which to add the tests
- :param os_creds: and instance of OSCreds that holds the credentials
- required by OpenStack
- :param ext_net_name: the name of an external network on the cloud under
- test
- :param use_keystone: when True, tests requiring direct access to Keystone
- are added as these need to be running on a host that
- has access to the cloud's private network
- :param log_level: the logging level
- :return: None as the tests will be adding to the 'suite' parameter object
- """
- # Basic connection tests
- suite.addTest(
- OSComponentTestCase.parameterize(
- GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
-
- if use_keystone:
- suite.addTest(
- OSComponentTestCase.parameterize(
- KeystoneSmokeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
-
- suite.addTest(
- OSComponentTestCase.parameterize(
- NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(
- OSComponentTestCase.parameterize(
- NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(
- OSComponentTestCase.parameterize(
- HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(
- OSComponentTestCase.parameterize(
- CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
-
-
-def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
- image_metadata=None, log_level=logging.INFO):
- # pylint: disable=too-many-arguments
- """
- Adds tests written to exercise all existing OpenStack APIs
-
- :param suite: the unittest.TestSuite object to which to add the tests
- :param os_creds: Instance of OSCreds that holds the credentials
- required by OpenStack
- :param ext_net_name: the name of an external network on the cloud under
- test
- :param use_keystone: when True, tests requiring direct access to Keystone
- are added as these need to be running on a host that
- has access to the cloud's private network
- :param image_metadata: dict() object containing metadata for creating an
- image with custom config
- (see YAML files in examples/image-metadata)
- :param log_level: the logging level
- :return: None as the tests will be adding to the 'suite' parameter object
- """
- # Tests the OpenStack API calls
- if use_keystone:
- suite.addTest(OSComponentTestCase.parameterize(
- KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateUserSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateProjectSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateProjectUserTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
-
- suite.addTest(OSComponentTestCase.parameterize(
- GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
- image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsFloatingIpTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level, image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsInstanceVolumeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsCreateComplexStackTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsFlavorTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsKeypairTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsQoSTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsVolumeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsAddEncryptionTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
-
-
-def add_openstack_integration_tests(suite, os_creds, ext_net_name,
- use_keystone=True, flavor_metadata=None,
- image_metadata=None, use_floating_ips=True,
- netconf_override=None,
- log_level=logging.INFO):
- # pylint: disable=too-many-arguments
- """
- Adds tests written to exercise all long-running OpenStack integration tests
- meaning they will be creating VM instances and potentially performing some
- SSH functions through floatingIPs
-
- :param suite: the unittest.TestSuite object to which to add the tests
- :param os_creds: and instance of OSCreds that holds the credentials
- required by OpenStack
- :param ext_net_name: the name of an external network on the cloud under
- test
- :param use_keystone: when True, tests requiring direct access to Keystone
- are added as these need to be running on a host that
- has access to the cloud's private network
- :param image_metadata: dict() object containing metadata for creating an
- image with custom config
- (see YAML files in examples/image-metadata)
- :param flavor_metadata: dict() object containing the metadata required by
- your flavor based on your configuration:
- (i.e. {'hw:mem_page_size': 'large'})
- :param use_floating_ips: when true, all tests requiring Floating IPs will
- be added to the suite
- :param netconf_override: dict() containing the reconfigured network_type,
- physical_network and segmentation_id
- :param log_level: the logging level
- :return: None as the tests will be adding to the 'suite' parameter object
- """
- # Tests the OpenStack API calls via a creator. If use_keystone, objects
- # will be created with a custom user and project
-
- # Creator Object tests
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateMultiPartImageTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateKeypairsCleanupTests, os_creds=os_creds,
- ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateNetworkSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateRouterNegativeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateQoSTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateVolumeTypeComplexTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSimpleVolumeSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSimpleVolumeFailureTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateVolumeWithTypeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateVolumeWithImageTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
-
- # VM Instances
- suite.addTest(OSIntegrationTestCase.parameterize(
- SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceTwoNetTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceSimpleTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstancePortManipulationTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- InstanceSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceOnComputeHost, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceFromThreePartImage, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceVolumeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
-
- if use_floating_ips:
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceSingleNetworkTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackFloatingIpTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- AnsibleProvisioningTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
deleted file mode 100644
index 4de44371..00000000
--- a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""configuration params to run snaps tests"""
-
-import logging
-
-from functest.core import unit
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-from functest.utils import env
-
-from snaps.openstack import create_flavor
-
-
-class SnapsTestRunner(unit.Suite):
- # pylint: disable=too-many-instance-attributes
- """
- This test executes the SNAPS Python Tests
- """
-
- def __init__(self, **kwargs):
- super(SnapsTestRunner, self).__init__(**kwargs)
- self.logger = logging.getLogger(__name__)
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
-
- if 'ext_net_name' in kwargs:
- self.ext_net_name = kwargs['ext_net_name']
- else:
- self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
-
- self.netconf_override = None
- if hasattr(config.CONF, 'snaps_network_config'):
- self.netconf_override = getattr(
- config.CONF, 'snaps_network_config')
-
- self.use_fip = (
- getattr(config.CONF, 'snaps_use_floating_ips') == 'True')
- self.use_keystone = (
- getattr(config.CONF, 'snaps_use_keystone') == 'True')
- scenario = env.get('DEPLOY_SCENARIO')
-
- self.flavor_metadata = None
- if 'ovs' in scenario or 'fdio' in scenario:
- self.flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE
-
- self.logger.info("Using flavor metadata '%s'", self.flavor_metadata)
-
- self.image_metadata = None
- if hasattr(config.CONF, 'snaps_images'):
- self.image_metadata = getattr(config.CONF, 'snaps_images')
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_utils.py b/functest/opnfv_tests/openstack/snaps/snaps_utils.py
deleted file mode 100644
index fa1005ea..00000000
--- a/functest/opnfv_tests/openstack/snaps/snaps_utils.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Some common utils wrapping snaps functions """
-
-from functest.utils import config
-from functest.utils import constants
-from functest.utils import env
-
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import neutron_utils, nova_utils
-
-
-def get_ext_net_name(os_creds):
- """
- Returns the configured external network name or
- the first retrieved external network name
- :param: os_creds: an instance of snaps OSCreds object
- :return:
- """
- neutron = neutron_utils.neutron_client(os_creds)
- ext_nets = neutron_utils.get_external_networks(neutron)
- if env.get('EXTERNAL_NETWORK'):
- extnet_config = env.get('EXTERNAL_NETWORK')
- for ext_net in ext_nets:
- if ext_net.name == extnet_config:
- return extnet_config
- return ext_nets[0].name if ext_nets else ""
-
-
-def get_active_compute_cnt(os_creds):
- """
- Returns the number of active compute servers
- :param: os_creds: an instance of snaps OSCreds object
- :return: the number of active compute servers
- """
- nova = nova_utils.nova_client(os_creds)
- computes = nova_utils.get_availability_zone_hosts(nova, zone_name='nova')
- return len(computes)
-
-
-def get_credentials(proxy_settings_str=None, ssh_proxy_cmd=None):
- """
- Returns snaps OSCreds object instance
- :param: proxy_settings_str: proxy settings string <host>:<port>
- :param: ssh_proxy_cmd: the SSH proxy command for the environment
- :return: an instance of snaps OSCreds object
- """
- creds_override = None
- if hasattr(config.CONF, 'snaps_os_creds_override'):
- creds_override = getattr(config.CONF, 'snaps_os_creds_override')
- os_creds = openstack_tests.get_credentials(
- os_env_file=constants.ENV_FILE, proxy_settings_str=proxy_settings_str,
- ssh_proxy_cmd=ssh_proxy_cmd, overrides=creds_override)
- return os_creds
diff --git a/functest/opnfv_tests/openstack/tempest/__init__.py b/functest/opnfv_tests/openstack/tempest/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/tempest/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/tempest/conf_utils.py b/functest/opnfv_tests/openstack/tempest/conf_utils.py
deleted file mode 100644
index 786a7c5b..00000000
--- a/functest/opnfv_tests/openstack/tempest/conf_utils.py
+++ /dev/null
@@ -1,313 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-"""Tempest configuration utilities."""
-
-import ConfigParser
-import logging
-import fileinput
-import os
-import shutil
-import subprocess
-
-import pkg_resources
-import yaml
-
-from functest.utils import config
-from functest.utils import env
-import functest.utils.functest_utils as ft_utils
-
-
-IMAGE_ID_ALT = None
-FLAVOR_ID_ALT = None
-RALLY_CONF_PATH = "/etc/rally/rally.conf"
-RALLY_AARCH64_PATCH_PATH = pkg_resources.resource_filename(
- 'functest', 'ci/rally_aarch64_patch.conf')
-GLANCE_IMAGE_PATH = os.path.join(
- getattr(config.CONF, 'dir_functest_images'),
- getattr(config.CONF, 'openstack_image_file_name'))
-TEMPEST_RESULTS_DIR = os.path.join(
- getattr(config.CONF, 'dir_results'), 'tempest')
-TEMPEST_CUSTOM = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/tempest/custom_tests/test_list.txt')
-TEMPEST_BLACKLIST = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/tempest/custom_tests/blacklist.txt')
-TEMPEST_RAW_LIST = os.path.join(TEMPEST_RESULTS_DIR, 'test_raw_list.txt')
-TEMPEST_LIST = os.path.join(TEMPEST_RESULTS_DIR, 'test_list.txt')
-TEMPEST_CONF_YAML = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml')
-TEST_ACCOUNTS_FILE = pkg_resources.resource_filename(
- 'functest',
- 'opnfv_tests/openstack/tempest/custom_tests/test_accounts.yaml')
-
-CI_INSTALLER_TYPE = env.get('INSTALLER_TYPE')
-
-""" logging configuration """
-LOGGER = logging.getLogger(__name__)
-
-
-def create_rally_deployment():
- """Create new rally deployment"""
- # set the architecture to default
- pod_arch = env.get("POD_ARCH")
- arch_filter = ['aarch64']
-
- if pod_arch and pod_arch in arch_filter:
- LOGGER.info("Apply aarch64 specific to rally config...")
- with open(RALLY_AARCH64_PATCH_PATH, "r") as pfile:
- rally_patch_conf = pfile.read()
-
- for line in fileinput.input(RALLY_CONF_PATH, inplace=1):
- print line,
- if "cirros|testvm" in line:
- print rally_patch_conf
-
- LOGGER.info("Creating Rally environment...")
-
- cmd = "rally deployment destroy opnfv-rally"
- ft_utils.execute_command(cmd, error_msg=(
- "Deployment %s does not exist."
- % getattr(config.CONF, 'rally_deployment_name')), verbose=False)
-
- cmd = ("rally deployment create --fromenv --name={0}"
- .format(getattr(config.CONF, 'rally_deployment_name')))
- error_msg = "Problem while creating Rally deployment"
- ft_utils.execute_command_raise(cmd, error_msg=error_msg)
-
- cmd = "rally deployment check"
- error_msg = "OpenStack not responding or faulty Rally deployment."
- ft_utils.execute_command_raise(cmd, error_msg=error_msg)
-
-
-def create_verifier():
- """Create new verifier"""
- LOGGER.info("Create verifier from existing repo...")
- cmd = ("rally verify delete-verifier --id '{0}' --force").format(
- getattr(config.CONF, 'tempest_verifier_name'))
- ft_utils.execute_command(cmd, error_msg=(
- "Verifier %s does not exist."
- % getattr(config.CONF, 'tempest_verifier_name')),
- verbose=False)
- cmd = ("rally verify create-verifier --source {0} "
- "--name {1} --type tempest --system-wide"
- .format(getattr(config.CONF, 'dir_repo_tempest'),
- getattr(config.CONF, 'tempest_verifier_name')))
- ft_utils.execute_command_raise(cmd,
- error_msg='Problem while creating verifier')
-
-
-def get_verifier_id():
- """
- Returns verifier id for current Tempest
- """
- create_rally_deployment()
- create_verifier()
- cmd = ("rally verify list-verifiers | awk '/" +
- getattr(config.CONF, 'tempest_verifier_name') +
- "/ {print $2}'")
- proc = subprocess.Popen(cmd, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- deployment_uuid = proc.stdout.readline().rstrip()
- if deployment_uuid == "":
- LOGGER.error("Tempest verifier not found.")
- raise Exception('Error with command:%s' % cmd)
- return deployment_uuid
-
-
-def get_verifier_deployment_id():
- """
- Returns deployment id for active Rally deployment
- """
- cmd = ("rally deployment list | awk '/" +
- getattr(config.CONF, 'rally_deployment_name') +
- "/ {print $2}'")
- proc = subprocess.Popen(cmd, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- deployment_uuid = proc.stdout.readline().rstrip()
- if deployment_uuid == "":
- LOGGER.error("Rally deployment not found.")
- raise Exception('Error with command:%s' % cmd)
- return deployment_uuid
-
-
-def get_verifier_repo_dir(verifier_id):
- """
- Returns installed verifier repo directory for Tempest
- """
- if not verifier_id:
- verifier_id = get_verifier_id()
-
- return os.path.join(getattr(config.CONF, 'dir_rally_inst'),
- 'verification',
- 'verifier-{}'.format(verifier_id),
- 'repo')
-
-
-def get_verifier_deployment_dir(verifier_id, deployment_id):
- """
- Returns Rally deployment directory for current verifier
- """
- if not verifier_id:
- verifier_id = get_verifier_id()
-
- if not deployment_id:
- deployment_id = get_verifier_deployment_id()
-
- return os.path.join(getattr(config.CONF, 'dir_rally_inst'),
- 'verification',
- 'verifier-{}'.format(verifier_id),
- 'for-deployment-{}'.format(deployment_id))
-
-
-def backup_tempest_config(conf_file):
- """
- Copy config file to tempest results directory
- """
- if not os.path.exists(TEMPEST_RESULTS_DIR):
- os.makedirs(TEMPEST_RESULTS_DIR)
- shutil.copyfile(conf_file,
- os.path.join(TEMPEST_RESULTS_DIR, 'tempest.conf'))
-
-
-def configure_tempest(deployment_dir, network_name=None, image_id=None,
- flavor_id=None, compute_cnt=None):
- """
- Calls rally verify and updates the generated tempest.conf with
- given parameters
- """
- conf_file = configure_verifier(deployment_dir)
- configure_tempest_update_params(conf_file, network_name, image_id,
- flavor_id, compute_cnt)
-
-
-def generate_test_accounts_file(tenant_id):
- """
- Add needed tenant and user params into test_accounts.yaml
- """
-
- LOGGER.debug("Add needed params into test_accounts.yaml...")
- accounts_list = [
- {
- 'tenant_name': getattr(
- config.CONF, 'tempest_identity_tenant_name'),
- 'tenant_id': str(tenant_id),
- 'username': getattr(config.CONF, 'tempest_identity_user_name'),
- 'password': getattr(config.CONF, 'tempest_identity_user_password')
- }
- ]
-
- with open(TEST_ACCOUNTS_FILE, "w") as tfile:
- yaml.dump(accounts_list, tfile, default_flow_style=False)
-
-
-def update_tempest_conf_file(conf_file, rconfig):
- """Update defined paramters into tempest config file"""
- with open(TEMPEST_CONF_YAML) as yfile:
- conf_yaml = yaml.safe_load(yfile)
- if conf_yaml:
- sections = rconfig.sections()
- for section in conf_yaml:
- if section not in sections:
- rconfig.add_section(section)
- sub_conf = conf_yaml.get(section)
- for key, value in sub_conf.items():
- rconfig.set(section, key, value)
-
- with open(conf_file, 'wb') as config_file:
- rconfig.write(config_file)
-
-
-def configure_tempest_update_params(tempest_conf_file, network_name=None,
- image_id=None, flavor_id=None,
- compute_cnt=1):
- """
- Add/update needed parameters into tempest.conf file
- """
- LOGGER.debug("Updating selected tempest.conf parameters...")
- rconfig = ConfigParser.RawConfigParser()
- rconfig.read(tempest_conf_file)
- rconfig.set('compute', 'fixed_network_name', network_name)
- rconfig.set('compute', 'volume_device_name',
- getattr(config.CONF, 'tempest_volume_device_name'))
-
- if image_id is not None:
- rconfig.set('compute', 'image_ref', image_id)
- if IMAGE_ID_ALT is not None:
- rconfig.set('compute', 'image_ref_alt', IMAGE_ID_ALT)
- if getattr(config.CONF, 'tempest_use_custom_flavors'):
- if flavor_id is not None:
- rconfig.set('compute', 'flavor_ref', flavor_id)
- if FLAVOR_ID_ALT is not None:
- rconfig.set('compute', 'flavor_ref_alt', FLAVOR_ID_ALT)
- if compute_cnt > 1:
- # enable multinode tests
- rconfig.set('compute', 'min_compute_nodes', compute_cnt)
- rconfig.set('compute-feature-enabled', 'live_migration', True)
-
- rconfig.set('identity', 'region', os.environ.get('OS_REGION_NAME'))
- identity_api_version = os.environ.get("OS_IDENTITY_API_VERSION", '3')
- if identity_api_version == '3':
- auth_version = 'v3'
- rconfig.set('identity-feature-enabled', 'api_v2', False)
- else:
- auth_version = 'v2'
- rconfig.set('identity', 'auth_version', auth_version)
- rconfig.set(
- 'validation', 'ssh_timeout',
- getattr(config.CONF, 'tempest_validation_ssh_timeout'))
- rconfig.set('object-storage', 'operator_role',
- getattr(config.CONF, 'tempest_object_storage_operator_role'))
-
- if os.environ.get('OS_ENDPOINT_TYPE') is not None:
- rconfig.set('identity', 'v3_endpoint_type',
- os.environ.get('OS_ENDPOINT_TYPE'))
-
- if os.environ.get('OS_ENDPOINT_TYPE') is not None:
- sections = rconfig.sections()
- services_list = [
- 'compute', 'volume', 'image', 'network', 'data-processing',
- 'object-storage', 'orchestration']
- for service in services_list:
- if service not in sections:
- rconfig.add_section(service)
- rconfig.set(service, 'endpoint_type',
- os.environ.get('OS_ENDPOINT_TYPE'))
-
- LOGGER.debug('Add/Update required params defined in tempest_conf.yaml '
- 'into tempest.conf file')
- update_tempest_conf_file(tempest_conf_file, rconfig)
-
- backup_tempest_config(tempest_conf_file)
-
-
-def configure_verifier(deployment_dir):
- """
- Execute rally verify configure-verifier, which generates tempest.conf
- """
- tempest_conf_file = os.path.join(deployment_dir, "tempest.conf")
- if os.path.isfile(tempest_conf_file):
- LOGGER.debug("Verifier is already configured.")
- LOGGER.debug("Reconfiguring the current verifier...")
- cmd = "rally verify configure-verifier --reconfigure"
- else:
- LOGGER.info("Configuring the verifier...")
- cmd = "rally verify configure-verifier"
- ft_utils.execute_command(cmd)
-
- LOGGER.debug("Looking for tempest.conf file...")
- if not os.path.isfile(tempest_conf_file):
- LOGGER.error("Tempest configuration file %s NOT found.",
- tempest_conf_file)
- raise Exception("Tempest configuration file %s NOT found."
- % tempest_conf_file)
- else:
- return tempest_conf_file
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt b/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt
deleted file mode 100644
index bb1aed33..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-
--
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt b/functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt
deleted file mode 100644
index fbbee2ff..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt
+++ /dev/null
@@ -1,249 +0,0 @@
-# Set of DefCore tempest test cases not flagged and required. It only contains OpenStack core (no object storage)
-# The approved guidelines (2016.08) are valid for Kilo, Liberty, Mitaka and Newton releases of OpenStack
-# The list can be generated using the Rest API from RefStack project:
-# https://refstack.openstack.org/api/v1/guidelines/2017.01/tests?target=compute&type=required&alias=true&flag=false
-tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image[id-3731d080-d4c5-4872-b41a-64d0d0021314]
-tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name[id-3b7c6fe4-dfe7-477c-9243-b06359db51e6]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name[id-ac1ad47f-984b-4441-9274-c9079b7a0666]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers[id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail[id-585e934c-448e-43c4-acbf-d06a9b899997]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus[id-cbc0f52f-05aa-492b-bdc1-84b575ca294b]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details[id-5de47127-9977-400a-936f-abcfbec1218f]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name[id-ac1ad47f-984b-4441-9274-c9079b7a0666]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers[id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail[id-585e934c-448e-43c4-acbf-d06a9b899997]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus[id-cbc0f52f-05aa-492b-bdc1-84b575ca294b]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details[id-5de47127-9977-400a-936f-abcfbec1218f]
-tempest.api.compute.servers.test_delete_server.DeleteServersTestJSON.test_delete_active_server[id-925fdfb4-5b13-47ea-ac8a-c36ae6fddb05]
-tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action[id-aacc71ca-1d70-4aa5-bbf6-0ff71470e43c]
-tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions[id-77ca5cc5-9990-45e0-ab98-1de8fead201a]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor[id-80c574cc-0925-44ba-8602-299028357dd9]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image[id-b3304c3b-97df-46d2-8cd3-e2b6659724e7]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name[id-f9eb2b70-735f-416c-b260-9914ac6181e4]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status[id-de2612ab-b7dd-4044-b0b1-d2539601911f]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results[id-67aec2d0-35fe-4503-9f92-f13272b867ed]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_active_status[id-ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor[id-573637f5-7325-47bb-9144-3476d0416908]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image[id-05e8a8e7-9659-459a-989d-92c2f501f4ba]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit[id-614cdfc1-d557-4bac-915b-3e67b48eee76]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name[id-9b067a7b-7fee-4f6a-b29c-be43fe18fc5a]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_status[id-ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard[id-e9f624ee-92af-4562-8bec-437945a18dcb]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date[id-74745ad8-b346-45b5-b9b8-509d7447fc1f]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date[id-87d12517-e20a-4c9c-97b6-dd1628d6d6c9]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits[id-12c80a9f-2dec-480e-882b-98ba15757659]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count[id-d47c17fb-eebd-4287-8e95-f20a7e627b18]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value[id-62610dd9-4713-4ee0-8beb-fd2c1aa7f950]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string[id-679bc053-5e70-4514-9800-3dfab1a380a6]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor[id-5913660b-223b-44d4-a651-a0fbfd44ca75]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image[id-ff01387d-c7ad-47b4-ae9e-64fa214638fe]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name[id-e2c77c4a-000a-4af3-a0bd-629a328bde7c]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted[id-93055106-2d34-46fe-af68-d9ddbf7ee570]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing[id-fcdf192d-0f74-4d89-911f-1ec002b822c4]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server[id-24a26f1a-1ddc-4eea-b0d7-a90cc874ad8f]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server[id-80a8094c-211e-440a-ab88-9e59d556c7ee]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard[id-2cb1baf6-ac8d-4429-bf0d-ba8a0ba53e32]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server[id-aaa6cdf3-55a7-461a-add9-1c8596b9a07c]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server[id-af8eafd4-38a7-4a4b-bdbc-75145a580560]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item[id-127642d6-4c7b-4486-b7cd-07265a378658]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item[id-3043c57d-7e0e-49a6-9a96-ad569c265e6a]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata[id-479da087-92b3-4dcf-aeb3-fd293b2d14ce]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata[id-211021f6-21de-4657-a68f-908878cfe251]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item[id-58c02d4f-5c67-40be-8744-d3fa5982eb1c]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata[id-344d981e-0c33-4997-8a5d-6c1d803e4134]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password[id-b92d5ec7-b1dd-44a2-87e4-45e888c46ef0]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair[id-f9e15296-d7f9-4e62-b53f-a04e89160833]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name[id-8fea6be7-065e-47cf-89b8-496e6f96c699]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address[id-89b90870-bc13-4b73-96af-f9d4f2b70077]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name[id-5e6ccff8-349d-4852-a8b3-055df7988dd2]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name[id-fd57f159-68d6-4c2a-902b-03070828a87e]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit[id-7fc74810-0bd2-4cd7-8244-4f33a9db865a]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256[id-c3e0fb12-07fc-4d76-a22e-37409887afe8]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor[id-18f5227f-d155-4429-807c-ccb103887537]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image[id-fcba1052-0a50-4cf3-b1ac-fae241edf02f]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid[id-4e72dc2d-44c5-4336-9667-f7972e95c402]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit[id-f4d7279b-5fd2-4bf2-9ba4-ae35df0d18c5]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id[id-75f79124-277c-45e6-a373-a1d6803f4cc4]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server[id-3436b02f-1b1e-4f03-881e-c6a602327439]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address[id-5226dd80-1e9c-4d8a-b5f9-b26ca4763fd0]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server[id-d4c023a0-9c55-4747-9dd5-413b820143c7]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_deleted_server[id-98fa0458-1485-440f-873b-fe7f0d714930]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server[id-d86141a7-906e-4731-b187-d64a2ea61422]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_reboot_deleted_server[id-98fa0458-1485-440f-873b-fe7f0d714930]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank[id-dbbfd247-c40c-449e-8f6c-d2aa7c7da7cf]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server[id-a31460a9-49e1-42aa-82ee-06e0bb7c2d03]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server[id-aa8eed43-e2cb-4ebf-930b-da14f6a21d81]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256[id-5c8e244c-dada-4590-9944-749c455b431f]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name[id-38204696-17c6-44da-9590-40f87fb5a899]
-tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas[id-9bfecac7-b966-4f47-913f-1a9e2c12134a]
-tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas[id-f1ef0a97-dbbb-4cca-adc5-c9fbc4f76107]
-tempest.api.compute.test_versions.TestVersions.test_list_api_versions[id-6c0a0990-43b6-4529-9b61-5fd8daf7c55c]
-tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume[id-52e9045a-e90d-4c0d-9087-79d657faffff]
-tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_list_get_volume_attachments[id-7fa563fe-f0f7-43eb-9e22-a1ece036b513]
-tempest.api.identity.v3.TestApiDiscovery.test_api_media_types[id-657c1970-4722-4189-8831-7325f3bc4265]
-tempest.api.identity.v3.TestApiDiscovery.test_api_version_resources[id-b9232f5e-d9e5-4d97-b96c-28d3db4de1bd]
-tempest.api.identity.v3.TestApiDiscovery.test_api_version_statuses[id-8879a470-abfb-47bb-bb8d-5a7fd279ad1e]
-tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types[id-657c1970-4722-4189-8831-7325f3bc4265]
-tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources[id-b9232f5e-d9e5-4d97-b96c-28d3db4de1bd]
-tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses[id-8879a470-abfb-47bb-bb8d-5a7fd279ad1e]
-tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token[id-6f8e4436-fc96-4282-8122-e41df57197a9]
-tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_delete_image[id-f848bb94-1c6e-45a4-8726-39e3a5b23535]
-tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_update_image[id-f66891a7-a35c-41a8-b590-a065c2a1caa6]
-tempest.api.image.v2.test_images.ListImagesTest.test_get_image_schema[id-622b925c-479f-4736-860d-adeaf13bc371]
-tempest.api.image.v2.test_images.ListImagesTest.test_get_images_schema[id-25c8d7b2-df21-460f-87ac-93130bcdc684]
-tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params[id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_container_format[id-9959ca1d-1aa7-4b7a-a1ea-0fff0499b37e]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_disk_format[id-4a4735a7-f22f-49b6-b0d9-66e1ef7453eb]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_limit[id-e914a891-3cc8-4b40-ad32-e0a39ffbddbb]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_min_max_size[id-4ad8c157-971a-4ba8-aa84-ed61154b1e7f]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_size[id-cf1b9a48-8340-480e-af7b-fe7e17690876]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_status[id-7fc9e369-0f58-4d05-9aa5-0969e2d59d15]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_visibility[id-7a95bb92-d99e-4b12-9718-7bc6ab73e6d2]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_no_params[id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_get_image_schema[id-622b925c-479f-4736-860d-adeaf13bc371]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_get_images_schema[id-25c8d7b2-df21-460f-87ac-93130bcdc684]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_container_format[id-9959ca1d-1aa7-4b7a-a1ea-0fff0499b37e]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_disk_format[id-4a4735a7-f22f-49b6-b0d9-66e1ef7453eb]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_limit[id-e914a891-3cc8-4b40-ad32-e0a39ffbddbb]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_min_max_size[id-4ad8c157-971a-4ba8-aa84-ed61154b1e7f]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_size[id-cf1b9a48-8340-480e-af7b-fe7e17690876]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_status[id-7fc9e369-0f58-4d05-9aa5-0969e2d59d15]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_visibility[id-7a95bb92-d99e-4b12-9718-7bc6ab73e6d2]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_no_params[id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_image_null_id[id-32248db1-ab88-4821-9604-c7c369f1f88c]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_non_existing_image[id-6fe40f1c-57bd-4918-89cc-8500f850f3de]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_delete_deleted_image[id-e57fc127-7ba0-4693-92d7-1d8a05ebcba9]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_image_null_id[id-ef45000d-0a72-4781-866d-4cb7bf2562ad]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_non_existent_image[id-668743d5-08ad-4480-b2b8-15da34f81d9f]
-tempest.api.image.v2.test_images_tags.ImagesTagsTest.test_update_delete_tags_for_image[id-10407036-6059-4f95-a2cd-cbbbee7ed329]
-tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_delete_non_existing_tag[id-39c023a2-325a-433a-9eea-649bf1414b19]
-tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_update_tags_for_non_existing_image[id-8cd30f82-6f9a-4c6e-8034-c1b51fba43d9]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_all_attributes[id-a4d9ec4c-0306-4111-a75c-db01a709030b]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_allocation_pools[id-bec949c4-3147-4ba6-af5f-cd2306118404]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_dhcp_enabled[id-94ce038d-ff0a-4a4c-a56b-09da3ca0b55d]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw[id-9393b468-186d-496d-aa36-732348cd76e7]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw_and_allocation_pools[id-8217a149-0c6c-4cfb-93db-0486f707d13f]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_host_routes_and_dns_nameservers[id-d830de0a-be47-468f-8f02-1fd996118289]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_without_gateway[id-d2d596e2-8e76-47a9-ac51-d4648009f4d3]
-tempest.api.network.test_networks.NetworksTest.test_create_update_delete_network_subnet[id-0e269138-0da6-4efc-a46d-578161e7b221]
-tempest.api.network.test_networks.NetworksTest.test_delete_network_with_subnet[id-f04f61a9-b7f3-4194-90b2-9bcf660d1bfe]
-tempest.api.network.test_networks.NetworksTest.test_list_networks[id-f7ffdeda-e200-4a7a-bcbe-05716e86bf43]
-tempest.api.network.test_networks.NetworksTest.test_list_networks_fields[id-6ae6d24f-9194-4869-9c85-c313cb20e080]
-tempest.api.network.test_networks.NetworksTest.test_list_subnets[id-db68ba48-f4ea-49e9-81d1-e367f6d0b20a]
-tempest.api.network.test_networks.NetworksTest.test_list_subnets_fields[id-842589e3-9663-46b0-85e4-7f01273b0412]
-tempest.api.network.test_networks.NetworksTest.test_show_network[id-2bf13842-c93f-4a69-83ed-717d2ec3b44e]
-tempest.api.network.test_networks.NetworksTest.test_show_network_fields[id-867819bb-c4b6-45f7-acf9-90edcf70aa5e]
-tempest.api.network.test_networks.NetworksTest.test_show_subnet[id-bd635d81-6030-4dd1-b3b9-31ba0cfdf6cc]
-tempest.api.network.test_networks.NetworksTest.test_show_subnet_fields[id-270fff0b-8bfc-411f-a184-1e8fd35286f0]
-tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp[id-3d3852eb-3009-49ec-97ac-5ce83b73010a]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_all_attributes[id-a4d9ec4c-0306-4111-a75c-db01a709030b]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_allocation_pools[id-bec949c4-3147-4ba6-af5f-cd2306118404]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_dhcp_enabled[id-94ce038d-ff0a-4a4c-a56b-09da3ca0b55d]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_gw[id-9393b468-186d-496d-aa36-732348cd76e7]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_gw_and_allocation_pools[id-8217a149-0c6c-4cfb-93db-0486f707d13f]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_host_routes_and_dns_nameservers[id-d830de0a-be47-468f-8f02-1fd996118289]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_without_gateway[id-d2d596e2-8e76-47a9-ac51-d4648009f4d3]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_update_delete_network_subnet[id-0e269138-0da6-4efc-a46d-578161e7b221]
-tempest.api.network.test_networks.NetworksTestJSON.test_delete_network_with_subnet[id-f04f61a9-b7f3-4194-90b2-9bcf660d1bfe]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_networks[id-f7ffdeda-e200-4a7a-bcbe-05716e86bf43]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_networks_fields[id-6ae6d24f-9194-4869-9c85-c313cb20e080]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_subnets[id-db68ba48-f4ea-49e9-81d1-e367f6d0b20a]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_subnets_fields[id-842589e3-9663-46b0-85e4-7f01273b0412]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_network[id-2bf13842-c93f-4a69-83ed-717d2ec3b44e]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_network_fields[id-867819bb-c4b6-45f7-acf9-90edcf70aa5e]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_subnet[id-bd635d81-6030-4dd1-b3b9-31ba0cfdf6cc]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_subnet_fields[id-270fff0b-8bfc-411f-a184-1e8fd35286f0]
-tempest.api.network.test_networks.NetworksTestJSON.test_update_subnet_gw_dns_host_routes_dhcp[id-3d3852eb-3009-49ec-97ac-5ce83b73010a]
-tempest.api.network.test_ports.PortsTestJSON.test_create_bulk_port[id-67f1b811-f8db-43e2-86bd-72c074d4a42c]
-tempest.api.network.test_ports.PortsTestJSON.test_create_port_in_allowed_allocation_pools[id-0435f278-40ae-48cb-a404-b8a087bc09b1]
-tempest.api.network.test_ports.PortsTestJSON.test_create_update_delete_port[id-c72c1c0c-2193-4aca-aaa4-b1442640f51c]
-tempest.api.network.test_ports.PortsTestJSON.test_list_ports[id-cf95b358-3e92-4a29-a148-52445e1ac50e]
-tempest.api.network.test_ports.PortsTestJSON.test_list_ports_fields[id-ff7f117f-f034-4e0e-abff-ccef05c454b4]
-tempest.api.network.test_ports.PortsTestJSON.test_show_port[id-c9a685bd-e83f-499c-939f-9f7863ca259f]
-tempest.api.network.test_ports.PortsTestJSON.test_show_port_fields[id-45fcdaf2-dab0-4c13-ac6c-fcddfb579dbd]
-tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_security_group_and_extra_attributes[id-58091b66-4ff4-4cc1-a549-05d60c7acd1a]
-tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_two_security_groups_and_extra_attributes[id-edf6766d-3d40-4621-bc6e-2521a44c257d]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group[id-bfd128e5-3c92-44b6-9d66-7fe29d22c802]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_additional_args[id-87dfbcf9-1849-43ea-b1e4-efa3eeae9f71]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code[id-c9463db8-b44d-4f52-b6c0-8dbda99f26ce]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_protocol_integer_value[id-0a307599-6655-4220-bebc-fd70c64f2290]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_group_id[id-c2ed2deb-7a0c-44d8-8b4c-a5825b5c310b]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_ip_prefix[id-16459776-5da2-4634-bce4-4b55ee3ec188]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_show_delete_security_group_rule[id-cfb99e0e-7410-4a3d-8a0c-959a63ee77e9]
-tempest.api.network.test_security_groups.SecGroupTest.test_list_security_groups[id-e30abd17-fef9-4739-8617-dc26da88e686]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_additional_default_security_group_fails[id-2323061e-9fbf-4eb0-b547-7e8fafc90849]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_duplicate_security_group_rule_fails[id-8fde898f-ce88-493b-adc9-4e4692879fc5]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_ethertype[id-5666968c-fff3-40d6-9efc-df1c8bd01abb]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_protocol[id-981bdc22-ce48-41ed-900a-73148b583958]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_remote_ip_prefix[id-5f8daf69-3c5f-4aaa-88c9-db1d66f68679]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_invalid_ports[id-0d9c7791-f2ad-4e2f-ac73-abf2373b0d2d]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_remote_groupid[id-4bf786fd-2f02-443c-9716-5b98e159a49a]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_security_group[id-be308db6-a7cf-4d5c-9baf-71bafd73f35e]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_delete_non_existent_security_group[id-1f1bb89d-5664-4956-9fcd-83ee0fa603df]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group[id-424fd5c3-9ddc-486a-b45f-39bf0c820fc6]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group_rule[id-4c094c09-000b-4e41-8100-9617600c02a6]
-tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list[id-01f1ae88-eba9-4c6b-a011-6f7ace06b725]
-tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions[id-94607eb0-43a5-47ca-82aa-736b41bd2e2c]
-tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_create_get_delete_snapshot_metadata[id-a2f20f99-e363-4584-be97-bc33afb1a56c]
-tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_crud_snapshot_metadata[id-a2f20f99-e363-4584-be97-bc33afb1a56c]
-tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_update_snapshot_metadata_item[id-e8ff85c5-8f97-477f-806a-3ac364a949ed]
-tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_create_get_delete_volume_metadata[id-6f5b125b-f664-44bf-910f-751591fe5769]
-tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_crud_volume_metadata[id-6f5b125b-f664-44bf-910f-751591fe5769]
-tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_update_volume_metadata_item[id-862261c5-8df4-475a-8c21-946e50e36a20]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_attach_detach_volume_to_instance[id-fff42874-7db5-4487-a8e1-ddda5fb5288d]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_get_volume_attachment[id-9516a2c8-9135-488c-8dd6-5677a7e5f371]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_reserve_unreserve_volume[id-92c4ef64-51b2-40c0-9f7e-4749fbaaba33]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_bootable[id-63e21b4c-0a0c-41f6-bfc3-7c2816815599]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update[id-fff74e1e-5bd3-4b33-9ea9-24c103bc3f59]
-tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete[id-27fb0e9f-fb64-41dd-8bdb-1ffa762f0d51]
-tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone[id-3f591b4a-7dc6-444c-bd51-77469506b3a1]
-tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_from_image[id-54a01030-c7fc-447c-86ee-c1182beae638]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list[id-0b6ddd39-b948-471f-8038-4787978747c4]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_by_name[id-a28e8da4-0b56-472f-87a8-0f4d3f819c02]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_by_name[id-2de3a6d4-12aa-403b-a8f2-fdeb42a89623]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_param_display_name_and_status[id-777c87c1-2fc4-4883-8b8e-5c0b951d1ec8]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_display_name_and_status[id-856ab8ca-6009-4c37-b691-be1065528ad4]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_metadata[id-1ca92d3c-4a8e-4b43-93f5-e4c7fb3b291d]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_details[id-adcbb5a7-5ad8-4b61-bd10-5380e111a877]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_param_metadata[id-b5ebea1b-0603-40a0-bb41-15fcd0a53214]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_availability_zone[id-c0cfa863-3020-40d7-b587-e35f597d5d87]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_status[id-39654e13-734c-4dab-95ce-7613bf8407ce]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_availability_zone[id-e1b80d13-94f0-4ba2-a40e-386af29f8db1]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_status[id-2943f712-71ec-482a-bf49-d5ca06216b9f]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_attach_volumes_with_nonexistent_volume_id[id-f5e56b0a-5d02-43c1-a2a7-c9b792c2e3f6]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_invalid_size[id-1ed83a8a-682d-4dfb-a30e-ee63ffd6c049]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_snapshot_id[id-0c36f6ae-4604-4017-b0a9-34fdc63096f9]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_source_volid[id-47c73e08-4be8-45bb-bfdf-0c4e79b88344]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_volume_type[id-10254ed8-3849-454e-862e-3ab8e6aa01d2]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_out_passing_size[id-9387686f-334f-4d31-a439-33494b9e2683]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_negative[id-8b472729-9eba-446e-a83b-916bdb34bef7]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_zero[id-41331caa-eaf4-4001-869d-bc18c1869360]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_without_passing_size[id-9387686f-334f-4d31-a439-33494b9e2683]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_invalid_volume_id[id-1f035827-7c32-4019-9240-b4ec2dbd9dfd]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_volume_without_passing_volume_id[id-441a1550-5d44-4b30-af0f-a6d402f52026]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_detach_volumes_with_invalid_volume_id[id-9f9c24e4-011d-46b5-b992-952140ce237a]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_invalid_volume_id[id-30799cfd-7ee4-446c-b66c-45b383ed211b]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_volume_without_passing_volume_id[id-c6c3db06-29ad-4e91-beb0-2ab195fe49e3]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_invalid_status[id-ba94b27b-be3f-496c-a00e-0283b373fa75]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_nonexistent_name[id-9ca17820-a0e7-4cbd-a7fa-f4468735e359]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_invalid_status[id-143b279b-7522-466b-81be-34a87d564a7c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_nonexistent_name[id-0f4aa809-8c7b-418f-8fb3-84c7a5dfc52f]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_negative_volume_status[id-449c4ed2-ecdd-47bb-98dc-072aeccf158c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_nonexistent_volume_id[id-ac6084c0-0546-45f9-b284-38a367e0e0e2]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_unreserve_volume_with_nonexistent_volume_id[id-eb467654-3dc1-4a72-9b46-47c29d22654c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_empty_volume_id[id-72aeca85-57a5-4c1f-9057-f320f9ea575b]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_invalid_volume_id[id-e66e40d6-65e6-4e75-bdc7-636792fa152d]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_nonexistent_volume_id[id-0186422c-999a-480e-a026-6a665744c30c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_delete_nonexistent_volume_id[id-555efa6e-efcd-44ef-8a3b-4a7ca4837a29]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_get_nonexistent_volume_id[id-f131c586-9448-44a4-a8b0-54ca838aa43e]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_get_list_update_delete[id-2a8abbe4-d871-46db-b049-c41f5af8216e]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_details_with_params[id-220a1022-1fcd-4a74-a7bd-6b859156cda2]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_with_params[id-59f41f43-aebf-48a9-ab5d-d76340fab32b]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_volume_from_snapshot[id-677863d1-3142-456d-b6ac-9924f667a7f4]
-tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_details_with_params[id-220a1022-1fcd-4a74-a7bd-6b859156cda2]
-tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_with_params[id-59f41f43-aebf-48a9-ab5d-d76340fab32b]
-tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id[id-e3e466af-70ab-4f4b-a967-ab04e3532ea7]
-tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id[id-bb9da53e-d335-4309-9c15-7e76fd5e4d6d]
-tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_pagination[id-e9138a2c-f67b-4796-8efa-635c196d01de]
-tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_with_multiple_params[id-2a7064eb-b9c3-429b-b888-33928fc5edd3]
-tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_pagination[id-af55e775-8e4b-4feb-8719-215c43b0238c]
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml b/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml
deleted file mode 100644
index b47a9736..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-# This is an empty configuration file to be filled up with the desired options
-# to generate a custom tempest.conf
-# Examples:
-# network-feature-enabled:
-# port_security: True
-
-# volume-feature-enabled:
-# api_v1: False
-
-# validation:
-# image_ssh_user: root
-# ssh_timeout: 300
-
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt b/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt
deleted file mode 100644
index df2c3126..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# This is an empty file to be filled up with the desired tempest test cases
-# Examples:
-#tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops[compute,id-7fff3fb3-91d8-4fd0-bd7d-0204f1f180ba,network,smoke]
-#tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops[compute,id-f323b3ba-82f8-4db7-8ea6-6a895869ec49,network,smoke]
diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py
deleted file mode 100644
index dd15c08e..00000000
--- a/functest/opnfv_tests/openstack/tempest/tempest.py
+++ /dev/null
@@ -1,484 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-"""Tempest testcases implementation."""
-
-from __future__ import division
-
-import logging
-import os
-import re
-import shutil
-import subprocess
-import time
-import uuid
-
-import yaml
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.opnfv_tests.openstack.tempest import conf_utils
-from functest.utils import config
-from functest.utils import env
-import functest.utils.functest_utils as ft_utils
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.project import ProjectConfig
-from snaps.config.user import UserConfig
-
-from snaps.openstack import create_flavor
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import deploy_utils
-
-
-LOGGER = logging.getLogger(__name__)
-
-
-class TempestCommon(testcase.TestCase):
- # pylint: disable=too-many-instance-attributes
- """TempestCommon testcases implementation class."""
-
- def __init__(self, **kwargs):
- super(TempestCommon, self).__init__(**kwargs)
- self.resources = TempestResourcesManager(**kwargs)
- self.mode = ""
- self.option = []
- self.verifier_id = conf_utils.get_verifier_id()
- self.verifier_repo_dir = conf_utils.get_verifier_repo_dir(
- self.verifier_id)
- self.deployment_id = conf_utils.get_verifier_deployment_id()
- self.deployment_dir = conf_utils.get_verifier_deployment_dir(
- self.verifier_id, self.deployment_id)
- self.verification_id = None
-
- @staticmethod
- def read_file(filename):
- """Read file and return content as a stripped list."""
- with open(filename) as src:
- return [line.strip() for line in src.readlines()]
-
- @staticmethod
- def get_verifier_result(verif_id):
- """Retrieve verification results."""
- result = {
- 'num_tests': 0,
- 'num_success': 0,
- 'num_failures': 0,
- 'num_skipped': 0
- }
- cmd = ["rally", "verify", "show", "--uuid", verif_id]
- LOGGER.info("Showing result for a verification: '%s'.", cmd)
- proc = subprocess.Popen(cmd,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- for line in proc.stdout:
- new_line = line.replace(' ', '').split('|')
- if 'Tests' in new_line:
- break
- LOGGER.info(line)
- if 'Testscount' in new_line:
- result['num_tests'] = int(new_line[2])
- elif 'Success' in new_line:
- result['num_success'] = int(new_line[2])
- elif 'Skipped' in new_line:
- result['num_skipped'] = int(new_line[2])
- elif 'Failures' in new_line:
- result['num_failures'] = int(new_line[2])
- return result
-
- def generate_test_list(self, verifier_repo_dir):
- """Generate test list based on the test mode."""
- LOGGER.debug("Generating test case list...")
- if self.mode == 'custom':
- if os.path.isfile(conf_utils.TEMPEST_CUSTOM):
- shutil.copyfile(
- conf_utils.TEMPEST_CUSTOM, conf_utils.TEMPEST_RAW_LIST)
- else:
- raise Exception("Tempest test list file %s NOT found."
- % conf_utils.TEMPEST_CUSTOM)
- else:
- if self.mode == 'smoke':
- testr_mode = r"'tempest\.(api|scenario).*\[.*\bsmoke\b.*\]'"
- elif self.mode == 'full':
- testr_mode = r"'^tempest\.'"
- else:
- testr_mode = self.mode
- cmd = ("cd {0};"
- "testr list-tests {1} > {2};"
- "cd -;".format(verifier_repo_dir,
- testr_mode,
- conf_utils.TEMPEST_RAW_LIST))
- ft_utils.execute_command(cmd)
-
- def apply_tempest_blacklist(self):
- """Exclude blacklisted test cases."""
- LOGGER.debug("Applying tempest blacklist...")
- cases_file = self.read_file(conf_utils.TEMPEST_RAW_LIST)
- result_file = open(conf_utils.TEMPEST_LIST, 'w')
- black_tests = []
- try:
- installer_type = env.get('INSTALLER_TYPE')
- deploy_scenario = env.get('DEPLOY_SCENARIO')
- if bool(installer_type) * bool(deploy_scenario):
- # if INSTALLER_TYPE and DEPLOY_SCENARIO are set we read the
- # file
- black_list_file = open(conf_utils.TEMPEST_BLACKLIST)
- black_list_yaml = yaml.safe_load(black_list_file)
- black_list_file.close()
- for item in black_list_yaml:
- scenarios = item['scenarios']
- installers = item['installers']
- if (deploy_scenario in scenarios and
- installer_type in installers):
- tests = item['tests']
- for test in tests:
- black_tests.append(test)
- break
- except Exception: # pylint: disable=broad-except
- black_tests = []
- LOGGER.debug("Tempest blacklist file does not exist.")
-
- for cases_line in cases_file:
- for black_tests_line in black_tests:
- if black_tests_line in cases_line:
- break
- else:
- result_file.write(str(cases_line) + '\n')
- result_file.close()
-
- def run_verifier_tests(self):
- """Execute tempest test cases."""
- cmd = ["rally", "verify", "start", "--load-list",
- conf_utils.TEMPEST_LIST]
- cmd.extend(self.option)
- LOGGER.info("Starting Tempest test suite: '%s'.", cmd)
-
- f_stdout = open(
- os.path.join(conf_utils.TEMPEST_RESULTS_DIR, "tempest.log"), 'w+')
- f_stderr = open(
- os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest-error.log"), 'w+')
-
- proc = subprocess.Popen(
- cmd,
- stdout=subprocess.PIPE,
- stderr=f_stderr,
- bufsize=1)
-
- with proc.stdout:
- for line in iter(proc.stdout.readline, b''):
- if re.search(r"\} tempest\.", line):
- LOGGER.info(line.replace('\n', ''))
- elif re.search('Starting verification', line):
- LOGGER.info(line.replace('\n', ''))
- first_pos = line.index("UUID=") + len("UUID=")
- last_pos = line.index(") for deployment")
- self.verification_id = line[first_pos:last_pos]
- LOGGER.debug('Verification UUID: %s', self.verification_id)
- f_stdout.write(line)
- proc.wait()
-
- f_stdout.close()
- f_stderr.close()
-
- if self.verification_id is None:
- raise Exception('Verification UUID not found')
-
- def parse_verifier_result(self):
- """Parse and save test results."""
- stat = self.get_verifier_result(self.verification_id)
- try:
- num_executed = stat['num_tests'] - stat['num_skipped']
- try:
- self.result = 100 * stat['num_success'] / num_executed
- except ZeroDivisionError:
- self.result = 0
- if stat['num_tests'] > 0:
- LOGGER.info("All tests have been skipped")
- else:
- LOGGER.error("No test has been executed")
- return
-
- with open(os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest.log"), 'r') as logfile:
- output = logfile.read()
-
- success_testcases = []
- for match in re.findall(r'.*\{0\} (.*?)[. ]*success ', output):
- success_testcases.append(match)
- failed_testcases = []
- for match in re.findall(r'.*\{0\} (.*?)[. ]*fail ', output):
- failed_testcases.append(match)
- skipped_testcases = []
- for match in re.findall(r'.*\{0\} (.*?)[. ]*skip:', output):
- skipped_testcases.append(match)
-
- self.details = {"tests": stat['num_tests'],
- "failures": stat['num_failures'],
- "success": success_testcases,
- "skipped": skipped_testcases,
- "errors": failed_testcases}
- except Exception: # pylint: disable=broad-except
- self.result = 0
-
- LOGGER.info("Tempest %s success_rate is %s%%",
- self.case_name, self.result)
-
- def generate_report(self):
- """Generate verification report."""
- html_file = os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest-report.html")
- cmd = ["rally", "verify", "report", "--type", "html", "--uuid",
- self.verification_id, "--to", html_file]
- subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
-
- def run(self, **kwargs):
-
- self.start_time = time.time()
- try:
- if not os.path.exists(conf_utils.TEMPEST_RESULTS_DIR):
- os.makedirs(conf_utils.TEMPEST_RESULTS_DIR)
- resources = self.resources.create()
- compute_cnt = snaps_utils.get_active_compute_cnt(
- self.resources.os_creds)
- conf_utils.configure_tempest(
- self.deployment_dir,
- network_name=resources.get("network_name"),
- image_id=resources.get("image_id"),
- flavor_id=resources.get("flavor_id"),
- compute_cnt=compute_cnt)
- self.generate_test_list(self.verifier_repo_dir)
- self.apply_tempest_blacklist()
- self.run_verifier_tests()
- self.parse_verifier_result()
- self.generate_report()
- res = testcase.TestCase.EX_OK
- except Exception as err: # pylint: disable=broad-except
- LOGGER.error('Error with run: %s', err)
- res = testcase.TestCase.EX_RUN_ERROR
- finally:
- self.resources.cleanup()
-
- self.stop_time = time.time()
- return res
-
-
-class TempestSmokeSerial(TempestCommon):
- """Tempest smoke serial testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_smoke_serial'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "smoke"
- self.option = ["--concurrency", "1"]
-
-
-class TempestSmokeParallel(TempestCommon):
- """Tempest smoke parallel testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_smoke_parallel'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "smoke"
-
-
-class TempestFullParallel(TempestCommon):
- """Tempest full parallel testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_full_parallel'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "full"
-
-
-class TempestCustom(TempestCommon):
- """Tempest custom testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_custom'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "custom"
- self.option = ["--concurrency", "1"]
-
-
-class TempestDefcore(TempestCommon):
- """Tempest Defcore testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_defcore'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "defcore"
- self.option = ["--concurrency", "1"]
-
-
-class TempestResourcesManager(object):
- """Tempest resource manager."""
- def __init__(self, **kwargs):
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
- self.guid = '-' + str(uuid.uuid4())
- self.creators = list()
- self.cirros_image_config = getattr(
- config.CONF, 'snaps_images_cirros', None)
-
- def _create_project(self):
- """Create project for tests."""
- project_creator = deploy_utils.create_project(
- self.os_creds, ProjectConfig(
- name=getattr(
- config.CONF, 'tempest_identity_tenant_name') + self.guid,
- description=getattr(
- config.CONF, 'tempest_identity_tenant_description')))
- if project_creator is None or project_creator.get_project() is None:
- raise Exception("Failed to create tenant")
- self.creators.append(project_creator)
- return project_creator.get_project().id
-
- def _create_user(self):
- """Create user for tests."""
- user_creator = deploy_utils.create_user(
- self.os_creds, UserConfig(
- name=getattr(
- config.CONF, 'tempest_identity_user_name') + self.guid,
- password=getattr(
- config.CONF, 'tempest_identity_user_password'),
- project_name=getattr(
- config.CONF, 'tempest_identity_tenant_name') + self.guid))
- if user_creator is None or user_creator.get_user() is None:
- raise Exception("Failed to create user")
- self.creators.append(user_creator)
- return user_creator.get_user().id
-
- def _create_network(self, project_name):
- """Create network for tests."""
- tempest_network_type = None
- tempest_physical_network = None
- tempest_segmentation_id = None
-
- tempest_network_type = getattr(
- config.CONF, 'tempest_network_type', None)
- tempest_physical_network = getattr(
- config.CONF, 'tempest_physical_network', None)
- tempest_segmentation_id = getattr(
- config.CONF, 'tempest_segmentation_id', None)
- tempest_net_name = getattr(
- config.CONF, 'tempest_private_net_name') + self.guid
-
- network_creator = deploy_utils.create_network(
- self.os_creds, NetworkConfig(
- name=tempest_net_name,
- project_name=project_name,
- network_type=tempest_network_type,
- physical_network=tempest_physical_network,
- segmentation_id=tempest_segmentation_id,
- subnet_settings=[SubnetConfig(
- name=getattr(
- config.CONF,
- 'tempest_private_subnet_name') + self.guid,
- project_name=project_name,
- cidr=getattr(
- config.CONF, 'tempest_private_subnet_cidr'))]))
- if network_creator is None or network_creator.get_network() is None:
- raise Exception("Failed to create private network")
- self.creators.append(network_creator)
- return tempest_net_name
-
- def _create_image(self, name):
- """Create image for tests"""
- os_image_settings = openstack_tests.cirros_image_settings(
- name, public=True,
- image_metadata=self.cirros_image_config)
- image_creator = deploy_utils.create_image(
- self.os_creds, os_image_settings)
- if image_creator is None:
- raise Exception('Failed to create image')
- self.creators.append(image_creator)
- return image_creator.get_image().id
-
- def _create_flavor(self, name):
- """Create flavor for tests."""
- scenario = env.get('DEPLOY_SCENARIO')
- flavor_metadata = None
- if 'ovs' in scenario or 'fdio' in scenario:
- flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE
- flavor_creator = OpenStackFlavor(
- self.os_creds, FlavorConfig(
- name=name,
- ram=getattr(config.CONF, 'openstack_flavor_ram'),
- disk=getattr(config.CONF, 'openstack_flavor_disk'),
- vcpus=getattr(config.CONF, 'openstack_flavor_vcpus'),
- metadata=flavor_metadata))
- flavor = flavor_creator.create()
- if flavor is None:
- raise Exception('Failed to create flavor')
- self.creators.append(flavor_creator)
- return flavor.id
-
- def create(self, use_custom_images=False, use_custom_flavors=False,
- create_project=False):
- """Create resources for Tempest test suite."""
- result = {
- 'tempest_net_name': None,
- 'image_id': None,
- 'image_id_alt': None,
- 'flavor_id': None,
- 'flavor_id_alt': None
- }
- project_name = None
-
- if create_project:
- LOGGER.debug("Creating project and user for Tempest suite")
- project_name = getattr(
- config.CONF, 'tempest_identity_tenant_name') + self.guid
- result['project_id'] = self._create_project()
- result['user_id'] = self._create_user()
- result['tenant_id'] = result['project_id'] # for compatibility
-
- LOGGER.debug("Creating private network for Tempest suite")
- result['tempest_net_name'] = self._create_network(project_name)
-
- LOGGER.debug("Creating image for Tempest suite")
- image_name = getattr(config.CONF, 'openstack_image_name') + self.guid
- result['image_id'] = self._create_image(image_name)
-
- if use_custom_images:
- LOGGER.debug("Creating 2nd image for Tempest suite")
- image_name = getattr(
- config.CONF, 'openstack_image_name_alt') + self.guid
- result['image_id_alt'] = self._create_image(image_name)
-
- if (getattr(config.CONF, 'tempest_use_custom_flavors') == 'True' or
- use_custom_flavors):
- LOGGER.info("Creating flavor for Tempest suite")
- name = getattr(config.CONF, 'openstack_flavor_name') + self.guid
- result['flavor_id'] = self._create_flavor(name)
-
- if use_custom_flavors:
- LOGGER.info("Creating 2nd flavor for Tempest suite")
- scenario = env.get('DEPLOY_SCENARIO')
- if 'ovs' in scenario or 'fdio' in scenario:
- setattr(config.CONF, 'openstack_flavor_ram', 1024)
- name = getattr(
- config.CONF, 'openstack_flavor_name_alt') + self.guid
- result['flavor_id_alt'] = self._create_flavor(name)
-
- return result
-
- def cleanup(self):
- """
- Cleanup all OpenStack objects. Should be called on completion.
- """
- for creator in reversed(self.creators):
- try:
- creator.clean()
- except Exception as err: # pylint: disable=broad-except
- LOGGER.error('Unexpected error cleaning - %s', err)
diff --git a/functest/opnfv_tests/openstack/vping/__init__.py b/functest/opnfv_tests/openstack/vping/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/vping/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/vping/ping.sh b/functest/opnfv_tests/openstack/vping/ping.sh
deleted file mode 100644
index 15f5e84e..00000000
--- a/functest/opnfv_tests/openstack/vping/ping.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-
-ping -c 1 $1 2>&1 >/dev/null
-RES=$?
-if [ "Z$RES" = "Z0" ] ; then
- echo 'vPing OK'
-else
- echo 'vPing KO'
-fi
diff --git a/functest/opnfv_tests/openstack/vping/vping_base.py b/functest/opnfv_tests/openstack/vping/vping_base.py
deleted file mode 100644
index 586b8d65..00000000
--- a/functest/opnfv_tests/openstack/vping/vping_base.py
+++ /dev/null
@@ -1,204 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Define the parent class of vping_ssh and vping_userdata testcases."""
-
-from datetime import datetime
-import logging
-import time
-import uuid
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-from functest.utils import env
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.openstack import create_flavor
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import deploy_utils
-
-
-class VPingBase(testcase.TestCase):
-
- """
- Base class for vPing tests that check connectivity between two VMs shared
- internal network.
- This class is responsible for creating the image, internal network.
- """
- # pylint: disable=too-many-instance-attributes
-
- def __init__(self, **kwargs):
- super(VPingBase, self).__init__(**kwargs)
- self.logger = logging.getLogger(__name__)
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
- self.creators = list()
- self.image_creator = None
- self.network_creator = None
- self.vm1_creator = None
- self.vm2_creator = None
- self.router_creator = None
-
- # Shared metadata
- self.guid = '-' + str(uuid.uuid4())
-
- self.router_name = getattr(
- config.CONF, 'vping_router_name') + self.guid
- self.vm1_name = getattr(
- config.CONF, 'vping_vm_name_1') + self.guid
- self.vm2_name = getattr(config.CONF, 'vping_vm_name_2') + self.guid
-
- self.vm_boot_timeout = getattr(config.CONF, 'vping_vm_boot_timeout')
- self.vm_delete_timeout = getattr(
- config.CONF, 'vping_vm_delete_timeout')
- self.vm_ssh_connect_timeout = getattr(
- config.CONF, 'vping_vm_ssh_connect_timeout')
- self.ping_timeout = getattr(config.CONF, 'vping_ping_timeout')
- self.flavor_name = 'vping-flavor' + self.guid
-
- # Move this configuration option up for all tests to leverage
- if hasattr(config.CONF, 'snaps_images_cirros'):
- self.cirros_image_config = getattr(
- config.CONF, 'snaps_images_cirros')
- else:
- self.cirros_image_config = None
-
- def run(self, **kwargs): # pylint: disable=too-many-locals
- """
- Begins the test execution which should originate from the subclass
- """
- self.logger.info('Begin virtual environment setup')
-
- self.start_time = time.time()
- self.logger.info(
- "vPing Start Time:'%s'",
- datetime.fromtimestamp(self.start_time).strftime(
- '%Y-%m-%d %H:%M:%S'))
-
- image_base_name = '{}-{}'.format(
- getattr(config.CONF, 'vping_image_name'),
- str(self.guid))
- os_image_settings = openstack_tests.cirros_image_settings(
- image_base_name, image_metadata=self.cirros_image_config)
- self.logger.info("Creating image with name: '%s'", image_base_name)
-
- self.image_creator = deploy_utils.create_image(
- self.os_creds, os_image_settings)
- self.creators.append(self.image_creator)
-
- private_net_name = getattr(
- config.CONF, 'vping_private_net_name') + self.guid
- private_subnet_name = getattr(
- config.CONF, 'vping_private_subnet_name') + self.guid
- private_subnet_cidr = getattr(config.CONF, 'vping_private_subnet_cidr')
-
- vping_network_type = None
- vping_physical_network = None
- vping_segmentation_id = None
-
- if hasattr(config.CONF, 'vping_network_type'):
- vping_network_type = getattr(config.CONF, 'vping_network_type')
- if hasattr(config.CONF, 'vping_physical_network'):
- vping_physical_network = getattr(
- config.CONF, 'vping_physical_network')
- if hasattr(config.CONF, 'vping_segmentation_id'):
- vping_segmentation_id = getattr(
- config.CONF, 'vping_segmentation_id')
-
- self.logger.info(
- "Creating network with name: '%s'", private_net_name)
- self.network_creator = deploy_utils.create_network(
- self.os_creds,
- NetworkConfig(
- name=private_net_name,
- network_type=vping_network_type,
- physical_network=vping_physical_network,
- segmentation_id=vping_segmentation_id,
- subnet_settings=[SubnetConfig(
- name=private_subnet_name,
- cidr=private_subnet_cidr)]))
- self.creators.append(self.network_creator)
-
- # Creating router to external network
- log = "Creating router with name: '%s'" % self.router_name
- self.logger.info(log)
- ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
- self.router_creator = deploy_utils.create_router(
- self.os_creds,
- RouterConfig(
- name=self.router_name,
- external_gateway=ext_net_name,
- internal_subnets=[private_subnet_name]))
- self.creators.append(self.router_creator)
-
- self.logger.info(
- "Creating flavor with name: '%s'", self.flavor_name)
- scenario = env.get('DEPLOY_SCENARIO')
- flavor_metadata = None
- flavor_ram = 512
- if 'ovs' in scenario or 'fdio' in scenario:
- flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE
- flavor_ram = 1024
- flavor_creator = OpenStackFlavor(
- self.os_creds,
- FlavorConfig(name=self.flavor_name, ram=flavor_ram, disk=1,
- vcpus=1, metadata=flavor_metadata))
- flavor_creator.create()
- self.creators.append(flavor_creator)
-
- def _execute(self):
- """
- Method called by subclasses after environment has been setup
- :return: the exit code
- """
- self.logger.info('Begin test execution')
-
- test_ip = self.vm1_creator.get_port_ip(
- self.vm1_creator.instance_settings.port_settings[0].name)
-
- if self.vm1_creator.vm_active(
- block=True) and self.vm2_creator.vm_active(block=True):
- result = self._do_vping(self.vm2_creator, test_ip)
- else:
- raise Exception('VMs never became active')
-
- self.stop_time = time.time()
-
- if result != testcase.TestCase.EX_OK:
- self.result = 0
- return testcase.TestCase.EX_RUN_ERROR
-
- self.result = 100
- return testcase.TestCase.EX_OK
-
- def _cleanup(self):
- """
- Cleanup all OpenStack objects. Should be called on completion
- :return:
- """
- if getattr(config.CONF, 'vping_cleanup_objects') == 'True':
- for creator in reversed(self.creators):
- try:
- creator.clean()
- except Exception as error: # pylint: disable=broad-except
- self.logger.error('Unexpected error cleaning - %s', error)
-
- def _do_vping(self, vm_creator, test_ip):
- """
- Method to be implemented by subclasses
- Begins the real test after the OpenStack environment has been setup
- :param vm_creator: the SNAPS VM instance creator object
- :param test_ip: the IP to which the VM needs to issue the ping
- :return: T/F
- """
- raise NotImplementedError('vping execution is not implemented')
diff --git a/functest/opnfv_tests/openstack/vping/vping_ssh.py b/functest/opnfv_tests/openstack/vping/vping_ssh.py
deleted file mode 100644
index e6c6bf35..00000000
--- a/functest/opnfv_tests/openstack/vping/vping_ssh.py
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""vPingSSH testcase."""
-
-import time
-
-from scp import SCPClient
-import pkg_resources
-
-from functest.core.testcase import TestCase
-from functest.energy import energy
-from functest.opnfv_tests.openstack.vping import vping_base
-from functest.utils import config
-
-from snaps.config.keypair import KeypairConfig
-from snaps.config.network import PortConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig
-
-from snaps.openstack.utils import deploy_utils
-
-
-class VPingSSH(vping_base.VPingBase):
- """
- VPingSSH testcase implementation.
-
- Class to execute the vPing test using a Floating IP to connect to one VM
- to issue the ping command to the second
- """
-
- def __init__(self, **kwargs):
- """Initialize testcase."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "vping_ssh"
- super(VPingSSH, self).__init__(**kwargs)
-
- self.kp_name = getattr(config.CONF, 'vping_keypair_name') + self.guid
- self.kp_priv_file = getattr(config.CONF, 'vping_keypair_priv_file')
- self.kp_pub_file = getattr(config.CONF, 'vping_keypair_pub_file')
- self.sg_name = getattr(config.CONF, 'vping_sg_name') + self.guid
- self.sg_desc = getattr(config.CONF, 'vping_sg_desc')
-
- @energy.enable_recording
- def run(self, **kwargs):
- """
- Excecute VPingSSH testcase.
-
- Sets up the OpenStack keypair, router, security group, and VM instance
- objects then validates the ping.
- :return: the exit code from the super.execute() method
- """
- try:
- super(VPingSSH, self).run()
-
- log = "Creating keypair with name: '%s'" % self.kp_name
- self.logger.info(log)
- kp_creator = deploy_utils.create_keypair(
- self.os_creds,
- KeypairConfig(
- name=self.kp_name, private_filepath=self.kp_priv_file,
- public_filepath=self.kp_pub_file))
- self.creators.append(kp_creator)
-
- # Creating Instance 1
- port1_settings = PortConfig(
- name=self.vm1_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance1_settings = VmInstanceConfig(
- name=self.vm1_name, flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- vm_delete_timeout=self.vm_delete_timeout,
- ssh_connect_timeout=self.vm_ssh_connect_timeout,
- port_settings=[port1_settings])
-
- log = ("Creating VM 1 instance with name: '%s'"
- % instance1_settings.name)
- self.logger.info(log)
- self.vm1_creator = deploy_utils.create_vm_instance(
- self.os_creds,
- instance1_settings,
- self.image_creator.image_settings,
- keypair_creator=kp_creator)
- self.creators.append(self.vm1_creator)
-
- # Creating Instance 2
- sg_creator = self.__create_security_group()
- self.creators.append(sg_creator)
-
- port2_settings = PortConfig(
- name=self.vm2_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance2_settings = VmInstanceConfig(
- name=self.vm2_name, flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- vm_delete_timeout=self.vm_delete_timeout,
- ssh_connect_timeout=self.vm_ssh_connect_timeout,
- port_settings=[port2_settings],
- security_group_names=[sg_creator.sec_grp_settings.name],
- floating_ip_settings=[FloatingIpConfig(
- name=self.vm2_name + '-FIPName',
- port_name=port2_settings.name,
- router_name=self.router_creator.router_settings.name)])
-
- log = ("Creating VM 2 instance with name: '%s'"
- % instance2_settings.name)
- self.logger.info(log)
- self.vm2_creator = deploy_utils.create_vm_instance(
- self.os_creds,
- instance2_settings,
- self.image_creator.image_settings,
- keypair_creator=kp_creator)
- self.creators.append(self.vm2_creator)
-
- return self._execute()
- except Exception as exc: # pylint: disable=broad-except
- self.logger.error('Unexpected error running test - ' + exc.message)
- return TestCase.EX_RUN_ERROR
- finally:
- self._cleanup()
-
- def _do_vping(self, vm_creator, test_ip):
- """
- Execute ping command.
-
- Override from super
- """
- if vm_creator.vm_ssh_active(block=True):
- ssh = vm_creator.ssh_client()
- if not self._transfer_ping_script(ssh):
- return TestCase.EX_RUN_ERROR
- return self._do_vping_ssh(ssh, test_ip)
- else:
- return TestCase.EX_RUN_ERROR
-
- def _transfer_ping_script(self, ssh):
- """
- Transfert vping script to VM.
-
- Uses SCP to copy the ping script via the SSH client
- :param ssh: the SSH client
- :return:
- """
- self.logger.info("Trying to transfer ping.sh")
- scp = SCPClient(ssh.get_transport())
- ping_script = pkg_resources.resource_filename(
- 'functest.opnfv_tests.openstack.vping', 'ping.sh')
- try:
- scp.put(ping_script, "~/")
- except Exception: # pylint: disable=broad-except
- self.logger.error("Cannot SCP the file '%s'", ping_script)
- return False
-
- cmd = 'chmod 755 ~/ping.sh'
- # pylint: disable=unused-variable
- (stdin, stdout, stderr) = ssh.exec_command(cmd)
- for line in stdout.readlines():
- print line
-
- return True
-
- def _do_vping_ssh(self, ssh, test_ip):
- """
- Execute ping command via SSH.
-
- Pings the test_ip via the SSH client
- :param ssh: the SSH client used to issue the ping command
- :param test_ip: the IP for the ping command to use
- :return: exit_code (int)
- """
- exit_code = TestCase.EX_TESTCASE_FAILED
- self.logger.info("Waiting for ping...")
-
- sec = 0
- cmd = '~/ping.sh ' + test_ip
- flag = False
-
- while True:
- time.sleep(1)
- (_, stdout, _) = ssh.exec_command(cmd)
- output = stdout.readlines()
-
- for line in output:
- if "vPing OK" in line:
- self.logger.info("vPing detected!")
- exit_code = TestCase.EX_OK
- flag = True
- break
-
- elif sec == self.ping_timeout:
- self.logger.info("Timeout reached.")
- flag = True
- break
- if flag:
- break
- log = "Pinging %s. Waiting for response..." % test_ip
- self.logger.debug(log)
- sec += 1
- return exit_code
-
- def __create_security_group(self):
- """
- Configure OpenStack security groups.
-
- Configures and deploys an OpenStack security group object
- :return: the creator object
- """
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=self.sg_name, direction=Direction.ingress,
- protocol=Protocol.icmp))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=self.sg_name, direction=Direction.ingress,
- protocol=Protocol.tcp, port_range_min=22, port_range_max=22))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=self.sg_name, direction=Direction.egress,
- protocol=Protocol.tcp, port_range_min=22, port_range_max=22))
-
- log = "Security group with name: '%s'" % self.sg_name
- self.logger.info(log)
- return deploy_utils.create_security_group(self.os_creds,
- SecurityGroupConfig(
- name=self.sg_name,
- description=self.sg_desc,
- rule_settings=sg_rules))
diff --git a/functest/opnfv_tests/openstack/vping/vping_userdata.py b/functest/opnfv_tests/openstack/vping/vping_userdata.py
deleted file mode 100644
index 76cdcf83..00000000
--- a/functest/opnfv_tests/openstack/vping/vping_userdata.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""vping_userdata testcase."""
-
-import time
-
-from snaps.config.network import PortConfig
-from snaps.config.vm_inst import VmInstanceConfig
-from snaps.openstack.utils import deploy_utils
-
-from functest.core.testcase import TestCase
-from functest.opnfv_tests.openstack.vping import vping_base
-
-
-class VPingUserdata(vping_base.VPingBase):
- """
- Class to execute the vPing test using userdata and the VM's console
- """
-
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "vping_userdata"
- super(VPingUserdata, self).__init__(**kwargs)
-
- def run(self, **kwargs):
- """
- Sets up the OpenStack VM instance objects then executes the ping and
- validates.
- :return: the exit code from the super.execute() method
- """
- try:
- super(VPingUserdata, self).run()
-
- # Creating Instance 1
- port1_settings = PortConfig(
- name=self.vm1_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance1_settings = VmInstanceConfig(
- name=self.vm1_name,
- flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- port_settings=[port1_settings])
-
- self.logger.info(
- "Creating VM 1 instance with name: '%s'",
- instance1_settings.name)
- self.vm1_creator = deploy_utils.create_vm_instance(
- self.os_creds, instance1_settings,
- self.image_creator.image_settings)
- self.creators.append(self.vm1_creator)
-
- userdata = _get_userdata(
- self.vm1_creator.get_port_ip(port1_settings.name))
- if userdata:
- # Creating Instance 2
- port2_settings = PortConfig(
- name=self.vm2_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance2_settings = VmInstanceConfig(
- name=self.vm2_name,
- flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- port_settings=[port2_settings],
- userdata=userdata)
-
- self.logger.info(
- "Creating VM 2 instance with name: '%s'",
- instance2_settings.name)
- self.vm2_creator = deploy_utils.create_vm_instance(
- self.os_creds, instance2_settings,
- self.image_creator.image_settings)
- self.creators.append(self.vm2_creator)
- else:
- raise Exception('Userdata is None')
-
- return self._execute()
-
- finally:
- self._cleanup()
-
- def _do_vping(self, vm_creator, test_ip):
- """
- Override from super
- """
- self.logger.info("Waiting for ping...")
- exit_code = TestCase.EX_TESTCASE_FAILED
- sec = 0
- tries = 0
-
- while True:
- time.sleep(1)
- p_console = vm_creator.get_console_output()
- if "vPing OK" in p_console:
- self.logger.info("vPing detected!")
- exit_code = TestCase.EX_OK
- break
- elif "failed to read iid from metadata" in p_console or tries > 5:
- self.logger.info("Failed to read iid from metadata")
- break
- elif sec == self.ping_timeout:
- self.logger.info("Timeout reached.")
- break
- elif sec % 10 == 0:
- if "request failed" in p_console:
- self.logger.debug(
- "It seems userdata is not supported in nova boot. " +
- "Waiting a bit...")
- tries += 1
- else:
- self.logger.debug(
- "Pinging %s. Waiting for response...", test_ip)
- sec += 1
-
- return exit_code
-
-
-def _get_userdata(test_ip):
- """
- Returns the post VM creation script to be added into the VM's userdata
- :param test_ip: the IP value to substitute into the script
- :return: the bash script contents
- """
- if test_ip:
- return ("#!/bin/sh\n\n"
- "while true; do\n"
- " ping -c 1 %s 2>&1 >/dev/null\n"
- " RES=$?\n"
- " if [ \"Z$RES\" = \"Z0\" ] ; then\n"
- " echo 'vPing OK'\n"
- " break\n"
- " else\n"
- " echo 'vPing KO'\n"
- " fi\n"
- " sleep 1\n"
- "done\n" % str(test_ip))
- return None
diff --git a/functest/opnfv_tests/sdn/__init__.py b/functest/opnfv_tests/sdn/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/sdn/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/sdn/odl/__init__.py b/functest/opnfv_tests/sdn/odl/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/sdn/odl/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/sdn/odl/odl.py b/functest/opnfv_tests/sdn/odl/odl.py
deleted file mode 100644
index f5e07ad3..00000000
--- a/functest/opnfv_tests/sdn/odl/odl.py
+++ /dev/null
@@ -1,279 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Define classes required to run ODL suites.
-
-It has been designed for any context. But helpers are given for
-running test suites in OPNFV environment.
-
-Example:
- $ python odl.py
-"""
-
-from __future__ import division
-
-import argparse
-import fileinput
-import logging
-import os
-import re
-import sys
-
-from six.moves import urllib
-from snaps.openstack.utils import keystone_utils
-
-from functest.core import robotframework
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-from functest.utils import env
-
-__author__ = "Cedric Ollivier <cedric.ollivier@orange.com>"
-
-
-class ODLTests(robotframework.RobotFramework):
- """ODL test runner."""
-
- odl_test_repo = getattr(config.CONF, 'dir_repo_odl_test')
- neutron_suite_dir = os.path.join(
- odl_test_repo, "csit/suites/openstack/neutron")
- basic_suite_dir = os.path.join(
- odl_test_repo, "csit/suites/integration/basic")
- default_suites = [basic_suite_dir, neutron_suite_dir]
- odl_variables_file = os.path.join(
- odl_test_repo, 'csit/variables/Variables.robot')
- __logger = logging.getLogger(__name__)
-
- def __init__(self, **kwargs):
- super(ODLTests, self).__init__(**kwargs)
- self.res_dir = os.path.join(
- getattr(config.CONF, 'dir_results'), 'odl')
- self.xml_file = os.path.join(self.res_dir, 'output.xml')
-
- @classmethod
- def set_robotframework_vars(cls, odlusername="admin", odlpassword="admin"):
- """Set credentials in csit/variables/Variables.robot.
-
- Returns:
- True if credentials are set.
- False otherwise.
- """
-
- try:
- for line in fileinput.input(cls.odl_variables_file,
- inplace=True):
- print(re.sub("@{AUTH}.*",
- "@{{AUTH}} {} {}".format(
- odlusername, odlpassword),
- line.rstrip()))
- return True
- except Exception: # pylint: disable=broad-except
- cls.__logger.exception("Cannot set ODL creds:")
- return False
-
- def run_suites(self, suites=None, **kwargs):
- """Run the test suites
-
- It has been designed to be called in any context.
- It requires the following keyword arguments:
-
- * odlusername,
- * odlpassword,
- * osauthurl,
- * neutronurl,
- * osusername,
- * osprojectname,
- * ospassword,
- * odlip,
- * odlwebport,
- * odlrestconfport.
-
- Here are the steps:
- * set all RobotFramework_variables,
- * create the output directories if required,
- * get the results in output.xml,
- * delete temporary files.
-
- Args:
- kwargs: Arbitrary keyword arguments.
-
- Returns:
- EX_OK if all suites ran well.
- EX_RUN_ERROR otherwise.
- """
- try:
- if not suites:
- suites = self.default_suites
- odlusername = kwargs['odlusername']
- odlpassword = kwargs['odlpassword']
- osauthurl = kwargs['osauthurl']
- keystoneurl = "{}://{}".format(
- urllib.parse.urlparse(osauthurl).scheme,
- urllib.parse.urlparse(osauthurl).netloc)
- variable = ['KEYSTONEURL:' + keystoneurl,
- 'NEUTRONURL:' + kwargs['neutronurl'],
- 'OS_AUTH_URL:"' + osauthurl + '"',
- 'OSUSERNAME:"' + kwargs['osusername'] + '"',
- ('OSUSERDOMAINNAME:"' +
- kwargs['osuserdomainname'] + '"'),
- 'OSTENANTNAME:"' + kwargs['osprojectname'] + '"',
- ('OSPROJECTDOMAINNAME:"' +
- kwargs['osprojectdomainname'] + '"'),
- 'OSPASSWORD:"' + kwargs['ospassword'] + '"',
- 'ODL_SYSTEM_IP:' + kwargs['odlip'],
- 'PORT:' + kwargs['odlwebport'],
- 'RESTCONFPORT:' + kwargs['odlrestconfport']]
- except KeyError:
- self.__logger.exception("Cannot run ODL testcases. Please check")
- return self.EX_RUN_ERROR
- if not os.path.isfile(self.odl_variables_file):
- self.__logger.info("Skip writting ODL creds")
- else:
- if not self.set_robotframework_vars(odlusername, odlpassword):
- return self.EX_RUN_ERROR
- return super(ODLTests, self).run(variable=variable, suites=suites)
-
- def run(self, **kwargs):
- """Run suites in OPNFV environment
-
- It basically checks env vars to call main() with the keywords
- required.
-
- Args:
- kwargs: Arbitrary keyword arguments.
-
- Returns:
- EX_OK if all suites ran well.
- EX_RUN_ERROR otherwise.
- """
- try:
- suites = self.default_suites
- try:
- suites = kwargs["suites"]
- except KeyError:
- pass
- snaps_creds = snaps_utils.get_credentials()
- kwargs = {'neutronurl': keystone_utils.get_endpoint(
- snaps_creds, 'network')}
- kwargs['odlip'] = urllib.parse.urlparse(
- kwargs['neutronurl']).hostname
- kwargs['odlwebport'] = '8080'
- kwargs['odlrestconfport'] = '8181'
- kwargs['odlusername'] = 'admin'
- kwargs['odlpassword'] = 'admin'
- installer_type = env.get('INSTALLER_TYPE')
- kwargs['osusername'] = os.environ['OS_USERNAME']
- kwargs['osuserdomainname'] = os.environ.get(
- 'OS_USER_DOMAIN_NAME', 'Default')
- kwargs['osprojectname'] = os.environ['OS_PROJECT_NAME']
- kwargs['osprojectdomainname'] = os.environ.get(
- 'OS_PROJECT_DOMAIN_NAME', 'Default')
- kwargs['osauthurl'] = os.environ['OS_AUTH_URL']
- kwargs['ospassword'] = os.environ['OS_PASSWORD']
- if installer_type == 'fuel':
- kwargs['odlwebport'] = '8181'
- kwargs['odlrestconfport'] = '8282'
- elif installer_type == 'apex' or installer_type == 'netvirt':
- kwargs['odlip'] = env.get('SDN_CONTROLLER_IP')
- kwargs['odlwebport'] = '8081'
- kwargs['odlrestconfport'] = '8081'
- elif installer_type == 'compass':
- kwargs['odlrestconfport'] = '8080'
- elif installer_type == 'daisy':
- kwargs['odlip'] = env.get('SDN_CONTROLLER_IP')
- kwargs['odlwebport'] = '8181'
- kwargs['odlrestconfport'] = '8087'
- else:
- kwargs['odlip'] = env.get('SDN_CONTROLLER_IP')
- assert kwargs['odlip']
- except KeyError as ex:
- self.__logger.error("Cannot run ODL testcases. "
- "Please check env var: "
- "%s", str(ex))
- return self.EX_RUN_ERROR
- except Exception: # pylint: disable=broad-except
- self.__logger.exception("Cannot run ODL testcases.")
- return self.EX_RUN_ERROR
-
- return self.run_suites(suites, **kwargs)
-
-
-class ODLParser(object): # pylint: disable=too-few-public-methods
- """Parser to run ODL test suites."""
-
- def __init__(self):
- self.parser = argparse.ArgumentParser()
- self.parser.add_argument(
- '-n', '--neutronurl', help='Neutron Endpoint',
- default='http://127.0.0.1:9696')
- self.parser.add_argument(
- '-k', '--osauthurl', help='OS_AUTH_URL as defined by OpenStack',
- default='http://127.0.0.1:5000/v3')
- self.parser.add_argument(
- '-a', '--osusername', help='Username for OpenStack',
- default='admin')
- self.parser.add_argument(
- '-f', '--osuserdomainname', help='User domain name for OpenStack',
- default='Default')
- self.parser.add_argument(
- '-b', '--osprojectname', help='Projet name for OpenStack',
- default='admin')
- self.parser.add_argument(
- '-g', '--osprojectdomainname',
- help='Project domain name for OpenStack',
- default='Default')
- self.parser.add_argument(
- '-c', '--ospassword', help='Password for OpenStack',
- default='admin')
- self.parser.add_argument(
- '-o', '--odlip', help='OpenDaylight IP',
- default='127.0.0.1')
- self.parser.add_argument(
- '-w', '--odlwebport', help='OpenDaylight Web Portal Port',
- default='8080')
- self.parser.add_argument(
- '-r', '--odlrestconfport', help='OpenDaylight RESTConf Port',
- default='8181')
- self.parser.add_argument(
- '-d', '--odlusername', help='Username for ODL',
- default='admin')
- self.parser.add_argument(
- '-e', '--odlpassword', help='Password for ODL',
- default='admin')
- self.parser.add_argument(
- '-p', '--pushtodb', help='Push results to DB',
- action='store_true')
-
- def parse_args(self, argv=None):
- """Parse arguments.
-
- It can call sys.exit if arguments are incorrect.
-
- Returns:
- the arguments from cmdline
- """
- if not argv:
- argv = []
- return vars(self.parser.parse_args(argv))
-
-
-def main():
- """Entry point"""
- logging.basicConfig()
- odl = ODLTests()
- parser = ODLParser()
- args = parser.parse_args(sys.argv[1:])
- try:
- result = odl.run_suites(ODLTests.default_suites, **args)
- if result != robotframework.RobotFramework.EX_OK:
- return result
- if args['pushtodb']:
- return odl.push_to_db()
- return result
- except Exception: # pylint: disable=broad-except
- return robotframework.RobotFramework.EX_RUN_ERROR
diff --git a/functest/opnfv_tests/vnf/__init__.py b/functest/opnfv_tests/vnf/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/epc/__init__.py b/functest/opnfv_tests/vnf/epc/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/epc/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature b/functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature
deleted file mode 100644
index 438e2c0e..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/000-local-commands.feature
+++ /dev/null
@@ -1,12 +0,0 @@
- Feature: Local_Commands_Testing
-
- @local-commands
- Scenario: Local Commands testing
- Given all configured endpoints for SSH are connected successfully
- When I execute the command ifconfig in this system and check the presence of following strings in the response:
- | responseResult | existence |
- | inet | {string:nocase:present} |
- | UP | {string:nocase:present} |
- | BROADCAST | {string:nocase:present} |
- | RUNNING | {string:nocase:present} |
- | MULTICAST | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature
deleted file mode 100644
index 67831580..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI.feature
+++ /dev/null
@@ -1,39 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature:Attach_Procedure_AttachWithIMSI
-
-@attach-procedure @Attach_Procedure_AttachWithIMSI @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-
-Scenario: Attach Procedure Success configured with AttachWithIMSI when Selected PLMN is neither the registered PLMN nor in the list of equivalent PLMNs
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature
deleted file mode 100644
index 4e3cfd7b..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MCC.feature
+++ /dev/null
@@ -1,32 +0,0 @@
-############################################################################################################################
-# Date: <31/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature:Attach_Procedure_AttachWithIMSI_Wrong_MCC
-
-@attach-procedure @Attach_Procedure_AttachWithIMSI_Wrong_MCC @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-
-Scenario: Attach Procedure Failure due to wrong MCC.
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with EPC parameter "ABOT.ENB.mobile_country_code=201" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Received s1 setup failure for MME | {string:nocase:present} |
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature
deleted file mode 100644
index 6082db06..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_MNC.feature
+++ /dev/null
@@ -1,33 +0,0 @@
-############################################################################################################################
-# Date: <31/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature:Attach_Procedure_AttachWithIMSI_Wrong_MNC
-
-@attach-procedure @Attach_Procedure_AttachWithIMSI_Wrong_MNC @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-
-Scenario: Attach Procedure Failure due to wrong MNC.
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with EPC parameter "ABOT.ENB.mobile_network_code=95" on node ABOT
-
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Received s1 setup failure for MME | {string:nocase:present} |
-
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature
deleted file mode 100644
index 855ffd63..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_AttachWithIMSI_Wrong_TAC.feature
+++ /dev/null
@@ -1,33 +0,0 @@
-############################################################################################################################
-# Date: <31/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature:Attach_Procedure_AttachWithIMSI_Wrong_TAC
-
-@attach-procedure @Attach_Procedure_AttachWithIMSI_Wrong_TAC @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-
-Scenario: Attach Procedure Failure due to wrong TAC
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with EPC parameter "ABOT.ENB.tracking_area_code=10" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Received s1 setup failure for MME | {string:nocase:present} |
-
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature
deleted file mode 100644
index d6ca0369..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_Attach_With_GUTI.feature
+++ /dev/null
@@ -1,36 +0,0 @@
-############################################################################################################################
-# Date: <31/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature:Attach_Procedure_Attach_With_GUTI
-
-@attach-procedure @Attach_Procedure_Attach_With_GUTI @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-Scenario: Attach Procedure Success with right GUTI.
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with GUTI | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature
deleted file mode 100644
index f68e1812..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DNS_Server_Addr_Request.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With DNS Server Address Request Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_DNS_Server_Address_Request @PCO
-
-Scenario: Attach Procedure indicating a request DNS Server Address in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_DNS_SERVER_ADDR_REQ=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with DNS Server Address Request | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0003 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature
deleted file mode 100644
index 92c38a2b..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HA_Addr_Request.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure with DSMIPv6 Home Agent Address Request Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_DSMIPv6_Home_Agent_Address_Request @PCO
-
-Scenario: Attach Procedure indicating a request for DSMIPv6 Home Agent Address in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_HA_ADDR_REQ=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with DSMIPv6 Home Agent Address Request | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0007 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature
deleted file mode 100644
index fe389028..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_HN_Prefix_Request.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With DSMIPv6 Home Network Prefix Request Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_DSMIPv6_Home_Network_Prefix_Request @PCO
-
-Scenario: Attach Procedure indicating a request for DSMIPv6 Home Network Prefix Request in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_HN_PREFIX_REQ=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with DSMIPv6 Home Network Prefix Request | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0008 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature
deleted file mode 100644
index 5821cd55..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_DSMIPv6_IPv4_HA_Addr_Request.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With DSMIPv6 IPv4 Home Agent Address Request Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_DSMIPv6_IPv4_Home_Agent_Address_Request @PCO
-
-Scenario: Attach Procedure indicating a request for DSMIPv6 IPv4 Home Agent Address in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_IPV4_HA_ADDR_REQ=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with DSMIPv6 IPv4 Home Agent Address Request | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0009 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature
deleted file mode 100644
index 81f4fbc4..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IM_CN_SS_Signalling_Flag.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With IM CN Subsystem Signalling Flag Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_IM_CN_Subsystem_Signalling_Flag @PCO
-
-Scenario: Attach Procedure indicating IM CN Subsystem Signalling Flag in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IM_CN_SS_SIGNAL_FLAG=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with IM CN Subsystem Signalling Flag | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0002 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature
deleted file mode 100644
index fba01f24..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_DHCPv4.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure with IPv4 Address Allocation Via DHCPv4 Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_IPv4_Address_Allocation_Via_DHCPv4 @PCO
-
-Scenario: Attach Procedure indicating IPv4 address allocation via DHCPv4 in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IP_ADDR_ALLOC_DHCPV4=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with IPv4 address allocation via DHCPv4 | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 000B | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature
deleted file mode 100644
index 1cb869b4..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_IP_Addr_Alloc_NAS_Signalling.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With IP Address Allocation Via NAS Signalling Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_IP_Address_Allocation_Via_NAS_Signalling @PCO
-
-Scenario: Attach Procedure indicating IP address allocation via NAS signalling in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IP_ADDR_NAS_SIGNALING=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with IP address allocation via NAS signalling | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 000A | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature
deleted file mode 100644
index bfc7515c..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_MS_Support_Bearer_Ctrl_Indication.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With MS Support of Network Requested Bearer Control indicator in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_MS_Support_Network_Requested_Bearer_Control_Indicator @PCO
-
-Scenario: Attach Procedure indicating MS Support of Network Requested Bearer Control indicator
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.MS_SUPPORT_BEARER_CTRL_IND=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with MS Support of Network Requested Bearer Control indicator | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0005 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature
deleted file mode 100644
index 605bb934..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Attach_Procedure_With_P_CSCF_Addr_Request.feature
+++ /dev/null
@@ -1,44 +0,0 @@
-############################################################################################################################
-# Date: <22/08/2016> Version: <1.1> #
-############################################################################################################################
-
-Feature: Attach Procedure With P-CSCF Address Request Indication in PCO
-
-@attach-procedure @TS_24_301 @24_301_5_5 @24_301_5_5_1_2_2 @TS_24_368 @24_368_4 @24_368-5_4 @Series-0000
-@TS_36_523_9_2_1_1_3 @Attach_Procedure_P-CSCF_Address_Request @PCO
-
-Scenario: Attach Procedure indicating a request for P-CSCF address in the protocol configuration options
-
-Given all configured endpoints for SSH are connected successfully
-
-Given the steps below will be executed at the end
-When I stop S1AP simulator on node ABOT
-When I run the SSH command "sudo service mme_gw restart" on node MME
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-Then the ending steps are complete
-
-# Set ABOT configuration
-Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
-Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
-Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.PCO.IPV6_P_CSCF_ADDR_REQ=true" on node ABOT
-
-# Execute ABOT S1AP Simulator
-When I run S1AP simulator on node ABOT with 1 UE
-
-# Wait for execution to complete before checking results
-Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
-# Validate Test Case Execution at Simulator
-Then I receive S1AP response on node ABOT and verify the presence of all the following values:
-| responseResult | existence |
-| Send Attach Request message with IMSI | {string:nocase:present} |
-| Send PDN Connectivity Request message with P-CSCF Address Request | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Authentication Request message | {string:nocase:present} |
-| Send Authentication Response message | {string:nocase:present} |
-| Received Security Mode Command message | {string:nocase:present} |
-| Send Security Mode Complete message | {string:nocase:present} |
-| Received Attach Accept message | {string:nocase:present} |
-| Received Activate Default EPS Bearer Context Request message with PCO contain Protocol ID 0001 | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature
deleted file mode 100644
index 3136dbdb..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_Accept.feature
+++ /dev/null
@@ -1,45 +0,0 @@
- ############################################################################################################################
- # Date: <13/01/2017> Version: <1.1> #
- ############################################################################################################################
-
-
- Feature:Auth_Accept
-
- @authentication-procedure @Auth_Accept @TS_24_301 @24_301_5_4_2_1 @24_301_5_4_2_3 @33_401_6_1_1 @Series-0004
-
- Scenario: UE receives an AUTHENTICATION REQUEST message. UE responds with a correct AUTHENTICATION RESPONSE message and establishes correct
- EPS security context.
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # Set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- # Wait for execution to complete before checking results
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with GUTI | {string:nocase:present} |
- | Received Identity Request message | {string:nocase:present} |
- | Identification requested type = IMSI | {string:nocase:present} |
- | Send Identity Response message | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Response message | {string:nocase:present} |
- | Received Security Mode Command message | {string:nocase:present} |
- | Send Security Mode Complete message | {string:nocase:present} |
- | Received Attach Accept message | {string:nocase:present} |
-
-
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature
deleted file mode 100644
index fa0d3764..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth.feature
+++ /dev/null
@@ -1,47 +0,0 @@
- ############################################################################################################################
- # Date: <22/11/2016> Version: <1.1> #
- ############################################################################################################################
-
-
- Feature:Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth
-
- @authentication-procedure @Auth_NotAccept_by_Network_GUTIattach_AuthReject_re_Auth @TS_24_301 @24_301_5_3_3 @24_301_5_5_1_2_2 @24_301_5_5_1_2_4 @24_301_6_5_1_2 @24_301_9_9_3_33 @TS_36_304 @36_304_4_3 @negTCs @Series-0001
-
- Scenario: Authentication not accepted by the network when attach with GUTI, Authentication reject when RES is different from UE and MME. IMSI given by the UE during the identification procedure is same from the IMSI the network had associated with the GUTI.
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- #RES is restored to 0x00 in teardown process
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0x00" on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
- # set the value of RES parameter (other than 0x00) manually in Authentication Response message which is sent from UE to MME
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0xFF" on node ABOT
-
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with GUTI | {string:nocase:present} |
- | Received Identity Request message | {string:nocase:present} |
- | Identification requested type = IMSI | {string:nocase:present} |
- | Send Identity Response message | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Response message | {string:nocase:present} |
- | Received Authentication Reject message | {string:nocase:present} |
- | Authentication not accepted by the network | {string:nocase:present} |
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature
deleted file mode 100644
index 4c00c878..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth.feature
+++ /dev/null
@@ -1,38 +0,0 @@
- ############################################################################################################################
- # Date: <22/11/2016> Version: <1.1> #
- ############################################################################################################################
-
- Feature:Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth
-
- @authentication-procedure @Auth_NotAccept_by_Network_GUTIattach_IMSIdiff_AuthReject_re_Auth @TS_24_301 @24_301_5_3_3 @24_301_5_5_1_2_2 @24_301_5_5_1_2_4 @24_301_6_5_1_2 @24_301_9_9_3_33 @TS_36_304 @36_304_4_3 @negTCs @Series-0001
-
- Scenario: Authentication not accepted by the network when attach with GUTI, Authentication reject when RES is different from UE and MME. IMSI given by the UE during the identification procedure differs from the IMSI the network had associated with the GUTI
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0x00" on node ABOT
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.WRONGIMSI=false" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
- # set the value of RES parameter (other than 0x00) manually in Authentication Response message which is sent from UE to MME
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0xFF" on node ABOT
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.WRONGIMSI=true" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with GUTI | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature
deleted file mode 100644
index cce93f42..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth.feature
+++ /dev/null
@@ -1,62 +0,0 @@
- ############################################################################################################################
- # Date: <22/11/2016> Version: <1.1> #
- ############################################################################################################################
-
- Feature:Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth
-
- @authentication-procedure @Auth_NotAccept_by_Network_IMSIattach_AuthReject_re_Auth @TS_24_301 @24_301_5_3_3 @24_301_5_5_1_2_2 @24_301_5_5_1_2_4 @24_301_6_5_1_2 @24_301_9_9_3_33 @TS_36_304 @36_304_4_3 @negTCs @Series-0001
-
- Scenario: Authentication not accepted by the network when attach with IMSI, Authentication reject when RES is different from UE and MME
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- #RES is restore to 0x00 in teardown process
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0x00" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
- # set the value of RES parameter (other than 0x00) manually in Authentication Response message which is sent from UE to MME
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.RES=0xFF" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with IMSI | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Response message | {string:nocase:present} |
- | Received Authentication Reject message | {string:nocase:present} |
- | Authentication not accepted by the network | {string:nocase:present} |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature
deleted file mode 100644
index ca5b281f..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure.feature
+++ /dev/null
@@ -1,45 +0,0 @@
- ############################################################################################################################
- # Date: <13/12/2016> Version: <1.1> #
- ############################################################################################################################
-
- Feature:Auth_NotAccept_by_UE_GUTIattachMAC_code_failure
-
- @authentication-procedure @Auth_NotAccept_by_UE_GUTIattach_MAC_code_failure @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0002
-
- Scenario: UE received invalid MAC code in AUTN parameter in the AUTHENTICATION REQUEST message. Authentication not accepted by the UE when attach with GUTI. UE responds the Authentication failure message with EMM cause (reject cause) #20 "MAC failure".
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K=\"8BAF473F2F8FD09487CCCBD7097C6862\"" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
-
- # CORRECT K_VALUE is 8BAF473F2F8FD09487CCCBD7097C6862 WRONG K_VALUE fec86ba6eb707ed08905757b1bb44b8f
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K=\"fec86ba6eb707ed08905757b1bb44b8f\"" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with GUTI | {string:nocase:present} |
- | Received Identity Request message | {string:nocase:present} |
- | Identification requested type = IMSI | {string:nocase:present} |
- | Send Identity Response message | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Failure message (cause=20) | {string:nocase:present} |
- | Received Authentication Reject message | {string:nocase:present} |
- | Authentication not accepted by the network | {string:nocase:present} |
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature
deleted file mode 100644
index 2b8cf401..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure.feature
+++ /dev/null
@@ -1,42 +0,0 @@
- ############################################################################################################################
- # Date: <13/12/2016> Version: <1.1> #
- ############################################################################################################################
-
- Feature:Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure
-
- @authentication-procedure @Auth_NotAccept_by_UE_IMSIattach_MAC_code_failure @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0002
-
- Scenario: UE received invalid MAC code in AUTN parameter in the AUTHENTICATION REQUEST message. Authentication not accepted by the UE when attach with IMSI. UE responds the Authentication failure message with EMM cause (reject cause) #20 "MAC failure".
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- # WRONGIMSI is restored to false in teardown process
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K_VALUE=\"8BAF473F2F8FD09487CCCBD7097C6862\"" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
-
- # CORRECT K_VALUE is 8BAF473F2F8FD09487CCCBD7097C6862 WRONG K_VALUE fec86ba6eb707ed08905757b1bb44b8f
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.USIM_API_K=\"fec86ba6eb707ed08905757b1bb44b8f\"" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with IMSI | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Failure message (cause=20) | {string:nocase:present} |
- | Received Authentication Reject message | {string:nocase:present} |
- | Authentication not accepted by the network | {string:nocase:present} |
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature
deleted file mode 100644
index ff2a2e20..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_SQN_failure.feature
+++ /dev/null
@@ -1,46 +0,0 @@
- ############################################################################################################################
- # Date: <13/01/2017> Version: <1.1> #
- ############################################################################################################################
-
-
- Feature:Auth_NotAccept_by_UE_SQN_failure
-
- @authentication-procedure @Auth_NotAccept_by_UE_SQN_failure @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0004
-
- Scenario: UE receives an AUTHENTICATION REQUEST message with SQN out of range. UE sends an AUTHENTICATION FAILURE message to the network, with EMM cause "synch failure" and a re-synchronization token. Now UE receives a new correct AUTHENTICATION REQUEST message while T3420 is running. Finally UE sends a correct AUTHENTICATION RESPONSE message.
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=false" on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=true" on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with GUTI | {string:nocase:present} |
- | Received Identity Request message | {string:nocase:present} |
- | Identification requested type = IMSI | {string:nocase:present} |
- | Send Identity Response message | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Failure message (cause=21) | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Response message | {string:nocase:present} |
- | Received Security Mode Command message | {string:nocase:present} |
- | Send Security Mode Complete message | {string:nocase:present} |
- | Received Attach Accept message | {string:nocase:present} |
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature b/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature
deleted file mode 100644
index 372e6b79..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt.feature
+++ /dev/null
@@ -1,45 +0,0 @@
- ############################################################################################################################
- # Date: <13/01/2017> Version: <1.1> #
- ############################################################################################################################
-
-
- Feature:Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt
-
- @authentication-procedure @Auth_NotAccept_by_UE_non_EPS_AuthUnaccpt @TS_24_301 @24_301_5_4_2_6 @24_301_5_4_2_7 @negTCs @Series-0004 @SS_changesReqd
-
- Scenario: UE receives an AUTHENTICATION REQUEST message with "separation bit" in the AMF field is 0. UE shall send an AUTHENTICATION FAILURE message to the network, with the reject cause #26 "non-EPS authentication unacceptable"
-
- # AuC system changes required. HSS should send Authentication request message with AMF=AMF_RESYNCH amf = {0xff 0xff}
- # file name kdf.c line no: 156 uint8_t amf[] = { 0xFF, 0xFF };
-
- Given all configured endpoints for SSH are connected successfully
-
- Given the steps below will be executed at the end
- When I stop S1AP simulator on node ABOT
- When I run the SSH command "sudo service mme_gw restart" on node MME
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=false" on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=true" on node ABOT
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Then the ending steps are complete
-
- # set ABOT configuration
- Given that I setup S1AP Simulator with default parameters specified in {abotprop.ABOT.EPC.Defaults} on node ABOT
- Given that I setup S1AP Simulator with UE parameter "ABOT.UE.CONFIG.SECURITY.SYNC_FAILURE=true" on node ABOT
- Given that I setup S1AP Simulator with USIM parameter "ABOT.UE.USIM.AttachWithImsi=false" on node ABOT
-
- # Execute ABOT S1AP Simulator
- When I run S1AP simulator on node ABOT with 1 UE
-
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
- Given the execution is paused for {abotprop.WAIT_10_SEC} seconds
-
- # Validate Test Case Execution at Simulator
- Then I receive S1AP response on node ABOT and verify the presence of all the following values:
- | responseResult | existence |
- | Send Attach Request message with GUTI | {string:nocase:present} |
- | Received Identity Request message | {string:nocase:present} |
- | Identification requested type = IMSI | {string:nocase:present} |
- | Send Identity Response message | {string:nocase:present} |
- | Received Authentication Request message | {string:nocase:present} |
- | Send Authentication Failure message (cause=26) | {string:nocase:present} |
-
diff --git a/functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml b/functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml
deleted file mode 100644
index 64297220..00000000
--- a/functest/opnfv_tests/vnf/epc/featureFiles/ResourceBundle.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<message-bundle>
-
-</message-bundle> \ No newline at end of file
diff --git a/functest/opnfv_tests/vnf/epc/juju_epc.py b/functest/opnfv_tests/vnf/epc/juju_epc.py
deleted file mode 100644
index 3b62a9a1..00000000
--- a/functest/opnfv_tests/vnf/epc/juju_epc.py
+++ /dev/null
@@ -1,513 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Rebaca and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-"""Juju testcase implementation."""
-
-import errno
-import logging
-import os
-import time
-import json
-import sys
-import uuid
-from copy import deepcopy
-from urlparse import urljoin
-import pkg_resources
-import yaml
-
-from functest.core import vnf
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.user import UserConfig
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.create_image import OpenStackImage
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-from snaps.openstack.create_user import OpenStackUser
-from snaps.openstack.utils import keystone_utils
-from snaps.openstack.utils import nova_utils
-
-__author__ = "Amarendra Meher <amarendra@rebaca.com>"
-__author__ = "Soumaya K Nayek <soumaya.nayek@rebaca.com>"
-
-CLOUD_TEMPLATE = """clouds:
- abot-epc:
- type: openstack
- auth-types: [userpass]
- endpoint: {url}
- regions:
- {region}:
- endpoint: {url}"""
-
-CREDS_TEMPLATE2 = """credentials:
- abot-epc:
- default-credential: abot-epc
- abot-epc:
- auth-type: userpass
- password: {pass}
- project-domain-name: {project_domain_n}
- tenant-name: {tenant_n}"""
-
-CREDS_TEMPLATE3 = """credentials:
- abot-epc:
- default-credential: abot-epc
- abot-epc:
- auth-type: userpass
- password: {pass}
- project-domain-name: {project_domain_n}
- tenant-name: {tenant_n}
- user-domain-name: {user_domain_n}
- username: {user_n}"""
-
-
-class JujuEpc(vnf.VnfOnBoarding):
- # pylint:disable=too-many-instance-attributes
- """Abot EPC deployed with JUJU Orchestrator Case"""
-
- __logger = logging.getLogger(__name__)
-
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "juju_epc"
- super(JujuEpc, self).__init__(**kwargs)
-
- # Retrieve the configuration
- self.case_dir = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/vnf/epc')
- try:
- self.config = getattr(
- config.CONF, 'vnf_{}_config'.format(self.case_name))
- except Exception:
- raise Exception("VNF config file not found")
- self.config_file = os.path.join(self.case_dir, self.config)
- self.orchestrator = dict(requirements=get_config(
- "orchestrator.requirements", self.config_file))
-
- self.created_object = []
- self.details['orchestrator'] = dict(
- name=get_config("orchestrator.name", self.config_file),
- version=get_config("orchestrator.version", self.config_file),
- status='ERROR',
- result=''
- )
-
- self.vnf = dict(
- descriptor=get_config("vnf.descriptor", self.config_file),
- requirements=get_config("vnf.requirements", self.config_file)
- )
- self.details['vnf'] = dict(
- descriptor_version=self.vnf['descriptor']['version'],
- name=get_config("vnf.name", self.config_file),
- version=get_config("vnf.version", self.config_file),
- )
- self.__logger.debug("VNF configuration: %s", self.vnf)
-
- self.details['test_vnf'] = dict(
- name=get_config("vnf_test_suite.name", self.config_file),
- version=get_config("vnf_test_suite.version", self.config_file),
- tag_name=get_config("vnf_test_suite.tag_name", self.config_file)
- )
- self.public_auth_url = None
-
- self.res_dir = os.path.join(
- getattr(config.CONF, 'dir_results'), self.case_name)
-
- def _bypass_juju_network_discovery_bug(self, name):
- user_creator = OpenStackUser(
- self.snaps_creds,
- UserConfig(
- name=name, password=str(uuid.uuid4()),
- roles={'_member_': self.tenant_name}))
- user_creator.create()
- self.created_object.append(user_creator)
- return user_creator
-
- def _register_cloud(self):
- self.__logger.info("Creating Cloud for Abot-epc .....")
- clouds_yaml = os.path.join(self.res_dir, "clouds.yaml")
- cloud_data = {
- 'url': self.public_auth_url,
- 'region': self.snaps_creds.region_name}
- with open(clouds_yaml, 'w') as yfile:
- yfile.write(CLOUD_TEMPLATE.format(**cloud_data))
- if os.system(
- 'juju add-cloud abot-epc -f {} --replace'.format(clouds_yaml)):
- raise vnf.VnfPreparationException
-
- def _register_credentials_v2(self):
- self.__logger.info("Creating Credentials for Abot-epc .....")
- user_creator = self._bypass_juju_network_discovery_bug(
- 'juju_network_discovery_bug')
- snaps_creds = user_creator.get_os_creds(self.snaps_creds.project_name)
- credentials_yaml = os.path.join(self.res_dir, "credentials.yaml")
- creds_data = {
- 'pass': snaps_creds.password,
- 'tenant_n': snaps_creds.project_name,
- 'user_n': snaps_creds.username}
- with open(credentials_yaml, 'w') as yfile:
- yfile.write(CREDS_TEMPLATE2.format(**creds_data))
- if os.system(
- 'juju add-credential abot-epc -f {} --replace'.format(
- credentials_yaml)):
- raise vnf.VnfPreparationException
-
- def _register_credentials_v3(self):
- self.__logger.info("Creating Credentials for Abot-epc .....")
- user_creator = self._bypass_juju_network_discovery_bug(
- 'juju_network_discovery_bug')
- snaps_creds = user_creator.get_os_creds(self.snaps_creds.project_name)
- credentials_yaml = os.path.join(self.res_dir, "credentials.yaml")
- creds_data = {
- 'pass': snaps_creds.password,
- 'tenant_n': snaps_creds.project_name,
- 'user_n': snaps_creds.username,
- 'project_domain_n': snaps_creds.project_domain_name,
- 'user_domain_n': snaps_creds.user_domain_name}
- with open(credentials_yaml, 'w') as yfile:
- yfile.write(CREDS_TEMPLATE3.format(**creds_data))
- if os.system(
- 'juju add-credential abot-epc -f {} --replace'.format(
- credentials_yaml)):
- raise vnf.VnfPreparationException
-
- def _add_custom_rule(self, sec_grp_name):
- """ To add custom rule for SCTP Traffic """
- sec_grp_rules = list()
- sec_grp_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=sec_grp_name, direction=Direction.ingress,
- protocol=Protocol.sctp))
- security_group = OpenStackSecurityGroup(
- self.snaps_creds,
- SecurityGroupConfig(
- name=sec_grp_name,
- rule_settings=sec_grp_rules))
- security_group.create()
- self.created_object.append(security_group)
-
- def prepare(self):
- """Prepare testcase (Additional pre-configuration steps)."""
- self.__logger.info("Additional pre-configuration steps")
- super(JujuEpc, self).prepare()
- try:
- os.makedirs(self.res_dir)
- except OSError as ex:
- if ex.errno != errno.EEXIST:
- self.__logger.exception("Cannot create %s", self.res_dir)
- raise vnf.VnfPreparationException
- self.public_auth_url = keystone_utils.get_endpoint(
- self.snaps_creds, 'identity')
- # it enforces a versioned public identity endpoint as juju simply
- # adds /auth/tokens wich fails vs an unversioned endpoint.
- if not self.public_auth_url.endswith(('v3', 'v3/', 'v2.0', 'v2.0/')):
- self.public_auth_url = urljoin(self.public_auth_url, 'v3')
- self._register_cloud()
- if self.snaps_creds.identity_api_version == 3:
- self._register_credentials_v3()
- else:
- self._register_credentials_v2()
-
- def deploy_orchestrator(self): # pylint: disable=too-many-locals
- """
- Create network, subnet, router
-
- Bootstrap juju
- """
- self.__logger.info("Deployed Orchestrator")
- private_net_name = getattr(
- config.CONF, 'vnf_{}_private_net_name'.format(self.case_name))
- private_subnet_name = getattr(
- config.CONF, 'vnf_{}_private_subnet_name'.format(self.case_name))
- private_subnet_cidr = getattr(
- config.CONF, 'vnf_{}_private_subnet_cidr'.format(self.case_name))
- abot_router = getattr(
- config.CONF, 'vnf_{}_external_router'.format(self.case_name))
-
- self.__logger.info("Creating full network ...")
- subnet_settings = SubnetConfig(
- name=private_subnet_name, cidr=private_subnet_cidr)
- network_settings = NetworkConfig(
- name=private_net_name, subnet_settings=[subnet_settings])
- network_creator = OpenStackNetwork(self.snaps_creds, network_settings)
- net_id = network_creator.create().id
- self.created_object.append(network_creator)
-
- ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds)
- self.__logger.info("Creating network Router ....")
- router_creator = OpenStackRouter(
- self.snaps_creds, RouterConfig(
- name=abot_router,
- external_gateway=ext_net_name,
- internal_subnets=[subnet_settings.name]))
- router_creator.create()
- self.created_object.append(router_creator)
- self.__logger.info("Creating Flavor ....")
- flavor_settings = FlavorConfig(
- name=self.orchestrator['requirements']['flavor']['name'],
- ram=self.orchestrator['requirements']['flavor']['ram_min'],
- disk=10, vcpus=1)
- flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
- self.__logger.info("Upload some OS images if it doesn't exist")
- images = get_config("tenant_images", self.config_file)
- self.__logger.info("Images needed for vEPC: %s", images)
- for image_name, image_file in images.iteritems():
- self.__logger.info("image: %s, file: %s", image_name, image_file)
- if image_file and image_name:
- image_creator = OpenStackImage(self.snaps_creds, ImageConfig(
- name=image_name, image_user='cloud', img_format='qcow2',
- image_file=image_file))
- image_id = image_creator.create().id
- os.system(
- 'juju metadata generate-image -d ~ -i {} -s {} -r '
- '{} -u {}'.format(
- image_id, image_name, self.snaps_creds.region_name,
- self.public_auth_url))
- self.created_object.append(image_creator)
- self.__logger.info("Network ID : %s", net_id)
- juju_bootstrap_command = (
- 'juju bootstrap abot-epc abot-controller --config network={} '
- '--metadata-source ~ --config ssl-hostname-verification=false '
- '--constraints mem=2G --bootstrap-series xenial '
- '--config use-floating-ip=true --debug '
- '--config use-default-secgroup=true'.format(net_id))
- os.system(juju_bootstrap_command)
- return True
-
- def deploy_vnf(self):
- """Deploy ABOT-OAI-EPC."""
- self.__logger.info("Upload VNFD")
- descriptor = self.vnf['descriptor']
- self.__logger.info("Get or create flavor for all Abot-EPC")
- flavor_settings = FlavorConfig(
- name=self.vnf['requirements']['flavor']['name'],
- ram=self.vnf['requirements']['flavor']['ram_min'],
- disk=10,
- vcpus=1)
- flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
- self.__logger.info("Deploying Abot-epc bundle file ...")
- os.system('juju deploy {}'.format('/' + descriptor.get('file_name')))
- self.__logger.info("Waiting for instances .....")
- status = os.system('juju-wait')
- self.__logger.info("juju wait completed: %s", status)
- self.__logger.info("Deployed Abot-epc on Openstack")
- nova_client = nova_utils.nova_client(self.snaps_creds)
- if status == 0:
- instances = get_instances(nova_client)
- self.__logger.info("List of Instance: %s", instances)
- for items in instances:
- metadata = get_instance_metadata(nova_client, items)
- if 'juju-units-deployed' in metadata:
- sec_group = ('juju-' +
- metadata['juju-controller-uuid'] +
- '-' + metadata['juju-model-uuid'])
- self.__logger.info("Instance: %s", sec_group)
- break
- self.__logger.info("Adding Security group rule....")
- # This will add sctp rule to a common Security Group Created
- # by juju and shared to all deployed units.
- self._add_custom_rule(sec_group)
- self.__logger.info("Copying the feature files to Abot_node ")
- os.system('juju scp -- -r {}/featureFiles abot-'
- 'epc-basic/0:~/'.format(self.case_dir))
- self.__logger.info("Copying the feature files in Abot_node ")
- os.system("juju ssh abot-epc-basic/0 'sudo rsync -azvv "
- "~/featureFiles /etc/rebaca-test-suite"
- "/featureFiles'")
- count = 0
- while count < 10:
- epcstatus = os.system('juju status oai-epc | '
- 'grep {} | grep {} | grep {}'
- .format('EPC', 'is', 'running'))
- if epcstatus == 0:
- break
- else:
- time.sleep(60)
- count = count + 1
- os.system('juju-wait')
- return True
- return False
-
- def test_vnf(self):
- """Run test on ABoT."""
- start_time = time.time()
- self.__logger.info("Running VNF Test cases....")
- os.system('juju run-action abot-epc-basic/0 run '
- 'tagnames={}'.format(self.details['test_vnf']['tag_name']))
- os.system('juju-wait')
- duration = time.time() - start_time
- self.__logger.info("Getting results from Abot node....")
- os.system('juju scp abot-epc-basic/0:/var/lib/abot-'
- 'epc-basic/artifacts/TestResults.json {}/.'
- .format(self.case_dir))
- self.__logger.info("Parsing the Test results...")
- res = (process_abot_test_result('{}/TestResults.'
- 'json'.format(self.case_dir)))
- short_result = sig_test_format(res)
- self.__logger.info(short_result)
- self.details['test_vnf'].update(status='PASS',
- result=short_result,
- full_result=res,
- duration=duration)
-
- self.__logger.info("Test VNF result: Passed: %d, Failed:"
- "%d, Skipped: %d", short_result['passed'],
- short_result['failures'], short_result['skipped'])
- return True
-
- def clean(self):
- """Clean created objects/functions."""
- try:
- if not self.orchestrator['requirements']['preserve_setup']:
- self.__logger.info("Removing deployment files...")
- testresult = os.path.join(self.case_dir, 'TestResults.json')
- if os.path.exists(testresult):
- os.remove(testresult)
- self.__logger.info("Destroying Orchestrator...")
- os.system('juju destroy-controller -y abot-controller '
- '--destroy-all-models')
- except Exception: # pylint: disable=broad-except
- self.__logger.warn("Some issue during the undeployment ..")
- self.__logger.warn("Tenant clean continue ..")
-
- if not self.orchestrator['requirements']['preserve_setup']:
- self.__logger.info('Remove the Abot_epc OS object ..')
- super(JujuEpc, self).clean()
-
- return True
-
-
-# ----------------------------------------------------------
-#
-# YAML UTILS
-#
-# -----------------------------------------------------------
-def get_config(parameter, file_path):
- """
- Returns the value of a given parameter in file.yaml
- parameter must be given in string format with dots
- Example: general.openstack.image_name
- """
- with open(file_path) as config_file:
- file_yaml = yaml.safe_load(config_file)
- config_file.close()
- value = file_yaml
- for element in parameter.split("."):
- value = value.get(element)
- if value is None:
- raise ValueError("The parameter %s is not defined in"
- " reporting.yaml" % parameter)
- return value
-
-
-def sig_test_format(sig_test):
- """
- Process the signaling result to have a short result
- """
- nb_passed = 0
- nb_failures = 0
- nb_skipped = 0
- for data_test in sig_test:
- if data_test['result'] == "passed":
- nb_passed += 1
- elif data_test['result'] == "failed":
- nb_failures += 1
- elif data_test['result'] == "skipped":
- nb_skipped += 1
- total_sig_test_result = {}
- total_sig_test_result['passed'] = nb_passed
- total_sig_test_result['failures'] = nb_failures
- total_sig_test_result['skipped'] = nb_skipped
- return total_sig_test_result
-
-
-def process_abot_test_result(file_path):
- """ Process ABoT Result """
- with open(file_path) as test_result:
- data = json.load(test_result)
- res = []
- for tests in data:
- tests = update_data(tests)
- try:
- flatten_steps = tests['elements'][0].pop('flatten_steps')
- for steps in flatten_steps:
- steps['result'] = steps['step_status']
- res.append(steps)
- except:
- logging.error("Could not post data to ElasticSearch host")
- raise
- return res
-
-
-def update_data(obj):
- """ Update Result data"""
- try:
- obj['feature_file'] = os.path.splitext(os.path.basename(obj['uri']))[0]
-
- for element in obj['elements']:
- element['final_result'] = "passed"
- element['flatten_steps'] = []
-
- for step in element['steps']:
- temp_dict = {}
- step['result'][step['result']['status']] = 1
- if step['result']['status'].lower() in ['fail', 'failed']:
- element['final_result'] = "failed"
-
- temp_dict['feature_file'] = obj['feature_file']
- temp_dict['step_name'] = step['name']
- temp_dict['step_status'] = step['result']['status']
- temp_dict['step_duration'] = step['result'].get('duration', 0)
- temp_dict['step_' + step['result']['status']] = 1
- element['flatten_steps'].append(deepcopy(temp_dict))
-
- # Need to put the tag in OBJ and not ELEMENT
- if 'tags' in obj:
- element['tags'] = deepcopy(obj['tags'])
- for tag in obj['tags']:
- element[tag['name']] = 1
- else:
- for tag in element['tags']:
- element[tag['name']] = 1
-
- except Exception: # pylint: disable=broad-except
- logging.error("Error in updating data, %s", sys.exc_info()[0])
- raise
-
- return obj
-
-
-def get_instances(nova_client):
- """ To get all vm info of a project """
- try:
- instances = nova_client.servers.list()
- return instances
- except Exception as exc: # pylint: disable=broad-except
- logging.error("Error [get_instances(nova_client)]: %s", exc)
- return None
-
-
-def get_instance_metadata(nova_client, instance):
- """ Get instance Metadata - Instance ID """
- try:
- instance = nova_client.servers.get(instance.id)
- return instance.metadata
- except Exception as exc: # pylint: disable=broad-except
- logging.error("Error [get_instance_status(nova_client)]: %s", exc)
- return None
diff --git a/functest/opnfv_tests/vnf/epc/juju_epc.yaml b/functest/opnfv_tests/vnf/epc/juju_epc.yaml
deleted file mode 100644
index 67f3224f..00000000
--- a/functest/opnfv_tests/vnf/epc/juju_epc.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-tenant_images:
- trusty:
- /home/opnfv/functest/images/ubuntu-14.04-server-cloudimg-amd64-disk1.img
- xenial:
- /home/opnfv/functest/images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
-
-orchestrator:
- name: juju
- version: '2.0'
- requirements:
- dep_package: 'software-properties-common'
- flavor:
- name: m1.small.juju
- ram_min: 2048
- preserve_setup: false
-vnf:
- name: juju_epc
- version: '1'
- descriptor:
- name: abot-oai-epc
- file_name:
- /src/epc-requirements/abot_charm/functest-abot-epc-bundle/bundle.yaml
- version: '1'
- requirements:
- flavor:
- name: m1.medium.juju
- ram_min: 4096
-vnf_test_suite:
- name: abot-epc-basic
- version: "3.1.0"
- tag_name: "TS_24_301"
diff --git a/functest/opnfv_tests/vnf/ims/__init__.py b/functest/opnfv_tests/vnf/ims/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/ims/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/ims/clearwater_ims_base.py b/functest/opnfv_tests/vnf/ims/clearwater_ims_base.py
deleted file mode 100644
index 7e1d5bb2..00000000
--- a/functest/opnfv_tests/vnf/ims/clearwater_ims_base.py
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2017 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-import json
-import logging
-import os
-import shlex
-import shutil
-import subprocess
-import time
-
-import pkg_resources
-import requests
-
-import functest.core.vnf as vnf
-from functest.utils import config
-import functest.utils.functest_utils as ft_utils
-
-__author__ = ("Valentin Boucher <valentin.boucher@orange.com>, "
- "Helen Yao <helanyao@gmail.com>")
-
-
-class ClearwaterOnBoardingBase(vnf.VnfOnBoarding):
- """ vIMS clearwater base usable by several orchestrators"""
-
- def __init__(self, **kwargs):
- self.logger = logging.getLogger(__name__)
- super(ClearwaterOnBoardingBase, self).__init__(**kwargs)
- self.case_dir = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/vnf/ims')
- self.data_dir = getattr(config.CONF, 'dir_ims_data')
- self.result_dir = os.path.join(getattr(config.CONF, 'dir_results'),
- self.case_name)
- self.test_dir = getattr(config.CONF, 'dir_repo_vims_test')
-
- if not os.path.exists(self.data_dir):
- os.makedirs(self.data_dir)
- if not os.path.exists(self.result_dir):
- os.makedirs(self.result_dir)
-
- def config_ellis(self, ellis_ip, signup_code='secret', two_numbers=False):
- output_dict = {}
- self.logger.debug('Configure Ellis: %s', ellis_ip)
- output_dict['ellis_ip'] = ellis_ip
- account_url = 'http://{0}/accounts'.format(ellis_ip)
- params = {"password": "functest",
- "full_name": "opnfv functest user",
- "email": "functest@opnfv.org",
- "signup_code": signup_code}
- rq = requests.post(account_url, data=params)
- output_dict['login'] = params
- if rq.status_code != 201 and rq.status_code != 409:
- raise Exception("Unable to create an account for number provision")
- self.logger.debug('Account is created on Ellis: %s', params)
-
- session_url = 'http://{0}/session'.format(ellis_ip)
- session_data = {
- 'username': params['email'],
- 'password': params['password'],
- 'email': params['email']
- }
- rq = requests.post(session_url, data=session_data)
- if rq.status_code != 201:
- raise Exception('Failed to get cookie for Ellis')
- cookies = rq.cookies
- self.logger.debug('Cookies: %s', cookies)
-
- number_url = 'http://{0}/accounts/{1}/numbers'.format(
- ellis_ip, params['email'])
- self.logger.debug('Create 1st calling number on Ellis')
- i = 30
- while rq.status_code != 200 and i > 0:
- try:
- number_res = self.create_ellis_number(number_url, cookies)
- break
- except Exception: # pylint: disable=broad-except
- if i == 1:
- raise Exception("Unable to create a number")
- self.logger.warn("Unable to create a number. Retry ..")
- time.sleep(25)
- i = i - 1
- output_dict['number'] = number_res
-
- if two_numbers:
- self.logger.debug('Create 2nd calling number on Ellis')
- number_res = self.create_ellis_number(number_url, cookies)
- output_dict['number2'] = number_res
-
- return output_dict
-
- def create_ellis_number(self, number_url, cookies):
- rq = requests.post(number_url, cookies=cookies)
-
- if rq.status_code != 200:
- if rq and rq.json():
- reason = rq.json()['reason']
- else:
- reason = rq
- raise Exception("Unable to create a number: %s" % reason)
- number_res = rq.json()
- self.logger.info('Calling number is created: %s', number_res)
- return number_res
-
- def run_clearwater_live_test(self, dns_ip, public_domain,
- bono_ip=None, ellis_ip=None,
- signup_code='secret'):
- self.logger.info('Run Clearwater live test')
- dns_file = '/etc/resolv.conf'
- dns_file_bak = '/etc/resolv.conf.bak'
- self.logger.debug('Backup %s -> %s', dns_file, dns_file_bak)
- shutil.copy(dns_file, dns_file_bak)
- cmd = ("dnsmasq -d -u root --server=/clearwater.opnfv/{0} "
- "-r /etc/resolv.conf.bak".format(dns_ip))
- dnsmasq_process = subprocess.Popen(shlex.split(cmd))
- script = ('echo -e "nameserver {0}" > {1};'
- 'cd {2};'
- 'rake test[{3}] SIGNUP_CODE={4}'
- .format('127.0.0.1',
- dns_file,
- self.test_dir,
- public_domain,
- signup_code))
- if bono_ip and ellis_ip:
- subscript = ' PROXY={0} ELLIS={1}'.format(bono_ip, ellis_ip)
- script = '{0}{1}'.format(script, subscript)
- script = ('{0}{1}'.format(script, ' --trace'))
- cmd = "/bin/bash -c '{0}'".format(script)
- self.logger.debug('Live test cmd: %s', cmd)
- output_file = os.path.join(self.result_dir, "ims_test_output.txt")
- ft_utils.execute_command(cmd,
- error_msg='Clearwater live test failed',
- output_file=output_file)
- dnsmasq_process.kill()
- with open(dns_file_bak, 'r') as bak_file:
- result = bak_file.read()
- with open(dns_file, 'w') as f:
- f.write(result)
-
- f = open(output_file, 'r')
- result = f.read()
- if result != "":
- self.logger.debug(result)
-
- vims_test_result = ""
- tempFile = os.path.join(self.test_dir, "temp.json")
- try:
- self.logger.debug("Trying to load test results")
- with open(tempFile) as f:
- vims_test_result = json.load(f)
- f.close()
- except Exception: # pylint: disable=broad-except
- self.logger.error("Unable to retrieve test results")
-
- try:
- os.remove(tempFile)
- except Exception: # pylint: disable=broad-except
- self.logger.error("Deleting file failed")
-
- return vims_test_result
diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.py b/functest/opnfv_tests/vnf/ims/cloudify_ims.py
deleted file mode 100644
index 39bbb767..00000000
--- a/functest/opnfv_tests/vnf/ims/cloudify_ims.py
+++ /dev/null
@@ -1,540 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""CloudifyIms testcase implementation."""
-
-import logging
-import os
-import time
-
-from cloudify_rest_client import CloudifyClient
-from cloudify_rest_client.executions import Execution
-from scp import SCPClient
-import yaml
-
-from functest.energy import energy
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-import functest.opnfv_tests.vnf.ims.clearwater_ims_base as clearwater_ims_base
-from functest.utils import config
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.keypair import KeypairConfig
-from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig
-
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.create_image import OpenStackImage
-from snaps.openstack.create_instance import OpenStackVmInstance
-from snaps.openstack.create_keypairs import OpenStackKeypair
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-from snaps.openstack.utils import keystone_utils
-
-
-__author__ = "Valentin Boucher <valentin.boucher@orange.com>"
-
-
-class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase):
- """Clearwater vIMS deployed with Cloudify Orchestrator Case."""
-
- __logger = logging.getLogger(__name__)
-
- def __init__(self, **kwargs):
- """Initialize CloudifyIms testcase object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "cloudify_ims"
- super(CloudifyIms, self).__init__(**kwargs)
-
- # Retrieve the configuration
- try:
- self.config = getattr(
- config.CONF, 'vnf_{}_config'.format(self.case_name))
- except Exception:
- raise Exception("VNF config file not found")
-
- config_file = os.path.join(self.case_dir, self.config)
- self.orchestrator = dict(
- requirements=get_config("orchestrator.requirements", config_file),
- )
- self.details['orchestrator'] = dict(
- name=get_config("orchestrator.name", config_file),
- version=get_config("orchestrator.version", config_file),
- status='ERROR',
- result=''
- )
- self.__logger.debug("Orchestrator configuration %s", self.orchestrator)
- self.vnf = dict(
- descriptor=get_config("vnf.descriptor", config_file),
- inputs=get_config("vnf.inputs", config_file),
- requirements=get_config("vnf.requirements", config_file)
- )
- self.details['vnf'] = dict(
- descriptor_version=self.vnf['descriptor']['version'],
- name=get_config("vnf.name", config_file),
- version=get_config("vnf.version", config_file),
- )
- self.__logger.debug("VNF configuration: %s", self.vnf)
-
- self.details['test_vnf'] = dict(
- name=get_config("vnf_test_suite.name", config_file),
- version=get_config("vnf_test_suite.version", config_file)
- )
- self.images = get_config("tenant_images", config_file)
- self.__logger.info("Images needed for vIMS: %s", self.images)
-
- def prepare(self):
- """Prepare testscase (Additional pre-configuration steps)."""
- super(CloudifyIms, self).prepare()
-
- self.__logger.info("Additional pre-configuration steps")
-
- compute_quotas = self.os_project.get_compute_quotas()
- network_quotas = self.os_project.get_network_quotas()
-
- for key, value in (
- self.vnf['requirements']['compute_quotas'].items()):
- setattr(compute_quotas, key, value)
-
- for key, value in (
- self.vnf['requirements']['network_quotas'].items()):
- setattr(network_quotas, key, value)
-
- compute_quotas = self.os_project.update_compute_quotas(compute_quotas)
- network_quotas = self.os_project.update_network_quotas(network_quotas)
-
- # needs some images
- self.__logger.info("Upload some OS images if it doesn't exist")
- for image_name, image_file in self.images.iteritems():
- self.__logger.info("image: %s, file: %s", image_name, image_file)
- if image_file and image_name:
- image_creator = OpenStackImage(
- self.snaps_creds,
- ImageConfig(
- name=image_name, image_user='cloud',
- img_format='qcow2', image_file=image_file))
- image_creator.create()
- self.created_object.append(image_creator)
-
- def deploy_orchestrator(self):
- """
- Deploy Cloudify Manager.
-
- network, security group, fip, VM creation
- """
- # network creation
-
- start_time = time.time()
- self.__logger.info("Creating keypair ...")
- kp_file = os.path.join(self.data_dir, "cloudify_ims.pem")
- keypair_settings = KeypairConfig(
- name='cloudify_ims_kp-{}'.format(self.uuid),
- private_filepath=kp_file)
- keypair_creator = OpenStackKeypair(self.snaps_creds, keypair_settings)
- keypair_creator.create()
- self.created_object.append(keypair_creator)
-
- self.__logger.info("Creating full network ...")
- subnet_settings = SubnetConfig(
- name='cloudify_ims_subnet-{}'.format(self.uuid),
- cidr='10.67.79.0/24')
- network_settings = NetworkConfig(
- name='cloudify_ims_network-{}'.format(self.uuid),
- subnet_settings=[subnet_settings])
- network_creator = OpenStackNetwork(self.snaps_creds, network_settings)
- network_creator.create()
- self.created_object.append(network_creator)
- ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds)
- router_creator = OpenStackRouter(
- self.snaps_creds,
- RouterConfig(
- name='cloudify_ims_router-{}'.format(self.uuid),
- external_gateway=ext_net_name,
- internal_subnets=[subnet_settings.name]))
- router_creator.create()
- self.created_object.append(router_creator)
-
- # security group creation
- self.__logger.info("Creating security group for cloudify manager vm")
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="sg-cloudify-manager-{}".format(self.uuid),
- direction=Direction.ingress, protocol=Protocol.tcp,
- port_range_min=1, port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="sg-cloudify-manager-{}".format(self.uuid),
- direction=Direction.ingress, protocol=Protocol.udp,
- port_range_min=1, port_range_max=65535))
-
- security_group_creator = OpenStackSecurityGroup(
- self.snaps_creds,
- SecurityGroupConfig(
- name="sg-cloudify-manager-{}".format(self.uuid),
- rule_settings=sg_rules))
-
- security_group_creator.create()
- self.created_object.append(security_group_creator)
-
- # orchestrator VM flavor
- self.__logger.info("Get or create flavor for cloudify manager vm ...")
-
- flavor_settings = FlavorConfig(
- name=self.orchestrator['requirements']['flavor']['name'],
- ram=self.orchestrator['requirements']['flavor']['ram_min'],
- disk=50,
- vcpus=2)
- flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
- image_settings = ImageConfig(
- name=self.orchestrator['requirements']['os_image'],
- image_user='centos',
- exists=True)
-
- port_settings = PortConfig(
- name='cloudify_manager_port-{}'.format(self.uuid),
- network_name=network_settings.name)
-
- manager_settings = VmInstanceConfig(
- name='cloudify_manager-{}'.format(self.uuid),
- flavor=flavor_settings.name,
- port_settings=[port_settings],
- security_group_names=[
- security_group_creator.sec_grp_settings.name],
- floating_ip_settings=[FloatingIpConfig(
- name='cloudify_manager_fip-{}'.format(self.uuid),
- port_name=port_settings.name,
- router_name=router_creator.router_settings.name)])
-
- manager_creator = OpenStackVmInstance(
- self.snaps_creds, manager_settings, image_settings,
- keypair_settings)
-
- self.__logger.info("Creating cloudify manager VM")
- manager_creator.create()
- self.created_object.append(manager_creator)
-
- public_auth_url = keystone_utils.get_endpoint(
- self.snaps_creds, 'identity')
-
- cfy_creds = dict(
- keystone_username=self.snaps_creds.username,
- keystone_password=self.snaps_creds.password,
- keystone_tenant_name=self.snaps_creds.project_name,
- keystone_url=public_auth_url,
- region=self.snaps_creds.region_name)
- self.__logger.info("Set creds for cloudify manager %s", cfy_creds)
-
- cfy_client = CloudifyClient(
- host=manager_creator.get_floating_ip().ip,
- username='admin', password='admin', tenant='default_tenant')
-
- self.orchestrator['object'] = cfy_client
-
- self.__logger.info("Attemps running status of the Manager")
- cfy_status = None
- retry = 10
- while str(cfy_status) != 'running' and retry:
- try:
- cfy_status = cfy_client.manager.get_status()['status']
- self.__logger.debug("The current manager status is %s",
- cfy_status)
- except Exception: # pylint: disable=broad-except
- self.__logger.exception(
- "Cloudify Manager isn't up and running. Retrying ...")
- retry = retry - 1
- time.sleep(30)
-
- if str(cfy_status) == 'running':
- self.__logger.info("Cloudify Manager is up and running")
- else:
- raise Exception("Cloudify Manager isn't up and running")
-
- self.__logger.info("Put OpenStack creds in manager")
- secrets_list = cfy_client.secrets.list()
- for k, val in cfy_creds.iteritems():
- if not any(d.get('key', None) == k for d in secrets_list):
- cfy_client.secrets.create(k, val)
- else:
- cfy_client.secrets.update(k, val)
-
- duration = time.time() - start_time
-
- self.__logger.info("Put private keypair in manager")
- if manager_creator.vm_ssh_active(block=True):
- ssh = manager_creator.ssh_client()
- scp = SCPClient(ssh.get_transport(), socket_timeout=15.0)
- scp.put(kp_file, '~/')
- cmd = "sudo cp ~/cloudify_ims.pem /etc/cloudify/"
- self.run_blocking_ssh_command(ssh, cmd)
- cmd = "sudo chmod 444 /etc/cloudify/cloudify_ims.pem"
- self.run_blocking_ssh_command(ssh, cmd)
- cmd = "sudo yum install -y gcc python-devel"
- self.run_blocking_ssh_command(
- ssh, cmd, "Unable to install packages on manager")
-
- self.details['orchestrator'].update(status='PASS', duration=duration)
-
- self.vnf['inputs'].update(dict(
- external_network_name=ext_net_name,
- network_name=network_settings.name,
- key_pair_name=keypair_settings.name
- ))
- self.result = 1/3 * 100
- return True
-
- def deploy_vnf(self):
- """Deploy Clearwater IMS."""
- start_time = time.time()
-
- self.__logger.info("Upload VNFD")
- cfy_client = self.orchestrator['object']
- descriptor = self.vnf['descriptor']
- cfy_client.blueprints.publish_archive(descriptor.get('url'),
- descriptor.get('name'),
- descriptor.get('file_name'))
-
- self.__logger.info("Get or create flavor for all clearwater vm")
- flavor_settings = FlavorConfig(
- name=self.vnf['requirements']['flavor']['name'],
- ram=self.vnf['requirements']['flavor']['ram_min'],
- disk=25,
- vcpus=1)
- flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
-
- self.vnf['inputs'].update(dict(
- flavor_id=self.vnf['requirements']['flavor']['name'],
- ))
-
- self.__logger.info("Create VNF Instance")
- cfy_client.deployments.create(descriptor.get('name'),
- descriptor.get('name'),
- self.vnf.get('inputs'))
-
- wait_for_execution(cfy_client,
- _get_deployment_environment_creation_execution(
- cfy_client, descriptor.get('name')),
- self.__logger,
- timeout=300)
-
- self.__logger.info("Start the VNF Instance deployment")
- execution = cfy_client.executions.start(descriptor.get('name'),
- 'install')
- # Show execution log
- execution = wait_for_execution(cfy_client, execution, self.__logger)
-
- duration = time.time() - start_time
-
- self.__logger.info(execution)
- if execution.status == 'terminated':
- self.details['vnf'].update(status='PASS', duration=duration)
- self.result += 1/3 * 100
- result = True
- else:
- self.details['vnf'].update(status='FAIL', duration=duration)
- result = False
- return result
-
- def test_vnf(self):
- """Run test on clearwater ims instance."""
- start_time = time.time()
-
- cfy_client = self.orchestrator['object']
-
- outputs = cfy_client.deployments.outputs.get(
- self.vnf['descriptor'].get('name'))['outputs']
- dns_ip = outputs['dns_ip']
- ellis_ip = outputs['ellis_ip']
- self.config_ellis(ellis_ip)
-
- if not dns_ip:
- return False
-
- vims_test_result = self.run_clearwater_live_test(
- dns_ip=dns_ip,
- public_domain=self.vnf['inputs']["public_domain"])
- duration = time.time() - start_time
- short_result, nb_test = sig_test_format(vims_test_result)
- self.__logger.info(short_result)
- self.details['test_vnf'].update(result=short_result,
- full_result=vims_test_result,
- duration=duration)
- try:
- vnf_test_rate = short_result['passed'] / nb_test
- # orchestrator + vnf + test_vnf
- self.result += vnf_test_rate / 3 * 100
- except ZeroDivisionError:
- self.__logger.error("No test has been executed")
- self.details['test_vnf'].update(status='FAIL')
- return False
-
- return True
-
- def clean(self):
- """Clean created objects/functions."""
- try:
- cfy_client = self.orchestrator['object']
- dep_name = self.vnf['descriptor'].get('name')
- # kill existing execution
- self.__logger.info('Deleting the current deployment')
- exec_list = cfy_client.executions.list(dep_name)
- for execution in exec_list:
- if execution['status'] == "started":
- try:
- cfy_client.executions.cancel(execution['id'],
- force=True)
- except Exception: # pylint: disable=broad-except
- self.__logger.warn("Can't cancel the current exec")
-
- execution = cfy_client.executions.start(
- dep_name,
- 'uninstall',
- parameters=dict(ignore_failure=True),
- force=True)
-
- wait_for_execution(cfy_client, execution, self.__logger)
- cfy_client.deployments.delete(self.vnf['descriptor'].get('name'))
- cfy_client.blueprints.delete(self.vnf['descriptor'].get('name'))
- except Exception: # pylint: disable=broad-except
- self.__logger.warn("Some issue during the undeployment ..")
- self.__logger.warn("Tenant clean continue ..")
-
- super(CloudifyIms, self).clean()
-
- @staticmethod
- def run_blocking_ssh_command(ssh, cmd,
- error_msg="Unable to run this command"):
- """Command to run ssh command with the exit status."""
- _, stdout, stderr = ssh.exec_command(cmd)
- CloudifyIms.__logger.debug("SSH %s stdout: %s", cmd, stdout.read())
- if stdout.channel.recv_exit_status() != 0:
- CloudifyIms.__logger.error("SSH %s stderr: %s", cmd, stderr.read())
- raise Exception(error_msg)
-
- @energy.enable_recording
- def run(self, **kwargs):
- """Execute CloudifyIms test case."""
- return super(CloudifyIms, self).run(**kwargs)
-
-
-# ----------------------------------------------------------
-#
-# YAML UTILS
-#
-# -----------------------------------------------------------
-def get_config(parameter, file_path):
- """
- Get config parameter.
-
- Returns the value of a given parameter in file.yaml
- parameter must be given in string format with dots
- Example: general.openstack.image_name
- """
- with open(file_path) as config_file:
- file_yaml = yaml.safe_load(config_file)
- config_file.close()
- value = file_yaml
- for element in parameter.split("."):
- value = value.get(element)
- if value is None:
- raise ValueError("The parameter %s is not defined in"
- " reporting.yaml" % parameter)
- return value
-
-
-def wait_for_execution(client, execution, logger, timeout=1500, ):
- """Wait for a workflow execution on Cloudify Manager."""
- # if execution already ended - return without waiting
- if execution.status in Execution.END_STATES:
- return execution
-
- if timeout is not None:
- deadline = time.time() + timeout
-
- # Poll for execution status and execution logs, until execution ends
- # and we receive an event of type in WORKFLOW_END_TYPES
- offset = 0
- batch_size = 50
- event_list = []
- execution_ended = False
- while True:
- event_list = client.events.list(
- execution_id=execution.id,
- _offset=offset,
- _size=batch_size,
- include_logs=False,
- sort='@timestamp').items
-
- offset = offset + len(event_list)
- for event in event_list:
- logger.debug(event.get('message'))
-
- if timeout is not None:
- if time.time() > deadline:
- raise RuntimeError(
- 'execution of operation {0} for deployment {1} '
- 'timed out'.format(execution.workflow_id,
- execution.deployment_id))
- else:
- # update the remaining timeout
- timeout = deadline - time.time()
-
- if not execution_ended:
- execution = client.executions.get(execution.id)
- execution_ended = execution.status in Execution.END_STATES
-
- if execution_ended:
- break
-
- time.sleep(5)
-
- return execution
-
-
-def _get_deployment_environment_creation_execution(client, deployment_id):
- """
- Get the execution id of a env preparation.
-
- network, security group, fip, VM creation
- """
- executions = client.executions.list(deployment_id=deployment_id)
- for execution in executions:
- if execution.workflow_id == 'create_deployment_environment':
- return execution
- raise RuntimeError('Failed to get create_deployment_environment '
- 'workflow execution.'
- 'Available executions: {0}'.format(executions))
-
-
-def sig_test_format(sig_test):
- """Process the signaling result to have a short result."""
- nb_passed = 0
- nb_failures = 0
- nb_skipped = 0
- for data_test in sig_test:
- if data_test['result'] == "Passed":
- nb_passed += 1
- elif data_test['result'] == "Failed":
- nb_failures += 1
- elif data_test['result'] == "Skipped":
- nb_skipped += 1
- short_sig_test_result = {}
- short_sig_test_result['passed'] = nb_passed
- short_sig_test_result['failures'] = nb_failures
- short_sig_test_result['skipped'] = nb_skipped
- nb_test = nb_passed + nb_skipped
- return (short_sig_test_result, nb_test)
diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml b/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml
deleted file mode 100644
index e1a7bf31..00000000
--- a/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-tenant_images:
- ubuntu_14.04:
- /home/opnfv/functest/images/trusty-server-cloudimg-amd64-disk1.img
- cloudify_manager_4.0:
- /home/opnfv/functest/images/cloudify-manager-premium-4.0.1.qcow2
-orchestrator:
- name: cloudify
- version: '4.0'
- requirements:
- flavor:
- name: m1.medium
- ram_min: 4096
- os_image: 'cloudify_manager_4.0'
-vnf:
- name: clearwater
- version: '107'
- descriptor:
- file_name: openstack-blueprint.yaml
- name: clearwater-opnfv
- url:
- https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/archive/master.zip
- version: '122'
- requirements:
- flavor:
- name: m1.small
- ram_min: 2048
- compute_quotas:
- cores: 50
- instances: 15
- network_quotas:
- security_group: 20
- security_group_rule: 100
- port: 50
- inputs:
- image_id: 'ubuntu_14.04'
- flavor_id: 'm1.small'
- agent_user: ubuntu
- key_pair_name: cloudify_ims_kp
- private_key_path: '/etc/cloudify/cloudify_ims.pem'
- external_network_name: ''
- public_domain: clearwater.opnfv
- release: repo122
- bono_cluster_size: 1
- sprout_cluster_size: 1
- vellum_cluster_size: 1
- dime_cluster_size: 1
- homer_cluster_size: 1
-vnf_test_suite:
- name: clearwater-live-test
- version: "1.0"
diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py b/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py
deleted file mode 100644
index cdf1edc0..00000000
--- a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.py
+++ /dev/null
@@ -1,498 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Orange, IXIA and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""CloudifyImsPerf testcase implementation."""
-
-import logging
-import os
-import time
-
-import json
-import yaml
-import paramiko
-import dns.resolver
-from jinja2 import Environment, FileSystemLoader
-
-from functest.energy import energy
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.opnfv_tests.vnf.ims import cloudify_ims
-from functest.opnfv_tests.vnf.ims.ixia.utils import IxChassisUtils
-from functest.opnfv_tests.vnf.ims.ixia.utils import IxLoadUtils
-from functest.opnfv_tests.vnf.ims.ixia.utils import IxRestUtils
-from functest.utils import config
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.create_instance import OpenStackVmInstance
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-
-
-__author__ = "Valentin Boucher <valentin.boucher@orange.com>"
-
-
-class CloudifyImsPerf(cloudify_ims.CloudifyIms):
- """Clearwater vIMS deployed with Cloudify Orchestrator Case."""
-
- __logger = logging.getLogger(__name__)
-
- def __init__(self, **kwargs):
- """Initialize CloudifyIms testcase object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "cloudify_ims_perf"
- super(CloudifyImsPerf, self).__init__(**kwargs)
-
- # Retrieve the configuration
- try:
- self.config = getattr(
- config.CONF, 'vnf_{}_config'.format(self.case_name))
- except Exception:
- raise Exception("VNF config file not found")
-
- self.snaps_creds = ''
- self.created_object = []
-
- config_file = os.path.join(self.case_dir, self.config)
- self.orchestrator = dict(
- requirements=get_config("orchestrator.requirements", config_file),
- )
- self.details['orchestrator'] = dict(
- name=get_config("orchestrator.name", config_file),
- version=get_config("orchestrator.version", config_file),
- status='ERROR',
- result=''
- )
- self.__logger.debug("Orchestrator configuration %s", self.orchestrator)
- self.vnf = dict(
- descriptor=get_config("vnf.descriptor", config_file),
- inputs=get_config("vnf.inputs", config_file),
- requirements=get_config("vnf.requirements", config_file)
- )
- self.details['vnf'] = dict(
- descriptor_version=self.vnf['descriptor']['version'],
- name=get_config("vnf.name", config_file),
- version=get_config("vnf.version", config_file),
- )
- self.__logger.debug("VNF configuration: %s", self.vnf)
-
- self.test = dict(
- version=get_config("vnf_test_suite.version", config_file),
- inputs=get_config("vnf_test_suite.inputs", config_file),
- requirements=get_config("vnf_test_suite.requirements", config_file)
- )
-
- self.details['test_vnf'] = dict(
- name=get_config("vnf_test_suite.name", config_file),
- version=get_config("vnf_test_suite.version", config_file),
- requirements=get_config("vnf_test_suite.requirements", config_file)
- )
- self.images = get_config("tenant_images", config_file)
- self.__logger.info("Images needed for vIMS: %s", self.images)
-
- def test_vnf(self):
- """Run IXIA Stress test on clearwater ims instance."""
- start_time = time.time()
-
- cfy_client = self.orchestrator['object']
-
- outputs = cfy_client.deployments.outputs.get(
- self.vnf['descriptor'].get('name'))['outputs']
- dns_ip = outputs['dns_ip']
- ellis_ip = outputs['ellis_ip']
-
- self.__logger.info("Creating full IXIA network ...")
- subnet_settings = SubnetConfig(name='ixia_management_subnet',
- cidr='10.10.10.0/24')
- network_settings = NetworkConfig(name='ixia_management_network',
- subnet_settings=[subnet_settings])
- network_creator = OpenStackNetwork(self.snaps_creds, network_settings)
- network_creator.create()
- self.created_object.append(network_creator)
- ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds)
- router_creator = OpenStackRouter(
- self.snaps_creds,
- RouterConfig(
- name='ixia_management_router',
- external_gateway=ext_net_name,
- internal_subnets=[subnet_settings.name]))
- router_creator.create()
- self.created_object.append(router_creator)
-
- # security group creation
- self.__logger.info("Creating security groups for IXIA VMs")
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(sec_grp_name="ixia_management",
- direction=Direction.ingress,
- protocol=Protocol.tcp, port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(sec_grp_name="ixia_management",
- direction=Direction.ingress,
- protocol=Protocol.udp, port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(sec_grp_name="ixia_management",
- direction=Direction.ingress,
- protocol=Protocol.icmp))
-
- ixia_managment_sg_settings = SecurityGroupConfig(
- name="ixia_management", rule_settings=sg_rules)
- securit_group_creator = OpenStackSecurityGroup(
- self.snaps_creds,
- ixia_managment_sg_settings)
-
- securit_group_creator.create()
- self.created_object.append(securit_group_creator)
-
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(sec_grp_name="ixia_ssh_http",
- direction=Direction.ingress,
- protocol=Protocol.tcp, port_range_min=1,
- port_range_max=65535))
-
- ixia_ssh_http_sg_settings = SecurityGroupConfig(
- name="ixia_ssh_http", rule_settings=sg_rules)
- securit_group_creator = OpenStackSecurityGroup(
- self.snaps_creds,
- ixia_ssh_http_sg_settings)
-
- securit_group_creator.create()
- self.created_object.append(securit_group_creator)
-
- chassis_flavor_settings = FlavorConfig(
- name="ixia_vChassis",
- ram=4096,
- disk=40,
- vcpus=2)
- flavor_creator = OpenStackFlavor(self.snaps_creds,
- chassis_flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
-
- card_flavor_settings = FlavorConfig(
- name="ixia_vCard",
- ram=4096,
- disk=4,
- vcpus=2)
- flavor_creator = OpenStackFlavor(self.snaps_creds,
- card_flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
-
- load_flavor_settings = FlavorConfig(
- name="ixia_vLoad",
- ram=8192,
- disk=100,
- vcpus=4)
- flavor_creator = OpenStackFlavor(self.snaps_creds,
- load_flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
-
- chassis_image_settings = ImageConfig(
- name=self.test['requirements']['chassis']['image'],
- image_user='admin',
- exists=True)
-
- card_image_settings = ImageConfig(
- name=self.test['requirements']['card']['image'],
- image_user='admin',
- exists=True)
-
- load_image_settings = ImageConfig(
- name=self.test['requirements']['load']['image'],
- image_user='admin',
- exists=True)
-
- chassis_port_settings = PortConfig(
- name='ixia_chassis_port', network_name=network_settings.name)
-
- card1_port1_settings = PortConfig(
- name='ixia_card1_port1', network_name=network_settings.name)
-
- card2_port1_settings = PortConfig(
- name='ixia_card2_port1', network_name=network_settings.name)
-
- card1_port2_settings = PortConfig(
- name='ixia_card1_port2', network_name="cloudify_ims_network")
-
- card2_port2_settings = PortConfig(
- name='ixia_card2_port2', network_name="cloudify_ims_network")
-
- load_port_settings = PortConfig(
- name='ixia_load_port', network_name=network_settings.name)
-
- chassis_settings = VmInstanceConfig(
- name='ixia_vChassis',
- flavor=chassis_flavor_settings.name,
- port_settings=[chassis_port_settings],
- security_group_names=[ixia_ssh_http_sg_settings.name,
- ixia_managment_sg_settings.name],
- floating_ip_settings=[FloatingIpConfig(
- name='ixia_vChassis_fip',
- port_name=chassis_port_settings.name,
- router_name=router_creator.router_settings.name)])
-
- vm_creator = OpenStackVmInstance(self.snaps_creds,
- chassis_settings,
- chassis_image_settings)
-
- self.__logger.info("Creating Ixia vChassis VM")
- vm_creator.create()
- fip_chassis = vm_creator.get_floating_ip().ip
- self.created_object.append(vm_creator)
-
- card1_settings = VmInstanceConfig(
- name='ixia_vCard1',
- flavor=card_flavor_settings.name,
- port_settings=[card1_port1_settings, card1_port2_settings],
- security_group_names=[ixia_managment_sg_settings.name])
-
- vm_creator = OpenStackVmInstance(self.snaps_creds,
- card1_settings,
- card_image_settings)
-
- self.__logger.info("Creating Ixia vCard1 VM")
- vm_creator.create()
- vcard_ips = list()
- vcard_ips_p2 = list()
- vcard_ips.append(vm_creator.get_port_ip('ixia_card1_port1'))
- vcard_ips_p2.append(vm_creator.get_port_ip('ixia_card1_port2'))
- self.created_object.append(vm_creator)
-
- card2_settings = VmInstanceConfig(
- name='ixia_vCard2',
- flavor=card_flavor_settings.name,
- port_settings=[card2_port1_settings, card2_port2_settings],
- security_group_names=[ixia_managment_sg_settings.name])
-
- vm_creator = OpenStackVmInstance(self.snaps_creds,
- card2_settings,
- card_image_settings)
-
- self.__logger.info("Creating Ixia vCard2 VM")
- vm_creator.create()
- vcard_ips.append(vm_creator.get_port_ip('ixia_card2_port1'))
- vcard_ips_p2.append(vm_creator.get_port_ip('ixia_card2_port2'))
- self.created_object.append(vm_creator)
-
- load_settings = VmInstanceConfig(
- name='ixia_vLoad',
- flavor=load_flavor_settings.name,
- port_settings=[load_port_settings],
- security_group_names=[ixia_ssh_http_sg_settings.name,
- ixia_managment_sg_settings.name],
- floating_ip_settings=[FloatingIpConfig(
- name='ixia_vLoad_fip',
- port_name=load_port_settings.name,
- router_name=router_creator.router_settings.name)])
-
- vm_creator = OpenStackVmInstance(self.snaps_creds,
- load_settings,
- load_image_settings)
-
- self.__logger.info("Creating Ixia vLoad VM")
- vm_creator.create()
- fip_load = vm_creator.get_floating_ip().ip
- self.created_object.append(vm_creator)
-
- self.__logger.info("Chassis IP is: %s", fip_chassis)
- login_url = "https://" + str(fip_chassis) + "/api/v1/auth/session"
- cards_url = "https://" + str(fip_chassis) + "/api/v2/ixos/cards/"
-
- payload = json.dumps({"username": "admin",
- "password": "admin",
- "rememberMe": "false"})
- api_key = json.loads((
- IxChassisUtils.ChassisRestAPI.postWithPayload(
- login_url, payload)))["apiKey"]
-
- self.__logger.info("Adding 2 card back inside the ixia chassis...")
-
- for ip in vcard_ips:
- payload = {"ipAddress": str(ip)}
- response = json.loads(IxChassisUtils.ChassisRestAPI.postOperation(
- cards_url, api_key, payload))
- count = 0
- while (int(
- IxChassisUtils.ChassisRestAPI.getWithHeaders(
- response['url'], api_key)['progress']) != 100):
- self.__logger.debug("Operation did not finish yet. \
- Waiting for 1 more second..")
- time.sleep(1)
- if count > 60:
- raise Exception("Adding card take more than 60 seconds")
- count += 1
-
- ssh = paramiko.SSHClient()
- ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy())
- ssh.connect(fip_chassis, username="admin", password="admin")
- cmd = "set license-check disable"
- run_blocking_ssh_command(ssh, cmd)
- cmd = "restart-service ixServer"
- run_blocking_ssh_command(ssh, cmd)
-
- self.config_ellis(ellis_ip)
-
- # Get IPs of P-CSCF
- resolver = dns.resolver.Resolver()
- resolver.nameservers = [dns_ip]
- result = resolver.query("bono.clearwater.local")
-
- iplistims = ''
- i = 0
- for rdata in result:
- i = i + 1
- print rdata.address
- iplistims += str(rdata.address)
- if i != len(result):
- iplistims += ';'
-
- kResourcesUrl = 'http://%s:%s/api/v0/resources' % (fip_load, 8080)
-
- kRxfPath = r"REG_CALL_OPNFV_v13.rxf"
- test_filname = self.test['inputs']['test_filname']
- kGatewaySharedFolder = '/mnt/ixload-share/'
- kRxfRelativeUploadPath = 'uploads/%s' % os.path.split(kRxfPath)[1]
- kRxfAbsoluteUploadPath = os.path.join(kGatewaySharedFolder,
- kRxfRelativeUploadPath)
- kChassisList = [str(fip_chassis)]
- dataFileNameList = [test_filname,
- 'Registration_only_LPS.tst',
- 'SIPCall.tst']
-
- kPortListPerCommunityCommunity = {"VoIP1@VM1": [(1, 1, 1)],
- "VoIP2@VM2": [(1, 2, 1)]}
-
- kStatsToDisplayDict = self.test['inputs']['stats']
- connection = IxRestUtils.getConnection(fip_load, 8080)
-
- self.__logger.info("Creating a new session...")
- sessionUrl = IxLoadUtils.createSession(connection,
- self.test['version'])
-
- license_server = self.test['inputs']['licenseServer']
- IxLoadUtils.configureLicenseServer(connection,
- sessionUrl,
- license_server)
-
- files_dir = os.path.join(self.case_dir, 'ixia/files')
- target_file = open(os.path.join(files_dir, test_filname), 'w')
- j2_env = Environment(loader=FileSystemLoader(files_dir),
- trim_blocks=True)
- self.test['inputs'].update(dict(
- ipchassis=fip_chassis, ipcard1=vcard_ips_p2[0],
- ipcard2=vcard_ips_p2[1], iplistims=iplistims
- ))
-
- target_file.write(
- j2_env.get_template(test_filname + '.template').render(
- self.test['inputs']
- ))
- target_file.close()
-
- self.__logger.info('Uploading files %s...' % kRxfPath)
- for dataFile in dataFileNameList:
- localFilePath = os.path.join(files_dir, dataFile)
- remoteFilePath = os.path.join(kGatewaySharedFolder,
- 'uploads/%s' % dataFile)
- IxLoadUtils.uploadFile(connection, kResourcesUrl,
- localFilePath, remoteFilePath)
- self.__logger.info('Upload file finished.')
-
- self.__logger.info("Loading repository %s..." % kRxfAbsoluteUploadPath)
- IxLoadUtils.loadRepository(connection, sessionUrl,
- kRxfAbsoluteUploadPath)
-
- self.__logger.info("Clearing chassis list...")
- IxLoadUtils.clearChassisList(connection, sessionUrl)
-
- self.__logger.info("Adding chassis %s..." % (kChassisList))
- IxLoadUtils.addChassisList(connection, sessionUrl, kChassisList)
-
- self.__logger.info("Assigning new ports...")
- IxLoadUtils.assignPorts(connection, sessionUrl,
- kPortListPerCommunityCommunity)
-
- self.__logger.info("Starting the test...")
- IxLoadUtils.runTest(connection, sessionUrl)
-
- self.__logger.info(
- "Polling values for stats %s..." % (kStatsToDisplayDict))
- result = IxLoadUtils.pollStats(connection, sessionUrl,
- kStatsToDisplayDict)
- self.__logger.info("Test finished.")
- self.__logger.info("Checking test status...")
- testRunError = IxLoadUtils.getTestRunError(connection, sessionUrl)
-
- self.__logger.info(result)
- duration = time.time() - start_time
- self.details['test_vnf'].update(status='PASS',
- result=result,
- duration=duration)
- if testRunError:
- self.__logger.info(
- "The test exited with following error: %s" % (testRunError))
- self.details['test_vnf'].update(status='FAIL', duration=duration)
- return False
- else:
- self.__logger.info("The test completed successfully.")
- self.details['test_vnf'].update(status='PASS', duration=duration)
- self.result += 1/3 * 100
- return True
-
- def clean(self):
- """Clean created objects/functions."""
- super(CloudifyImsPerf, self).clean()
-
- @energy.enable_recording
- def run(self, **kwargs):
- """Execute CloudifyIms test case."""
- return super(CloudifyImsPerf, self).run(**kwargs)
-
-
-# ----------------------------------------------------------
-#
-# YAML UTILS
-#
-# -----------------------------------------------------------
-def get_config(parameter, file_path):
- """
- Get config parameter.
-
- Returns the value of a given parameter in file.yaml
- parameter must be given in string format with dots
- Example: general.openstack.image_name
- """
- with open(file_path) as config_file:
- file_yaml = yaml.safe_load(config_file)
- config_file.close()
- value = file_yaml
- for element in parameter.split("."):
- value = value.get(element)
- if value is None:
- raise ValueError("The parameter %s is not defined in"
- " reporting.yaml" % parameter)
- return value
-
-
-def run_blocking_ssh_command(ssh, cmd, error_msg="Unable to run this command"):
- """Command to run ssh command with the exit status."""
- stdin, stdout, stderr = ssh.exec_command(cmd)
- if stdout.channel.recv_exit_status() != 0:
- raise Exception(error_msg)
diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml b/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml
deleted file mode 100644
index 77b295d0..00000000
--- a/functest/opnfv_tests/vnf/ims/cloudify_ims_perf.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
----
-tenant_images:
- ubuntu_14.04:
- http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
- cloudify_manager_4.0:
- http://repository.cloudifysource.org/cloudify/4.0.1/sp-release/cloudify-manager-premium-4.0.1.qcow2
- # PATH of the virtual chassis image.
- IXIA_CHASSIS: # Ixia_Virtual_Chassis_8.30_EA_KVM.qcow2
- # PATH of the virtual card image.
- IXIA_CARD: # Ixia_Virtual_Load_Module_8.30_EA_KVM.qcow2
- # PATH of the virtual loader image.
- IXIA_LOAD: # Ixia_Virtual_Loader_8.30_EA_KVM.qcow2
-orchestrator:
- name: cloudify
- version: '4.0'
- requirements:
- flavor:
- name: m1.medium
- ram_min: 4096
- os_image: 'cloudify_manager_4.0'
-vnf:
- name: clearwater
- version: '107'
- descriptor:
- file_name: openstack-blueprint-with-numbers.yaml
- name: clearwater-opnfv
- url:
- https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/archive/master.zip
- version: '122'
- requirements:
- flavor:
- name: m1.small
- ram_min: 2048
- compute_quotas:
- cores: 150
- instances: 100
- ram: 256000
- network_quotas:
- security_group: 25
- security_group_rule: 100
- port: 150
- inputs:
- image_id: 'ubuntu_14.04'
- flavor_id: 'm1.small'
- agent_user: ubuntu
- key_pair_name: cloudify_ims_kp
- private_key_path: '/etc/cloudify/cloudify_ims.pem'
- external_network_name: ''
- public_domain: clearwater.opnfv
- release: repo122
- bono_cluster_size: 2
- sprout_cluster_size: 2
- vellum_cluster_size: 2
- dime_cluster_size: 2
- homer_cluster_size: 2
- number_of_subscribers: 50000
-vnf_test_suite:
- name: ixia
- version: "8.30.0.161"
- requirements:
- chassis:
- image: IXIA_CHASSIS
- card:
- image: IXIA_CARD
- load:
- image: IXIA_LOAD
- inputs:
- ipgw: '10.67.79.1'
- pnregistering: '201001[0000-]'
- pncalling: '201000[0000-]'
- pncalled: '201000[5000-]'
- sipportregistering: '[5060-]'
- sipportcalling: '[5061-]'
- sipportcalled: '[5062-]'
- domainname: 'clearwater.opnfv'
- authpassword: 'toto'
- registeringtotalcalls: '1000'
- registeringduration: '180'
- activecalls: '1000'
- testduration: '360'
- test_filname: 'REG_CALL_OPNFV_v13.rxf'
- licenseServer: '' # IP of YOUR IXIA LICENSE SERVER
- stats:
- 'Signaling(VoIPSip)':
- - 'Successful Registrations'
- - 'Failed Registrations'
- - 'Active Calls'
- - 'Attempted Calls'
- - 'Received Calls'
- - 'Failed Attempted Calls'
- - 'Failed Received Calls'
diff --git a/functest/opnfv_tests/vnf/ims/ixia/__init__.py b/functest/opnfv_tests/vnf/ims/ixia/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template b/functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template
deleted file mode 100644
index 27936281..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/files/REG_CALL_OPNFV_v13.rxf.template
+++ /dev/null
@@ -1,16731 +0,0 @@
-<?xml version="1.0" ?>
-<root ver="[21, [1, [0, [0]]]]" type="ixRepository">
- <_smSessionXml ver="[0, [1, [0, [0]]]]" type="ixSMSessionXML">
- <xml type="str">&lt;rpf&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.SMSession type=&quot;Ixia.Aptixia.StackManager.SMSession&quot; objectid=&quot;d0db76dc-f224-429f-91ba-e207cd4711db&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;doWaitLinkUp type=&quot;Bool&quot;&gt;0&lt;/doWaitLinkUp&gt;&#13;&#10; &lt;doGratArp type=&quot;Bool&quot;&gt;0&lt;/doGratArp&gt;&#13;&#10; &lt;subscribeToGratArpNotifications type=&quot;Bool&quot;&gt;0&lt;/subscribeToGratArpNotifications&gt;&#13;&#10; &lt;doInterfaceCheck type=&quot;Bool&quot;&gt;0&lt;/doInterfaceCheck&gt;&#13;&#10; &lt;rebootPortsBeforeConfigure type=&quot;Bool&quot;&gt;0&lt;/rebootPortsBeforeConfigure&gt;&#13;&#10; &lt;testDuration type=&quot;Int&quot;&gt;10000&lt;/testDuration&gt;&#13;&#10; &lt;checkLinkState type=&quot;Bool&quot;&gt;0&lt;/checkLinkState&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;e7fa1f9e-23d9-4742-96b2-6edce6c4424e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VM1&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;45426251-0720-4316-b8a5-d6bce32e3d2e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;0&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;836ee0d6-1957-42eb-a7a4-53bcfbdd36e0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;copper&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;8387c005-0df9-4fd2-977e-1c234c7be0cc&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;df9be2ec-31d8-47f0-babe-79a1710303f3&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;166a11b6-4d30-40ea-b9e1-ac4fb44f112b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;ba896971-1d78-4e03-8f2a-28c65417612e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R11&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:43:4F:1B:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1410&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;2b81e36c-9cbb-4d78-a70c-904da8d41b28&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R11&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;1&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;1&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;1&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;2&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;2b81e36c-9cbb-4d78-a70c-904da8d41b28&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;9ea551b2-a0af-4a7d-9872-e9b94298d7bd&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;5affc0a7-68f6-46f6-b801-0e18e067a572&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R13&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;{{ipcard1}}&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;16&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;{{ipgw}}&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1410&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;1007257123&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;ba896971-1d78-4e03-8f2a-28c65417612e&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;2b81e36c-9cbb-4d78-a70c-904da8d41b28&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;abf2b6e4-a102-4cbe-bf1b-a11f11b2faac&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Group1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;5affc0a7-68f6-46f6-b801-0e18e067a572&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;-1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;26&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-8&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;25&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;976ba0fd-58ea-44d4-ae43-1b36c2556072&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;3ebd05e7-88a6-49be-a50d-134908ac124c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;1d9748c5-122e-4153-8ffd-67cd1309b8ce&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;5&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;8192&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;8192&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;1000&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;60000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;9cc60113-3e53-4cf2-b3b7-6fd7d3953bb4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;399db714-47a8-445d-a24b-90d00d3f2e9e&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;39d2a556-cf85-4102-8461-b1f1413b2db5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingTrafficMap type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMap&quot; objectid=&quot;cdca1e00-77a3-49ef-8fe5-afb321a51af2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;CALLING!VoIP2_CALLED#{{sipportcalled}}&lt;/name&gt;&#13;&#10; &lt;configMapFilename type=&quot;String&quot;&gt;CALLINGScript.configmap&lt;/configMapFilename&gt;&#13;&#10; &lt;sourceActivityId type=&quot;Int&quot;&gt;1&lt;/sourceActivityId&gt;&#13;&#10; &lt;ipPreference type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eIpPreference&quot;&gt;0&lt;/ipPreference&gt;&#13;&#10; &lt;portRangesString type=&quot;String&quot;&gt;{{sipportcalled}}&lt;/portRangesString&gt;&#13;&#10; &lt;meshingType type=&quot;Ixia.Aptixia.StackManager.MeshingTrafficMapSkeleton+eMeshingType&quot;&gt;2&lt;/meshingType&gt;&#13;&#10; &lt;destinationActivityId type=&quot;Int&quot;&gt;0&lt;/destinationActivityId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingTrafficMap&gt;&#13;&#10; &lt;/trafficMaps&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-1&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;11&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot;&gt;&#13;&#10; &lt;String&gt;{{ipchassis}};1;1&lt;/String&gt;&#13;&#10; &lt;/portList&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;62e57abd-b4c6-45af-a720-7033259c203c&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;f7999b28-d3d6-4a69-bd61-ab5516b7c540&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;b1fbd381-b769-4ec1-8715-299508ecb458&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VM2&lt;/name&gt;&#13;&#10; &lt;category type=&quot;String&quot; /&gt;&#13;&#10; &lt;stack type=&quot;Ixia.Aptixia.StackManager.L1EthernetPlugin&quot; objectid=&quot;48f486a6-f09b-4770-a091-e9ce609e9bec&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;autoNegotiate type=&quot;Bool&quot;&gt;1&lt;/autoNegotiate&gt;&#13;&#10; &lt;speed type=&quot;String&quot;&gt;k100FD&lt;/speed&gt;&#13;&#10; &lt;advertise10Half type=&quot;Bool&quot;&gt;1&lt;/advertise10Half&gt;&#13;&#10; &lt;advertise10Full type=&quot;Bool&quot;&gt;1&lt;/advertise10Full&gt;&#13;&#10; &lt;advertise100Half type=&quot;Bool&quot;&gt;1&lt;/advertise100Half&gt;&#13;&#10; &lt;advertise100Full type=&quot;Bool&quot;&gt;1&lt;/advertise100Full&gt;&#13;&#10; &lt;advertise1000Full type=&quot;Bool&quot;&gt;1&lt;/advertise1000Full&gt;&#13;&#10; &lt;advertise2500Full type=&quot;Bool&quot;&gt;1&lt;/advertise2500Full&gt;&#13;&#10; &lt;advertise5000Full type=&quot;Bool&quot;&gt;1&lt;/advertise5000Full&gt;&#13;&#10; &lt;advertise10000Full type=&quot;Bool&quot;&gt;1&lt;/advertise10000Full&gt;&#13;&#10; &lt;cardDualPhy type=&quot;Ixia.Aptixia.StackManager.DualPhyPlugin&quot; objectid=&quot;c500685a-4fcb-4335-abe0-70c98cf1ba43&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;medium type=&quot;String&quot;&gt;auto&lt;/medium&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardDualPhy&gt;&#13;&#10; &lt;cardElm type=&quot;Ixia.Aptixia.StackManager.EthernetELMPlugin&quot; objectid=&quot;92644bb5-bda6-4072-98f9-47b47e4597c7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;negotiateMasterSlave type=&quot;Bool&quot;&gt;1&lt;/negotiateMasterSlave&gt;&#13;&#10; &lt;negotiationType type=&quot;String&quot;&gt;master&lt;/negotiationType&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/cardElm&gt;&#13;&#10; &lt;enableFlowControl type=&quot;Bool&quot;&gt;0&lt;/enableFlowControl&gt;&#13;&#10; &lt;directedAddress type=&quot;String&quot;&gt;01:80:C2:00:00:01&lt;/directedAddress&gt;&#13;&#10; &lt;dataCenter type=&quot;Ixia.Aptixia.StackManager.DataCenterSettings&quot; objectid=&quot;3726f608-97b7-4bf2-b88e-4c0bf13b45a0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;dcSupported type=&quot;Bool&quot;&gt;1&lt;/dcSupported&gt;&#13;&#10; &lt;dcEnabled type=&quot;Bool&quot;&gt;0&lt;/dcEnabled&gt;&#13;&#10; &lt;dcFlowControl type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eFlowControlType&quot;&gt;0&lt;/dcFlowControl&gt;&#13;&#10; &lt;dcMode type=&quot;Ixia.Aptixia.StackManager.DataCenterSettingsSkeleton+eDataCenterMode&quot;&gt;2&lt;/dcMode&gt;&#13;&#10; &lt;dcPfcMapping type=&quot;IntList&quot; /&gt;&#13;&#10; &lt;dcPfcPauseEnable type=&quot;Bool&quot;&gt;0&lt;/dcPfcPauseEnable&gt;&#13;&#10; &lt;dcPfcPauseDelay type=&quot;Int&quot;&gt;1&lt;/dcPfcPauseDelay&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/dataCenter&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.L2EthernetPlugin type=&quot;Ixia.Aptixia.StackManager.L2EthernetPlugin&quot; objectid=&quot;820b0582-6a4c-4109-bd5d-587621a43ce2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;macRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;aa73bd95-9ffb-411e-8ab3-8a128767aacb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC-R2&lt;/name&gt;&#13;&#10; &lt;mac type=&quot;String&quot;&gt;00:0A:43:4F:2A:00&lt;/mac&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;00:00:00:00:00:01&lt;/incrementBy&gt;&#13;&#10; &lt;mtu type=&quot;Int&quot;&gt;1410&lt;/mtu&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;7024f4b3-1a75-491a-8da1-17a45a15d5cc&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;VLAN-R2&lt;/name&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;firstId type=&quot;Int&quot;&gt;1&lt;/firstId&gt;&#13;&#10; &lt;incrementStep type=&quot;Int&quot;&gt;1&lt;/incrementStep&gt;&#13;&#10; &lt;increment type=&quot;Int&quot;&gt;1&lt;/increment&gt;&#13;&#10; &lt;uniqueCount type=&quot;Int&quot;&gt;4094&lt;/uniqueCount&gt;&#13;&#10; &lt;priority type=&quot;Int&quot;&gt;1&lt;/priority&gt;&#13;&#10; &lt;tpid type=&quot;String&quot;&gt;0x8100&lt;/tpid&gt;&#13;&#10; &lt;innerEnable type=&quot;Bool&quot;&gt;0&lt;/innerEnable&gt;&#13;&#10; &lt;innerFirstId type=&quot;Int&quot;&gt;1&lt;/innerFirstId&gt;&#13;&#10; &lt;innerIncrementStep type=&quot;Int&quot;&gt;1&lt;/innerIncrementStep&gt;&#13;&#10; &lt;innerIncrement type=&quot;Int&quot;&gt;1&lt;/innerIncrement&gt;&#13;&#10; &lt;innerUniqueCount type=&quot;Int&quot;&gt;4094&lt;/innerUniqueCount&gt;&#13;&#10; &lt;innerPriority type=&quot;Int&quot;&gt;1&lt;/innerPriority&gt;&#13;&#10; &lt;idIncrMode type=&quot;Int&quot;&gt;2&lt;/idIncrMode&gt;&#13;&#10; &lt;innerTpid type=&quot;String&quot;&gt;0x8100&lt;/innerTpid&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/vlanRange&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacRange&gt;&#13;&#10; &lt;/macRangeList&gt;&#13;&#10; &lt;vlanRangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.VlanIdRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;7024f4b3-1a75-491a-8da1-17a45a15d5cc&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/vlanRangeList&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Plugin type=&quot;Ixia.Aptixia.StackManager.IpV4V6Plugin&quot; objectid=&quot;e53ae54e-ab21-4997-b532-e9bd58210050&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;c69dae97-f1c2-4505-aedb-3f9ca3f4d02a&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-R2&lt;/name&gt;&#13;&#10; &lt;ipType type=&quot;String&quot;&gt;IPv4&lt;/ipType&gt;&#13;&#10; &lt;ipAddress type=&quot;String&quot;&gt;{{ipcard2}}&lt;/ipAddress&gt;&#13;&#10; &lt;prefix type=&quot;Int&quot;&gt;16&lt;/prefix&gt;&#13;&#10; &lt;incrementBy type=&quot;String&quot;&gt;0.0.0.1&lt;/incrementBy&gt;&#13;&#10; &lt;count type=&quot;Int&quot;&gt;1&lt;/count&gt;&#13;&#10; &lt;autoCountEnabled type=&quot;Bool&quot;&gt;0&lt;/autoCountEnabled&gt;&#13;&#10; &lt;gatewayAddress type=&quot;String&quot;&gt;{{ipgw}}&lt;/gatewayAddress&gt;&#13;&#10; &lt;gatewayIncrement type=&quot;String&quot;&gt;0.0.0.0&lt;/gatewayIncrement&gt;&#13;&#10; &lt;gatewayIncrementMode type=&quot;String&quot;&gt;perSubnet&lt;/gatewayIncrementMode&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;generateStatistics type=&quot;Bool&quot;&gt;0&lt;/generateStatistics&gt;&#13;&#10; &lt;mss type=&quot;Int&quot;&gt;1410&lt;/mss&gt;&#13;&#10; &lt;randomizeAddress type=&quot;Bool&quot;&gt;0&lt;/randomizeAddress&gt;&#13;&#10; &lt;randomizeSeed type=&quot;Int&quot;&gt;3534372608&lt;/randomizeSeed&gt;&#13;&#10; &lt;autoMacGeneration type=&quot;Bool&quot;&gt;1&lt;/autoMacGeneration&gt;&#13;&#10; &lt;macRange type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;aa73bd95-9ffb-411e-8ab3-8a128767aacb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;vlanRange type=&quot;Ixia.Aptixia.StackManager.VlanIdRange&quot; objectid=&quot;7024f4b3-1a75-491a-8da1-17a45a15d5cc&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;atmRange type=&quot;Ixia.Aptixia.StackManager.AtmRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;pvcRange type=&quot;Ixia.Aptixia.StackManager.PvcRange&quot; objectid=&quot;00000000-0000-0000-0000-000000000000&quot; /&gt;&#13;&#10; &lt;autoIpTypeEnabled type=&quot;Bool&quot;&gt;0&lt;/autoIpTypeEnabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Range&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;rangeGroups type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.RangeGroup type=&quot;Ixia.Aptixia.StackManager.RangeGroup&quot; objectid=&quot;de9d629b-e0dc-41f5-99cb-5aa8a808ceee&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DistGroup1&lt;/name&gt;&#13;&#10; &lt;distribType type=&quot;Ixia.Aptixia.StackManager.RangeGroupSkeleton+eDistributionType&quot;&gt;0&lt;/distribType&gt;&#13;&#10; &lt;rangeList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpV4V6Range type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;c69dae97-f1c2-4505-aedb-3f9ca3f4d02a&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/rangeList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.RangeGroup&gt;&#13;&#10; &lt;/rangeGroups&gt;&#13;&#10; &lt;childrenList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;IP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpV4V6Plugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;MAC/VLAN-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;5&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.L2EthernetPlugin&gt;&#13;&#10; &lt;/childrenList&gt;&#13;&#10; &lt;extensionList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;dscMode type=&quot;Bool&quot;&gt;0&lt;/dscMode&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Ethernet-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/stack&gt;&#13;&#10; &lt;globalPluginList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin type=&quot;Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&quot; objectid=&quot;26685c48-95e7-4da5-a893-fc527b814b1c&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;teardownInterfaceWithUser type=&quot;Bool&quot;&gt;0&lt;/teardownInterfaceWithUser&gt;&#13;&#10; &lt;interfaceBehavior type=&quot;Int&quot;&gt;0&lt;/interfaceBehavior&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Settings-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSettingsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.FilterPlugin type=&quot;Ixia.Aptixia.StackManager.FilterPlugin&quot; objectid=&quot;3f42c205-a9ad-433b-b7af-19ea7ec76940&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;auto type=&quot;Bool&quot;&gt;1&lt;/auto&gt;&#13;&#10; &lt;all type=&quot;Bool&quot;&gt;0&lt;/all&gt;&#13;&#10; &lt;pppoecontrol type=&quot;Bool&quot;&gt;0&lt;/pppoecontrol&gt;&#13;&#10; &lt;pppoenetwork type=&quot;Bool&quot;&gt;0&lt;/pppoenetwork&gt;&#13;&#10; &lt;isis type=&quot;Bool&quot;&gt;0&lt;/isis&gt;&#13;&#10; &lt;ip type=&quot;String&quot; /&gt;&#13;&#10; &lt;tcp type=&quot;String&quot; /&gt;&#13;&#10; &lt;udp type=&quot;String&quot; /&gt;&#13;&#10; &lt;mac type=&quot;String&quot; /&gt;&#13;&#10; &lt;icmp type=&quot;String&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Filter-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;8&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.FilterPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.GratArpPlugin type=&quot;Ixia.Aptixia.StackManager.GratArpPlugin&quot; objectid=&quot;fe43b342-829b-4ff4-8671-49ba1c4441e5&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;forwardGratArp type=&quot;Bool&quot;&gt;0&lt;/forwardGratArp&gt;&#13;&#10; &lt;rateControlEnabled type=&quot;Bool&quot;&gt;0&lt;/rateControlEnabled&gt;&#13;&#10; &lt;maxFramesPerSecond type=&quot;Int&quot;&gt;0&lt;/maxFramesPerSecond&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;GratARP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;9&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.GratArpPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.TCPPlugin type=&quot;Ixia.Aptixia.StackManager.TCPPlugin&quot; objectid=&quot;57601116-d86b-4c04-856b-2241507a0378&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;bestPerfSettings type=&quot;Bool&quot;&gt;0&lt;/bestPerfSettings&gt;&#13;&#10; &lt;accept_ra_all type=&quot;Bool&quot;&gt;0&lt;/accept_ra_all&gt;&#13;&#10; &lt;tcp_abort_on_overflow type=&quot;Bool&quot;&gt;0&lt;/tcp_abort_on_overflow&gt;&#13;&#10; &lt;tcp_adv_win_scale type=&quot;Int&quot;&gt;2&lt;/tcp_adv_win_scale&gt;&#13;&#10; &lt;tcp_app_win type=&quot;Int&quot;&gt;31&lt;/tcp_app_win&gt;&#13;&#10; &lt;tcp_bic type=&quot;Int&quot;&gt;0&lt;/tcp_bic&gt;&#13;&#10; &lt;tcp_bic_fast_convergence type=&quot;Int&quot;&gt;1&lt;/tcp_bic_fast_convergence&gt;&#13;&#10; &lt;tcp_bic_low_window type=&quot;Int&quot;&gt;14&lt;/tcp_bic_low_window&gt;&#13;&#10; &lt;tcp_dsack type=&quot;Bool&quot;&gt;1&lt;/tcp_dsack&gt;&#13;&#10; &lt;tcp_ecn type=&quot;Bool&quot;&gt;0&lt;/tcp_ecn&gt;&#13;&#10; &lt;tcp_fack type=&quot;Bool&quot;&gt;1&lt;/tcp_fack&gt;&#13;&#10; &lt;tcp_fin_timeout type=&quot;Int&quot;&gt;60&lt;/tcp_fin_timeout&gt;&#13;&#10; &lt;tcp_frto type=&quot;Int&quot;&gt;0&lt;/tcp_frto&gt;&#13;&#10; &lt;tcp_keepalive_intvl type=&quot;Int&quot;&gt;75&lt;/tcp_keepalive_intvl&gt;&#13;&#10; &lt;tcp_keepalive_probes type=&quot;Int&quot;&gt;9&lt;/tcp_keepalive_probes&gt;&#13;&#10; &lt;tcp_keepalive_time type=&quot;Int&quot;&gt;7200&lt;/tcp_keepalive_time&gt;&#13;&#10; &lt;tcp_low_latency type=&quot;Int&quot;&gt;0&lt;/tcp_low_latency&gt;&#13;&#10; &lt;tcp_max_orphans type=&quot;Int&quot;&gt;8192&lt;/tcp_max_orphans&gt;&#13;&#10; &lt;tcp_max_syn_backlog type=&quot;Int&quot;&gt;1024&lt;/tcp_max_syn_backlog&gt;&#13;&#10; &lt;tcp_max_tw_buckets type=&quot;Int&quot;&gt;180000&lt;/tcp_max_tw_buckets&gt;&#13;&#10; &lt;tcp_mem_low type=&quot;Int&quot;&gt;24576&lt;/tcp_mem_low&gt;&#13;&#10; &lt;tcp_mem_pressure type=&quot;Int&quot;&gt;32768&lt;/tcp_mem_pressure&gt;&#13;&#10; &lt;tcp_mem_high type=&quot;Int&quot;&gt;49152&lt;/tcp_mem_high&gt;&#13;&#10; &lt;tcp_moderate_rcvbuf type=&quot;Int&quot;&gt;0&lt;/tcp_moderate_rcvbuf&gt;&#13;&#10; &lt;tcp_no_metrics_save type=&quot;Bool&quot;&gt;0&lt;/tcp_no_metrics_save&gt;&#13;&#10; &lt;tcp_orphan_retries type=&quot;Int&quot;&gt;0&lt;/tcp_orphan_retries&gt;&#13;&#10; &lt;tcp_reordering type=&quot;Int&quot;&gt;3&lt;/tcp_reordering&gt;&#13;&#10; &lt;tcp_retrans_collapse type=&quot;Bool&quot;&gt;1&lt;/tcp_retrans_collapse&gt;&#13;&#10; &lt;tcp_retries1 type=&quot;Int&quot;&gt;3&lt;/tcp_retries1&gt;&#13;&#10; &lt;tcp_retries2 type=&quot;Int&quot;&gt;5&lt;/tcp_retries2&gt;&#13;&#10; &lt;tcp_rfc1337 type=&quot;Bool&quot;&gt;0&lt;/tcp_rfc1337&gt;&#13;&#10; &lt;tcp_rmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_min&gt;&#13;&#10; &lt;tcp_rmem_default type=&quot;Int&quot;&gt;4096&lt;/tcp_rmem_default&gt;&#13;&#10; &lt;tcp_rmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_rmem_max&gt;&#13;&#10; &lt;tcp_sack type=&quot;Bool&quot;&gt;1&lt;/tcp_sack&gt;&#13;&#10; &lt;tcp_stdurg type=&quot;Bool&quot;&gt;0&lt;/tcp_stdurg&gt;&#13;&#10; &lt;tcp_synack_retries type=&quot;Int&quot;&gt;5&lt;/tcp_synack_retries&gt;&#13;&#10; &lt;tcp_syn_retries type=&quot;Int&quot;&gt;5&lt;/tcp_syn_retries&gt;&#13;&#10; &lt;tcp_timestamps type=&quot;Bool&quot;&gt;1&lt;/tcp_timestamps&gt;&#13;&#10; &lt;tcp_tw_recycle type=&quot;Bool&quot;&gt;1&lt;/tcp_tw_recycle&gt;&#13;&#10; &lt;tcp_tw_reuse type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_reuse&gt;&#13;&#10; &lt;tcp_vegas_alpha type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_alpha&gt;&#13;&#10; &lt;tcp_vegas_beta type=&quot;Int&quot;&gt;6&lt;/tcp_vegas_beta&gt;&#13;&#10; &lt;tcp_vegas_cong_avoid type=&quot;Int&quot;&gt;0&lt;/tcp_vegas_cong_avoid&gt;&#13;&#10; &lt;tcp_vegas_gamma type=&quot;Int&quot;&gt;2&lt;/tcp_vegas_gamma&gt;&#13;&#10; &lt;tcp_westwood type=&quot;Int&quot;&gt;0&lt;/tcp_westwood&gt;&#13;&#10; &lt;tcp_window_scaling type=&quot;Bool&quot;&gt;0&lt;/tcp_window_scaling&gt;&#13;&#10; &lt;ip_no_pmtu_disc type=&quot;Bool&quot;&gt;1&lt;/ip_no_pmtu_disc&gt;&#13;&#10; &lt;tcp_wmem_min type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_min&gt;&#13;&#10; &lt;tcp_wmem_default type=&quot;Int&quot;&gt;4096&lt;/tcp_wmem_default&gt;&#13;&#10; &lt;tcp_wmem_max type=&quot;Int&quot;&gt;262144&lt;/tcp_wmem_max&gt;&#13;&#10; &lt;tcp_ipfrag_time type=&quot;Int&quot;&gt;30&lt;/tcp_ipfrag_time&gt;&#13;&#10; &lt;tcp_port_min type=&quot;Int&quot;&gt;1024&lt;/tcp_port_min&gt;&#13;&#10; &lt;tcp_port_max type=&quot;Int&quot;&gt;65535&lt;/tcp_port_max&gt;&#13;&#10; &lt;tcp_rto_min type=&quot;Int&quot;&gt;200&lt;/tcp_rto_min&gt;&#13;&#10; &lt;tcp_rto_max type=&quot;Int&quot;&gt;120000&lt;/tcp_rto_max&gt;&#13;&#10; &lt;tcp_tw_rfc1323_strict type=&quot;Bool&quot;&gt;0&lt;/tcp_tw_rfc1323_strict&gt;&#13;&#10; &lt;udp_port_randomization type=&quot;Bool&quot;&gt;0&lt;/udp_port_randomization&gt;&#13;&#10; &lt;disable_min_max_buffer_size type=&quot;Bool&quot;&gt;1&lt;/disable_min_max_buffer_size&gt;&#13;&#10; &lt;llm_hdr_gap type=&quot;Int&quot;&gt;8&lt;/llm_hdr_gap&gt;&#13;&#10; &lt;llm_hdr_gap_ns type=&quot;Int&quot;&gt;10&lt;/llm_hdr_gap_ns&gt;&#13;&#10; &lt;inter_packet_granular_delay type=&quot;Double&quot;&gt;0&lt;/inter_packet_granular_delay&gt;&#13;&#10; &lt;delayed_acks type=&quot;Bool&quot;&gt;1&lt;/delayed_acks&gt;&#13;&#10; &lt;accept_ra_default type=&quot;Bool&quot;&gt;0&lt;/accept_ra_default&gt;&#13;&#10; &lt;rps_needed type=&quot;Bool&quot;&gt;0&lt;/rps_needed&gt;&#13;&#10; &lt;delayed_acks_segments type=&quot;Int&quot;&gt;0&lt;/delayed_acks_segments&gt;&#13;&#10; &lt;delayed_acks_timeout type=&quot;Int&quot;&gt;0&lt;/delayed_acks_timeout&gt;&#13;&#10; &lt;tcp_large_icwnd type=&quot;Int&quot;&gt;0&lt;/tcp_large_icwnd&gt;&#13;&#10; &lt;tcp_mgmt_rmem type=&quot;Int&quot;&gt;87380&lt;/tcp_mgmt_rmem&gt;&#13;&#10; &lt;tcp_mgmt_wmem type=&quot;Int&quot;&gt;32768&lt;/tcp_mgmt_wmem&gt;&#13;&#10; &lt;adjust_tcp_buffers type=&quot;Bool&quot;&gt;1&lt;/adjust_tcp_buffers&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;TCP-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;10&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.TCPPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.DnsPlugin type=&quot;Ixia.Aptixia.StackManager.DnsPlugin&quot; objectid=&quot;7682d113-cd50-4cc6-b23a-569c29f03886&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;domain type=&quot;String&quot; /&gt;&#13;&#10; &lt;timeout type=&quot;Int&quot;&gt;30&lt;/timeout&gt;&#13;&#10; &lt;nameServerList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;searchList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;hostList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;DNS-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;12&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.DnsPlugin&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MeshingPlugin type=&quot;Ixia.Aptixia.StackManager.MeshingPlugin&quot; objectid=&quot;f5f1e4c2-eef8-4a34-ac13-e1e3eeb5328b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;trafficMaps type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;activityRangeMapInfoList type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;name type=&quot;String&quot;&gt;Meshing-2&lt;/name&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MeshingPlugin&gt;&#13;&#10; &lt;/globalPluginList&gt;&#13;&#10; &lt;portList type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot;&gt;&#13;&#10; &lt;String&gt;{{ipchassis}};2;1&lt;/String&gt;&#13;&#10; &lt;/portList&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecPortGroupData type=&quot;Ixia.Aptixia.StackManager.IPSecPortGroupData&quot; objectid=&quot;c279f05c-d2a7-476d-b4af-9c8ff0d878dd&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;role type=&quot;String&quot;&gt;Initiator&lt;/role&gt;&#13;&#10; &lt;associates type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;overrideGlobalOptions type=&quot;Bool&quot;&gt;0&lt;/overrideGlobalOptions&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;enableESPPerStreamStats type=&quot;Bool&quot;&gt;0&lt;/enableESPPerStreamStats&gt;&#13;&#10; &lt;enableESPReplayStats type=&quot;Bool&quot;&gt;0&lt;/enableESPReplayStats&gt;&#13;&#10; &lt;activities type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;pcpuLogLevel type=&quot;String&quot;&gt;0&lt;/pcpuLogLevel&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecPortGroupData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;virtualMode type=&quot;Bool&quot;&gt;0&lt;/virtualMode&gt;&#13;&#10; &lt;allowedVirtualModeTypes type=&quot;Ixia.RpFramework.Server.Core.ShadowedPropertyStringList&quot; /&gt;&#13;&#10; &lt;doOwnership type=&quot;Bool&quot;&gt;0&lt;/doOwnership&gt;&#13;&#10; &lt;branchToNicMap type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;cpuAggregation type=&quot;Bool&quot;&gt;0&lt;/cpuAggregation&gt;&#13;&#10; &lt;activePort type=&quot;String&quot; /&gt;&#13;&#10; &lt;networkLayersManager type=&quot;Ixia.Aptixia.StackManager.NetworkLayersManager&quot; objectid=&quot;d581a4e6-0e4b-4692-a0e2-12fd25d7db35&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/networkLayersManager&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.PortGroup&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;externalProperties type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyManager&quot; objectid=&quot;0c7c98dd-4e41-4fb8-adb7-918848d0ba3e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;properties type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c7be9c3b-0335-4cf6-bbcb-d9a90d6b78a0&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d63defc3-039a-4af6-b0f6-19be5481d6bb&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MobileSubscribersRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;d62b40dc-41c2-48b0-b3a6-4aa74e171a8c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DHCPServerRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;45eba56d-c42f-4bbf-830b-1f102bf83c92&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a9e91079-1215-444b-a0a0-59f8ff4e7746&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPGRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;b91778ea-dac5-499a-8c54-b8ba0c78b44b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPRange_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;13f113b2-8ce8-4742-ac72-f8ee04caa5d6&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPSUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;f2723794-57ce-471c-b3ae-10cd5ee235a2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IpV4V6Range&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3e8d5274-5483-41ca-8f4d-b1fce291dad1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PppoxRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;85b44e1f-0689-4feb-a14d-b43a1b837c1d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;L2tpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;c0383f23-e15f-4a97-bbf8-6ade8f6f2b0c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatLTEUEUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5912723b-fb9a-4e0a-bae4-38730c73cc0e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SixRdRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9a6cb101-a624-4978-8d0c-85c5b6c26906&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSgsnS3RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;4f85b4a9-d55e-494e-beb6-5ef5b5d04cf8&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EmulatedRouterRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;489dbc18-55b5-4902-99ab-9a289a8c2e2b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGAPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;2992f902-204b-4050-8798-0b24ee090922&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatRNCIuPSUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;8b53f68d-6027-4150-9ca3-5a62606526bd&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;GTPNGUERange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;e85d740f-87a2-473a-a133-e08d5bb48ed2&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S5S8_SGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;5a179c3f-82db-44b3-95fc-6e4dbfe17556&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPcrfRange_S5S8_PGW&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;55d890fe-0faa-41bd-9fca-12463fd14b3d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DSLiteRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;8dc83b0a-45a9-46b7-9b52-731eb114d315&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPSGSNRangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a0883ed3-63b7-47cb-ab77-7ceebb8212e1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;SlaacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;7bb58c6e-377f-46be-a2b1-7d86997b2fa1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;AtmRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;8a4c92be-449a-4f0e-bcf3-55fdfcc369cc&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatMMEApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;588aea0d-748b-4b82-9418-4f3a35185d2e&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBUuApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;9046358f-dde4-4f17-b596-5903079d3bcf&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MacRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;a28df47f-783e-4bc9-aa22-78636ceaf1b7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;DualStackIPRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;19deb9c9-8aef-41e2-8b8b-f01a8b274266&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPUERange_S2a_TWAN&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;6abb9650-bc55-4e9e-9dfc-81964310e662&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatSGSNIuPSApnRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;35dc8f8d-44fd-4c73-9771-6c62bd227435&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;IxCatENodeBSimUeRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;3c48b615-2c03-4c1b-8712-e83f63841d13&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6dRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;cd5080c1-8de4-4eb3-985a-3e9fe38ebed4&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;UERangeBase&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;24c2c3a6-f9fd-4b8e-bc9f-aeeac63bae01&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPMmeS10RangeUe&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;529a2786-eb8c-40cb-80b9-83415888012c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;S6aRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;6593d153-2b87-4171-a8bf-8ae2b1907487&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;PptpRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;819a5c99-14bf-4efb-912a-5d2c985e97d1&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;BmScRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;83ff7bd6-95cf-4d75-91e4-3e2a9f5f6b7d&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;MBmsGwRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalPropertyInfo type=&quot;Ixia.Aptixia.StackManager.ExternalPropertyInfo&quot; objectid=&quot;022d8e72-36c8-4117-b901-baffb9d0805c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;targetType type=&quot;String&quot;&gt;EGTPPMIPHostRange&lt;/targetType&gt;&#13;&#10; &lt;valueType type=&quot;String&quot;&gt;ExternalValueBoolean&lt;/valueType&gt;&#13;&#10; &lt;description type=&quot;String&quot;&gt;Enable collection of interface statistics on this range&lt;/description&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalPropertyInfo&gt;&#13;&#10; &lt;/properties&gt;&#13;&#10; &lt;values type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;57badb9d-afb8-4c05-9182-df7469457e4c&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;5affc0a7-68f6-46f6-b801-0e18e067a572&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;1efc6993-1480-469a-a6af-38b4093fb102&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;13&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;22a742ae-d9bd-4548-83f1-84da6cc07c5f&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.IpV4V6Range&quot; objectid=&quot;c69dae97-f1c2-4505-aedb-3f9ca3f4d02a&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;b664f3f9-4f42-48c1-a481-75ba76740055&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;1&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;2&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;77dd061e-b592-4d9e-9c38-24a46fec1121&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;aa73bd95-9ffb-411e-8ab3-8a128767aacb&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;b5f138be-a18b-46a3-b3f8-c90fa5711597&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.ExternalProperty type=&quot;Ixia.Aptixia.StackManager.ExternalProperty&quot; objectid=&quot;6dc25ae2-da26-4df6-8a25-cf296dd9430b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;propertyName type=&quot;String&quot;&gt;Publish Statistics&lt;/propertyName&gt;&#13;&#10; &lt;target type=&quot;Ixia.Aptixia.StackManager.MacRange&quot; objectid=&quot;ba896971-1d78-4e03-8f2a-28c65417612e&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;value type=&quot;Ixia.Aptixia.StackManager.ExternalValueBoolean&quot; objectid=&quot;0858fb9d-2304-44d4-b413-569815c8b6a7&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;value type=&quot;Bool&quot;&gt;0&lt;/value&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/value&gt;&#13;&#10; &lt;enabled type=&quot;Bool&quot;&gt;0&lt;/enabled&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.ExternalProperty&gt;&#13;&#10; &lt;/values&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/externalProperties&gt;&#13;&#10; &lt;availableNetworkTimelines type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;typeSpecificData type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IxLoadSessionData type=&quot;Ixia.Aptixia.StackManager.IxLoadSessionData&quot; objectid=&quot;149d16d7-c594-4866-917f-fe1b44fac83f&quot; version=&quot;1.0.0&quot;&gt;&#13;&#10; &lt;portGroupList type=&quot;ListNode&quot;&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;b1fbd381-b769-4ec1-8715-299508ecb458&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.PortGroup type=&quot;Ixia.Aptixia.StackManager.PortGroup&quot; objectid=&quot;e7fa1f9e-23d9-4742-96b2-6edce6c4424e&quot; version=&quot;6.70.420&quot; /&gt;&#13;&#10; &lt;/portGroupList&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IxLoadSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.MacSessionData type=&quot;Ixia.Aptixia.StackManager.MacSessionData&quot; objectid=&quot;7869d347-cce4-4cd3-9eed-88a3914ae956&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.MacSessionDataSkeleton+eMacValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.MacSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IpSessionData type=&quot;Ixia.Aptixia.StackManager.IpSessionData&quot; objectid=&quot;93416b84-eb4a-4637-ab56-4a4de6250c3b&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;duplicateCheckingScope type=&quot;Ixia.Aptixia.StackManager.IpSessionDataSkeleton+eIpValidationOptions&quot;&gt;2&lt;/duplicateCheckingScope&gt;&#13;&#10; &lt;enableGatewayArp type=&quot;Bool&quot;&gt;0&lt;/enableGatewayArp&gt;&#13;&#10; &lt;gatewayArpRequestRate type=&quot;Int&quot;&gt;300&lt;/gatewayArpRequestRate&gt;&#13;&#10; &lt;maxOutstandingGatewayArpRequests type=&quot;Int&quot;&gt;300&lt;/maxOutstandingGatewayArpRequests&gt;&#13;&#10; &lt;ignoreUnresolvedIPs type=&quot;Bool&quot;&gt;0&lt;/ignoreUnresolvedIPs&gt;&#13;&#10; &lt;sendAllRequests type=&quot;Bool&quot;&gt;0&lt;/sendAllRequests&gt;&#13;&#10; &lt;individualARPTimeOut type=&quot;Int&quot;&gt;500&lt;/individualARPTimeOut&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;4&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IpSessionData&gt;&#13;&#10; &lt;Ixia.Aptixia.StackManager.IPSecSessionData type=&quot;Ixia.Aptixia.StackManager.IPSecSessionData&quot; objectid=&quot;8611fd36-7f8c-48bc-ac46-f6e2f0816cb5&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;ipsecTunnelSetup type=&quot;Ixia.Aptixia.StackManager.IPSecTunnelSetup&quot; objectid=&quot;e08e1671-e189-4cba-8894-5dda9b24701a&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;tunnelSetupTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelSetupTimeout&gt;&#13;&#10; &lt;tunnelRetransmissionTimeout type=&quot;Int&quot;&gt;30&lt;/tunnelRetransmissionTimeout&gt;&#13;&#10; &lt;numRetries type=&quot;Int&quot;&gt;0&lt;/numRetries&gt;&#13;&#10; &lt;retryInterval type=&quot;Int&quot;&gt;10&lt;/retryInterval&gt;&#13;&#10; &lt;retryDelay type=&quot;Int&quot;&gt;10&lt;/retryDelay&gt;&#13;&#10; &lt;testType type=&quot;String&quot;&gt;P2D&lt;/testType&gt;&#13;&#10; &lt;logLevel type=&quot;String&quot;&gt;3&lt;/logLevel&gt;&#13;&#10; &lt;sendCiscoVid type=&quot;Bool&quot;&gt;0&lt;/sendCiscoVid&gt;&#13;&#10; &lt;useMaxInitiationRate type=&quot;Bool&quot;&gt;0&lt;/useMaxInitiationRate&gt;&#13;&#10; &lt;useMaxPendingTunnels type=&quot;Bool&quot;&gt;0&lt;/useMaxPendingTunnels&gt;&#13;&#10; &lt;enableRekey type=&quot;Bool&quot;&gt;1&lt;/enableRekey&gt;&#13;&#10; &lt;rekeyRetries type=&quot;Int&quot;&gt;3&lt;/rekeyRetries&gt;&#13;&#10; &lt;rekeyFuzzPercentage type=&quot;Int&quot;&gt;0&lt;/rekeyFuzzPercentage&gt;&#13;&#10; &lt;rekeyMargin type=&quot;Int&quot;&gt;10&lt;/rekeyMargin&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecTunnelSetup&gt;&#13;&#10; &lt;ipsecCertificates type=&quot;Ixia.Aptixia.StackManager.IPSecCertificates&quot; objectid=&quot;b53c8c74-6c81-4e4a-84cb-5beb05b38343&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;certSource type=&quot;String&quot;&gt;kNewCert&lt;/certSource&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;certSubjectAltDN type=&quot;String&quot; /&gt;&#13;&#10; &lt;remoteIkeId type=&quot;String&quot; /&gt;&#13;&#10; &lt;bitSize type=&quot;String&quot;&gt;k512&lt;/bitSize&gt;&#13;&#10; &lt;saveCert type=&quot;Bool&quot;&gt;1&lt;/saveCert&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files (x86)\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;certParentFolder type=&quot;String&quot;&gt;C:\Program Files (x86)\Ixia\CachedCerts&lt;/certParentFolder&gt;&#13;&#10; &lt;certNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;caCertNumber type=&quot;String&quot; /&gt;&#13;&#10; &lt;earlyExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;lateExpDate type=&quot;String&quot; /&gt;&#13;&#10; &lt;usePerRangeCertNameExp type=&quot;Bool&quot;&gt;0&lt;/usePerRangeCertNameExp&gt;&#13;&#10; &lt;checkCrl type=&quot;Bool&quot;&gt;0&lt;/checkCrl&gt;&#13;&#10; &lt;crlOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/crlOverrideEnable&gt;&#13;&#10; &lt;crlOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;checkOcsp type=&quot;Bool&quot;&gt;0&lt;/checkOcsp&gt;&#13;&#10; &lt;ocspOverrideEnable type=&quot;Bool&quot;&gt;0&lt;/ocspOverrideEnable&gt;&#13;&#10; &lt;ocspOverrideUrl type=&quot;String&quot; /&gt;&#13;&#10; &lt;unknownIsRevoked type=&quot;Bool&quot;&gt;0&lt;/unknownIsRevoked&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;7&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertificates&gt;&#13;&#10; &lt;ipsecCertManager type=&quot;Ixia.Aptixia.StackManager.IPSecCertManager&quot; objectid=&quot;21591e4a-9e87-48e6-8679-68685c5c8383&quot; version=&quot;6.70.0&quot;&gt;&#13;&#10; &lt;caURL type=&quot;String&quot; /&gt;&#13;&#10; &lt;caDN type=&quot;String&quot;&gt;CN=RootCA,C=RO,L=Bucharest,O=Ixia,OU=IxLoad,IP:201.121.87.2,email:ixia@ixiacom.com&lt;/caDN&gt;&#13;&#10; &lt;certSubjectDN type=&quot;String&quot;&gt;CN=IxiaVPN,C=RO,L=Bucharest,O=Ixia&lt;/certSubjectDN&gt;&#13;&#10; &lt;keyGenAlgo type=&quot;String&quot;&gt;kRSA_512&lt;/keyGenAlgo&gt;&#13;&#10; &lt;cacheCertFolder type=&quot;String&quot;&gt;C:\Program Files (x86)\Ixia\CachedCerts&lt;/cacheCertFolder&gt;&#13;&#10; &lt;caKeyFile type=&quot;String&quot;&gt;C:\Program Files (x86)\Ixia\ca-priv.key&lt;/caKeyFile&gt;&#13;&#10; &lt;caCrtFile type=&quot;String&quot;&gt;C:\Program Files (x86)\Ixia\ca-cert.crt&lt;/caCrtFile&gt;&#13;&#10; &lt;certNumber type=&quot;Int&quot;&gt;1&lt;/certNumber&gt;&#13;&#10; &lt;certProto type=&quot;String&quot;&gt;kSCEP&lt;/certProto&gt;&#13;&#10; &lt;createRootCA type=&quot;Bool&quot;&gt;0&lt;/createRootCA&gt;&#13;&#10; &lt;uniqueCert type=&quot;Bool&quot;&gt;0&lt;/uniqueCert&gt;&#13;&#10; &lt;descFilePath type=&quot;String&quot;&gt;C:\Program Files (x86)\Ixia\CachedCerts\sample.desc&lt;/descFilePath&gt;&#13;&#10; &lt;useDescFile type=&quot;Bool&quot;&gt;0&lt;/useDescFile&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;6&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/ipsecCertManager&gt;&#13;&#10; &lt;eapSimTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;eapAkaTuples type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;maxInitiationRate type=&quot;Int&quot;&gt;50&lt;/maxInitiationRate&gt;&#13;&#10; &lt;maxPendingTunnels type=&quot;Int&quot;&gt;50&lt;/maxPendingTunnels&gt;&#13;&#10; &lt;negotiationStartDelay type=&quot;Int&quot;&gt;0&lt;/negotiationStartDelay&gt;&#13;&#10; &lt;teardownRate type=&quot;Int&quot;&gt;10&lt;/teardownRate&gt;&#13;&#10; &lt;burstInitiation type=&quot;Bool&quot;&gt;0&lt;/burstInitiation&gt;&#13;&#10; &lt;parallelInitiation type=&quot;Bool&quot;&gt;0&lt;/parallelInitiation&gt;&#13;&#10; &lt;enableWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsi&gt;&#13;&#10; &lt;enableWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enableWildcardTsr&gt;&#13;&#10; &lt;enablePlutoWildcardTsi type=&quot;Bool&quot;&gt;0&lt;/enablePlutoWildcardTsi&gt;&#13;&#10; &lt;enablePlutoModeCfgWildcardTsr type=&quot;Bool&quot;&gt;1&lt;/enablePlutoModeCfgWildcardTsr&gt;&#13;&#10; &lt;enablePlutoS2SWildcardTsr type=&quot;Bool&quot;&gt;0&lt;/enablePlutoS2SWildcardTsr&gt;&#13;&#10; &lt;payloadAttrTypes type=&quot;ListNode&quot; /&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;3&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.IPSecSessionData&gt;&#13;&#10; &lt;/typeSpecificData&gt;&#13;&#10; &lt;statViewManager type=&quot;Ixia.Aptixia.StackManager.StatViewManager&quot; objectid=&quot;32b6a125-39ad-4da3-9710-e09cc94bf306&quot; version=&quot;6.70.420&quot;&gt;&#13;&#10; &lt;enableStats type=&quot;Bool&quot;&gt;1&lt;/enableStats&gt;&#13;&#10; &lt;enableOverviewStats type=&quot;Bool&quot;&gt;1&lt;/enableOverviewStats&gt;&#13;&#10; &lt;enablePerSessionStats type=&quot;Bool&quot;&gt;1&lt;/enablePerSessionStats&gt;&#13;&#10; &lt;/statViewManager&gt;&#13;&#10; &lt;waitForLinkUp type=&quot;Bool&quot;&gt;0&lt;/waitForLinkUp&gt;&#13;&#10; &lt;overloadProtection type=&quot;Bool&quot;&gt;1&lt;/overloadProtection&gt;&#13;&#10; &lt;ixLoadRestObjectId type=&quot;Int&quot;&gt;1&lt;/ixLoadRestObjectId&gt;&#13;&#10; &lt;/Ixia.Aptixia.StackManager.SMSession&gt;&#13;&#10;&lt;/rpf&gt;</xml>
- </_smSessionXml>
- <_composerConfig ver="[0, [1, [0, [0]]]]" type="ixComposerConfig">
- <xml type="str"></xml>
- </_composerConfig>
- <_quickTestConfig ver="[0, [1, [0, [0]]]]" type="ixQuickTestConfig">
- <xml type="str"></xml>
- </_quickTestConfig>
- <lastApiUniqueId type="int">17217</lastApiUniqueId>
- <version type="str">8.30.0.161</version>
- <name type="str">REG_CALL_OPNFV_ORANGE_v13.rxf</name>
- <comment type="str"></comment>
- <path type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</path>
- <last type="str">REG_CALL_OPNFV_ORANGE_v9j.rxf</last>
- <activeTest type="str">Test1</activeTest>
- <chassisChain ver="[2, [1, [0, [0]]]]" oid="6" type="ixChassisChain">
- <chassisList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixChassisSequenceContainer" itemtype="ixChassis">
- <item ver="[1, [1, [0, [0]]]]" oid="0" type="ixChassis">
- <name type="str">{{ipchassis}}</name>
- <id type="int">1</id>
- <hiddenCards type="NoneType">None</hiddenCards>
- </item>
- </chassisList>
- <_apiUniqueId type="int">15685</_apiUniqueId>
- <chassisMap type="dict">
- <item>
- <key type="int">1</key>
- <value ref="0"/>
- </item>
- </chassisMap>
- <hiddenChassis type="str"></hiddenChassis>
- </chassisChain>
- <AfmPortPacketRewriteConfigList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixAfmPortPacketRewriteConfigList" itemtype="ixAfmPortPacketRewriteConfig"/>
- <networkList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixRepositoryNetworkList" itemtype="ixNullNetwork"/>
- <dutList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixDutList" itemtype="ixDut"/>
- <trafficList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTrafficList" itemtype="ixActivityModel"/>
- <testList ver="[0, [0, [1, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="ixTestList" itemtype="ixTestEnvelope">
- <item ver="[18, [1, [0, [0]]]]" type="ixTestEnvelope">
- <name type="str">Test1</name>
- <comment type="str"></comment>
- <enableForceOwnership type="bool">True</enableForceOwnership>
- <enableResetPorts type="bool">False</enableResetPorts>
- <statsRequired type="bool">True</statsRequired>
- <enableConditionalView type="bool">False</enableConditionalView>
- <conditionalViewType type="int">1</conditionalViewType>
- <conditionalViewList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixConditionalViewList" itemtype="ixConditionalView"/>
- <enableReleaseConfigAfterRun type="bool">False</enableReleaseConfigAfterRun>
- <csvInterval type="int">4</csvInterval>
- <networkFailureThreshold type="int">0</networkFailureThreshold>
- <captureViewOptions ver="[1, [1, [0, [0]]]]" oid="12" type="ixViewOptions">
- <runMode type="int">1</runMode>
- <collectScheme type="int">0</collectScheme>
- <allocatedBufferMemoryPercentage type="long">30</allocatedBufferMemoryPercentage>
- <captureRunAfter type="int">0</captureRunAfter>
- <captureRunDuration type="int">0</captureRunDuration>
- <_apiUniqueId type="int">15467</_apiUniqueId>
- </captureViewOptions>
- <scenarioList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioList" itemtype="ixScenario">
- <item ver="[3, [1, [0, [0]]]]" type="ixScenario">
- <name type="str">New Traffic Flow</name>
- <columnList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTrafficColumnList" itemtype="ixTrafficColumn">
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Originate</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="5" type="ixNetTraffic">
- <name type="str">VoIP1@VM1</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Peer</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Both</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[0, [6, [1, [0, [0]]]]]" type="ixTraffic">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">VoIP1</name>
- <role type="str">Peer</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[34, [1, [0, [6, [1, [0, [0]]]], [0, [0]]], [0]]]" oid="18" type="#VoIP_Peer_plugin$Plugin">
- <enable type="bool">True</enable>
- <name type="str">REGISTERING</name>
- <activityFunction type="NoneType">None</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="str">Both</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <uniqueID type="int">27</uniqueID>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyMap_VoIP">
- <szPluginVersion type="str">4.10</szPluginVersion>
- <ceCommands ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]], [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VoIP_ceCommands" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]], [0, [0, [0, [0, [1, [0, [0]]]]]]]]" type="#Pdk.ixPdkCommands$ixPropertyCommandStart">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">2</destCmdId>
- <objectID type="int">0</objectID>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]], [0, [0, [0, [0, [1, [0, [0]]]]]]]]" type="#Pdk.ixPdkCommands$ixPropertyCommandStop">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Procedure">
- <commandId type="int">2</commandId>
- <commandType type="str">Procedure</commandType>
- <cmdName type="str">Register Complete (#4)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">47</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">3</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [1, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CommandEx">
- <commandId type="int">47</commandId>
- <commandType type="str">CommandEx</commandType>
- <cmdName type="str">Sleep (#2)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- <cmdType type="str">FlowSleep</cmdType>
- </item>
- </ceCommands>
- <activityLink ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityLinkInfo">
- <name type="str">&lt;None&gt;</name>
- <activitiesCount type="int">1</activitiesCount>
- </activityLink>
- <triggers ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TriggerConfig">
- <triggersInCount type="int">0</triggersInCount>
- <triggersOutCount type="int">0</triggersOutCount>
- </triggers>
- <globalSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSettings">
- <globalExecStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalExecSettings">
- <setAborted type="bool">False</setAborted>
- <setAllFailed type="bool">False</setAllFailed>
- <trigTimeout type="int">600000</trigTimeout>
- <notAbortOnTimeout type="bool">False</notAbortOnTimeout>
- <limitErrors type="bool">False</limitErrors>
- <maxErrors type="int">1</maxErrors>
- <limitArrayVarSize type="bool">False</limitArrayVarSize>
- <maxArrayVarSize type="int">10</maxArrayVarSize>
- </globalExecStg>
- <globalSIPStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSIPSettings">
- <disableTCP type="bool">False</disableTCP>
- <prefQOP type="int">0</prefQOP>
- <warnAsError type="bool">False</warnAsError>
- <limitQueueSize type="bool">True</limitQueueSize>
- <maxChannelsInQueue type="int">25</maxChannelsInQueue>
- <enableSIPLogging type="bool">False</enableSIPLogging>
- <limitSIPLoggingChannels type="bool">False</limitSIPLoggingChannels>
- <maxSIPLoggingChannels type="int">10</maxSIPLoggingChannels>
- <minSIPLoggingChannels type="int">0</minSIPLoggingChannels>
- <voipPeerLogSettings type="int">0</voipPeerLogSettings>
- <voipPeerLogExpForChannels type="str"></voipPeerLogExpForChannels>
- <abortLoopOnTriggerTimeout type="bool">False</abortLoopOnTriggerTimeout>
- </globalSIPStg>
- <globalRTPStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalRTPSettings">
- <transmMode type="int">0</transmMode>
- <playMode type="int">0</playMode>
- <repeatCount type="int">1</repeatCount>
- <repeatTime type="int">1000</repeatTime>
- <timeUnit type="int">0</timeUnit>
- <volume type="int">-20</volume>
- <playModePathConf type="int">0</playModePathConf>
- <repeatCountPathConf type="int">0</repeatCountPathConf>
- <repeatTimePathConf type="int">10</repeatTimePathConf>
- <timeUnitPathConf type="int">0</timeUnitPathConf>
- <toneDurationPathConf type="int">200</toneDurationPathConf>
- <interToneDelayPathConf type="int">200</interToneDelayPathConf>
- <toneAmplitudePathConf type="int">-10</toneAmplitudePathConf>
- <firstToneTimeoutPathConf type="int">4000</firstToneTimeoutPathConf>
- <interToneTimeoutPathConf type="int">2000</interToneTimeoutPathConf>
- <qovTalkExtraSilence type="int">500</qovTalkExtraSilence>
- <qovListenExtraDuration type="int">2000</qovListenExtraDuration>
- <downloadRTPCSV type="bool">True</downloadRTPCSV>
- <waitQoVScore type="bool">False</waitQoVScore>
- </globalRTPStg>
- <globalSTUNStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSTUNSettings">
- <keepAliveInterval type="int">15</keepAliveInterval>
- </globalSTUNStg>
- <globalSKINNYStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSKINNYSettings">
- <softKeyCount type="int">25</softKeyCount>
- <receiveVideo type="bool">False</receiveVideo>
- <transmitVideo type="bool">False</transmitVideo>
- </globalSKINNYStg>
- <globalT38Stg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalT38Settings">
- <t30Log type="bool">False</t30Log>
- <t38Log type="bool">False</t38Log>
- <receivedImageLog type="bool">False</receivedImageLog>
- <logType type="int">0</logType>
- <logBegin type="int">1</logBegin>
- <logEnd type="int">10</logEnd>
- <channelRange type="str">[00-10]</channelRange>
- </globalT38Stg>
- </globalSettings>
- <info ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Info">
- <userChannelsNo type="int">86534</userChannelsNo>
- <portInstances type="int">3</portInstances>
- <portInstanceIdx type="int">0</portInstanceIdx>
- <objectiveType type="str">activeUsers</objectiveType>
- <objectiveValue type="int">1000</objectiveValue>
- <maxAllowedObjective type="long">9223372036854775807</maxAllowedObjective>
- <firstSignalingFnID type="int">23</firstSignalingFnID>
- <enableRTPDest type="bool">False</enableRTPDest>
- <rtpPortDest type="str"></rtpPortDest>
- <rtpObjectiveValue type="int">32000</rtpObjectiveValue>
- <hasRtpFunction type="bool">False</hasRtpFunction>
- <hasVideoFunction type="bool">False</hasVideoFunction>
- <hasT38Function type="bool">False</hasT38Function>
- <hasMSRPFunction type="bool">False</hasMSRPFunction>
- <src ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str">REGISTERING</name>
- <portCount type="int">1</portCount>
- <portCountRtp type="int">1</portCountRtp>
- <portCountT38 type="int">1</portCountT38>
- <portCountMSRP type="int">1</portCountMSRP>
- <ipRangeCount type="int">1</ipRangeCount>
- <ipCount type="int">1</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">1</ipRuleCh>
- <port type="str">{{sipportregistering}}</port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">1</portRuleCh>
- <phone type="str">{{pnregistering}}</phone>
- <aliases type="int">1</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">1</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">1</ipRangeCountRtp>
- <ipCountRtp type="int">1</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">1</ipRuleChRtp>
- <portRtp type="str">[10000-65535,4]</portRtp>
- <portT38 type="str">40000</portT38>
- <portMSRP type="str">2855</portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">1</portRuleChRtp>
- <ipRangeCountT38 type="int">1</ipRangeCountT38>
- <ipCountT38 type="int">1</ipCountT38>
- <ipRangeCountMSRP type="int">1</ipRangeCountMSRP>
- <ipCountMSRP type="int">1</ipCountMSRP>
- <symType type="int">1</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str">5061</tlsPort>
- <tlsDisableUdpAndTcp type="bool">True</tlsDisableUdpAndTcp>
- <nodeCount type="int">1</nodeCount>
- <coreCount type="int">2</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str">aptixia-T.03440c56.4e1a.4def.8406.ec64db91d4c1-L2EthernetPlugin-166a11b6.4d30.40ea.b9e1.ac4fb44f112b-161.105.231.12;1;1default</layerName>
- </src>
- <dest ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str"></name>
- <portCount type="int">1</portCount>
- <portCountRtp type="int">1</portCountRtp>
- <portCountT38 type="int">1</portCountT38>
- <portCountMSRP type="int">1</portCountMSRP>
- <ipRangeCount type="int">0</ipRangeCount>
- <ipCount type="int">0</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">0</ipRuleCh>
- <port type="str"></port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">0</portRuleCh>
- <phone type="str"></phone>
- <aliases type="int">1</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">0</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">0</ipRangeCountRtp>
- <ipCountRtp type="int">0</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">0</ipRuleChRtp>
- <portRtp type="str"></portRtp>
- <portT38 type="str"></portT38>
- <portMSRP type="str">2855</portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">0</portRuleChRtp>
- <ipRangeCountT38 type="int">0</ipRangeCountT38>
- <ipCountT38 type="int">0</ipCountT38>
- <ipRangeCountMSRP type="int">1</ipRangeCountMSRP>
- <ipCountMSRP type="int">12</ipCountMSRP>
- <symType type="int">0</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str"></tlsPort>
- <tlsDisableUdpAndTcp type="bool">False</tlsDisableUdpAndTcp>
- <nodeCount type="int">1</nodeCount>
- <coreCount type="int">2</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str"></layerName>
- </dest>
- <useServerDest type="bool">False</useServerDest>
- <srvDomainDest type="str"></srvDomainDest>
- <srvAddrDest type="str"></srvAddrDest>
- <srvPortDest type="str">5060</srvPortDest>
- <cloudServerDest ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudServer">
- <name type="str"></name>
- <ipAddr type="str"></ipAddr>
- <rangeType type="str"></rangeType>
- <ipType type="str"></ipType>
- <port type="int">0</port>
- <attachedInfo type="str"></attachedInfo>
- <firstIp type="str"></firstIp>
- <netMask type="str"></netMask>
- <ipCount type="str"></ipCount>
- <ipStep type="str"></ipStep>
- </cloudServerDest>
- <transfer ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str"></name>
- <portCount type="int">0</portCount>
- <portCountRtp type="int">0</portCountRtp>
- <portCountT38 type="int">0</portCountT38>
- <portCountMSRP type="int">0</portCountMSRP>
- <ipRangeCount type="int">0</ipRangeCount>
- <ipCount type="int">0</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">0</ipRuleCh>
- <port type="str"></port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">0</portRuleCh>
- <phone type="str"></phone>
- <aliases type="int">0</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">0</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">0</ipRangeCountRtp>
- <ipCountRtp type="int">0</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">0</ipRuleChRtp>
- <portRtp type="str"></portRtp>
- <portT38 type="str"></portT38>
- <portMSRP type="str"></portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">0</portRuleChRtp>
- <ipRangeCountT38 type="int">0</ipRangeCountT38>
- <ipCountT38 type="int">0</ipCountT38>
- <ipRangeCountMSRP type="int">0</ipRangeCountMSRP>
- <ipCountMSRP type="int">0</ipCountMSRP>
- <symType type="int">0</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str"></tlsPort>
- <tlsDisableUdpAndTcp type="bool">False</tlsDisableUdpAndTcp>
- <nodeCount type="int">0</nodeCount>
- <coreCount type="int">1</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str"></layerName>
- </transfer>
- <useServerTransfer type="bool">False</useServerTransfer>
- <registrarSrvTransfer type="bool">False</registrarSrvTransfer>
- <srvAddrTransfer type="str"></srvAddrTransfer>
- <srvPortTransfer type="str">5060</srvPortTransfer>
- <cloudServerTransfer ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudServer">
- <name type="str"></name>
- <ipAddr type="str"></ipAddr>
- <rangeType type="str"></rangeType>
- <ipType type="str"></ipType>
- <port type="int">0</port>
- <attachedInfo type="str"></attachedInfo>
- <firstIp type="str"></firstIp>
- <netMask type="str"></netMask>
- <ipCount type="str"></ipCount>
- <ipStep type="str"></ipStep>
- </cloudServerTransfer>
- </info>
- <scenarioSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ScenarioSettings">
- <scenarioFile type="str">.\Registration_only_LPS.tst</scenarioFile>
- <activeScenarioChannel type="int">0</activeScenarioChannel>
- <funcsCount type="int">48</funcsCount>
- <isModified type="int">66</isModified>
- <activityID type="int">2</activityID>
- <exportToRM type="int">0</exportToRM>
- </scenarioSettings>
- <executionSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExecutionSettings">
- <loopMode type="int">0</loopMode>
- <loopCount type="int">1</loopCount>
- <loopPreDelay type="int">0</loopPreDelay>
- <loopMidDelay type="int">0</loopMidDelay>
- <gracefulRampDown type="bool">True</gracefulRampDown>
- <rampdownSleep type="bool">False</rampdownSleep>
- <aliases type="int">1</aliases>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">1</ipRuleCh>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">1</portRuleCh>
- <phoneRule type="int">1</phoneRule>
- <multipleUsersPerIO type="bool">True</multipleUsersPerIO>
- <rtpIpRule type="int">0</rtpIpRule>
- <rtpIpRuleCh type="int">1</rtpIpRuleCh>
- <rtpPortRule type="int">0</rtpPortRule>
- <rtpPortRuleCh type="int">1</rtpPortRuleCh>
- <dl_BUG type="bool">True</dl_BUG>
- <dl_TRACE type="bool">False</dl_TRACE>
- <dl_L_INFO type="bool">True</dl_L_INFO>
- <dl_L_ADV type="bool">False</dl_L_ADV>
- <dl_L_VRB type="bool">False</dl_L_VRB>
- <dl_T_IO type="bool">False</dl_T_IO>
- <dl_T_INFO type="bool">False</dl_T_INFO>
- <dl_T_ADV type="bool">False</dl_T_ADV>
- <dl_T_VRB type="bool">False</dl_T_VRB>
- <dl_TG_ADV type="bool">False</dl_TG_ADV>
- <dl_TG_VRB type="bool">False</dl_TG_VRB>
- <dl_Q_ADV type="bool">False</dl_Q_ADV>
- <dl_Q_VRB type="bool">False</dl_Q_VRB>
- <dl_S_FSM type="bool">False</dl_S_FSM>
- <dl_S_SER type="bool">False</dl_S_SER>
- <dl_S_SUA type="bool">False</dl_S_SUA>
- <dl_S_WAIT type="bool">False</dl_S_WAIT>
- <dl_S_SEND type="bool">False</dl_S_SEND>
- <dl_S_INFO type="bool">False</dl_S_INFO>
- <dl_S_ADV type="bool">False</dl_S_ADV>
- <dl_S_VRB type="bool">False</dl_S_VRB>
- <dl_R_DD type="bool">False</dl_R_DD>
- <dl_R_VRB type="bool">False</dl_R_VRB>
- <dl_R_PAR type="bool">False</dl_R_PAR>
- <dl_EE_VRB type="bool">False</dl_EE_VRB>
- <dl_EE_DD type="bool">False</dl_EE_DD>
- <dl_FLOW type="bool">False</dl_FLOW>
- <dl_M_IO type="bool">False</dl_M_IO>
- <dl_SDP_DD type="bool">False</dl_SDP_DD>
- <dl_1 type="bool">False</dl_1>
- <dl_2 type="bool">False</dl_2>
- <dl_3 type="bool">False</dl_3>
- <log_level type="int">9</log_level>
- <log_in_memory type="int">1</log_in_memory>
- <rtp_log_in_file type="int">1</rtp_log_in_file>
- <log_filesize type="int">32</log_filesize>
- <_gbDebugLogs type="bool">False</_gbDebugLogs>
- <ccExportProfile type="bool">False</ccExportProfile>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_ipRule1</item>
- <item ver="[0, [1, [0, [0]]]]" oid="2" type="ixPropertyState">
- <enable type="int">1</enable>
- <show type="int">0</show>
- </item>
- </item>
- <item type="tuple">
- <item type="str">dl_S_ADV</item>
- <item ver="[0, [1, [0, [0]]]]" oid="1" type="ixPropertyState">
- <enable type="int">1</enable>
- <show type="int">1</show>
- </item>
- </item>
- <item type="tuple">
- <item type="str">loopMidDelay</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_IO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SEND</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_rtpIpRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">_estimatedBacklog</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopPreDelay</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_EE_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">log_filesize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtp_log_in_file</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopCount</item>
- <item ver="[0, [1, [0, [0]]]]" oid="3" type="ixPropertyState">
- <enable type="int">0</enable>
- <show type="int">1</show>
- </item>
- </item>
- <item type="tuple">
- <item type="str">dl_T_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">aliases</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_Q_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">multipleUsersPerIO</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">log_level</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpIpRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rampdownSleep</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_portRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_FLOW</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SER</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">log_in_memory</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_Q_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPortRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_M_IO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_EE_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpIpRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_FSM</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_rtpPortRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_BUG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SUA</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_PAR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">gracefulRampDown</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_WAIT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_SDP_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TRACE</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbDebugLogs</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPortRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TG_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TG_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ccExportProfile</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_VRB</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </executionSettings>
- <customActivityLinkSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ixCustomActivityParameters">
- <enableDbgLog type="bool">False</enableDbgLog>
- <dbgLogChannels type="str">1-5</dbgLogChannels>
- <bhcaType type="int">0</bhcaType>
- <talkTime type="int">10000</talkTime>
- <channelsNo type="int">1</channelsNo>
- <callSetupTime type="int">500</callSetupTime>
- <callTeardownTime type="int">500</callTeardownTime>
- <interCallDuration type="int">4000</interCallDuration>
- <bhcaObjectiveValue type="int">1</bhcaObjectiveValue>
- <cpsOverwriteValueChecked type="int">0</cpsOverwriteValueChecked>
- <cpsTotalChannelsChecked type="int">0</cpsTotalChannelsChecked>
- <cpsOverwriteValue type="int">18</cpsOverwriteValue>
- <cpsType type="int">1</cpsType>
- <cpsTalkTime type="int">1500</cpsTalkTime>
- <cpsChannelsNo type="int">5</cpsChannelsNo>
- <cpsTotalChannelsNo type="int">2500</cpsTotalChannelsNo>
- <cpsOverheadTime type="int">1500</cpsOverheadTime>
- <cpsInterCallDuration type="int">2000</cpsInterCallDuration>
- <cpsObjectiveValue type="int">1</cpsObjectiveValue>
- <cpsRegisterTime type="int">40</cpsRegisterTime>
- <cpsSplitTimeline type="int">0</cpsSplitTimeline>
- <lpsType type="int">0</lpsType>
- <lpsTalkTime type="int">800</lpsTalkTime>
- <lpsChannelsNo type="int">2150</lpsChannelsNo>
- <lpsOverheadTime type="int">1500</lpsOverheadTime>
- <lpsInterLoopDuration type="int">2000</lpsInterLoopDuration>
- <lpsObjectiveValue type="int">500</lpsObjectiveValue>
- <lpsActiveChannel type="int">0</lpsActiveChannel>
- <activeUsersTalkTime type="int">750</activeUsersTalkTime>
- <activeUsersNo type="int">86534</activeUsersNo>
- <activeUsersChannel type="int">0</activeUsersChannel>
- <activeUsersObjectiveValue type="int">{{registeringtotalcalls}}</activeUsersObjectiveValue>
- </customActivityLinkSettings>
- <rtpWaveFiles ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPWaveFiles">
- <wavesCount type="int">0</wavesCount>
- </rtpWaveFiles>
- <rtpTones ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPTones">
- <usedTonesCount type="int">0</usedTonesCount>
- <customTonesCount type="int">35</customTonesCount>
- <seqCustTonesCount type="int">0</seqCustTonesCount>
- </rtpTones>
- <codecCustomPopup ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecCustomPopup">
- <captureFile type="str">Default.cap</captureFile>
- <parseRTPPort type="bool">False</parseRTPPort>
- <parseSSRC type="bool">False</parseSSRC>
- <rtpPort type="int">10000</rtpPort>
- <ssrc type="str">0x8078C5D3</ssrc>
- </codecCustomPopup>
- <codecCustomPropDlg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecCustomPropDlg"/>
- <codecSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecSettings">
- <codecs ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CodecSettings_codecs" itemtype="ixConfig">
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecG711u">
- <dPayloadIn type="int">0</dPayloadIn>
- <dPayloadOut type="int">0</dPayloadOut>
- <frameSize type="int">160</frameSize>
- </item>
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecG711a">
- <dPayloadIn type="int">8</dPayloadIn>
- <dPayloadOut type="int">8</dPayloadOut>
- <frameSize type="int">160</frameSize>
- </item>
- </codecs>
- <codecs_number type="int">2</codecs_number>
- <_gbVideoCodecs type="bool">False</_gbVideoCodecs>
- <videoPayloadType type="int">96</videoPayloadType>
- <_gbDataCodecs type="bool">False</_gbDataCodecs>
- <dataCodecs ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CodecSettings_dataCodecs" itemtype="ixConfig">
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Rtp2833Events">
- <dPayloadType type="int">100</dPayloadType>
- </item>
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Rtp2833Tones">
- <dPayloadType type="int">101</dPayloadType>
- </item>
- </dataCodecs>
- <crtCustomCodecIndex type="int">-1</crtCustomCodecIndex>
- </codecSettings>
- <rtpSettings ver="[7, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPSettings">
- <rtpPort type="str">[10000-65535,4]</rtpPort>
- <enableAdvStatCalc type="bool">False</enableAdvStatCalc>
- <enableRTCP type="bool">False</enableRTCP>
- <enableRTCPMux type="bool">False</enableRTCPMux>
- <chEnableHwAcc type="bool">False</chEnableHwAcc>
- <chDisableHwAcc type="bool">False</chDisableHwAcc>
- <enableHwAcc type="bool">False</enableHwAcc>
- <enableIxStack type="bool">False</enableIxStack>
- <enableNBExec type="bool">False</enableNBExec>
- <enablePerStream type="bool">False</enablePerStream>
- <enableMDI type="bool">False</enableMDI>
- <enableRTP type="bool">False</enableRTP>
- <enableMediaSDPParams type="bool">False</enableMediaSDPParams>
- <audioB_option type="bool">False</audioB_option>
- <audioB_value type="str">AS:48</audioB_value>
- <audioRR_option type="bool">False</audioRR_option>
- <audioRR_value type="str">800</audioRR_value>
- <audioRS_option type="bool">False</audioRS_option>
- <audioRS_value type="str">800</audioRS_value>
- <videoB_option type="bool">False</videoB_option>
- <videoB_value type="str">AS:384</videoB_value>
- <videoRR_option type="bool">False</videoRR_option>
- <videoRR_value type="str">6400</videoRR_value>
- <videoRS_option type="bool">False</videoRS_option>
- <videoRS_value type="str">6400</videoRS_value>
- <textB_option type="bool">False</textB_option>
- <textB_value type="str">AS:48</textB_value>
- <textRR_option type="bool">False</textRR_option>
- <textRR_value type="str">800</textRR_value>
- <textRS_option type="bool">False</textRS_option>
- <textRS_value type="str">800</textRS_value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">videoRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbVideoSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoVPerZionPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbAudioSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">dedicatedCoreRange</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelTypeQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMediaSDPParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTextSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">activityIdQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serviceEnabledQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitComp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">maxMosStreams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">portIPsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableIxStack</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitMs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCPMux</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">silenceMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbMediaSDPParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">valueQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dedicatedCoreRangeLength</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMDI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">chEnableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">unitsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ixnamSupported</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">chDisableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosGroupBox</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePerStream</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSilence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">audioRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">videoB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mosInterval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAdvStatCalc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">limitMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">metricsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMaxDrop</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosRtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">activityNameQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableNBExec</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </rtpSettings>
- <rtcpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTCPSettings">
- <rtcpIgnoreSSRC type="bool">False</rtcpIgnoreSSRC>
- <rtcpCNAMEType type="int">0</rtcpCNAMEType>
- <hasSDESName type="bool">False</hasSDESName>
- <hasSDESTool type="bool">False</hasSDESTool>
- <rtcpSDESTool type="str">IxLoad</rtcpSDESTool>
- <rtcpReceiverTimer type="int">2000</rtcpReceiverTimer>
- <rtcpSenderTimer type="int">2000</rtcpSenderTimer>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">rtcpSDESTool</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpSenderTimer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpCNAMEType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">hasSDESTool</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpReceiverTimer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpIgnoreSSRC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">hasSDESName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCPMux2</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </rtcpSettings>
- <audioSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AudioSettings">
- <enableAudio type="bool">False</enableAudio>
- <_gbEnableAudio type="bool">False</_gbEnableAudio>
- <enableAudioOWD type="bool">False</enableAudioOWD>
- <useJitter type="bool">False</useJitter>
- <_JB1 type="bool">False</_JB1>
- <jitMs type="int">20</jitMs>
- <useJitComp type="bool">False</useJitComp>
- <jitCMs type="int">1000</jitCMs>
- <jitCMaxDrop type="int">7</jitCMaxDrop>
- <dodName type="str">rtp_esmad-asordo-l_1224</dodName>
- <useMos type="bool">False</useMos>
- <useSilence type="bool">False</useSilence>
- <silenceMode type="int">1</silenceMode>
- <enableTosRtp type="bool">False</enableTosRtp>
- <rtpTos type="int">1</rtpTos>
- <customTosGroupBox type="bool">False</customTosGroupBox>
- <customTos type="str">0x20</customTos>
- <rtpTosVal type="int">32</rtpTosVal>
- <_COV1 type="bool">False</_COV1>
- <useQoV type="bool">False</useQoV>
- <qovAnalize type="int">5</qovAnalize>
- <qovSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_QoVSettings">
- <activityIdQoV type="int">0</activityIdQoV>
- <enableQoV type="bool">False</enableQoV>
- <_gbEnableQoV type="bool">False</_gbEnableQoV>
- <serviceEnabledQoV type="bool">False</serviceEnabledQoV>
- <activityNameQoV type="str"></activityNameQoV>
- <portIPsQoV type="str"></portIPsQoV>
- <unitsQoV type="int">0</unitsQoV>
- <valueQoV type="int">100</valueQoV>
- <channelTypeQoV type="int">0</channelTypeQoV>
- <metricsQoV type="int">0</metricsQoV>
- <channelsQoVPerZionPort type="int">0</channelsQoVPerZionPort>
- <radioBtnQoVASR type="int">0</radioBtnQoVASR>
- <languageASR type="str">English(US)</languageASR>
- </qovSettings>
- <activityIdQoV type="int">0</activityIdQoV>
- <enableQoV type="bool">False</enableQoV>
- <_gbEnableQoV type="bool">False</_gbEnableQoV>
- <serviceEnabledQoV type="bool">False</serviceEnabledQoV>
- <activityNameQoV type="str"></activityNameQoV>
- <portIPsQoV type="str"></portIPsQoV>
- <unitsQoV type="int">0</unitsQoV>
- <valueQoV type="int">100</valueQoV>
- <channelTypeQoV type="int">0</channelTypeQoV>
- <metricsQoV type="int">0</metricsQoV>
- <channelsQoVPerZionPort type="int">0</channelsQoVPerZionPort>
- <radioBtnQoVASR type="int">0</radioBtnQoVASR>
- <languageASR type="str">English(US)</languageASR>
- <audioClip type="str">US_042.wav</audioClip>
- <_audioFormat type="str">Format: PCM, Duration: 32785 ms, Size: 524556 bytes</_audioFormat>
- <outputLevel type="int">-20</outputLevel>
- <_gbOutputLevel type="bool">False</_gbOutputLevel>
- <playTypeAudio type="int">0</playTypeAudio>
- <audioDuration type="int">10</audioDuration>
- <audioDurationUnit type="int">1</audioDurationUnit>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbEnableQoV</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">channelTypeQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">pesqPolqa</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePTT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableP56</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">qovAnalize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoVPerZionPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_COV1</item>
- <item ver="[0, [1, [0, [0]]]]" oid="4" type="ixPropertyState">
- <enable type="int">0</enable>
- <show type="int">0</show>
- </item>
- </item>
- <item type="tuple">
- <item type="str">useTelchemy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">activityIdQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitComp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_JB1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portIPsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbQoVMetrics</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dodName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitMs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbASRLanguage</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnQoVASR</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">silenceMode</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">playTypeAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useQoV</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">activityNameQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">valueQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbOutputLevel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">unitsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serviceEnabledQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">languageASR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosGroupBox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">audioDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">qovSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSilence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">metricsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMaxDrop</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosRtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAudioOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_audioFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableAudio</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">outputLevel</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </audioSettings>
- <editTos ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditTos">
- <bits012 type="int">0</bits012>
- <minDelay type="bool">False</minDelay>
- <maxThroughput type="bool">False</maxThroughput>
- <maxReliability type="bool">False</maxReliability>
- <_gbBtnTosBit7_0 type="bool">False</_gbBtnTosBit7_0>
- <_gbBtnTosBit7_1 type="bool">False</_gbBtnTosBit7_1>
- <_gbBtnTosBit6_0 type="bool">False</_gbBtnTosBit6_0>
- <_gbBtnTosBit6_1 type="bool">False</_gbBtnTosBit6_1>
- <_gbBtnTosBit5_0 type="bool">False</_gbBtnTosBit5_0>
- <_gbBtnTosBit5_1 type="bool">False</_gbBtnTosBit5_1>
- <_gbBtnTosBit4_0 type="bool">False</_gbBtnTosBit4_0>
- <_gbBtnTosBit4_1 type="bool">False</_gbBtnTosBit4_1>
- <_gbBtnTosBit3_0 type="bool">False</_gbBtnTosBit3_0>
- <_gbBtnTosBit3_1 type="bool">False</_gbBtnTosBit3_1>
- <_gbBtnTosBit2_0 type="bool">False</_gbBtnTosBit2_0>
- <_gbBtnTosBit2_1 type="bool">False</_gbBtnTosBit2_1>
- <_gbDisabledBtns type="bool">False</_gbDisabledBtns>
- </editTos>
- <srtpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SRTPSettings">
- <bEnableSRTP type="bool">False</bEnableSRTP>
- <bEnableVideoSRTP type="bool">False</bEnableVideoSRTP>
- <bEnableTextSRTP type="bool">False</bEnableTextSRTP>
- <bDisableSRTCPEncryption type="bool">False</bDisableSRTCPEncryption>
- <bDisableSRTPEncryption type="bool">False</bDisableSRTPEncryption>
- <bDisableSRTPAuthentication type="bool">False</bDisableSRTPAuthentication>
- <bDisableValidations type="bool">False</bDisableValidations>
- <bAllowOnlySecureStreams type="bool">False</bAllowOnlySecureStreams>
- <bIncludeMKI type="bool">False</bIncludeMKI>
- <bEnablePreencryption type="bool">False</bEnablePreencryption>
- <bDisableMasterSalt type="bool">False</bDisableMasterSalt>
- <bStaticMasterKeySalt type="bool">False</bStaticMasterKeySalt>
- <_masterKeySelection type="int">0</_masterKeySelection>
- <staticSingleKeySalt type="str"></staticSingleKeySalt>
- <staticKeyFile type="str"></staticKeyFile>
- <_enableSRTP type="bool">False</_enableSRTP>
- <_useStaticKey type="bool">False</_useStaticKey>
- <_singleMasterKeyGrp type="bool">False</_singleMasterKeyGrp>
- <_multipleMasterKeysGrp type="bool">False</_multipleMasterKeysGrp>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">bDisableSRTPAuthentication</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_singleMasterKeyGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bIncludeMKI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableValidations</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useStaticKey</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">bEnablePreencryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_multipleMasterKeysGrp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bStaticMasterKeySalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">staticKeyFile</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableMasterSalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">staticSingleKeySalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bAllowOnlySecureStreams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTCPEncryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableVideoSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTPEncryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableTextSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_masterKeySelection</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </srtpSettings>
- <videoClips ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoClips">
- <videoClipsInfo ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VideoClips_videoClipsInfo" itemtype="ixConfig"/>
- <videoClipsInfoLength type="int">0</videoClipsInfoLength>
- <H323MaxProfile type="int">0</H323MaxProfile>
- <H323MaxLevel type="int">0</H323MaxLevel>
- <H323MaxBitRate type="int">0</H323MaxBitRate>
- <H323Packetization type="int">0</H323Packetization>
- <MaxProfileIdc type="int">66</MaxProfileIdc>
- <MaxProfileIop type="int">0</MaxProfileIop>
- <MaxLevel type="int">1</MaxLevel>
- </videoClips>
- <advancedVideo ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AdvancedVideoSettings">
- <enableCustomMaxMBPS type="bool">False</enableCustomMaxMBPS>
- <customMaxMBPS type="int">0</customMaxMBPS>
- <enableCustomMaxFS type="bool">False</enableCustomMaxFS>
- <customMaxFS type="int">0</customMaxFS>
- <enableCustomMaxDPB type="bool">False</enableCustomMaxDPB>
- <customMaxDPB type="int">0</customMaxDPB>
- <enableCustomMaxBRandCPB type="bool">False</enableCustomMaxBRandCPB>
- <customMaxBRandCPB type="int">0</customMaxBRandCPB>
- <enableMaxStaticMBPS type="bool">False</enableMaxStaticMBPS>
- <maxStaticMBPS type="int">0</maxStaticMBPS>
- <enableMaxRcmdNalUnitSize type="bool">False</enableMaxRcmdNalUnitSize>
- <maxRcmdNalUnitSize type="int">0</maxRcmdNalUnitSize>
- <enableMaxNalUnitSize type="bool">False</enableMaxNalUnitSize>
- <maxNalUnitSize type="int">0</maxNalUnitSize>
- </advancedVideo>
- <videoSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoSettings">
- <enableVideo type="bool">False</enableVideo>
- <enableVideoOWD type="bool">False</enableVideoOWD>
- <videoMaxSessions type="int">1</videoMaxSessions>
- <_gbEnableVideo type="bool">False</_gbEnableVideo>
- <videoClip type="str">Fire_avc.mp4</videoClip>
- <_videoFormat type="str">Codec: H264, Duration: 12800 ms, Size: 2012176 bytes, Bitrate: 1225 kbps</_videoFormat>
- <playTypeVideo type="int">0</playTypeVideo>
- <videoDuration type="int">5</videoDuration>
- <videoDurationUnit type="int">1</videoDurationUnit>
- <useConference type="bool">False</useConference>
- <_gbUseConference type="bool">False</_gbUseConference>
- <rotationScheme type="int">0</rotationScheme>
- <confVideoDuration type="int">1</confVideoDuration>
- <confVideoDurationUnit type="int">1</confVideoDurationUnit>
- <confDuration type="int">1</confDuration>
- <confDurationUnit type="int">1</confDurationUnit>
- <btnTelepresence type="bool">False</btnTelepresence>
- <_gbUseTelepresence type="bool">False</_gbUseTelepresence>
- <tipSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoTelepresenceSettings">
- <tipEndpointType type="int">1</tipEndpointType>
- <tipResolution type="int">1</tipResolution>
- <tipVersion type="int">1</tipVersion>
- <tipSyntheticPayload type="bool">False</tipSyntheticPayload>
- <tipMoreClips type="bool">False</tipMoreClips>
- <_gbTipMoreClips type="int">0</_gbTipMoreClips>
- <tipVideoClip2 type="str">Fire_avc.mp4</tipVideoClip2>
- <tipRotationScheme type="int">0</tipRotationScheme>
- <tipConfDuration type="int">1</tipConfDuration>
- <tipConfDurationUnit type="int">1</tipConfDurationUnit>
- <tipAudioDuration type="int">1</tipAudioDuration>
- <tipAudioDurationUnit type="int">1</tipAudioDurationUnit>
- <_gbTipPresentation type="bool">False</_gbTipPresentation>
- <tipUsePresentationStream type="bool">False</tipUsePresentationStream>
- <tipVideoClip type="str">Fire_avc.mp4</tipVideoClip>
- <tipAudioClip type="str">US_042.wav</tipAudioClip>
- <tipStartAfter type="int">1</tipStartAfter>
- <tipStartAfterUnit type="int">1</tipStartAfterUnit>
- <tipDuration type="int">1</tipDuration>
- <tipDurationUnit type="int">1</tipDurationUnit>
- <tipPresentationRotation type="int">0</tipPresentationRotation>
- <tipLegacyMode type="bool">False</tipLegacyMode>
- <_gbTipLegacy type="int">0</_gbTipLegacy>
- <tipLegacyClip type="str">Fire_avc.mp4</tipLegacyClip>
- <tipLegacyModeAudio type="bool">False</tipLegacyModeAudio>
- <_gbTipLegacyAudio type="int">0</_gbTipLegacyAudio>
- <tipLegacyClipAudio type="str">US_042.wav</tipLegacyClipAudio>
- <tipG722Legacy type="bool">False</tipG722Legacy>
- <tipAudioActivityMetric type="bool">False</tipAudioActivityMetric>
- <tipDinamicChannels type="bool">False</tipDinamicChannels>
- <tipVideoRefresh type="bool">False</tipVideoRefresh>
- <tipInbandSets type="bool">False</tipInbandSets>
- <tipArithmetingCoding type="bool">False</tipArithmetingCoding>
- <tipLTRP type="bool">False</tipLTRP>
- <tipGDR type="bool">False</tipGDR>
- <tipHighProfile type="bool">False</tipHighProfile>
- <tipUnrestrictedMedia type="bool">False</tipUnrestrictedMedia>
- <tipRtcpFeedback type="bool">True</tipRtcpFeedback>
- </tipSettings>
- <_gbTosVideo type="bool">False</_gbTosVideo>
- <enableTosVideo type="bool">False</enableTosVideo>
- <tosVideo type="int">1</tosVideo>
- <customTosVideo type="str">0x20</customTosVideo>
- <_gbCustomTosVideo type="bool">False</_gbCustomTosVideo>
- <tosValVideo type="int">32</tosValVideo>
- <useMosVideo type="bool">False</useMosVideo>
- <enableAcceptSSRCChanges type="bool">False</enableAcceptSSRCChanges>
- <ignoreHintTrack type="bool">False</ignoreHintTrack>
- <hintTrackType type="int">1</hintTrackType>
- <enablePACSI type="bool">True</enablePACSI>
- <useSingleNALUnit type="bool">False</useSingleNALUnit>
- <_gbH323AdvancedSettings type="bool">False</_gbH323AdvancedSettings>
- <useH323AdvancedSettings type="bool">False</useH323AdvancedSettings>
- <_gbUseH323AdvancedSettings type="bool">False</_gbUseH323AdvancedSettings>
- <rtpmap type="str"></rtpmap>
- <fmtp type="str"></fmtp>
- <isMP4 type="bool">False</isMP4>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">hintTrackType</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">videoMaxSessions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSingleNALUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useConference</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">playTypeVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseH323AdvancedSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">isMP4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosValVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePACSI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_videoFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseTelepresence</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableVideoOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fmtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseConference</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbH323AdvancedSettings</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTosVideo</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreHintTrack</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAcceptSSRCChanges</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useH323AdvancedSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpmap</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">btnTelepresence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useMosVideo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoSettings>
- <videoConfSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoConfSettings">
- <rotationScheme type="int">0</rotationScheme>
- <_gbRotationScheme type="int">0</_gbRotationScheme>
- <confVideoDuration type="int">0</confVideoDuration>
- <confVideoDurationUnit type="int">0</confVideoDurationUnit>
- <confDuration type="int">0</confDuration>
- <confDurationUnit type="int">0</confDurationUnit>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">rotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbRotationScheme</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDuration</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoConfSettings>
- <videoTelepresenceSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoTelepresenceSettings">
- <tipEndpointType type="int">0</tipEndpointType>
- <tipResolution type="int">0</tipResolution>
- <tipVersion type="int">0</tipVersion>
- <tipSyntheticPayload type="bool">False</tipSyntheticPayload>
- <tipMoreClips type="bool">False</tipMoreClips>
- <_gbTipMoreClips type="int">0</_gbTipMoreClips>
- <tipVideoClip2 type="str">Fire_avc.mp4</tipVideoClip2>
- <tipRotationScheme type="int">0</tipRotationScheme>
- <tipConfDuration type="int">0</tipConfDuration>
- <tipConfDurationUnit type="int">0</tipConfDurationUnit>
- <tipAudioDuration type="int">0</tipAudioDuration>
- <tipAudioDurationUnit type="int">0</tipAudioDurationUnit>
- <_gbTipPresentation type="bool">False</_gbTipPresentation>
- <tipUsePresentationStream type="bool">False</tipUsePresentationStream>
- <tipVideoClip type="str">Fire_avc.mp4</tipVideoClip>
- <tipAudioClip type="str">US_042.wav</tipAudioClip>
- <tipStartAfter type="int">0</tipStartAfter>
- <tipStartAfterUnit type="int">0</tipStartAfterUnit>
- <tipDuration type="int">0</tipDuration>
- <tipDurationUnit type="int">0</tipDurationUnit>
- <tipPresentationRotation type="int">0</tipPresentationRotation>
- <tipLegacyMode type="bool">False</tipLegacyMode>
- <_gbTipLegacy type="int">0</_gbTipLegacy>
- <tipLegacyClip type="str">Fire_avc.mp4</tipLegacyClip>
- <tipLegacyModeAudio type="bool">False</tipLegacyModeAudio>
- <_gbTipLegacyAudio type="int">0</_gbTipLegacyAudio>
- <tipLegacyClipAudio type="str">US_042.wav</tipLegacyClipAudio>
- <tipG722Legacy type="bool">False</tipG722Legacy>
- <tipAudioActivityMetric type="bool">False</tipAudioActivityMetric>
- <tipDinamicChannels type="bool">False</tipDinamicChannels>
- <tipVideoRefresh type="bool">False</tipVideoRefresh>
- <tipInbandSets type="bool">False</tipInbandSets>
- <tipArithmetingCoding type="bool">False</tipArithmetingCoding>
- <tipLTRP type="bool">False</tipLTRP>
- <tipGDR type="bool">False</tipGDR>
- <tipHighProfile type="bool">False</tipHighProfile>
- <tipUnrestrictedMedia type="bool">False</tipUnrestrictedMedia>
- <tipRtcpFeedback type="bool">True</tipRtcpFeedback>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tipUnrestrictedMedia</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyClipAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipRotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipLegacyClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoRefresh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipUsePresentationStream</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipRtcpFeedback</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipStartAfterUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipArithmetingCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipLegacyAudio</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipConfDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipConfDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipG722Legacy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipMoreClips</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipInbandSets</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyModeAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipVideoClip2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipResolution</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDinamicChannels</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipLegacyClipAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipSyntheticPayload</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipPresentation</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipHighProfile</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioActivityMetric</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipGDR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoClip2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipMoreClips</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipVideoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipEndpointType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipLegacy</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipLTRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipStartAfter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipAudioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipPresentationRotation</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioDuration</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoTelepresenceSettings>
- <textSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TextSettings">
- <enableText type="bool">False</enableText>
- <enableTextOWD type="bool">False</enableTextOWD>
- <_gbEnableText type="bool">False</_gbEnableText>
- <textClip type="str">The quick brown fox jumps over the lazy dog</textClip>
- <textFormat type="str">Format: t140, Max duration: 42300 ms</textFormat>
- <textChpsMin type="float">1.0</textChpsMin>
- <textChpsMax type="float">1.0</textChpsMax>
- <textBufferTime type="int">300</textBufferTime>
- <textRedundancyLevel type="int">0</textRedundancyLevel>
- <textPlayType type="int">0</textPlayType>
- <textDuration type="int">5</textDuration>
- <textDurationUnit type="int">1</textDurationUnit>
- <_gbTosText type="bool">False</_gbTosText>
- <enableTosText type="bool">False</enableTosText>
- <tosText type="int">1</tosText>
- <customTosText type="str">0x20</customTosText>
- <_gbCustomTosText type="bool">False</_gbCustomTosText>
- <tosValText type="int">32</tosValText>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tosValText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textChpsMin</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRedundancyLevel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textChpsMax</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textBufferTime</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTextOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTosText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textPlayType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTosText</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tosText</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </textSettings>
- <t38Settings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_T38Settings">
- <enableT38 type="bool">False</enableT38>
- <_gbEnableT38 type="bool">False</_gbEnableT38>
- <_gbEnableT38_2 type="bool">False</_gbEnableT38_2>
- <faxImage type="str">Ixia2Pages.tif</faxImage>
- <_faxFormat type="str">Format: TIFF, Img size: 1660 x 2291, Size: 140402 bytes</_faxFormat>
- <t38TransportType type="int">1</t38TransportType>
- <t38Port type="str">40000</t38Port>
- <t38UdpEncapsulation type="int">0</t38UdpEncapsulation>
- <_gbT38UdpEncapsulation type="bool">False</_gbT38UdpEncapsulation>
- <t38PayloadType type="int">102</t38PayloadType>
- <useFaxVersion type="bool">True</useFaxVersion>
- <faxVersion type="int">0</faxVersion>
- <useT38MaxBitrate type="bool">True</useT38MaxBitrate>
- <t38MaxBitrate type="int">5</t38MaxBitrate>
- <useT38RateMgmt type="bool">True</useT38RateMgmt>
- <t38RateMgmt type="int">0</t38RateMgmt>
- <useT38FillBitRemoval type="bool">False</useT38FillBitRemoval>
- <t38FillBitRemoval type="int">0</t38FillBitRemoval>
- <t38TranscodingMMR type="bool">False</t38TranscodingMMR>
- <t38TranscodingJBIG type="bool">False</t38TranscodingJBIG>
- <_gbUdpOptions type="bool">False</_gbUdpOptions>
- <useErrorRecoverySchema type="bool">True</useErrorRecoverySchema>
- <errorRecoverySchema type="int">0</errorRecoverySchema>
- <useT38MaxDatagramSize type="bool">True</useT38MaxDatagramSize>
- <t38MaxDatagramSize type="int">256</t38MaxDatagramSize>
- <useT38MaxBufferSize type="bool">False</useT38MaxBufferSize>
- <t38MaxBufferSize type="int">200</t38MaxBufferSize>
- <imagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_T38Settings_imagesList" itemtype="ixConfig"/>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">t38TranscodingMMR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38UdpEncapsulation</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxBitrate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38RateMgmt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38TranscodingJBIG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableT38</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38TransportType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableT38_2</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableT38</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useFaxVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38Port</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38FillBitRemoval</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">faxVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38FillBitRemoval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38RateMgmt</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">faxImage</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxBufferSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">errorRecoverySchema</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxDatagramSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxBufferSize</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">t38PayloadType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxDatagramSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxBitrate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_faxFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUdpOptions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbT38UdpEncapsulation</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">imagesList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useErrorRecoverySchema</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </t38Settings>
- <t30Parameters ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_T30Parameters">
- <t30StationId type="str">5551[000-]</t30StationId>
- <t30SendCoding type="int">0</t30SendCoding>
- <t30SendDataRate type="int">5</t30SendDataRate>
- <t30SendPageSize type="int">0</t30SendPageSize>
- <t30SendMSLT type="int">0</t30SendMSLT>
- <t30SendProtocol type="int">1</t30SendProtocol>
- <t30SendResolution type="int">0</t30SendResolution>
- <sendCNG type="int">1</sendCNG>
- <t30ReceiveCoding type="int">2</t30ReceiveCoding>
- <t30ReceivePageSize type="int">2</t30ReceivePageSize>
- <t30ReceiveMSLT type="int">0</t30ReceiveMSLT>
- <t30ReceiveProtocol type="int">1</t30ReceiveProtocol>
- <t30ReceiveR8x3 type="bool">True</t30ReceiveR8x3>
- <t30ReceiveR8x7 type="bool">True</t30ReceiveR8x7>
- <t30ReceiveR8x15 type="bool">True</t30ReceiveR8x15>
- <t30Receive200x200 type="bool">True</t30Receive200x200>
- <t30ReceiveModulations type="int">3</t30ReceiveModulations>
- <sendCedBeforeDIS type="int">1</sendCedBeforeDIS>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">t30SendResolution</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sendCedBeforeDIS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x7</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendPageSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x3</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendProtocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveProtocol</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">sendCNG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveMSLT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendMSLT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceivePageSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveModulations</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x15</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30StationId</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendDataRate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30Receive200x200</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </t30Parameters>
- <msrpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPSettings">
- <enableMSRP type="bool">False</enableMSRP>
- <_gbEnableMSRP type="bool">False</_gbEnableMSRP>
- <msrpPort type="str">2855</msrpPort>
- <domainType type="int">0</domainType>
- <localDomain type="str">alice[00-99].example.com</localDomain>
- <relays ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_relays" itemtype="ixConfig"/>
- <relaysCount type="int">0</relaysCount>
- <firstRelayIpEnabled type="bool">False</firstRelayIpEnabled>
- <firstRelayIp type="str">10.10.10.1</firstRelayIp>
- <firstRelayIsIPv4 type="bool">True</firstRelayIsIPv4>
- <msrpRelayPort type="int">2855</msrpRelayPort>
- <enableMSRPTos type="bool">False</enableMSRPTos>
- <msrpTos type="int">0</msrpTos>
- <customMSRPTos type="str">0x00</customMSRPTos>
- <tosMSRPVal type="int">0</tosMSRPVal>
- <automaticMSRPAuth type="bool">True</automaticMSRPAuth>
- <msrpReuseTCP type="bool">True</msrpReuseTCP>
- <msrpSendEmptyMsg type="bool">False</msrpSendEmptyMsg>
- <msrpTransactionTimeout type="int">30000</msrpTransactionTimeout>
- <msrpFirstChunkTimeout type="int">60000</msrpFirstChunkTimeout>
- <msrpInterChunkTimeout type="int">30000</msrpInterChunkTimeout>
- <msrpSessionTimeout type="int">70000</msrpSessionTimeout>
- <msrpGuiFiles ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_msrpGuiFiles" itemtype="ixConfig"/>
- <files ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_files" itemtype="ixConfig"/>
- <filesCount type="int">0</filesCount>
- <advSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings">
- <closeTCPConnectionAfterBye type="bool">False</closeTCPConnectionAfterBye>
- </advSettings>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">domainType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">filesCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIpEnabled</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">automaticMSRPAuth</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpSendEmptyMsg</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpTransactionTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpInterChunkTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosMSRPVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMSRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">localDomain</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">relaysCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customMSRPTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">advSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">files</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpFirstChunkTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIsIPv4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbMSRPCustomTos</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">msrpSessionTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableMSRP</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableMSRPTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpReuseTCP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpGuiFiles</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">relays</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpRelayPort</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </msrpSettings>
- <_tempFile ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_FileRecord">
- <synthetic type="int">0</synthetic>
- <_typeStr type="str"></_typeStr>
- <name type="str"></name>
- <nameSynthetic type="str"></nameSynthetic>
- <fileClientPath type="str"></fileClientPath>
- <filePcpuPath type="str"></filePcpuPath>
- <_bFileSize type="int">20</_bFileSize>
- <_msrpSizeCombo type="int">2</_msrpSizeCombo>
- <size type="int">0</size>
- <btnMSRPFileBrowse type="int">0</btnMSRPFileBrowse>
- <type type="str">application/octet-stream</type>
- <fileHash type="str"></fileHash>
- </_tempFile>
- <_tempAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings">
- <closeTCPConnectionAfterBye type="bool">False</closeTCPConnectionAfterBye>
- </_tempAdvSettings>
- <phoneBookInputLabel ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_PhoneBookInputLabel">
- <label type="str">5</label>
- </phoneBookInputLabel>
- <akaConfigurationInputLabel ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AKAConfigurationInputLabel">
- <configurationLabel type="str"></configurationLabel>
- </akaConfigurationInputLabel>
- <phoneBook ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_PhoneBook">
- <fromFile type="int">0</fromFile>
- <pattern type="str">201004[0000-]</pattern>
- <filePath type="str"></filePath>
- <_PN1 type="bool">False</_PN1>
- <_bTelGrp type="bool">False</_bTelGrp>
- <ckTelURIBook type="bool">False</ckTelURIBook>
- <_bkTelURIparams type="str">phone-context=example.com</_bkTelURIparams>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">phoneBookList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">filePath</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">pattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ckTelURIBook</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_bkTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_PN1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_bTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fromFile</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </phoneBook>
- <akaConfiguration ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AKAConfiguration"/>
- <milenageConfiguration ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MilenageConfiguration"/>
- <msgBox ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MsgBox">
- <msg1 type="str"></msg1>
- <msg2 type="str"></msg2>
- </msgBox>
- <editCloudRule ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditCloudRule">
- <_gbStep1 type="bool">False</_gbStep1>
- <requestList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_requestList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ANY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INVITE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">BYE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CANCEL</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">OPTIONS</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REGISTER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">NOTIFY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">SUBSCRIBE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REFER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">MESSAGE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">PRACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INFO</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">UPDATE</str>
- </item>
- </requestList>
- <reqList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_reqList" itemtype="ixConfig"/>
- <_gbStep2 type="bool">False</_gbStep2>
- <what type="int">2</what>
- <reqLine type="int">1</reqLine>
- <headerTypeList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_headerTypeList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">From</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Contact</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Also</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Call-ID</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Length</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Type</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Event</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authenticate</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RAck</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Record-Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Refer-To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Referred-By</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Replaces</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Subscription-State</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Via</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">WWW-Authenticate</str>
- </item>
- </headerTypeList>
- <headerType type="str">To</headerType>
- <compactForm type="str">t</compactForm>
- <occurFrom type="str">1</occurFrom>
- <occurTo type="str">1</occurTo>
- <whatExtract type="int">3</whatExtract>
- <extractHeaderName type="bool">False</extractHeaderName>
- <paramName type="str"></paramName>
- <revHeaderOrder type="bool">False</revHeaderOrder>
- <keepHeaderCrlf type="bool">False</keepHeaderCrlf>
- <_gbStep3 type="bool">False</_gbStep3>
- <usePosition type="int">0</usePosition>
- <beginAfter type="bool">False</beginAfter>
- <afterStr type="str">&lt;</afterStr>
- <afterOccur type="str">1</afterOccur>
- <endBefore type="bool">False</endBefore>
- <endStr type="str">&gt;</endStr>
- <endOccur type="str">last</endOccur>
- <positionFrom type="str">1</positionFrom>
- <positionTo type="str">last</positionTo>
- <_gbStep4 type="bool">False</_gbStep4>
- <formulaSource type="int">0</formulaSource>
- <formula type="str"></formula>
- <phoneBookPath type="str"></phoneBookPath>
- <phoneBookDodPath type="str"></phoneBookDodPath>
- <btnPBBrowse type="int">0</btnPBBrowse>
- </editCloudRule>
- <cloudRules ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudRules">
- <rulesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CloudRules_rulesList" itemtype="ixConfig"/>
- <cloudPhoneBooksAbsolutePath type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</cloudPhoneBooksAbsolutePath>
- </cloudRules>
- <cloudServers ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VoIP_cloudServers" itemtype="ixConfig"/>
- <transferAddress ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TransferAddress">
- <symTransferStr type="str">None</symTransferStr>
- <overridePhoneNo type="bool">False</overridePhoneNo>
- <_useTPb type="int">0</_useTPb>
- <_tBp type="str">&lt;None&gt;</_tBp>
- <_tBpPrv type="str"></_tBpPrv>
- <_tPhone type="str">150[00000000-]</_tPhone>
- <tPhoneType type="int">0</tPhoneType>
- <tPhone type="str">150[00000000-]</tPhone>
- <_tTelGrp type="bool">False</_tTelGrp>
- <_ckTTelURIParams type="bool">False</_ckTTelURIParams>
- <_tTelURIparams type="str">phone-context=example.com</_tTelURIparams>
- <transTelPar type="str"></transTelPar>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_tBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overridePhoneNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">transTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useTPb</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckTTelURIParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">symTransferStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_tBp</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </transferAddress>
- <editContact ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditContact">
- <useDomainName type="int">0</useDomainName>
- <domainName type="str">mysipdomain.ixiacom.com</domainName>
- <_useEPb type="int">0</_useEPb>
- <_eBp type="str">&lt;None&gt;</_eBp>
- <_eBpPrv type="str"></_eBpPrv>
- <_ePhone type="str">160[00000000-]</_ePhone>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <_eTelGrp type="bool">False</_eTelGrp>
- <_ckETelURI type="bool">False</_ckETelURI>
- <_eTelURIparams type="str">phone-context=example.com</_eTelURIparams>
- <editTelPar type="str"></editTelPar>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_useEPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">domainName</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_eBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useDomainName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">editTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckETelURI</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </editContact>
- <dialPlan ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_DialPlan">
- <sourceIPs type="str"></sourceIPs>
- <_useSPb type="int">0</_useSPb>
- <_sBp type="str">&lt;None&gt;</_sBp>
- <_sBpPrv type="str"></_sBpPrv>
- <_sPhone type="str">{{pnregistering}}</_sPhone>
- <srcPhoneType type="int">0</srcPhoneType>
- <srcPhone type="str">{{pnregistering}}</srcPhone>
- <_sTelGrp type="bool">False</_sTelGrp>
- <_ckSTelURIParams type="bool">False</_ckSTelURIParams>
- <_sTelURIparams type="str">phone-context=example.com</_sTelURIparams>
- <srcTelPar type="str"></srcTelPar>
- <_sTelGrp1 type="bool">False</_sTelGrp1>
- <_dTelGrp1 type="bool">False</_dTelGrp1>
- <symDestStr type="str">None</symDestStr>
- <ovrDestPhone type="bool">False</ovrDestPhone>
- <_useDPb type="int">0</_useDPb>
- <_dBp type="str">&lt;None&gt;</_dBp>
- <_dBpPrv type="str"></_dBpPrv>
- <_dPhone type="str">170[00000000-]</_dPhone>
- <destPhoneType type="int">0</destPhoneType>
- <destPhone type="str">170[00000000-]</destPhone>
- <_dTelGrp type="bool">False</_dTelGrp>
- <_ckDTelURIParams type="bool">False</_ckDTelURIParams>
- <_dTelURIparams type="str">phone-context=example.com</_dTelURIparams>
- <destTelPar type="str"></destTelPar>
- <enableEmergencyCalls type="bool">False</enableEmergencyCalls>
- <useAnonymous type="bool">False</useAnonymous>
- <makeEmergencyReg type="bool">False</makeEmergencyReg>
- <emergencyService type="str">sos</emergencyService>
- <emergencyServiceList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_DialPlan_emergencyServiceList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.ambulance</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.fire</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.police</str>
- </item>
- </emergencyServiceList>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_useSPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelGrp1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sourceIPs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableEmergencyCalls</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useAnonymous</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">symDestStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergencyDest</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_sBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">makeEmergencyReg</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergency</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergencySource</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ckSTelURIParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_dBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDestPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelGrp1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">emergencyServiceList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_UseSrv1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">emergencyService</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useDPb</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ckDTelURIParams</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </dialPlan>
- <signalingSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SignalingSettings">
- <enableSIP type="bool">True</enableSIP>
- <port type="str">{{sipportregistering}}</port>
- <tcpWriteImmediate type="bool">False</tcpWriteImmediate>
- <fqdn type="bool">False</fqdn>
- <realm type="str"></realm>
- <user type="str">{{pnregistering}}@{{domainname}}</user>
- <passwd type="str">{{authpassword}}</passwd>
- <akaConfCombo type="str">&lt;None&gt;</akaConfCombo>
- <akaConfComboSelIndex type="int">0</akaConfComboSelIndex>
- <akaSharedSecretType type="int">0</akaSharedSecretType>
- <akaOperatorVariantType type="int">0</akaOperatorVariantType>
- <akaSharedSecretSequence type="str">ixia</akaSharedSecretSequence>
- <akaAbsolutePath type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</akaAbsolutePath>
- <akaOperatorVariantSequence type="str">ixia</akaOperatorVariantSequence>
- <akaSharedSecretSource type="int">0</akaSharedSecretSource>
- <akaOperatorVariantSource type="int">0</akaOperatorVariantSource>
- <akaExportComplete type="int">0</akaExportComplete>
- <akaUseOPasOPC type="bool">False</akaUseOPasOPC>
- <milenageConfCombo type="str">&lt;Default&gt;</milenageConfCombo>
- <milenage_c1 type="str">00000000000000000000000000000000</milenage_c1>
- <milenage_c2 type="str">00000000000000000000000000000001</milenage_c2>
- <milenage_c3 type="str">00000000000000000000000000000002</milenage_c3>
- <milenage_c4 type="str">00000000000000000000000000000004</milenage_c4>
- <milenage_c5 type="str">00000000000000000000000000000008</milenage_c5>
- <milenage_r1 type="int">64</milenage_r1>
- <milenage_r2 type="int">0</milenage_r2>
- <milenage_r3 type="int">32</milenage_r3>
- <milenage_r4 type="int">64</milenage_r4>
- <milenage_r5 type="int">96</milenage_r5>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <customSipTos type="str">0x00</customSipTos>
- <tosVal type="int">0</tosVal>
- <ovrTrans type="bool">False</ovrTrans>
- <ovrTransOption type="int">0</ovrTransOption>
- <useServer type="bool">True</useServer>
- <srvAddr type="str">{{iplistims}}</srvAddr>
- <srvPort type="str">5060</srvPort>
- <srvDomain type="str">{{domainname}}</srvDomain>
- <outboundProxy type="bool">False</outboundProxy>
- <useDnsSrv type="bool">False</useDnsSrv>
- <registrarSrv type="bool">False</registrarSrv>
- <autoRegister type="bool">True</autoRegister>
- <overrideRegistrar type="bool">False</overrideRegistrar>
- <overrideRegistrarAddress type="str">IP:PORT</overrideRegistrarAddress>
- <ovrContact type="bool">False</ovrContact>
- <ovrDest type="bool">False</ovrDest>
- <ovrDestHostPort type="str"></ovrDestHostPort>
- <nUdpMaxSize type="int">1024</nUdpMaxSize>
- <enableSigComp type="bool">False</enableSigComp>
- <telURISource type="bool">False</telURISource>
- <telURIDest type="bool">False</telURIDest>
- <securityMechanismValList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SignalingSettings_securityMechanismValList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SecurityMechanismVal">
- <checked type="bool">False</checked>
- <mechanism type="str">ipsec-3gpp</mechanism>
- <algorithm type="int">0</algorithm>
- <algorithmStr type="str">hmac-sha-1-96</algorithmStr>
- <protocol type="int">0</protocol>
- <protocolStr type="str">esp</protocolStr>
- <mode type="int">0</mode>
- <modeStr type="str">trans</modeStr>
- <encrypt_algorithm type="int">0</encrypt_algorithm>
- <encrypt_algorithmStr type="str">aes-cbc</encrypt_algorithmStr>
- <spi_start_idx type="int">255</spi_start_idx>
- <port_c type="str">[3000-4000]</port_c>
- <port_s type="str">4060</port_s>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">protocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">encrypt_algorithmStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">algorithm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">modeStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">protocolStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mechanism</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">algorithmStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mode</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port_s</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port_c</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">spi_start_idx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">encrypt_algorithm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- </securityMechanismValList>
- <useIPSecDoubleSPIPatch type="bool">False</useIPSecDoubleSPIPatch>
- <enablePeriodicDNSQueries type="bool">False</enablePeriodicDNSQueries>
- <DNSTimeoutValue type="int">60</DNSTimeoutValue>
- <skipDeleteDNSRecordsAtLoopEnd type="bool">False</skipDeleteDNSRecordsAtLoopEnd>
- <enableVoLTE type="bool">False</enableVoLTE>
- <mediaBearerType type="int">0</mediaBearerType>
- <enableCCDedicatedBearer type="bool">True</enableCCDedicatedBearer>
- <volte_grbox type="bool">False</volte_grbox>
- <_enableAutoHeaders type="bool">False</_enableAutoHeaders>
- <_btnAutoHeaders type="bool">False</_btnAutoHeaders>
- <dontEndMediaOnBye type="bool">False</dontEndMediaOnBye>
- <closeTCPConnectionsOnRampdown type="bool">False</closeTCPConnectionsOnRampdown>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbSrvSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpWriteImmediate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">telURISource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableAutoHeaders</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSIP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fqdn</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretSource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenageConfCombo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c5</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaConfCombo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideRegistrar</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r5</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">realm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">user</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantSource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useServer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">nUdpMaxSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmit1xx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvDomain</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_btnEditContact1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">telURIDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePeriodicDNSQueries</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useIPSecDoubleSPIPatch</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">securityMechanismValList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideRegistrarAddress</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvAddr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDestHostPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">DNSTimeoutValue</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">passwd</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretSequence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoRegister</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">skipDeleteDNSRecordsAtLoopEnd</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSigComp</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantSequence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableVoLTE</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmitACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_btnAutoHeaders</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">volte_grbox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">customSipTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dontEndMediaOnBye</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaExportComplete</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">mediaBearerType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">registrarSrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaUseOPasOPC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ovrDest1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">outboundProxy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_UseSrv1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSIP1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">closeTCPConnectionsOnRampdown</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrContact</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaAbsolutePath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serverAddresses</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableCCDedicatedBearer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaConfComboSelIndex</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTos</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTrans</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useDnsSrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTransOption</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSIP2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbPeriodicDNSQuery</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreRetransmissions</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </signalingSettings>
- <timerSettings ver="[2, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TimerSettings">
- <enableTimers type="bool">True</enableTimers>
- <expirationValList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TimerSettings_expirationValList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">REGISTER</message>
- <msgPart type="int">0</msgPart>
- <msgPartStr type="str">Expires Header(s)</msgPartStr>
- <value type="int">3600</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">INVITE</message>
- <msgPart type="int">2</msgPart>
- <msgPartStr type="str">Session-Expire(s)</msgPartStr>
- <value type="int">90</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">UPDATE</message>
- <msgPart type="int">2</msgPart>
- <msgPartStr type="str">Session-Expire(s)</msgPartStr>
- <value type="int">90</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- </expirationValList>
- <sessionRefreshType type="int">1</sessionRefreshType>
- <refreshAfterSecs type="int">3000</refreshAfterSecs>
- <refreshAfterPercent type="int">50</refreshAfterPercent>
- <refreshInSecs type="int">32</refreshInSecs>
- <enableRetransmissions type="bool">False</enableRetransmissions>
- <T1 type="int">500</T1>
- <T2 type="int">4000</T2>
- <ignoreRetransmissions type="bool">True</ignoreRetransmissions>
- <retransmitACK type="bool">True</retransmitACK>
- <stopActiveRetr type="bool">True</stopActiveRetr>
- <retransmit1xx type="bool">False</retransmit1xx>
- <ovrTimeout type="bool">False</ovrTimeout>
- <minInterReregister type="int">0</minInterReregister>
- <autoEndCall2 type="bool">False</autoEndCall2>
- <enableAutoPRACK type="bool">False</enableAutoPRACK>
- <rprSendNegotiatedSDP type="bool">False</rprSendNegotiatedSDP>
- <rprTimeUntilNextRPR type="int">150</rprTimeUntilNextRPR>
- <rprScenarioHasPRACK type="bool">False</rprScenarioHasPRACK>
- <auto4xx type="bool">False</auto4xx>
- <auto4xxAbort type="bool">False</auto4xxAbort>
- <autoProcedureList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TimerSettings_autoProcedureList" itemtype="ixConfig"/>
- <autoProceduresCount type="int">0</autoProceduresCount>
- <procListChanged type="bool">True</procListChanged>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">btnRefreshProcList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoEndCall</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreRetransmissions</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">minInterReregister</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoEndCall2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTimers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshInSecs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">retransmit1xx</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">auto4xxAbort</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableTimers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sessionRefreshType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">auto4xx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">procListChanged</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoProcedureList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbAutoPRACK</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">T1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshAfterPercent</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAutoPRACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stopActiveRetr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rprTimeUntilNextRPR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rprScenarioHasPRACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">expirationValList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshAfterSecs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">autoProceduresCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmitACK</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">rprSendNegotiatedSDP</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </timerSettings>
- <advancedSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AdvancedSettings">
- <useCloud type="bool">False</useCloud>
- <_useCloud1 type="bool">False</_useCloud1>
- <cloud type="str">&lt;None&gt;</cloud>
- <serverRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AdvancedSettings_serverRules" itemtype="ixConfig"/>
- <enableVirtualIPs type="bool">False</enableVirtualIPs>
- <virtualIPTable ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AdvancedSettings_virtualIPTable" itemtype="ixConfig"/>
- <ovrCloudRules type="bool">False</ovrCloudRules>
- <_ovrCloudRules1 type="bool">False</_ovrCloudRules1>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbVirtualIPs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useCloud</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrCloudRules</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ovrCloudRules1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_useCloud1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableVirtualIPs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">virtualIPTable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serverRules</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">cloud</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </advancedSettings>
- <tlsSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsSettings">
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <_enableTLS1 type="bool">False</_enableTLS1>
- <_enableTLS2 type="bool">False</_enableTLS2>
- <_enableTLS3 type="bool">False</_enableTLS3>
- <tlsPort type="str">5061</tlsPort>
- <tlsProtocol type="int">3</tlsProtocol>
- <tlsSessionRefresh type="bool">False</tlsSessionRefresh>
- <_tlsSessionRefresh type="bool">False</_tlsSessionRefresh>
- <tlsRefreshInterval type="int">3600</tlsRefreshInterval>
- <tlsAuthClient type="int">0</tlsAuthClient>
- <tlsReuseConnection type="bool">False</tlsReuseConnection>
- <_tlsReuseConnection type="bool">False</_tlsReuseConnection>
- <ignoreSubjectAltName type="bool">False</ignoreSubjectAltName>
- <tlsMutual type="bool">False</tlsMutual>
- <_gbTlsMutual type="bool">False</_gbTlsMutual>
- <tlsCyphers ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TlsSettings_tlsCyphers" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES128-GCM-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES256-GCM-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-RSA-AES128-GCM-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES256-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-RSA-AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">AES256-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-ECDSA-AES256-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-ECDSA-AES128-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES256-GCM-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES128-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES256-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">DES-CBC3-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-RC2-CBC-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-RC4-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP1024-DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP1024-RC4-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">IDEA-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">NULL-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">NULL-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">RC4-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">RC4-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- </tlsCyphers>
- <tlsCertificatesPath type="str">C:\Program Files (x86)\Ixia\IxLoad\8.20-EA\aptixia\data\SSL_Certificates</tlsCertificatesPath>
- <tlsPrivateKeyCertificate type="str">Unsecured_RSA_key_1024.pem</tlsPrivateKeyCertificate>
- <tlsPublicKeyCertificate type="str">Unsecured_RSA_cert_1024.pem</tlsPublicKeyCertificate>
- <tlsKeyType type="int">0</tlsKeyType>
- <tlsCertType type="int">0</tlsCertType>
- <tlsPassword type="str"></tlsPassword>
- <sipScheme type="int">0</sipScheme>
- <tlsTransportType type="int">0</tlsTransportType>
- <tlsDisableUdpAndTcp type="bool">True</tlsDisableUdpAndTcp>
- <tlsEnableTcpKeepAlive type="bool">False</tlsEnableTcpKeepAlive>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tlsCertType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPassword</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsMutual</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPrivateKeyCertificate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsTransportType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS_HTTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsCyphers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsProtocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsKeyType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tlsSessionRefresh</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tlsCertificatesPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsEnableTcpKeepAlive</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTlsMutual</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPublicKeyCertificate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableCert</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsAuthClient</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreSubjectAltName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS4</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS2</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS3</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableDTLS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS_MSRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsReuseConnection</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsRefreshInterval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsSessionRefresh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsDisableUdpAndTcp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sipScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tlsReuseConnection</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </tlsSettings>
- <dtlsOptions ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_DtlsOptions">
- <dtlsRetry type="int">200</dtlsRetry>
- <dtlsTimeout type="int">30000</dtlsTimeout>
- <dtlsSessionTicket type="bool">False</dtlsSessionTicket>
- </dtlsOptions>
- <iceOptions ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_IceOptions">
- <iceRetryCount type="int">6</iceRetryCount>
- <iceInitialRetry type="int">100</iceInitialRetry>
- <iceTimeout type="int">30000</iceTimeout>
- </iceOptions>
- <otherSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_OtherSettings">
- <VOIP_Var0 type="str"></VOIP_Var0>
- <VOIP_Var1 type="str"></VOIP_Var1>
- <VOIP_Var2 type="str"></VOIP_Var2>
- <VOIP_Var3 type="str"></VOIP_Var3>
- <VOIP_Var4 type="str"></VOIP_Var4>
- <VOIP_IPAddress0 type="str"></VOIP_IPAddress0>
- <VOIP_IPAddress1 type="str"></VOIP_IPAddress1>
- <VOIP_IPAddress2 type="str"></VOIP_IPAddress2>
- <VOIP_IPAddress3 type="str"></VOIP_IPAddress3>
- <VOIP_IPAddress4 type="str"></VOIP_IPAddress4>
- <ipPreference type="int">0</ipPreference>
- <bUseHardcoded type="bool">False</bUseHardcoded>
- <_gbHardcodedForDemo type="bool">False</_gbHardcodedForDemo>
- <_gbStunSettings type="bool">False</_gbStunSettings>
- <bUseStun type="bool">False</bUseStun>
- <stunAddr type="str">127.0.0.1</stunAddr>
- <stunPort type="str">3478</stunPort>
- <bUseIce type="bool">False</bUseIce>
- <bIceLite type="bool">False</bIceLite>
- <_gbSRVCCSettings type="bool">False</_gbSRVCCSettings>
- <bUseSRVCC type="bool">False</bUseSRVCC>
- <mobilityPath type="str"></mobilityPath>
- <ddgGroupboxSRVCC type="bool">False</ddgGroupboxSRVCC>
- <PCO_Groupbox type="bool">False</PCO_Groupbox>
- <bUsePCO type="bool">False</bUsePCO>
- <_gbPCO type="bool">False</_gbPCO>
- <PCO_List type="str"></PCO_List>
- <useBHCA type="bool">False</useBHCA>
- <loadVariablesFromCsv type="bool">False</loadVariablesFromCsv>
- <pathForCsvWithVariables type="str"></pathForCsvWithVariables>
- <absolutePathForCsvWithVariables type="str"></absolutePathForCsvWithVariables>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbIceSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbPCO</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbStunSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress0</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUseIce</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">mobilityPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var0</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">PCO_List</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbSRVCCSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">absolutePathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">PCO_Groupbox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">bUseHardcoded</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">bUseSRVCC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useBHCA</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipPreference</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnBrowseForVariableCsv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUsePCO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stunPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUseStun</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stunAddr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ddgGroupboxSRVCC</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">_gbHardcodedForDemo</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">pathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">DodPathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_varCsvGroupBox</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loadVariablesFromCsv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bIceLite</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var4</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </otherSettings>
- <smsSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSSettings">
- <enableSMS type="bool">False</enableSMS>
- <requestURI type="str">sc.home1.net</requestURI>
- <enableTelURI type="bool">False</enableTelURI>
- <telURI type="str">phone-context=example</telURI>
- <smscPhoneNo type="str">61814712345</smscPhoneNo>
- <smscTypeOfNo type="int">0</smscTypeOfNo>
- <smscNumberingPlan type="int">0</smscNumberingPlan>
- <enableSMOrigOverrideDest type="bool">False</enableSMOrigOverrideDest>
- <btnSMOrigEdit type="bool">False</btnSMOrigEdit>
- <enableSMOrigReqStatusReport type="bool">False</enableSMOrigReqStatusReport>
- <enableSMOrigReplyPath type="bool">False</enableSMOrigReplyPath>
- <smsAddressOriginator ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddressInfo">
- <phoneType type="bool">False</phoneType>
- <phoneValue type="str">160[00000000-]</phoneValue>
- <comboPhoneBookEntry type="str">&lt;None&gt;</comboPhoneBookEntry>
- </smsAddressOriginator>
- <smOrigTypeOfNo type="int">0</smOrigTypeOfNo>
- <smOrigNumberingPlan type="int">0</smOrigNumberingPlan>
- <enableSMRecipOverrideSrc type="bool">False</enableSMRecipOverrideSrc>
- <btnSMRecipEdit type="bool">False</btnSMRecipEdit>
- <enableSMRecipReqStatusReport type="bool">False</enableSMRecipReqStatusReport>
- <enableSMRecipReplyPath type="bool">False</enableSMRecipReplyPath>
- <smsAddressRecipient ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddressInfo">
- <phoneType type="bool">False</phoneType>
- <phoneValue type="str">160[00000000-]</phoneValue>
- <comboPhoneBookEntry type="str">&lt;None&gt;</comboPhoneBookEntry>
- </smsAddressRecipient>
- <smRecipTypeOfNo type="int">0</smRecipTypeOfNo>
- <smRecipNumberingPlan type="int">0</smRecipNumberingPlan>
- <depActivities ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SMSSettings_depActivities" itemtype="ixConfig"/>
- <useFilesFromActivity type="bool">False</useFilesFromActivity>
- <verifyUserInfo type="bool">False</verifyUserInfo>
- <smsImportFilesActivity type="str">None</smsImportFilesActivity>
- <smsActivityForFiles type="int">0</smsActivityForFiles>
- <pcpuCommonPath type="str"></pcpuCommonPath>
- <smsFiles ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SMSSettings_smsFiles" itemtype="ixConfig"/>
- <smsFilesCount type="int">0</smsFilesCount>
- <grBoxSMServiceCenter type="bool">False</grBoxSMServiceCenter>
- <grBoxSMOriginator type="bool">False</grBoxSMOriginator>
- <grBoxSMRecipient type="bool">False</grBoxSMRecipient>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">smOrigNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFiles</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigReplyPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFilesCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSMRecipEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMOriginator</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMRecipient</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipOverrideSrc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigReqStatusReport</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsAddressOriginator</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">telURI</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">depActivities</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">pcpuCommonPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smOrigTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smRecipTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">requestURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFilesBackup</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsAddressRecipient</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useFilesFromActivity</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smRecipNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smscPhoneNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsImportFilesActivity</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipReplyPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSMOrigEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smscNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">duringLoadFromBackup</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipReqStatusReport</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMServiceCenter</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">verifyUserInfo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smscTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigOverrideDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsActivityForFiles</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsSettings>
- <smsFilesAdd ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSFilesAdd">
- <loadedFileType type="int">0</loadedFileType>
- <fileName type="str"></fileName>
- <ixSmsFileName type="str"></ixSmsFileName>
- <ixSmsFilePath type="str"></ixSmsFilePath>
- <segmentOrder type="str"></segmentOrder>
- <totalTpudSize type="str"></totalTpudSize>
- <segmentNo type="str">0</segmentNo>
- <comboCoding type="int">0</comboCoding>
- <comboRefNo type="int">0</comboRefNo>
- <contentViewEdit type="str"></contentViewEdit>
- <contentViewShow type="str"></contentViewShow>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">segmentNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">contentViewShow</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ixSmsFilePath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">contentViewEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">comboCoding</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">segmentOrder</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboRefNo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">loadedFileType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSmsLoadFiles</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ixSmsFileName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSmsSaveAs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fileName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">totalTpudSize</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsFilesAdd>
- <smsAddressOriginator ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddress">
- <radioBtnPhoneNo type="int">0</radioBtnPhoneNo>
- <comboPhoneBook type="str">&lt;None&gt;</comboPhoneBook>
- <phoneBookPreview type="str"></phoneBookPreview>
- <userPattern type="str">160[00000000-]</userPattern>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <fakeEnableTelURI type="bool">False</fakeEnableTelURI>
- <fakeTelURI type="str"></fakeTelURI>
- <fakeTelToPort type="str"></fakeTelToPort>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">userPattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneBookPreview</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeEnableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelToPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboPhoneBook</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnPhoneNo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsAddressOriginator>
- <smsAddressRecipient ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddress">
- <radioBtnPhoneNo type="int">0</radioBtnPhoneNo>
- <comboPhoneBook type="str">&lt;None&gt;</comboPhoneBook>
- <phoneBookPreview type="str"></phoneBookPreview>
- <userPattern type="str">160[00000000-]</userPattern>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <fakeEnableTelURI type="bool">False</fakeEnableTelURI>
- <fakeTelURI type="str"></fakeTelURI>
- <fakeTelToPort type="str"></fakeTelToPort>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">userPattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneBookPreview</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeEnableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelToPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboPhoneBook</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnPhoneNo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsAddressRecipient>
- <compatibility ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Compatibility">
- <hasRtpChMapRules type="bool">True</hasRtpChMapRules>
- </compatibility>
- <editAutoHeaderRule ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditAutoHeaderRule">
- <defaultMessagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_defaultMessagesList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INVITE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">BYE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CANCEL</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">OPTIONS</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REGISTER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">NOTIFY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">SUBSCRIBE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REFER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">MESSAGE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">PRACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INFO</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">UPDATE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">100 (Trying)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">180 (Ringing)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">181 (Call Is Being Forwarded)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">182 (Queued)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">183 (Session Progress)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">200 (OK)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">202 (Accepted)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">300 (Multiple Choices)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">301 (Moved Permanently)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">302 (Moved Temporarily)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">305 (Use Proxy)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">380 (Alternative Service)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">400 (Bad Request)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">401 (Unauthorized)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">402 (Payment Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">403 (Forbidden)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">404 (Not Found)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">405 (Method Not Allowed)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">406 (Not Acceptable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">407 (Proxy Authentication Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">408 (Request Timeout)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">410 (Gone)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">413 (Request Entity Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">414 (Request-URI Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">415 (Unsupported Media Type)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">416 (Unsupported URI Scheme)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">420 (Bad Extension)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">421 (Extension Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">423 (Interval Too Brief)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">480 (Temporarily not available)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">481 (Call Leg/Transaction Does Not Exist)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">482 (Loop Detected)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">483 (Too Many Hops)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">484 (Address Incomplete)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">485 (Ambiguous)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">486 (Busy Here)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">487 (Request Terminated)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">488 (Not Acceptable Here)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">491 (Request Pending)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">493 (Undecipherable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">500 (Internal Server Error)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">501 (Not Implemented)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">502 (Bad Gateway)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">503 (Service Unavailable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">504 (Server Time-out)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">505 (SIP Version not supported)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">513 (Message Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">600 (Busy Everywhere)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">603 (Decline)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">604 (Does not exist anywhere)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">606 (Not Acceptable)</str>
- </item>
- </defaultMessagesList>
- <messagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_messagesList" itemtype="ixConfig"/>
- <autoHeaderTypeList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_autoHeaderTypeList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Request-Uri</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Via</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">From</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Call-ID</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Contact</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Length</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Record-Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Referred-By</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Replaces</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Event</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RAck</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Refer-To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Subscription-State</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">WWW-Authenticate</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Also</str>
- </item>
- </autoHeaderTypeList>
- <autoHeaderType type="str">To</autoHeaderType>
- <option type="int">0</option>
- <appendToUri type="bool">False</appendToUri>
- <headerValue type="str"></headerValue>
- <parsedHeader ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_parsedHeader" itemtype="ixConfig"/>
- <valid type="bool">True</valid>
- </editAutoHeaderRule>
- <autoHeadersSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AutoHeadersSettings">
- <enableAutoHeaders type="bool">False</enableAutoHeaders>
- <tableRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_tableRules" itemtype="ixConfig"/>
- <reqAutoHeadRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_reqAutoHeadRules" itemtype="ixConfig"/>
- <respAutoHeadRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_respAutoHeadRules" itemtype="ixConfig"/>
- </autoHeadersSettings>
- <sipAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SipAdvancedSettings">
- <overrideTCPLocalPort type="bool">False</overrideTCPLocalPort>
- <tcpLocalPortStart type="int">40000</tcpLocalPortStart>
- <tcpLocalPortEnd type="int">60000</tcpLocalPortEnd>
- <tcpLocalPortStep type="int">1</tcpLocalPortStep>
- <closeNonsecureTcpConnectionsEnable type="bool">False</closeNonsecureTcpConnectionsEnable>
- <closeIdleTcpConnectionsEnable type="bool">False</closeIdleTcpConnectionsEnable>
- <tcpIdlePeriod type="int">10</tcpIdlePeriod>
- <donotCloseTCPInsideCallEnable type="bool">False</donotCloseTCPInsideCallEnable>
- <recordingServerEnable type="bool">False</recordingServerEnable>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tcpIdlePeriod</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpEndPortLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpIdlePeriodLabel</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">donotCloseTCPInsideCallEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpPortStepLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortStep</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortEnd</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpStartPortLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortStart</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">closeIdleTcpConnectionsEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">recordingServerEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideTCPLocalPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">closeNonsecureTcpConnectionsEnable</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </sipAdvSettings>
- </pm>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15470</_apiUniqueId>
- <uniqueID type="int">27</uniqueID>
- <commandIdCounter type="int">11</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">VoIP</protocolName>
- </networkPluginSettings>
- </item>
- <item ver="[34, [1, [0, [6, [1, [0, [0]]]], [0, [0]]], [0]]]" oid="19" type="#VoIP_Peer_plugin$Plugin">
- <enable type="bool">True</enable>
- <name type="str">CALLING</name>
- <activityFunction type="NoneType">None</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="str">Both</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination">
- <item ver="[0, [3, [1, [0, [0]]]]]" type="ixAgentDestination">
- <name type="str">VoIP2_CALLED</name>
- <portMapPolicy type="str">protocolSpecific</portMapPolicy>
- <sameAs type="str"></sameAs>
- <validPortMapPolicies type="list">
- <item type="str">protocolSpecific</item>
- </validPortMapPolicies>
- <inUse type="bool">True</inUse>
- <customPortMap type="NoneType">None</customPortMap>
- <sourceCommunity ref="5"/>
- <destinationCommunity ver="[1, [23, [0, [1, [0, [0]]]]]]" oid="23" type="ixNetTraffic">
- <name type="str">VoIP2@VM2</name>
- <column type="NoneType">None</column>
- <scenarioElementType type="str">netTraffic</scenarioElementType>
- <enable type="bool">True</enable>
- <role type="str">Peer</role>
- <networkType type="str">ethernet</networkType>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <activeRole type="str">Both</activeRole>
- <networkActivityList ver="[0, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkActivityList" itemtype="ixNetworkActivity"/>
- <activityGroupList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityGroupList" itemtype="ixActivityGroup"/>
- <traffic ver="[6, [1, [0, [0]]]]" type="ixActivityModel">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">VoIP2</name>
- <role type="str">Peer</role>
- <activityFunction type="str">ipTrafficAgent</activityFunction>
- <payload type="NoneType">None</payload>
- <agentList ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="_agentListSequenceContainer" itemtype="ixAgent">
- <item ver="[34, [1, [0, [6, [1, [0, [0]]]], [0, [0]]], [0]]]" oid="10" type="#VoIP_Peer_plugin$Plugin">
- <enable type="int">1</enable>
- <name type="str">CALLED</name>
- <activityFunction type="NoneType">None</activityFunction>
- <needToRefreshStatViews type="bool">False</needToRefreshStatViews>
- <activeRole type="str">Both</activeRole>
- <cmdListLoops type="int">0</cmdListLoops>
- <sources ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixSourceList" itemtype="ixSource"/>
- <destinations ver="[1, [3, [0, [0, [0], [0]], [0]]]]" type="ixDestinationList" itemtype="ixDestination"/>
- <flowPercentage type="float">100.0</flowPercentage>
- <uniqueID type="int">43</uniqueID>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyMap_VoIP">
- <szPluginVersion type="str">4.10</szPluginVersion>
- <ceCommands ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]], [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VoIP_ceCommands" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]], [0, [0, [0, [0, [1, [0, [0]]]]]]]]" type="#Pdk.ixPdkCommands$ixPropertyCommandStart">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">3</destCmdId>
- <objectID type="int">0</objectID>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]], [0, [0, [0, [0, [1, [0, [0]]]]]]]]" type="#Pdk.ixPdkCommands$ixPropertyCommandStop">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Procedure">
- <commandId type="int">3</commandId>
- <commandType type="str">Procedure</commandType>
- <cmdName type="str">SIP ReceiveCall (#3)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">17</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">4</destinationCommandIdx>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Error</name>
- <outputType type="int">1</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">2</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Procedure">
- <commandId type="int">11</commandId>
- <commandType type="str">Procedure</commandType>
- <cmdName type="str">SIP EndCall Receive (#4)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Error</name>
- <outputType type="int">1</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">2</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [1, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CommandEx">
- <commandId type="int">17</commandId>
- <commandType type="str">CommandEx</commandType>
- <cmdName type="str">Voice Session (#2)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">11</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">3</destinationCommandIdx>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Error</name>
- <outputType type="int">1</outputType>
- <destCmdId type="int">11</destCmdId>
- <objectID type="int">2</objectID>
- <destinationCommandIdx type="int">3</destinationCommandIdx>
- </item>
- </outputList>
- <cmdType type="str">RTPVoiceSession</cmdType>
- </item>
- </ceCommands>
- <activityLink ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityLinkInfo">
- <name type="str">VoiceLink1</name>
- <activitiesCount type="int">2</activitiesCount>
- </activityLink>
- <triggers ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TriggerConfig">
- <triggersInCount type="int">3</triggersInCount>
- <triggersOutCount type="int">5</triggersOutCount>
- </triggers>
- <globalSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSettings">
- <globalExecStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalExecSettings">
- <setAborted type="bool">False</setAborted>
- <setAllFailed type="bool">False</setAllFailed>
- <trigTimeout type="int">600000</trigTimeout>
- <notAbortOnTimeout type="bool">False</notAbortOnTimeout>
- <limitErrors type="bool">False</limitErrors>
- <maxErrors type="int">1</maxErrors>
- <limitArrayVarSize type="bool">False</limitArrayVarSize>
- <maxArrayVarSize type="int">10</maxArrayVarSize>
- </globalExecStg>
- <globalSIPStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSIPSettings">
- <disableTCP type="bool">False</disableTCP>
- <prefQOP type="int">0</prefQOP>
- <warnAsError type="bool">False</warnAsError>
- <limitQueueSize type="bool">True</limitQueueSize>
- <maxChannelsInQueue type="int">25</maxChannelsInQueue>
- <enableSIPLogging type="bool">False</enableSIPLogging>
- <limitSIPLoggingChannels type="bool">False</limitSIPLoggingChannels>
- <maxSIPLoggingChannels type="int">10</maxSIPLoggingChannels>
- <minSIPLoggingChannels type="int">0</minSIPLoggingChannels>
- <voipPeerLogSettings type="int">0</voipPeerLogSettings>
- <voipPeerLogExpForChannels type="str"></voipPeerLogExpForChannels>
- <abortLoopOnTriggerTimeout type="bool">False</abortLoopOnTriggerTimeout>
- </globalSIPStg>
- <globalRTPStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalRTPSettings">
- <transmMode type="int">0</transmMode>
- <playMode type="int">0</playMode>
- <repeatCount type="int">1</repeatCount>
- <repeatTime type="int">1000</repeatTime>
- <timeUnit type="int">0</timeUnit>
- <volume type="int">-20</volume>
- <playModePathConf type="int">0</playModePathConf>
- <repeatCountPathConf type="int">0</repeatCountPathConf>
- <repeatTimePathConf type="int">10</repeatTimePathConf>
- <timeUnitPathConf type="int">0</timeUnitPathConf>
- <toneDurationPathConf type="int">200</toneDurationPathConf>
- <interToneDelayPathConf type="int">200</interToneDelayPathConf>
- <toneAmplitudePathConf type="int">-10</toneAmplitudePathConf>
- <firstToneTimeoutPathConf type="int">4000</firstToneTimeoutPathConf>
- <interToneTimeoutPathConf type="int">2000</interToneTimeoutPathConf>
- <qovTalkExtraSilence type="int">500</qovTalkExtraSilence>
- <qovListenExtraDuration type="int">2000</qovListenExtraDuration>
- <downloadRTPCSV type="bool">True</downloadRTPCSV>
- <waitQoVScore type="bool">False</waitQoVScore>
- </globalRTPStg>
- <globalSTUNStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSTUNSettings">
- <keepAliveInterval type="int">15</keepAliveInterval>
- </globalSTUNStg>
- <globalSKINNYStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSKINNYSettings">
- <softKeyCount type="int">25</softKeyCount>
- <receiveVideo type="bool">False</receiveVideo>
- <transmitVideo type="bool">False</transmitVideo>
- </globalSKINNYStg>
- <globalT38Stg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalT38Settings">
- <t30Log type="bool">False</t30Log>
- <t38Log type="bool">False</t38Log>
- <receivedImageLog type="bool">False</receivedImageLog>
- <logType type="int">0</logType>
- <logBegin type="int">1</logBegin>
- <logEnd type="int">10</logEnd>
- <channelRange type="str">[00-10]</channelRange>
- </globalT38Stg>
- </globalSettings>
- <info ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Info">
- <userChannelsNo type="int">653520</userChannelsNo>
- <portInstances type="int">3</portInstances>
- <portInstanceIdx type="int">2</portInstanceIdx>
- <objectiveType type="str">activeUsers</objectiveType>
- <objectiveValue type="int">1000</objectiveValue>
- <maxAllowedObjective type="long">9223372036854775807</maxAllowedObjective>
- <firstSignalingFnID type="int">8</firstSignalingFnID>
- <enableRTPDest type="bool">False</enableRTPDest>
- <rtpPortDest type="str"></rtpPortDest>
- <rtpObjectiveValue type="int">32000</rtpObjectiveValue>
- <hasRtpFunction type="bool">False</hasRtpFunction>
- <hasVideoFunction type="bool">False</hasVideoFunction>
- <hasT38Function type="bool">False</hasT38Function>
- <hasMSRPFunction type="bool">False</hasMSRPFunction>
- <src ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str">CALLED</name>
- <portCount type="int">1</portCount>
- <portCountRtp type="int">1</portCountRtp>
- <portCountT38 type="int">1</portCountT38>
- <portCountMSRP type="int">1</portCountMSRP>
- <ipRangeCount type="int">1</ipRangeCount>
- <ipCount type="int">1</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">1</ipRuleCh>
- <port type="str">{{sipportcalled}}</port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">1</portRuleCh>
- <phone type="str">{{pncalled}}</phone>
- <aliases type="int">1</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">1</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">1</ipRangeCountRtp>
- <ipCountRtp type="int">1</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">1</ipRuleChRtp>
- <portRtp type="str">[10000-65535,4]</portRtp>
- <portT38 type="str">40000</portT38>
- <portMSRP type="str">2855</portMSRP>
- <portRuleRtp type="int">1</portRuleRtp>
- <portRuleChRtp type="int">1</portRuleChRtp>
- <ipRangeCountT38 type="int">1</ipRangeCountT38>
- <ipCountT38 type="int">1</ipCountT38>
- <ipRangeCountMSRP type="int">1</ipRangeCountMSRP>
- <ipCountMSRP type="int">1</ipCountMSRP>
- <symType type="int">1</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str">5061</tlsPort>
- <tlsDisableUdpAndTcp type="bool">True</tlsDisableUdpAndTcp>
- <nodeCount type="int">1</nodeCount>
- <coreCount type="int">2</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str">aptixia-T.03440c56.4e1a.4def.8406.ec64db91d4c1-L2EthernetPlugin-820b0582.6a4c.4109.bd5d.587621a43ce2-161.105.231.12;2;1default</layerName>
- </src>
- <dest ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str"></name>
- <portCount type="int">1</portCount>
- <portCountRtp type="int">1</portCountRtp>
- <portCountT38 type="int">1</portCountT38>
- <portCountMSRP type="int">1</portCountMSRP>
- <ipRangeCount type="int">0</ipRangeCount>
- <ipCount type="int">0</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">0</ipRuleCh>
- <port type="str"></port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">0</portRuleCh>
- <phone type="str"></phone>
- <aliases type="int">1</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">0</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">0</ipRangeCountRtp>
- <ipCountRtp type="int">0</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">0</ipRuleChRtp>
- <portRtp type="str"></portRtp>
- <portT38 type="str"></portT38>
- <portMSRP type="str">2855</portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">0</portRuleChRtp>
- <ipRangeCountT38 type="int">0</ipRangeCountT38>
- <ipCountT38 type="int">0</ipCountT38>
- <ipRangeCountMSRP type="int">1</ipRangeCountMSRP>
- <ipCountMSRP type="int">12</ipCountMSRP>
- <symType type="int">0</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str"></tlsPort>
- <tlsDisableUdpAndTcp type="bool">False</tlsDisableUdpAndTcp>
- <nodeCount type="int">1</nodeCount>
- <coreCount type="int">2</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str"></layerName>
- </dest>
- <useServerDest type="bool">False</useServerDest>
- <srvDomainDest type="str"></srvDomainDest>
- <srvAddrDest type="str"></srvAddrDest>
- <srvPortDest type="str">5060</srvPortDest>
- <cloudServerDest ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudServer">
- <name type="str"></name>
- <ipAddr type="str"></ipAddr>
- <rangeType type="str"></rangeType>
- <ipType type="str"></ipType>
- <port type="int">0</port>
- <attachedInfo type="str"></attachedInfo>
- <firstIp type="str"></firstIp>
- <netMask type="str"></netMask>
- <ipCount type="str"></ipCount>
- <ipStep type="str"></ipStep>
- </cloudServerDest>
- <transfer ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str"></name>
- <portCount type="int">0</portCount>
- <portCountRtp type="int">0</portCountRtp>
- <portCountT38 type="int">0</portCountT38>
- <portCountMSRP type="int">0</portCountMSRP>
- <ipRangeCount type="int">0</ipRangeCount>
- <ipCount type="int">0</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">0</ipRuleCh>
- <port type="str"></port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">0</portRuleCh>
- <phone type="str"></phone>
- <aliases type="int">0</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">0</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">0</ipRangeCountRtp>
- <ipCountRtp type="int">0</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">0</ipRuleChRtp>
- <portRtp type="str"></portRtp>
- <portT38 type="str"></portT38>
- <portMSRP type="str"></portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">0</portRuleChRtp>
- <ipRangeCountT38 type="int">0</ipRangeCountT38>
- <ipCountT38 type="int">0</ipCountT38>
- <ipRangeCountMSRP type="int">0</ipRangeCountMSRP>
- <ipCountMSRP type="int">0</ipCountMSRP>
- <symType type="int">0</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str"></tlsPort>
- <tlsDisableUdpAndTcp type="bool">False</tlsDisableUdpAndTcp>
- <nodeCount type="int">0</nodeCount>
- <coreCount type="int">1</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str"></layerName>
- </transfer>
- <useServerTransfer type="bool">False</useServerTransfer>
- <registrarSrvTransfer type="bool">False</registrarSrvTransfer>
- <srvAddrTransfer type="str"></srvAddrTransfer>
- <srvPortTransfer type="str">5060</srvPortTransfer>
- <cloudServerTransfer ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudServer">
- <name type="str"></name>
- <ipAddr type="str"></ipAddr>
- <rangeType type="str"></rangeType>
- <ipType type="str"></ipType>
- <port type="int">0</port>
- <attachedInfo type="str"></attachedInfo>
- <firstIp type="str"></firstIp>
- <netMask type="str"></netMask>
- <ipCount type="str"></ipCount>
- <ipStep type="str"></ipStep>
- </cloudServerTransfer>
- </info>
- <scenarioSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ScenarioSettings">
- <scenarioFile type="str">.\SIPCall.tst</scenarioFile>
- <activeScenarioChannel type="int">1</activeScenarioChannel>
- <funcsCount type="int">18</funcsCount>
- <isModified type="int">66</isModified>
- <activityID type="int">8</activityID>
- <exportToRM type="int">0</exportToRM>
- </scenarioSettings>
- <executionSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExecutionSettings">
- <loopMode type="int">0</loopMode>
- <loopCount type="int">1</loopCount>
- <loopPreDelay type="int">0</loopPreDelay>
- <loopMidDelay type="int">0</loopMidDelay>
- <gracefulRampDown type="bool">True</gracefulRampDown>
- <rampdownSleep type="bool">False</rampdownSleep>
- <aliases type="int">1</aliases>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">1</ipRuleCh>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">1</portRuleCh>
- <phoneRule type="int">1</phoneRule>
- <multipleUsersPerIO type="bool">True</multipleUsersPerIO>
- <rtpIpRule type="int">0</rtpIpRule>
- <rtpIpRuleCh type="int">1</rtpIpRuleCh>
- <rtpPortRule type="int">1</rtpPortRule>
- <rtpPortRuleCh type="int">1</rtpPortRuleCh>
- <dl_BUG type="bool">True</dl_BUG>
- <dl_TRACE type="bool">False</dl_TRACE>
- <dl_L_INFO type="bool">True</dl_L_INFO>
- <dl_L_ADV type="bool">False</dl_L_ADV>
- <dl_L_VRB type="bool">False</dl_L_VRB>
- <dl_T_IO type="bool">False</dl_T_IO>
- <dl_T_INFO type="bool">False</dl_T_INFO>
- <dl_T_ADV type="bool">False</dl_T_ADV>
- <dl_T_VRB type="bool">False</dl_T_VRB>
- <dl_TG_ADV type="bool">False</dl_TG_ADV>
- <dl_TG_VRB type="bool">False</dl_TG_VRB>
- <dl_Q_ADV type="bool">False</dl_Q_ADV>
- <dl_Q_VRB type="bool">False</dl_Q_VRB>
- <dl_S_FSM type="bool">False</dl_S_FSM>
- <dl_S_SER type="bool">False</dl_S_SER>
- <dl_S_SUA type="bool">False</dl_S_SUA>
- <dl_S_WAIT type="bool">False</dl_S_WAIT>
- <dl_S_SEND type="bool">False</dl_S_SEND>
- <dl_S_INFO type="bool">False</dl_S_INFO>
- <dl_S_ADV type="bool">False</dl_S_ADV>
- <dl_S_VRB type="bool">False</dl_S_VRB>
- <dl_R_DD type="bool">False</dl_R_DD>
- <dl_R_VRB type="bool">False</dl_R_VRB>
- <dl_R_PAR type="bool">False</dl_R_PAR>
- <dl_EE_VRB type="bool">False</dl_EE_VRB>
- <dl_EE_DD type="bool">False</dl_EE_DD>
- <dl_FLOW type="bool">False</dl_FLOW>
- <dl_M_IO type="bool">False</dl_M_IO>
- <dl_SDP_DD type="bool">False</dl_SDP_DD>
- <dl_1 type="bool">False</dl_1>
- <dl_2 type="bool">False</dl_2>
- <dl_3 type="bool">False</dl_3>
- <log_level type="int">9</log_level>
- <log_in_memory type="int">1</log_in_memory>
- <rtp_log_in_file type="int">1</rtp_log_in_file>
- <log_filesize type="int">32</log_filesize>
- <_gbDebugLogs type="bool">False</_gbDebugLogs>
- <ccExportProfile type="bool">False</ccExportProfile>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_ipRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopMidDelay</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_IO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SEND</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_rtpIpRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">_estimatedBacklog</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopPreDelay</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TG_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">log_filesize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtp_log_in_file</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">aliases</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_Q_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">multipleUsersPerIO</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">log_level</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpIpRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rampdownSleep</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_portRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SER</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_Q_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPortRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_M_IO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_EE_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpIpRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_FSM</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">gracefulRampDown</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_FLOW</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_BUG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SUA</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_rtpPortRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_PAR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopCount</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_WAIT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_SDP_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TRACE</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbDebugLogs</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPortRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TG_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_EE_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ccExportProfile</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">log_in_memory</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_VRB</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </executionSettings>
- <customActivityLinkSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ixCustomActivityParameters">
- <enableDbgLog type="bool">False</enableDbgLog>
- <dbgLogChannels type="str">1-5</dbgLogChannels>
- <bhcaType type="int">0</bhcaType>
- <talkTime type="int">10000</talkTime>
- <channelsNo type="int">1</channelsNo>
- <callSetupTime type="int">500</callSetupTime>
- <callTeardownTime type="int">500</callTeardownTime>
- <interCallDuration type="int">4000</interCallDuration>
- <bhcaObjectiveValue type="int">1</bhcaObjectiveValue>
- <cpsOverwriteValueChecked type="int">0</cpsOverwriteValueChecked>
- <cpsTotalChannelsChecked type="int">0</cpsTotalChannelsChecked>
- <cpsOverwriteValue type="int">18</cpsOverwriteValue>
- <cpsType type="int">0</cpsType>
- <cpsTalkTime type="int">30000</cpsTalkTime>
- <cpsChannelsNo type="int">16750</cpsChannelsNo>
- <cpsTotalChannelsNo type="int">33500</cpsTotalChannelsNo>
- <cpsOverheadTime type="int">1500</cpsOverheadTime>
- <cpsInterCallDuration type="int">2000</cpsInterCallDuration>
- <cpsObjectiveValue type="int">500</cpsObjectiveValue>
- <cpsRegisterTime type="int">40</cpsRegisterTime>
- <cpsSplitTimeline type="int">0</cpsSplitTimeline>
- <lpsType type="int">0</lpsType>
- <lpsTalkTime type="int">800</lpsTalkTime>
- <lpsChannelsNo type="int">2150</lpsChannelsNo>
- <lpsOverheadTime type="int">1500</lpsOverheadTime>
- <lpsInterLoopDuration type="int">2000</lpsInterLoopDuration>
- <lpsObjectiveValue type="int">500</lpsObjectiveValue>
- <lpsActiveChannel type="int">0</lpsActiveChannel>
- <activeUsersTalkTime type="int">30000</activeUsersTalkTime>
- <activeUsersNo type="int">{{activecalls}}</activeUsersNo>
- <activeUsersChannel type="int">0</activeUsersChannel>
- <activeUsersObjectiveValue type="int">{{activecalls}}</activeUsersObjectiveValue>
- </customActivityLinkSettings>
- <rtpWaveFiles ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPWaveFiles">
- <wavesCount type="int">1</wavesCount>
- </rtpWaveFiles>
- <rtpTones ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPTones">
- <usedTonesCount type="int">0</usedTonesCount>
- <customTonesCount type="int">35</customTonesCount>
- <seqCustTonesCount type="int">0</seqCustTonesCount>
- </rtpTones>
- <codecCustomPopup ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecCustomPopup">
- <captureFile type="str">Default.cap</captureFile>
- <parseRTPPort type="bool">False</parseRTPPort>
- <parseSSRC type="bool">False</parseSSRC>
- <rtpPort type="int">10000</rtpPort>
- <ssrc type="str">0x8078C5D3</ssrc>
- </codecCustomPopup>
- <codecCustomPropDlg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecCustomPropDlg"/>
- <codecSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecSettings">
- <codecs ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CodecSettings_codecs" itemtype="ixConfig">
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecG711u">
- <dPayloadIn type="int">0</dPayloadIn>
- <dPayloadOut type="int">0</dPayloadOut>
- <frameSize type="int">160</frameSize>
- </item>
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecG711a">
- <dPayloadIn type="int">8</dPayloadIn>
- <dPayloadOut type="int">8</dPayloadOut>
- <frameSize type="int">160</frameSize>
- </item>
- </codecs>
- <codecs_number type="int">2</codecs_number>
- <_gbVideoCodecs type="bool">False</_gbVideoCodecs>
- <videoPayloadType type="int">96</videoPayloadType>
- <_gbDataCodecs type="bool">False</_gbDataCodecs>
- <dataCodecs ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CodecSettings_dataCodecs" itemtype="ixConfig">
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Rtp2833Events">
- <dPayloadType type="int">100</dPayloadType>
- </item>
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Rtp2833Tones">
- <dPayloadType type="int">101</dPayloadType>
- </item>
- </dataCodecs>
- <crtCustomCodecIndex type="int">-1</crtCustomCodecIndex>
- </codecSettings>
- <rtpSettings ver="[7, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPSettings">
- <rtpPort type="str">[10000-65535,4]</rtpPort>
- <enableAdvStatCalc type="bool">False</enableAdvStatCalc>
- <enableRTCP type="bool">False</enableRTCP>
- <enableRTCPMux type="bool">False</enableRTCPMux>
- <chEnableHwAcc type="bool">False</chEnableHwAcc>
- <chDisableHwAcc type="bool">False</chDisableHwAcc>
- <enableHwAcc type="bool">False</enableHwAcc>
- <enableIxStack type="bool">False</enableIxStack>
- <enableNBExec type="bool">False</enableNBExec>
- <enablePerStream type="bool">False</enablePerStream>
- <enableMDI type="bool">False</enableMDI>
- <enableRTP type="bool">False</enableRTP>
- <enableMediaSDPParams type="bool">False</enableMediaSDPParams>
- <audioB_option type="bool">False</audioB_option>
- <audioB_value type="str">AS:48</audioB_value>
- <audioRR_option type="bool">False</audioRR_option>
- <audioRR_value type="str">800</audioRR_value>
- <audioRS_option type="bool">False</audioRS_option>
- <audioRS_value type="str">800</audioRS_value>
- <videoB_option type="bool">False</videoB_option>
- <videoB_value type="str">AS:384</videoB_value>
- <videoRR_option type="bool">False</videoRR_option>
- <videoRR_value type="str">6400</videoRR_value>
- <videoRS_option type="bool">False</videoRS_option>
- <videoRS_value type="str">6400</videoRS_value>
- <textB_option type="bool">False</textB_option>
- <textB_value type="str">AS:48</textB_value>
- <textRR_option type="bool">False</textRR_option>
- <textRR_value type="str">800</textRR_value>
- <textRS_option type="bool">False</textRS_option>
- <textRS_value type="str">800</textRS_value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">videoRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbVideoSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">jitMs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbAudioSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ixnamSupported</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dedicatedCoreRange</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelTypeQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMediaSDPParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTextSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">activityIdQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitComp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dedicatedCoreRangeLength</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">portIPsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">chEnableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoVPerZionPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCPMux</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">silenceMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbMediaSDPParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">valueQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">maxMosStreams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMDI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableIxStack</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">unitsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serviceEnabledQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">chDisableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosGroupBox</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePerStream</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">limitMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">customTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mosInterval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAdvStatCalc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSilence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">metricsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMaxDrop</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosRtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">activityNameQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableNBExec</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </rtpSettings>
- <rtcpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTCPSettings">
- <rtcpIgnoreSSRC type="bool">False</rtcpIgnoreSSRC>
- <rtcpCNAMEType type="int">0</rtcpCNAMEType>
- <hasSDESName type="bool">False</hasSDESName>
- <hasSDESTool type="bool">False</hasSDESTool>
- <rtcpSDESTool type="str">IxLoad</rtcpSDESTool>
- <rtcpReceiverTimer type="int">2000</rtcpReceiverTimer>
- <rtcpSenderTimer type="int">2000</rtcpSenderTimer>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">rtcpSDESTool</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpSenderTimer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpCNAMEType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">hasSDESTool</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpReceiverTimer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpIgnoreSSRC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">hasSDESName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCPMux2</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </rtcpSettings>
- <audioSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AudioSettings">
- <enableAudio type="bool">False</enableAudio>
- <_gbEnableAudio type="bool">False</_gbEnableAudio>
- <enableAudioOWD type="bool">False</enableAudioOWD>
- <useJitter type="bool">False</useJitter>
- <_JB1 type="bool">False</_JB1>
- <jitMs type="int">20</jitMs>
- <useJitComp type="bool">False</useJitComp>
- <jitCMs type="int">1000</jitCMs>
- <jitCMaxDrop type="int">7</jitCMaxDrop>
- <dodName type="str">rtp_esmad-asordo-l_2170</dodName>
- <useMos type="bool">False</useMos>
- <useSilence type="bool">False</useSilence>
- <silenceMode type="int">1</silenceMode>
- <enableTosRtp type="bool">False</enableTosRtp>
- <rtpTos type="int">1</rtpTos>
- <customTosGroupBox type="bool">False</customTosGroupBox>
- <customTos type="str">0x20</customTos>
- <rtpTosVal type="int">32</rtpTosVal>
- <_COV1 type="bool">False</_COV1>
- <useQoV type="bool">False</useQoV>
- <qovAnalize type="int">5</qovAnalize>
- <qovSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_QoVSettings">
- <activityIdQoV type="int">0</activityIdQoV>
- <enableQoV type="bool">False</enableQoV>
- <_gbEnableQoV type="bool">False</_gbEnableQoV>
- <serviceEnabledQoV type="bool">False</serviceEnabledQoV>
- <activityNameQoV type="str"></activityNameQoV>
- <portIPsQoV type="str"></portIPsQoV>
- <unitsQoV type="int">0</unitsQoV>
- <valueQoV type="int">100</valueQoV>
- <channelTypeQoV type="int">0</channelTypeQoV>
- <metricsQoV type="int">0</metricsQoV>
- <channelsQoVPerZionPort type="int">0</channelsQoVPerZionPort>
- <radioBtnQoVASR type="int">0</radioBtnQoVASR>
- <languageASR type="str">English(US)</languageASR>
- </qovSettings>
- <activityIdQoV type="int">0</activityIdQoV>
- <enableQoV type="bool">False</enableQoV>
- <_gbEnableQoV type="bool">False</_gbEnableQoV>
- <serviceEnabledQoV type="bool">False</serviceEnabledQoV>
- <activityNameQoV type="str"></activityNameQoV>
- <portIPsQoV type="str"></portIPsQoV>
- <unitsQoV type="int">0</unitsQoV>
- <valueQoV type="int">100</valueQoV>
- <channelTypeQoV type="int">0</channelTypeQoV>
- <metricsQoV type="int">0</metricsQoV>
- <channelsQoVPerZionPort type="int">0</channelsQoVPerZionPort>
- <radioBtnQoVASR type="int">0</radioBtnQoVASR>
- <languageASR type="str">English(US)</languageASR>
- <audioClip type="str">US_042.wav</audioClip>
- <_audioFormat type="str">Format: PCM, Duration: 32785 ms, Size: 524556 bytes</_audioFormat>
- <outputLevel type="int">-20</outputLevel>
- <_gbOutputLevel type="bool">False</_gbOutputLevel>
- <playTypeAudio type="int">0</playTypeAudio>
- <audioDuration type="int">10</audioDuration>
- <audioDurationUnit type="int">1</audioDurationUnit>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbEnableQoV</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">channelTypeQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">pesqPolqa</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePTT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableP56</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">qovAnalize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoVPerZionPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_COV1</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">useTelchemy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">activityIdQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitComp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_JB1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosRtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portIPsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbQoVMetrics</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dodName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitMs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbASRLanguage</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnQoVASR</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">silenceMode</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">playTypeAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useQoV</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">activityNameQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">valueQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbOutputLevel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">unitsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serviceEnabledQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">languageASR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosGroupBox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">audioDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">qovSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSilence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">metricsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMaxDrop</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAudioOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_audioFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableAudio</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">outputLevel</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </audioSettings>
- <editTos ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditTos">
- <bits012 type="int">0</bits012>
- <minDelay type="bool">False</minDelay>
- <maxThroughput type="bool">False</maxThroughput>
- <maxReliability type="bool">False</maxReliability>
- <_gbBtnTosBit7_0 type="bool">False</_gbBtnTosBit7_0>
- <_gbBtnTosBit7_1 type="bool">False</_gbBtnTosBit7_1>
- <_gbBtnTosBit6_0 type="bool">False</_gbBtnTosBit6_0>
- <_gbBtnTosBit6_1 type="bool">False</_gbBtnTosBit6_1>
- <_gbBtnTosBit5_0 type="bool">False</_gbBtnTosBit5_0>
- <_gbBtnTosBit5_1 type="bool">False</_gbBtnTosBit5_1>
- <_gbBtnTosBit4_0 type="bool">False</_gbBtnTosBit4_0>
- <_gbBtnTosBit4_1 type="bool">False</_gbBtnTosBit4_1>
- <_gbBtnTosBit3_0 type="bool">False</_gbBtnTosBit3_0>
- <_gbBtnTosBit3_1 type="bool">False</_gbBtnTosBit3_1>
- <_gbBtnTosBit2_0 type="bool">False</_gbBtnTosBit2_0>
- <_gbBtnTosBit2_1 type="bool">False</_gbBtnTosBit2_1>
- <_gbDisabledBtns type="bool">False</_gbDisabledBtns>
- </editTos>
- <srtpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SRTPSettings">
- <bEnableSRTP type="bool">False</bEnableSRTP>
- <bEnableVideoSRTP type="bool">False</bEnableVideoSRTP>
- <bEnableTextSRTP type="bool">False</bEnableTextSRTP>
- <bDisableSRTCPEncryption type="bool">False</bDisableSRTCPEncryption>
- <bDisableSRTPEncryption type="bool">False</bDisableSRTPEncryption>
- <bDisableSRTPAuthentication type="bool">False</bDisableSRTPAuthentication>
- <bDisableValidations type="bool">False</bDisableValidations>
- <bAllowOnlySecureStreams type="bool">False</bAllowOnlySecureStreams>
- <bIncludeMKI type="bool">False</bIncludeMKI>
- <bEnablePreencryption type="bool">False</bEnablePreencryption>
- <bDisableMasterSalt type="bool">False</bDisableMasterSalt>
- <bStaticMasterKeySalt type="bool">False</bStaticMasterKeySalt>
- <_masterKeySelection type="int">0</_masterKeySelection>
- <staticSingleKeySalt type="str"></staticSingleKeySalt>
- <staticKeyFile type="str"></staticKeyFile>
- <_enableSRTP type="bool">False</_enableSRTP>
- <_useStaticKey type="bool">False</_useStaticKey>
- <_singleMasterKeyGrp type="bool">False</_singleMasterKeyGrp>
- <_multipleMasterKeysGrp type="bool">False</_multipleMasterKeysGrp>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">bEnableSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_singleMasterKeyGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTPEncryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTPAuthentication</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableValidations</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useStaticKey</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">bEnablePreencryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">staticSingleKeySalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bStaticMasterKeySalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">staticKeyFile</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableMasterSalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_multipleMasterKeysGrp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">bAllowOnlySecureStreams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTCPEncryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableVideoSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bIncludeMKI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableTextSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_masterKeySelection</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </srtpSettings>
- <videoClips ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoClips">
- <videoClipsInfo ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VideoClips_videoClipsInfo" itemtype="ixConfig"/>
- <videoClipsInfoLength type="int">0</videoClipsInfoLength>
- <H323MaxProfile type="int">0</H323MaxProfile>
- <H323MaxLevel type="int">0</H323MaxLevel>
- <H323MaxBitRate type="int">0</H323MaxBitRate>
- <H323Packetization type="int">0</H323Packetization>
- <MaxProfileIdc type="int">66</MaxProfileIdc>
- <MaxProfileIop type="int">0</MaxProfileIop>
- <MaxLevel type="int">1</MaxLevel>
- </videoClips>
- <advancedVideo ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AdvancedVideoSettings">
- <enableCustomMaxMBPS type="bool">False</enableCustomMaxMBPS>
- <customMaxMBPS type="int">0</customMaxMBPS>
- <enableCustomMaxFS type="bool">False</enableCustomMaxFS>
- <customMaxFS type="int">0</customMaxFS>
- <enableCustomMaxDPB type="bool">False</enableCustomMaxDPB>
- <customMaxDPB type="int">0</customMaxDPB>
- <enableCustomMaxBRandCPB type="bool">False</enableCustomMaxBRandCPB>
- <customMaxBRandCPB type="int">0</customMaxBRandCPB>
- <enableMaxStaticMBPS type="bool">False</enableMaxStaticMBPS>
- <maxStaticMBPS type="int">0</maxStaticMBPS>
- <enableMaxRcmdNalUnitSize type="bool">False</enableMaxRcmdNalUnitSize>
- <maxRcmdNalUnitSize type="int">0</maxRcmdNalUnitSize>
- <enableMaxNalUnitSize type="bool">False</enableMaxNalUnitSize>
- <maxNalUnitSize type="int">0</maxNalUnitSize>
- </advancedVideo>
- <videoSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoSettings">
- <enableVideo type="bool">False</enableVideo>
- <enableVideoOWD type="bool">False</enableVideoOWD>
- <videoMaxSessions type="int">1</videoMaxSessions>
- <_gbEnableVideo type="bool">False</_gbEnableVideo>
- <videoClip type="str">Fire_avc.mp4</videoClip>
- <_videoFormat type="str">Codec: H264, Duration: 12800 ms, Size: 2012176 bytes, Bitrate: 1225 kbps</_videoFormat>
- <playTypeVideo type="int">0</playTypeVideo>
- <videoDuration type="int">5</videoDuration>
- <videoDurationUnit type="int">1</videoDurationUnit>
- <useConference type="bool">False</useConference>
- <_gbUseConference type="bool">False</_gbUseConference>
- <rotationScheme type="int">0</rotationScheme>
- <confVideoDuration type="int">1</confVideoDuration>
- <confVideoDurationUnit type="int">1</confVideoDurationUnit>
- <confDuration type="int">1</confDuration>
- <confDurationUnit type="int">1</confDurationUnit>
- <btnTelepresence type="bool">False</btnTelepresence>
- <_gbUseTelepresence type="bool">False</_gbUseTelepresence>
- <tipSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoTelepresenceSettings">
- <tipEndpointType type="int">1</tipEndpointType>
- <tipResolution type="int">1</tipResolution>
- <tipVersion type="int">1</tipVersion>
- <tipSyntheticPayload type="bool">False</tipSyntheticPayload>
- <tipMoreClips type="bool">False</tipMoreClips>
- <_gbTipMoreClips type="int">0</_gbTipMoreClips>
- <tipVideoClip2 type="str">Fire_avc.mp4</tipVideoClip2>
- <tipRotationScheme type="int">0</tipRotationScheme>
- <tipConfDuration type="int">1</tipConfDuration>
- <tipConfDurationUnit type="int">1</tipConfDurationUnit>
- <tipAudioDuration type="int">1</tipAudioDuration>
- <tipAudioDurationUnit type="int">1</tipAudioDurationUnit>
- <_gbTipPresentation type="bool">False</_gbTipPresentation>
- <tipUsePresentationStream type="bool">False</tipUsePresentationStream>
- <tipVideoClip type="str">Fire_avc.mp4</tipVideoClip>
- <tipAudioClip type="str">US_042.wav</tipAudioClip>
- <tipStartAfter type="int">1</tipStartAfter>
- <tipStartAfterUnit type="int">1</tipStartAfterUnit>
- <tipDuration type="int">1</tipDuration>
- <tipDurationUnit type="int">1</tipDurationUnit>
- <tipPresentationRotation type="int">0</tipPresentationRotation>
- <tipLegacyMode type="bool">False</tipLegacyMode>
- <_gbTipLegacy type="int">0</_gbTipLegacy>
- <tipLegacyClip type="str">Fire_avc.mp4</tipLegacyClip>
- <tipLegacyModeAudio type="bool">False</tipLegacyModeAudio>
- <_gbTipLegacyAudio type="int">0</_gbTipLegacyAudio>
- <tipLegacyClipAudio type="str">US_042.wav</tipLegacyClipAudio>
- <tipG722Legacy type="bool">False</tipG722Legacy>
- <tipAudioActivityMetric type="bool">False</tipAudioActivityMetric>
- <tipDinamicChannels type="bool">False</tipDinamicChannels>
- <tipVideoRefresh type="bool">False</tipVideoRefresh>
- <tipInbandSets type="bool">False</tipInbandSets>
- <tipArithmetingCoding type="bool">False</tipArithmetingCoding>
- <tipLTRP type="bool">False</tipLTRP>
- <tipGDR type="bool">False</tipGDR>
- <tipHighProfile type="bool">False</tipHighProfile>
- <tipUnrestrictedMedia type="bool">False</tipUnrestrictedMedia>
- <tipRtcpFeedback type="bool">True</tipRtcpFeedback>
- </tipSettings>
- <_gbTosVideo type="bool">False</_gbTosVideo>
- <enableTosVideo type="bool">False</enableTosVideo>
- <tosVideo type="int">1</tosVideo>
- <customTosVideo type="str">0x20</customTosVideo>
- <_gbCustomTosVideo type="bool">False</_gbCustomTosVideo>
- <tosValVideo type="int">32</tosValVideo>
- <useMosVideo type="bool">False</useMosVideo>
- <enableAcceptSSRCChanges type="bool">False</enableAcceptSSRCChanges>
- <ignoreHintTrack type="bool">False</ignoreHintTrack>
- <hintTrackType type="int">1</hintTrackType>
- <enablePACSI type="bool">True</enablePACSI>
- <useSingleNALUnit type="bool">False</useSingleNALUnit>
- <_gbH323AdvancedSettings type="bool">False</_gbH323AdvancedSettings>
- <useH323AdvancedSettings type="bool">False</useH323AdvancedSettings>
- <_gbUseH323AdvancedSettings type="bool">False</_gbUseH323AdvancedSettings>
- <rtpmap type="str"></rtpmap>
- <fmtp type="str"></fmtp>
- <isMP4 type="bool">False</isMP4>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">hintTrackType</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">videoMaxSessions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSingleNALUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useConference</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">playTypeVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseH323AdvancedSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">isMP4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosValVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePACSI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_videoFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseTelepresence</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableVideoOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fmtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseConference</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbH323AdvancedSettings</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTosVideo</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreHintTrack</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAcceptSSRCChanges</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useH323AdvancedSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpmap</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">btnTelepresence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useMosVideo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoSettings>
- <videoConfSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoConfSettings">
- <rotationScheme type="int">0</rotationScheme>
- <_gbRotationScheme type="int">0</_gbRotationScheme>
- <confVideoDuration type="int">0</confVideoDuration>
- <confVideoDurationUnit type="int">0</confVideoDurationUnit>
- <confDuration type="int">0</confDuration>
- <confDurationUnit type="int">0</confDurationUnit>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">rotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbRotationScheme</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDuration</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoConfSettings>
- <videoTelepresenceSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoTelepresenceSettings">
- <tipEndpointType type="int">0</tipEndpointType>
- <tipResolution type="int">0</tipResolution>
- <tipVersion type="int">0</tipVersion>
- <tipSyntheticPayload type="bool">False</tipSyntheticPayload>
- <tipMoreClips type="bool">False</tipMoreClips>
- <_gbTipMoreClips type="int">0</_gbTipMoreClips>
- <tipVideoClip2 type="str">Fire_avc.mp4</tipVideoClip2>
- <tipRotationScheme type="int">0</tipRotationScheme>
- <tipConfDuration type="int">0</tipConfDuration>
- <tipConfDurationUnit type="int">0</tipConfDurationUnit>
- <tipAudioDuration type="int">0</tipAudioDuration>
- <tipAudioDurationUnit type="int">0</tipAudioDurationUnit>
- <_gbTipPresentation type="bool">False</_gbTipPresentation>
- <tipUsePresentationStream type="bool">False</tipUsePresentationStream>
- <tipVideoClip type="str">Fire_avc.mp4</tipVideoClip>
- <tipAudioClip type="str">US_042.wav</tipAudioClip>
- <tipStartAfter type="int">0</tipStartAfter>
- <tipStartAfterUnit type="int">0</tipStartAfterUnit>
- <tipDuration type="int">0</tipDuration>
- <tipDurationUnit type="int">0</tipDurationUnit>
- <tipPresentationRotation type="int">0</tipPresentationRotation>
- <tipLegacyMode type="bool">False</tipLegacyMode>
- <_gbTipLegacy type="int">0</_gbTipLegacy>
- <tipLegacyClip type="str">Fire_avc.mp4</tipLegacyClip>
- <tipLegacyModeAudio type="bool">False</tipLegacyModeAudio>
- <_gbTipLegacyAudio type="int">0</_gbTipLegacyAudio>
- <tipLegacyClipAudio type="str">US_042.wav</tipLegacyClipAudio>
- <tipG722Legacy type="bool">False</tipG722Legacy>
- <tipAudioActivityMetric type="bool">False</tipAudioActivityMetric>
- <tipDinamicChannels type="bool">False</tipDinamicChannels>
- <tipVideoRefresh type="bool">False</tipVideoRefresh>
- <tipInbandSets type="bool">False</tipInbandSets>
- <tipArithmetingCoding type="bool">False</tipArithmetingCoding>
- <tipLTRP type="bool">False</tipLTRP>
- <tipGDR type="bool">False</tipGDR>
- <tipHighProfile type="bool">False</tipHighProfile>
- <tipUnrestrictedMedia type="bool">False</tipUnrestrictedMedia>
- <tipRtcpFeedback type="bool">True</tipRtcpFeedback>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tipDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipRotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipLegacyClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoRefresh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipUsePresentationStream</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipGDR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipStartAfterUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipArithmetingCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipLegacyAudio</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipConfDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipConfDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipG722Legacy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyClipAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipMoreClips</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipInbandSets</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipSyntheticPayload</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipVideoClip2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipResolution</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipVideoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipLegacyClipAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyModeAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipPresentation</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipHighProfile</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipRtcpFeedback</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoClip2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipMoreClips</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDinamicChannels</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipEndpointType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipLegacy</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipLTRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipStartAfter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipAudioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipPresentationRotation</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioActivityMetric</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipUnrestrictedMedia</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoTelepresenceSettings>
- <textSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TextSettings">
- <enableText type="bool">False</enableText>
- <enableTextOWD type="bool">False</enableTextOWD>
- <_gbEnableText type="bool">False</_gbEnableText>
- <textClip type="str">The quick brown fox jumps over the lazy dog</textClip>
- <textFormat type="str">Format: t140, Max duration: 42300 ms</textFormat>
- <textChpsMin type="float">1.0</textChpsMin>
- <textChpsMax type="float">1.0</textChpsMax>
- <textBufferTime type="int">300</textBufferTime>
- <textRedundancyLevel type="int">0</textRedundancyLevel>
- <textPlayType type="int">0</textPlayType>
- <textDuration type="int">5</textDuration>
- <textDurationUnit type="int">1</textDurationUnit>
- <_gbTosText type="bool">False</_gbTosText>
- <enableTosText type="bool">False</enableTosText>
- <tosText type="int">1</tosText>
- <customTosText type="str">0x20</customTosText>
- <_gbCustomTosText type="bool">False</_gbCustomTosText>
- <tosValText type="int">32</tosValText>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tosValText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textChpsMin</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRedundancyLevel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textChpsMax</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textBufferTime</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTextOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTosText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textPlayType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTosText</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tosText</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </textSettings>
- <t38Settings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_T38Settings">
- <enableT38 type="bool">False</enableT38>
- <_gbEnableT38 type="bool">False</_gbEnableT38>
- <_gbEnableT38_2 type="bool">False</_gbEnableT38_2>
- <faxImage type="str">Ixia2Pages.tif</faxImage>
- <_faxFormat type="str">Format: TIFF, Img size: 1660 x 2291, Size: 140402 bytes</_faxFormat>
- <t38TransportType type="int">1</t38TransportType>
- <t38Port type="str">40000</t38Port>
- <t38UdpEncapsulation type="int">0</t38UdpEncapsulation>
- <_gbT38UdpEncapsulation type="bool">False</_gbT38UdpEncapsulation>
- <t38PayloadType type="int">102</t38PayloadType>
- <useFaxVersion type="bool">True</useFaxVersion>
- <faxVersion type="int">0</faxVersion>
- <useT38MaxBitrate type="bool">True</useT38MaxBitrate>
- <t38MaxBitrate type="int">5</t38MaxBitrate>
- <useT38RateMgmt type="bool">True</useT38RateMgmt>
- <t38RateMgmt type="int">0</t38RateMgmt>
- <useT38FillBitRemoval type="bool">False</useT38FillBitRemoval>
- <t38FillBitRemoval type="int">0</t38FillBitRemoval>
- <t38TranscodingMMR type="bool">False</t38TranscodingMMR>
- <t38TranscodingJBIG type="bool">False</t38TranscodingJBIG>
- <_gbUdpOptions type="bool">False</_gbUdpOptions>
- <useErrorRecoverySchema type="bool">True</useErrorRecoverySchema>
- <errorRecoverySchema type="int">0</errorRecoverySchema>
- <useT38MaxDatagramSize type="bool">True</useT38MaxDatagramSize>
- <t38MaxDatagramSize type="int">256</t38MaxDatagramSize>
- <useT38MaxBufferSize type="bool">False</useT38MaxBufferSize>
- <t38MaxBufferSize type="int">200</t38MaxBufferSize>
- <imagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_T38Settings_imagesList" itemtype="ixConfig"/>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">t38TranscodingMMR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38UdpEncapsulation</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxBitrate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38RateMgmt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38TranscodingJBIG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableT38</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38TransportType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableT38_2</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableT38</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">t38Port</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38FillBitRemoval</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">faxVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38FillBitRemoval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38RateMgmt</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">faxImage</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxBufferSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">errorRecoverySchema</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxDatagramSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxBufferSize</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_faxFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38PayloadType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxDatagramSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxBitrate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useFaxVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUdpOptions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbT38UdpEncapsulation</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">imagesList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useErrorRecoverySchema</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </t38Settings>
- <t30Parameters ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_T30Parameters">
- <t30StationId type="str">5551[000-]</t30StationId>
- <t30SendCoding type="int">0</t30SendCoding>
- <t30SendDataRate type="int">5</t30SendDataRate>
- <t30SendPageSize type="int">0</t30SendPageSize>
- <t30SendMSLT type="int">0</t30SendMSLT>
- <t30SendProtocol type="int">1</t30SendProtocol>
- <t30SendResolution type="int">0</t30SendResolution>
- <sendCNG type="int">1</sendCNG>
- <t30ReceiveCoding type="int">2</t30ReceiveCoding>
- <t30ReceivePageSize type="int">2</t30ReceivePageSize>
- <t30ReceiveMSLT type="int">0</t30ReceiveMSLT>
- <t30ReceiveProtocol type="int">1</t30ReceiveProtocol>
- <t30ReceiveR8x3 type="bool">True</t30ReceiveR8x3>
- <t30ReceiveR8x7 type="bool">True</t30ReceiveR8x7>
- <t30ReceiveR8x15 type="bool">True</t30ReceiveR8x15>
- <t30Receive200x200 type="bool">True</t30Receive200x200>
- <t30ReceiveModulations type="int">3</t30ReceiveModulations>
- <sendCedBeforeDIS type="int">1</sendCedBeforeDIS>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">t30SendResolution</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sendCedBeforeDIS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x7</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendPageSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x3</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveProtocol</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">sendCNG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendProtocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveMSLT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendMSLT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendDataRate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceivePageSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveModulations</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x15</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30StationId</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30Receive200x200</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </t30Parameters>
- <msrpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPSettings">
- <enableMSRP type="bool">False</enableMSRP>
- <_gbEnableMSRP type="bool">False</_gbEnableMSRP>
- <msrpPort type="str">2855</msrpPort>
- <domainType type="int">0</domainType>
- <localDomain type="str">alice[00-99].example.com</localDomain>
- <relays ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_relays" itemtype="ixConfig"/>
- <relaysCount type="int">0</relaysCount>
- <firstRelayIpEnabled type="bool">False</firstRelayIpEnabled>
- <firstRelayIp type="str">10.10.10.1</firstRelayIp>
- <firstRelayIsIPv4 type="bool">True</firstRelayIsIPv4>
- <msrpRelayPort type="int">2855</msrpRelayPort>
- <enableMSRPTos type="bool">False</enableMSRPTos>
- <msrpTos type="int">0</msrpTos>
- <customMSRPTos type="str">0x00</customMSRPTos>
- <tosMSRPVal type="int">0</tosMSRPVal>
- <automaticMSRPAuth type="bool">True</automaticMSRPAuth>
- <msrpReuseTCP type="bool">True</msrpReuseTCP>
- <msrpSendEmptyMsg type="bool">False</msrpSendEmptyMsg>
- <msrpTransactionTimeout type="int">30000</msrpTransactionTimeout>
- <msrpFirstChunkTimeout type="int">60000</msrpFirstChunkTimeout>
- <msrpInterChunkTimeout type="int">30000</msrpInterChunkTimeout>
- <msrpSessionTimeout type="int">70000</msrpSessionTimeout>
- <msrpGuiFiles ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_msrpGuiFiles" itemtype="ixConfig"/>
- <files ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_files" itemtype="ixConfig"/>
- <filesCount type="int">0</filesCount>
- <advSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings">
- <closeTCPConnectionAfterBye type="bool">False</closeTCPConnectionAfterBye>
- </advSettings>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">customMSRPTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">filesCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIpEnabled</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">automaticMSRPAuth</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpSendEmptyMsg</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpTransactionTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpInterChunkTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosMSRPVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMSRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">localDomain</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">relaysCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">domainType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">advSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">files</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpFirstChunkTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIsIPv4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbMSRPCustomTos</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">msrpSessionTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableMSRP</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableMSRPTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpReuseTCP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpGuiFiles</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">relays</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpRelayPort</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </msrpSettings>
- <_tempFile ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_FileRecord">
- <synthetic type="int">0</synthetic>
- <_typeStr type="str"></_typeStr>
- <name type="str"></name>
- <nameSynthetic type="str"></nameSynthetic>
- <fileClientPath type="str"></fileClientPath>
- <filePcpuPath type="str"></filePcpuPath>
- <_bFileSize type="int">20</_bFileSize>
- <_msrpSizeCombo type="int">2</_msrpSizeCombo>
- <size type="int">0</size>
- <btnMSRPFileBrowse type="int">0</btnMSRPFileBrowse>
- <type type="str">application/octet-stream</type>
- <fileHash type="str"></fileHash>
- </_tempFile>
- <_tempAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings">
- <closeTCPConnectionAfterBye type="bool">False</closeTCPConnectionAfterBye>
- </_tempAdvSettings>
- <phoneBookInputLabel ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_PhoneBookInputLabel">
- <label type="str">5</label>
- </phoneBookInputLabel>
- <akaConfigurationInputLabel ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AKAConfigurationInputLabel">
- <configurationLabel type="str"></configurationLabel>
- </akaConfigurationInputLabel>
- <phoneBook ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_PhoneBook">
- <fromFile type="int">0</fromFile>
- <pattern type="str">201004[0000-]</pattern>
- <filePath type="str"></filePath>
- <_PN1 type="bool">False</_PN1>
- <_bTelGrp type="bool">False</_bTelGrp>
- <ckTelURIBook type="bool">False</ckTelURIBook>
- <_bkTelURIparams type="str">phone-context=example.com</_bkTelURIparams>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">phoneBookList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">filePath</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">pattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ckTelURIBook</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_bkTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_PN1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_bTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fromFile</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </phoneBook>
- <akaConfiguration ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AKAConfiguration"/>
- <milenageConfiguration ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MilenageConfiguration"/>
- <msgBox ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MsgBox">
- <msg1 type="str"></msg1>
- <msg2 type="str"></msg2>
- </msgBox>
- <editCloudRule ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditCloudRule">
- <_gbStep1 type="bool">False</_gbStep1>
- <requestList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_requestList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ANY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INVITE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">BYE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CANCEL</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">OPTIONS</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REGISTER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">NOTIFY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">SUBSCRIBE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REFER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">MESSAGE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">PRACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INFO</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">UPDATE</str>
- </item>
- </requestList>
- <reqList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_reqList" itemtype="ixConfig"/>
- <_gbStep2 type="bool">False</_gbStep2>
- <what type="int">2</what>
- <reqLine type="int">1</reqLine>
- <headerTypeList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_headerTypeList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">From</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Contact</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Also</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Call-ID</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Length</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Type</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Event</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authenticate</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RAck</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Record-Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Refer-To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Referred-By</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Replaces</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Subscription-State</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Via</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">WWW-Authenticate</str>
- </item>
- </headerTypeList>
- <headerType type="str">To</headerType>
- <compactForm type="str">t</compactForm>
- <occurFrom type="str">1</occurFrom>
- <occurTo type="str">1</occurTo>
- <whatExtract type="int">3</whatExtract>
- <extractHeaderName type="bool">False</extractHeaderName>
- <paramName type="str"></paramName>
- <revHeaderOrder type="bool">False</revHeaderOrder>
- <keepHeaderCrlf type="bool">False</keepHeaderCrlf>
- <_gbStep3 type="bool">False</_gbStep3>
- <usePosition type="int">0</usePosition>
- <beginAfter type="bool">False</beginAfter>
- <afterStr type="str">&lt;</afterStr>
- <afterOccur type="str">1</afterOccur>
- <endBefore type="bool">False</endBefore>
- <endStr type="str">&gt;</endStr>
- <endOccur type="str">last</endOccur>
- <positionFrom type="str">1</positionFrom>
- <positionTo type="str">last</positionTo>
- <_gbStep4 type="bool">False</_gbStep4>
- <formulaSource type="int">0</formulaSource>
- <formula type="str"></formula>
- <phoneBookPath type="str"></phoneBookPath>
- <phoneBookDodPath type="str"></phoneBookDodPath>
- <btnPBBrowse type="int">0</btnPBBrowse>
- </editCloudRule>
- <cloudRules ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudRules">
- <rulesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CloudRules_rulesList" itemtype="ixConfig"/>
- <cloudPhoneBooksAbsolutePath type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</cloudPhoneBooksAbsolutePath>
- </cloudRules>
- <cloudServers ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VoIP_cloudServers" itemtype="ixConfig"/>
- <transferAddress ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TransferAddress">
- <symTransferStr type="str">None</symTransferStr>
- <overridePhoneNo type="bool">False</overridePhoneNo>
- <_useTPb type="int">0</_useTPb>
- <_tBp type="str">&lt;None&gt;</_tBp>
- <_tBpPrv type="str"></_tBpPrv>
- <_tPhone type="str">150[00000000-]</_tPhone>
- <tPhoneType type="int">0</tPhoneType>
- <tPhone type="str">150[00000000-]</tPhone>
- <_tTelGrp type="bool">False</_tTelGrp>
- <_ckTTelURIParams type="bool">False</_ckTTelURIParams>
- <_tTelURIparams type="str">phone-context=example.com</_tTelURIparams>
- <transTelPar type="str"></transTelPar>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_tBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overridePhoneNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useTPb</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">transTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckTTelURIParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">symTransferStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_tBp</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </transferAddress>
- <editContact ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditContact">
- <useDomainName type="int">0</useDomainName>
- <domainName type="str">mysipdomain.ixiacom.com</domainName>
- <_useEPb type="int">0</_useEPb>
- <_eBp type="str">&lt;None&gt;</_eBp>
- <_eBpPrv type="str"></_eBpPrv>
- <_ePhone type="str">160[00000000-]</_ePhone>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <_eTelGrp type="bool">False</_eTelGrp>
- <_ckETelURI type="bool">False</_ckETelURI>
- <_eTelURIparams type="str">phone-context=example.com</_eTelURIparams>
- <editTelPar type="str"></editTelPar>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_useEPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">domainName</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_eBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useDomainName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">editTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckETelURI</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </editContact>
- <dialPlan ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_DialPlan">
- <sourceIPs type="str"></sourceIPs>
- <_useSPb type="int">0</_useSPb>
- <_sBp type="str">&lt;None&gt;</_sBp>
- <_sBpPrv type="str"></_sBpPrv>
- <_sPhone type="str">{{pncalled}}</_sPhone>
- <srcPhoneType type="int">0</srcPhoneType>
- <srcPhone type="str">{{pncalled}}</srcPhone>
- <_sTelGrp type="bool">False</_sTelGrp>
- <_ckSTelURIParams type="bool">False</_ckSTelURIParams>
- <_sTelURIparams type="str">phone-context=example.com</_sTelURIparams>
- <srcTelPar type="str"></srcTelPar>
- <_sTelGrp1 type="bool">False</_sTelGrp1>
- <_dTelGrp1 type="bool">False</_dTelGrp1>
- <symDestStr type="str">None</symDestStr>
- <ovrDestPhone type="bool">False</ovrDestPhone>
- <_useDPb type="int">0</_useDPb>
- <_dBp type="str">&lt;None&gt;</_dBp>
- <_dBpPrv type="str"></_dBpPrv>
- <_dPhone type="str">170[00000000-]</_dPhone>
- <destPhoneType type="int">0</destPhoneType>
- <destPhone type="str">170[00000000-]</destPhone>
- <_dTelGrp type="bool">False</_dTelGrp>
- <_ckDTelURIParams type="bool">False</_ckDTelURIParams>
- <_dTelURIparams type="str">phone-context=example.com</_dTelURIparams>
- <destTelPar type="str"></destTelPar>
- <enableEmergencyCalls type="bool">False</enableEmergencyCalls>
- <useAnonymous type="bool">False</useAnonymous>
- <makeEmergencyReg type="bool">False</makeEmergencyReg>
- <emergencyService type="str">sos</emergencyService>
- <emergencyServiceList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_DialPlan_emergencyServiceList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.ambulance</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.fire</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.police</str>
- </item>
- </emergencyServiceList>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_useSPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelGrp1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sourceIPs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableEmergencyCalls</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useAnonymous</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">symDestStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergencyDest</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_sBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">makeEmergencyReg</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergencySource</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ckSTelURIParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_dBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDestPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelGrp1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">emergencyServiceList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergency</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_UseSrv1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">emergencyService</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useDPb</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ckDTelURIParams</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </dialPlan>
- <signalingSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SignalingSettings">
- <enableSIP type="bool">True</enableSIP>
- <port type="str">{{sipportcalled}}</port>
- <tcpWriteImmediate type="bool">False</tcpWriteImmediate>
- <fqdn type="bool">False</fqdn>
- <realm type="str"></realm>
- <user type="str">{{pncalled}}@{{domainname}}</user>
- <passwd type="str">{{authpassword}}</passwd>
- <akaConfCombo type="str">&lt;None&gt;</akaConfCombo>
- <akaConfComboSelIndex type="int">0</akaConfComboSelIndex>
- <akaSharedSecretType type="int">0</akaSharedSecretType>
- <akaOperatorVariantType type="int">0</akaOperatorVariantType>
- <akaSharedSecretSequence type="str">ixia</akaSharedSecretSequence>
- <akaAbsolutePath type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</akaAbsolutePath>
- <akaOperatorVariantSequence type="str">ixia</akaOperatorVariantSequence>
- <akaSharedSecretSource type="int">0</akaSharedSecretSource>
- <akaOperatorVariantSource type="int">0</akaOperatorVariantSource>
- <akaExportComplete type="int">0</akaExportComplete>
- <akaUseOPasOPC type="bool">False</akaUseOPasOPC>
- <milenageConfCombo type="str">&lt;Default&gt;</milenageConfCombo>
- <milenage_c1 type="str">00000000000000000000000000000000</milenage_c1>
- <milenage_c2 type="str">00000000000000000000000000000001</milenage_c2>
- <milenage_c3 type="str">00000000000000000000000000000002</milenage_c3>
- <milenage_c4 type="str">00000000000000000000000000000004</milenage_c4>
- <milenage_c5 type="str">00000000000000000000000000000008</milenage_c5>
- <milenage_r1 type="int">64</milenage_r1>
- <milenage_r2 type="int">0</milenage_r2>
- <milenage_r3 type="int">32</milenage_r3>
- <milenage_r4 type="int">64</milenage_r4>
- <milenage_r5 type="int">96</milenage_r5>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <customSipTos type="str">0x00</customSipTos>
- <tosVal type="int">0</tosVal>
- <ovrTrans type="bool">False</ovrTrans>
- <ovrTransOption type="int">0</ovrTransOption>
- <useServer type="bool">True</useServer>
- <srvAddr type="str">{{iplistims}}</srvAddr>
- <srvPort type="str">5060</srvPort>
- <srvDomain type="str">{{domainname}}</srvDomain>
- <outboundProxy type="bool">False</outboundProxy>
- <useDnsSrv type="bool">False</useDnsSrv>
- <registrarSrv type="bool">True</registrarSrv>
- <autoRegister type="bool">True</autoRegister>
- <overrideRegistrar type="bool">False</overrideRegistrar>
- <overrideRegistrarAddress type="str">IP:PORT</overrideRegistrarAddress>
- <ovrContact type="bool">False</ovrContact>
- <ovrDest type="bool">True</ovrDest>
- <ovrDestHostPort type="str">{{domainname}}</ovrDestHostPort>
- <nUdpMaxSize type="int">2048</nUdpMaxSize>
- <enableSigComp type="bool">False</enableSigComp>
- <telURISource type="bool">False</telURISource>
- <telURIDest type="bool">False</telURIDest>
- <securityMechanismValList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SignalingSettings_securityMechanismValList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SecurityMechanismVal">
- <checked type="bool">False</checked>
- <mechanism type="str">ipsec-3gpp</mechanism>
- <algorithm type="int">0</algorithm>
- <algorithmStr type="str">hmac-sha-1-96</algorithmStr>
- <protocol type="int">0</protocol>
- <protocolStr type="str">esp</protocolStr>
- <mode type="int">0</mode>
- <modeStr type="str">trans</modeStr>
- <encrypt_algorithm type="int">0</encrypt_algorithm>
- <encrypt_algorithmStr type="str">aes-cbc</encrypt_algorithmStr>
- <spi_start_idx type="int">255</spi_start_idx>
- <port_c type="str">[3000-4000]</port_c>
- <port_s type="str">4060</port_s>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">protocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">encrypt_algorithmStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">algorithm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">modeStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">protocolStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mechanism</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">algorithmStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mode</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port_s</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port_c</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">spi_start_idx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">encrypt_algorithm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- </securityMechanismValList>
- <useIPSecDoubleSPIPatch type="bool">False</useIPSecDoubleSPIPatch>
- <enablePeriodicDNSQueries type="bool">False</enablePeriodicDNSQueries>
- <DNSTimeoutValue type="int">60</DNSTimeoutValue>
- <skipDeleteDNSRecordsAtLoopEnd type="bool">False</skipDeleteDNSRecordsAtLoopEnd>
- <enableVoLTE type="bool">False</enableVoLTE>
- <mediaBearerType type="int">0</mediaBearerType>
- <enableCCDedicatedBearer type="bool">True</enableCCDedicatedBearer>
- <volte_grbox type="bool">False</volte_grbox>
- <_enableAutoHeaders type="bool">False</_enableAutoHeaders>
- <_btnAutoHeaders type="bool">False</_btnAutoHeaders>
- <dontEndMediaOnBye type="bool">False</dontEndMediaOnBye>
- <closeTCPConnectionsOnRampdown type="bool">False</closeTCPConnectionsOnRampdown>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbSrvSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_btnAutoHeaders</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpWriteImmediate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableAutoHeaders</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSIP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fqdn</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretSource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenageConfCombo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c5</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaConfCombo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_UseSrv1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideRegistrar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">port</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">registrarSrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r5</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">user</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantSource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">telURISource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useServer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">nUdpMaxSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmit1xx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvDomain</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_btnEditContact1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">telURIDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePeriodicDNSQueries</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useIPSecDoubleSPIPatch</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">securityMechanismValList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">skipDeleteDNSRecordsAtLoopEnd</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideRegistrarAddress</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvAddr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDestHostPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">DNSTimeoutValue</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">passwd</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoRegister</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSigComp</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantSequence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableVoLTE</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmitACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretSequence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">volte_grbox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">customSipTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dontEndMediaOnBye</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">realm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaExportComplete</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">mediaBearerType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbPeriodicDNSQuery</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaUseOPasOPC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ovrDest1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">outboundProxy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">closeTCPConnectionsOnRampdown</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrContact</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaAbsolutePath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serverAddresses</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableCCDedicatedBearer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaConfComboSelIndex</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTos</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTrans</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useDnsSrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTransOption</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSIP2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSIP1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvPort</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </signalingSettings>
- <timerSettings ver="[2, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TimerSettings">
- <enableTimers type="bool">True</enableTimers>
- <expirationValList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TimerSettings_expirationValList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">REGISTER</message>
- <msgPart type="int">0</msgPart>
- <msgPartStr type="str">Expires Header(s)</msgPartStr>
- <value type="int">3600</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">INVITE</message>
- <msgPart type="int">2</msgPart>
- <msgPartStr type="str">Session-Expire(s)</msgPartStr>
- <value type="int">90</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">UPDATE</message>
- <msgPart type="int">2</msgPart>
- <msgPartStr type="str">Session-Expire(s)</msgPartStr>
- <value type="int">90</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- </expirationValList>
- <sessionRefreshType type="int">1</sessionRefreshType>
- <refreshAfterSecs type="int">3000</refreshAfterSecs>
- <refreshAfterPercent type="int">50</refreshAfterPercent>
- <refreshInSecs type="int">32</refreshInSecs>
- <enableRetransmissions type="bool">False</enableRetransmissions>
- <T1 type="int">500</T1>
- <T2 type="int">4000</T2>
- <ignoreRetransmissions type="bool">True</ignoreRetransmissions>
- <retransmitACK type="bool">True</retransmitACK>
- <stopActiveRetr type="bool">True</stopActiveRetr>
- <retransmit1xx type="bool">False</retransmit1xx>
- <ovrTimeout type="bool">False</ovrTimeout>
- <minInterReregister type="int">0</minInterReregister>
- <autoEndCall2 type="bool">False</autoEndCall2>
- <enableAutoPRACK type="bool">False</enableAutoPRACK>
- <rprSendNegotiatedSDP type="bool">False</rprSendNegotiatedSDP>
- <rprTimeUntilNextRPR type="int">150</rprTimeUntilNextRPR>
- <rprScenarioHasPRACK type="bool">False</rprScenarioHasPRACK>
- <auto4xx type="bool">False</auto4xx>
- <auto4xxAbort type="bool">False</auto4xxAbort>
- <autoProcedureList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TimerSettings_autoProcedureList" itemtype="ixConfig"/>
- <autoProceduresCount type="int">0</autoProceduresCount>
- <procListChanged type="bool">True</procListChanged>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">btnRefreshProcList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoEndCall</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreRetransmissions</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">minInterReregister</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoEndCall2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTimers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshInSecs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">retransmit1xx</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableTimers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sessionRefreshType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">auto4xx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmitACK</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">procListChanged</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoProcedureList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbAutoPRACK</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">T1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshAfterPercent</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAutoPRACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stopActiveRetr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rprTimeUntilNextRPR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rprScenarioHasPRACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">expirationValList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshAfterSecs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">autoProceduresCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">auto4xxAbort</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">rprSendNegotiatedSDP</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </timerSettings>
- <advancedSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AdvancedSettings">
- <useCloud type="bool">False</useCloud>
- <_useCloud1 type="bool">False</_useCloud1>
- <cloud type="str">&lt;None&gt;</cloud>
- <serverRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AdvancedSettings_serverRules" itemtype="ixConfig"/>
- <enableVirtualIPs type="bool">False</enableVirtualIPs>
- <virtualIPTable ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AdvancedSettings_virtualIPTable" itemtype="ixConfig"/>
- <ovrCloudRules type="bool">False</ovrCloudRules>
- <_ovrCloudRules1 type="bool">False</_ovrCloudRules1>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbVirtualIPs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useCloud</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrCloudRules</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ovrCloudRules1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">cloud</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableVirtualIPs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">virtualIPTable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serverRules</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useCloud1</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </advancedSettings>
- <tlsSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsSettings">
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <_enableTLS1 type="bool">False</_enableTLS1>
- <_enableTLS2 type="bool">False</_enableTLS2>
- <_enableTLS3 type="bool">False</_enableTLS3>
- <tlsPort type="str">5061</tlsPort>
- <tlsProtocol type="int">3</tlsProtocol>
- <tlsSessionRefresh type="bool">False</tlsSessionRefresh>
- <_tlsSessionRefresh type="bool">False</_tlsSessionRefresh>
- <tlsRefreshInterval type="int">3600</tlsRefreshInterval>
- <tlsAuthClient type="int">0</tlsAuthClient>
- <tlsReuseConnection type="bool">False</tlsReuseConnection>
- <_tlsReuseConnection type="bool">False</_tlsReuseConnection>
- <ignoreSubjectAltName type="bool">False</ignoreSubjectAltName>
- <tlsMutual type="bool">False</tlsMutual>
- <_gbTlsMutual type="bool">False</_gbTlsMutual>
- <tlsCyphers ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TlsSettings_tlsCyphers" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES128-GCM-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES256-GCM-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-RSA-AES128-GCM-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES256-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-RSA-AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">AES256-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-ECDSA-AES256-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-ECDSA-AES128-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES256-GCM-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES128-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES256-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">DES-CBC3-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-RC2-CBC-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-RC4-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP1024-DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP1024-RC4-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">IDEA-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">NULL-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">NULL-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">RC4-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">RC4-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- </tlsCyphers>
- <tlsCertificatesPath type="str">C:\Program Files (x86)\Ixia\IxLoad\8.20-EA\aptixia\data\SSL_Certificates</tlsCertificatesPath>
- <tlsPrivateKeyCertificate type="str">Unsecured_RSA_key_1024.pem</tlsPrivateKeyCertificate>
- <tlsPublicKeyCertificate type="str">Unsecured_RSA_cert_1024.pem</tlsPublicKeyCertificate>
- <tlsKeyType type="int">0</tlsKeyType>
- <tlsCertType type="int">0</tlsCertType>
- <tlsPassword type="str"></tlsPassword>
- <sipScheme type="int">0</sipScheme>
- <tlsTransportType type="int">0</tlsTransportType>
- <tlsDisableUdpAndTcp type="bool">True</tlsDisableUdpAndTcp>
- <tlsEnableTcpKeepAlive type="bool">False</tlsEnableTcpKeepAlive>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tlsCertType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPassword</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreSubjectAltName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPrivateKeyCertificate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsTransportType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS_HTTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsCyphers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsProtocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsKeyType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tlsSessionRefresh</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tlsCertificatesPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsEnableTcpKeepAlive</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTlsMutual</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPublicKeyCertificate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableCert</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsAuthClient</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsMutual</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS4</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS2</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS3</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableDTLS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS_MSRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsReuseConnection</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsRefreshInterval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsSessionRefresh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsDisableUdpAndTcp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sipScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tlsReuseConnection</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </tlsSettings>
- <dtlsOptions ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_DtlsOptions">
- <dtlsRetry type="int">200</dtlsRetry>
- <dtlsTimeout type="int">30000</dtlsTimeout>
- <dtlsSessionTicket type="bool">False</dtlsSessionTicket>
- </dtlsOptions>
- <iceOptions ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_IceOptions">
- <iceRetryCount type="int">6</iceRetryCount>
- <iceInitialRetry type="int">100</iceInitialRetry>
- <iceTimeout type="int">30000</iceTimeout>
- </iceOptions>
- <otherSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_OtherSettings">
- <VOIP_Var0 type="str"></VOIP_Var0>
- <VOIP_Var1 type="str"></VOIP_Var1>
- <VOIP_Var2 type="str"></VOIP_Var2>
- <VOIP_Var3 type="str"></VOIP_Var3>
- <VOIP_Var4 type="str"></VOIP_Var4>
- <VOIP_IPAddress0 type="str"></VOIP_IPAddress0>
- <VOIP_IPAddress1 type="str"></VOIP_IPAddress1>
- <VOIP_IPAddress2 type="str"></VOIP_IPAddress2>
- <VOIP_IPAddress3 type="str"></VOIP_IPAddress3>
- <VOIP_IPAddress4 type="str"></VOIP_IPAddress4>
- <ipPreference type="int">0</ipPreference>
- <bUseHardcoded type="bool">False</bUseHardcoded>
- <_gbHardcodedForDemo type="bool">False</_gbHardcodedForDemo>
- <_gbStunSettings type="bool">False</_gbStunSettings>
- <bUseStun type="bool">False</bUseStun>
- <stunAddr type="str">127.0.0.1</stunAddr>
- <stunPort type="str">3478</stunPort>
- <bUseIce type="bool">False</bUseIce>
- <bIceLite type="bool">False</bIceLite>
- <_gbSRVCCSettings type="bool">False</_gbSRVCCSettings>
- <bUseSRVCC type="bool">False</bUseSRVCC>
- <mobilityPath type="str"></mobilityPath>
- <ddgGroupboxSRVCC type="bool">False</ddgGroupboxSRVCC>
- <PCO_Groupbox type="bool">False</PCO_Groupbox>
- <bUsePCO type="bool">False</bUsePCO>
- <_gbPCO type="bool">False</_gbPCO>
- <PCO_List type="str"></PCO_List>
- <useBHCA type="bool">False</useBHCA>
- <loadVariablesFromCsv type="bool">False</loadVariablesFromCsv>
- <pathForCsvWithVariables type="str"></pathForCsvWithVariables>
- <absolutePathForCsvWithVariables type="str"></absolutePathForCsvWithVariables>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbIceSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbPCO</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress0</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUseIce</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">mobilityPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var0</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbStunSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">PCO_List</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbSRVCCSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">absolutePathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bIceLite</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">PCO_Groupbox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">bUseHardcoded</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">bUseSRVCC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useBHCA</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipPreference</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnBrowseForVariableCsv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUsePCO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stunPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUseStun</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stunAddr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ddgGroupboxSRVCC</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">_gbHardcodedForDemo</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">pathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">DodPathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_varCsvGroupBox</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loadVariablesFromCsv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var4</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </otherSettings>
- <smsSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSSettings">
- <enableSMS type="bool">False</enableSMS>
- <requestURI type="str">sc.home1.net</requestURI>
- <enableTelURI type="bool">False</enableTelURI>
- <telURI type="str">phone-context=example</telURI>
- <smscPhoneNo type="str">61814712345</smscPhoneNo>
- <smscTypeOfNo type="int">0</smscTypeOfNo>
- <smscNumberingPlan type="int">0</smscNumberingPlan>
- <enableSMOrigOverrideDest type="bool">False</enableSMOrigOverrideDest>
- <btnSMOrigEdit type="bool">False</btnSMOrigEdit>
- <enableSMOrigReqStatusReport type="bool">False</enableSMOrigReqStatusReport>
- <enableSMOrigReplyPath type="bool">False</enableSMOrigReplyPath>
- <smsAddressOriginator ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddressInfo">
- <phoneType type="bool">False</phoneType>
- <phoneValue type="str">160[00000000-]</phoneValue>
- <comboPhoneBookEntry type="str">&lt;None&gt;</comboPhoneBookEntry>
- </smsAddressOriginator>
- <smOrigTypeOfNo type="int">0</smOrigTypeOfNo>
- <smOrigNumberingPlan type="int">0</smOrigNumberingPlan>
- <enableSMRecipOverrideSrc type="bool">False</enableSMRecipOverrideSrc>
- <btnSMRecipEdit type="bool">False</btnSMRecipEdit>
- <enableSMRecipReqStatusReport type="bool">False</enableSMRecipReqStatusReport>
- <enableSMRecipReplyPath type="bool">False</enableSMRecipReplyPath>
- <smsAddressRecipient ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddressInfo">
- <phoneType type="bool">False</phoneType>
- <phoneValue type="str">160[00000000-]</phoneValue>
- <comboPhoneBookEntry type="str">&lt;None&gt;</comboPhoneBookEntry>
- </smsAddressRecipient>
- <smRecipTypeOfNo type="int">0</smRecipTypeOfNo>
- <smRecipNumberingPlan type="int">0</smRecipNumberingPlan>
- <depActivities ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SMSSettings_depActivities" itemtype="ixConfig"/>
- <useFilesFromActivity type="bool">False</useFilesFromActivity>
- <verifyUserInfo type="bool">False</verifyUserInfo>
- <smsImportFilesActivity type="str">None</smsImportFilesActivity>
- <smsActivityForFiles type="int">0</smsActivityForFiles>
- <pcpuCommonPath type="str"></pcpuCommonPath>
- <smsFiles ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SMSSettings_smsFiles" itemtype="ixConfig"/>
- <smsFilesCount type="int">0</smsFilesCount>
- <grBoxSMServiceCenter type="bool">False</grBoxSMServiceCenter>
- <grBoxSMOriginator type="bool">False</grBoxSMOriginator>
- <grBoxSMRecipient type="bool">False</grBoxSMRecipient>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">smOrigNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFiles</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigReplyPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFilesCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSMRecipEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigReqStatusReport</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMRecipient</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipOverrideSrc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMOriginator</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smsAddressOriginator</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">telURI</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">depActivities</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">pcpuCommonPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smOrigTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smRecipTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">requestURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFilesBackup</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsAddressRecipient</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useFilesFromActivity</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smRecipNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smscPhoneNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsImportFilesActivity</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipReplyPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSMOrigEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smscNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">duringLoadFromBackup</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipReqStatusReport</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMServiceCenter</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">verifyUserInfo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smscTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigOverrideDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsActivityForFiles</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsSettings>
- <smsFilesAdd ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSFilesAdd">
- <loadedFileType type="int">0</loadedFileType>
- <fileName type="str"></fileName>
- <ixSmsFileName type="str"></ixSmsFileName>
- <ixSmsFilePath type="str"></ixSmsFilePath>
- <segmentOrder type="str"></segmentOrder>
- <totalTpudSize type="str"></totalTpudSize>
- <segmentNo type="str">0</segmentNo>
- <comboCoding type="int">0</comboCoding>
- <comboRefNo type="int">0</comboRefNo>
- <contentViewEdit type="str"></contentViewEdit>
- <contentViewShow type="str"></contentViewShow>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">contentViewShow</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ixSmsFilePath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">contentViewEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">segmentOrder</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboRefNo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">loadedFileType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSmsLoadFiles</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ixSmsFileName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSmsSaveAs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fileName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">segmentNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">totalTpudSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboCoding</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </smsFilesAdd>
- <smsAddressOriginator ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddress">
- <radioBtnPhoneNo type="int">0</radioBtnPhoneNo>
- <comboPhoneBook type="str">&lt;None&gt;</comboPhoneBook>
- <phoneBookPreview type="str"></phoneBookPreview>
- <userPattern type="str">160[00000000-]</userPattern>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <fakeEnableTelURI type="bool">False</fakeEnableTelURI>
- <fakeTelURI type="str"></fakeTelURI>
- <fakeTelToPort type="str"></fakeTelToPort>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">userPattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneBookPreview</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeEnableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboPhoneBook</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelToPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnPhoneNo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsAddressOriginator>
- <smsAddressRecipient ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddress">
- <radioBtnPhoneNo type="int">0</radioBtnPhoneNo>
- <comboPhoneBook type="str">&lt;None&gt;</comboPhoneBook>
- <phoneBookPreview type="str"></phoneBookPreview>
- <userPattern type="str">160[00000000-]</userPattern>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <fakeEnableTelURI type="bool">False</fakeEnableTelURI>
- <fakeTelURI type="str"></fakeTelURI>
- <fakeTelToPort type="str"></fakeTelToPort>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">userPattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneBookPreview</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeEnableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboPhoneBook</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelToPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnPhoneNo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsAddressRecipient>
- <compatibility ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Compatibility">
- <hasRtpChMapRules type="bool">True</hasRtpChMapRules>
- </compatibility>
- <editAutoHeaderRule ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditAutoHeaderRule">
- <defaultMessagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_defaultMessagesList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INVITE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">BYE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CANCEL</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">OPTIONS</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REGISTER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">NOTIFY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">SUBSCRIBE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REFER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">MESSAGE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">PRACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INFO</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">UPDATE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">100 (Trying)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">180 (Ringing)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">181 (Call Is Being Forwarded)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">182 (Queued)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">183 (Session Progress)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">200 (OK)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">202 (Accepted)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">300 (Multiple Choices)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">301 (Moved Permanently)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">302 (Moved Temporarily)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">305 (Use Proxy)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">380 (Alternative Service)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">400 (Bad Request)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">401 (Unauthorized)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">402 (Payment Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">403 (Forbidden)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">404 (Not Found)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">405 (Method Not Allowed)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">406 (Not Acceptable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">407 (Proxy Authentication Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">408 (Request Timeout)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">410 (Gone)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">413 (Request Entity Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">414 (Request-URI Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">415 (Unsupported Media Type)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">416 (Unsupported URI Scheme)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">420 (Bad Extension)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">421 (Extension Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">423 (Interval Too Brief)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">480 (Temporarily not available)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">481 (Call Leg/Transaction Does Not Exist)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">482 (Loop Detected)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">483 (Too Many Hops)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">484 (Address Incomplete)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">485 (Ambiguous)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">486 (Busy Here)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">487 (Request Terminated)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">488 (Not Acceptable Here)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">491 (Request Pending)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">493 (Undecipherable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">500 (Internal Server Error)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">501 (Not Implemented)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">502 (Bad Gateway)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">503 (Service Unavailable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">504 (Server Time-out)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">505 (SIP Version not supported)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">513 (Message Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">600 (Busy Everywhere)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">603 (Decline)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">604 (Does not exist anywhere)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">606 (Not Acceptable)</str>
- </item>
- </defaultMessagesList>
- <messagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_messagesList" itemtype="ixConfig"/>
- <autoHeaderTypeList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_autoHeaderTypeList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Request-Uri</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Via</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">From</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Call-ID</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Contact</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Length</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Record-Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Referred-By</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Replaces</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Event</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RAck</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Refer-To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Subscription-State</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">WWW-Authenticate</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Also</str>
- </item>
- </autoHeaderTypeList>
- <autoHeaderType type="str">To</autoHeaderType>
- <option type="int">0</option>
- <appendToUri type="bool">False</appendToUri>
- <headerValue type="str"></headerValue>
- <parsedHeader ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_parsedHeader" itemtype="ixConfig"/>
- <valid type="bool">True</valid>
- </editAutoHeaderRule>
- <autoHeadersSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AutoHeadersSettings">
- <enableAutoHeaders type="bool">False</enableAutoHeaders>
- <tableRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_tableRules" itemtype="ixConfig"/>
- <reqAutoHeadRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_reqAutoHeadRules" itemtype="ixConfig"/>
- <respAutoHeadRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_respAutoHeadRules" itemtype="ixConfig"/>
- </autoHeadersSettings>
- <sipAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SipAdvancedSettings">
- <overrideTCPLocalPort type="bool">False</overrideTCPLocalPort>
- <tcpLocalPortStart type="int">40000</tcpLocalPortStart>
- <tcpLocalPortEnd type="int">60000</tcpLocalPortEnd>
- <tcpLocalPortStep type="int">1</tcpLocalPortStep>
- <closeNonsecureTcpConnectionsEnable type="bool">False</closeNonsecureTcpConnectionsEnable>
- <closeIdleTcpConnectionsEnable type="bool">False</closeIdleTcpConnectionsEnable>
- <tcpIdlePeriod type="int">10</tcpIdlePeriod>
- <donotCloseTCPInsideCallEnable type="bool">False</donotCloseTCPInsideCallEnable>
- <recordingServerEnable type="bool">False</recordingServerEnable>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tcpIdlePeriod</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpEndPortLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpIdlePeriodLabel</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">donotCloseTCPInsideCallEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpPortStepLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortStep</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortEnd</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpStartPortLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortStart</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">closeIdleTcpConnectionsEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">recordingServerEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideTCPLocalPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">closeNonsecureTcpConnectionsEnable</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </sipAdvSettings>
- </pm>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">16522</_apiUniqueId>
- <uniqueID type="int">43</uniqueID>
- <commandIdCounter type="int">3</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">VoIP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">VM2</name>
- <role type="str">Both</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="6"/>
- <cardType type="str">Ixia Virtual Load Module</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="13" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig">
- <item ver="[3, [1, [1, [0, [0]]]]]" type="ixPort">
- <chassisId type="int">1</chassisId>
- <cardId type="int">2</cardId>
- <portId type="int">1</portId>
- <enableCapture type="bool">False</enableCapture>
- <cardType type="str">Ixia Virtual Load Module</cardType>
- <portPersistentSetting ver="[0, [1, [0, [0]]]]" type="ixPortPersistentSetting">
- <viewFilter type="NoneType">None</viewFilter>
- </portPersistentSetting>
- <analyzerPartialCapture type="str">False;8192</analyzerPartialCapture>
- <name type="str"></name>
- <afmPort type="NoneType">None</afmPort>
- </item>
- </portList>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="7" type="ixNetworkRange">
- <_smRangeObjectId type="str">c69dae97-f1c2-4505-aedb-3f9ca3f4d02a</_smRangeObjectId>
- <name type="str">Network Range IP-R2 in VM2 ({{ipcard2}}+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="8" type="ixIpDistributionGroup">
- <name type="str">DistGroup1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">16512</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixBasicNetworkRange">
- <item ref="7"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">de9d629b-e0dc-41f5-99cb-5aa8a808ceee</_rangeGroupObjectId>
- <_smPluginObjectId type="str">e53ae54e-ab21-4997-b532-e9bd58210050</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="8"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.0.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="int">0</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="9" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">75</keepAliveInterval>
- <keepAliveProbes type="int">9</keepAliveProbes>
- <keepAliveTime type="int">7200</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">5</retransmitRetries>
- <transmitBuffer type="int">4096</transmitBuffer>
- <receiveBuffer type="int">4096</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">200</rtoMin>
- <rtoMax type="int">120000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="9"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">False</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">b1fbd381-b769-4ec1-8715-299508ecb458</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" oid="25" type="ixActivity">
- <agent ref="10"/>
- <protocolAndType type="str">VoIP Peer</protocolAndType>
- <name type="str">CALLED</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="11" type="ixTimeline">
- <name type="str">Timeline2</name>
- <iterationTime type="int">2014</iterationTime>
- <totalTime type="int">2014</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">4953</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">{{activecalls}}</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">1</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <rampDownValue type="int">0</rampDownValue>
- <timelineType type="int">1</timelineType>
- <advancedIteration ver="[0, [1, [0, [0]]]]" type="ixAdvancedIteration">
- <segmentList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTimelineSegmentList" itemtype="ixTimelineSegment">
- <item ver="[2, [0, [1, [0, [0]]]]]" type="ixLinearTimeSegment">
- <name type="str">Linear Segment 1</name>
- <noiseAmplitudeScale type="int">0</noiseAmplitudeScale>
- <segmentType type="int">1</segmentType>
- <startObjectiveScale type="float">0.0</startObjectiveScale>
- <endObjectiveScale type="float">1.0</endObjectiveScale>
- <duration type="int">1</duration>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[2, [0, [1, [0, [0]]]]]" type="ixLinearTimeSegment">
- <name type="str">Linear Segment 2</name>
- <noiseAmplitudeScale type="int">0</noiseAmplitudeScale>
- <segmentType type="int">1</segmentType>
- <startObjectiveScale type="float">1.0</startObjectiveScale>
- <endObjectiveScale type="float">1.0</endObjectiveScale>
- <duration type="int">{{testduration}}</duration>
- <objectID type="int">4</objectID>
- </item>
- </segmentList>
- <maxscale type="int">20</maxscale>
- </advancedIteration>
- <objectID type="int">5</objectID>
- </timeline>
- <customParameters ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ixCustomActivityParameters">
- <enableDbgLog type="bool">False</enableDbgLog>
- <dbgLogChannels type="str">1-5</dbgLogChannels>
- <bhcaType type="int">0</bhcaType>
- <talkTime type="int">10000</talkTime>
- <channelsNo type="int">1</channelsNo>
- <callSetupTime type="int">500</callSetupTime>
- <callTeardownTime type="int">500</callTeardownTime>
- <interCallDuration type="int">4000</interCallDuration>
- <bhcaObjectiveValue type="int">80000</bhcaObjectiveValue>
- <cpsOverwriteValueChecked type="int">0</cpsOverwriteValueChecked>
- <cpsTotalChannelsChecked type="int">0</cpsTotalChannelsChecked>
- <cpsOverwriteValue type="int">18</cpsOverwriteValue>
- <cpsType type="int">0</cpsType>
- <cpsTalkTime type="int">30000</cpsTalkTime>
- <cpsChannelsNo type="int">16750</cpsChannelsNo>
- <cpsTotalChannelsNo type="int">33500</cpsTotalChannelsNo>
- <cpsOverheadTime type="int">1500</cpsOverheadTime>
- <cpsInterCallDuration type="int">2000</cpsInterCallDuration>
- <cpsObjectiveValue type="int">100</cpsObjectiveValue>
- <cpsRegisterTime type="int">40</cpsRegisterTime>
- <cpsSplitTimeline type="int">0</cpsSplitTimeline>
- <lpsType type="int">0</lpsType>
- <lpsTalkTime type="int">800</lpsTalkTime>
- <lpsChannelsNo type="int">2150</lpsChannelsNo>
- <lpsOverheadTime type="int">1500</lpsOverheadTime>
- <lpsInterLoopDuration type="int">2000</lpsInterLoopDuration>
- <lpsObjectiveValue type="int">100</lpsObjectiveValue>
- <lpsActiveChannel type="int">0</lpsActiveChannel>
- <activeUsersTalkTime type="int">30000</activeUsersTalkTime>
- <activeUsersNo type="int">{{activecalls}}</activeUsersNo>
- <activeUsersChannel type="int">0</activeUsersChannel>
- <activeUsersObjectiveValue type="int">100</activeUsersObjectiveValue>
- </customParameters>
- <role type="str">Peer</role>
- <activeRole type="str">Both</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">{{activecalls}}</objectiveValue>
- <userObjectiveType type="str">activeUsers</userObjectiveType>
- <userObjectiveValue type="long">{{activecalls}}</userObjectiveValue>
- <constraintType type="str">SimulatedUserConstraint</constraintType>
- <constraintValue type="int">{{activecalls}}</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">True</enableConstraint>
- <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">protocolSpecific</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">16585</_apiUniqueId>
- <resourceGuid type="str">58ff41761a9072107c63efca</resourceGuid>
- <_objectiveValue type="int">{{activecalls}}</_objectiveValue>
- <timelineScale type="tuple">
- <item type="float">1.0</item>
- </timelineScale>
- </item>
- </activityParameters>
- <timeline ref="11"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="12"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="13"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">16521</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="14" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">16509</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="7"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="7"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="10"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="10"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">SIP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">SIP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">RTP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">RTP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">T38</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">T38</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">MSRP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">MSRP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">0</offlineTime>
- <sustainTime type="int">20</sustainTime>
- <iterationTime type="int">60</iterationTime>
- <totalTime type="int">1</totalTime>
- <portMapPolicy type="str">mixedMap</portMapPolicy>
- <objectiveType type="str">n/a</objectiveType>
- <objectiveValue type="int">-1</objectiveValue>
- <rampUpType type="int">-1</rampUpType>
- <rampUpValue type="int">-1</rampUpValue>
- <rampUpInterval type="int">-1</rampUpInterval>
- <rampUpTime type="int">0</rampUpTime>
- <rampDownTime type="int">10</rampDownTime>
- <userObjectiveType type="str">n/a</userObjectiveType>
- <userObjectiveValue type="int">-1</userObjectiveValue>
- <totalUserObjectiveValue type="long">0</totalUserObjectiveValue>
- <objectID type="int">1</objectID>
- <_apiUniqueId type="int">16508</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="14"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">6</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- </_tcpAccelerationAllowed>
- </destinationCommunity>
- <destinationAgentName type="str">CALLED</destinationAgentName>
- <portRangeList type="NoneType">None</portRangeList>
- <count type="int">1</count>
- </item>
- </destinations>
- <flowPercentage type="float">100.0</flowPercentage>
- <uniqueID type="int">39</uniqueID>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyMap_VoIP">
- <szPluginVersion type="str">4.10</szPluginVersion>
- <ceCommands ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]], [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VoIP_ceCommands" itemtype="ixConfig">
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]], [0, [0, [0, [0, [1, [0, [0]]]]]]]]" type="#Pdk.ixPdkCommands$ixPropertyCommandStart">
- <commandId type="int">-2</commandId>
- <commandType type="str">START</commandType>
- <cmdName type="str">Start</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Output1</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">3</destCmdId>
- <objectID type="int">0</objectID>
- <destinationCommandIdx type="int">2</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]], [0, [0, [0, [0, [1, [0, [0]]]]]]]]" type="#Pdk.ixPdkCommands$ixPropertyCommandStop">
- <commandId type="int">-3</commandId>
- <commandType type="str">STOP</commandType>
- <cmdName type="str">Stop</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput"/>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Procedure">
- <commandId type="int">3</commandId>
- <commandType type="str">Procedure</commandType>
- <cmdName type="str">SIP MakeCall (#1)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">16</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">4</destinationCommandIdx>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Error</name>
- <outputType type="int">1</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">2</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Procedure">
- <commandId type="int">10</commandId>
- <commandType type="str">Procedure</commandType>
- <cmdName type="str">SIP EndCall Initiate (#2)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Error</name>
- <outputType type="int">1</outputType>
- <destCmdId type="int">-3</destCmdId>
- <objectID type="int">2</objectID>
- <destinationCommandIdx type="int">1</destinationCommandIdx>
- </item>
- </outputList>
- </item>
- <item ver="[0, [1, [0, [0, [0.1, [1, [0, [0]]]], [0, [1, [0, [0]]]]], [0, [0, [1, [0, [0]]]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CommandEx">
- <commandId type="int">16</commandId>
- <commandType type="str">CommandEx</commandType>
- <cmdName type="str">Voice Session (#1)</cmdName>
- <outputList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixCommandOutputList" itemtype="ixCommandOutput">
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">OK</name>
- <outputType type="int">0</outputType>
- <destCmdId type="int">10</destCmdId>
- <objectID type="int">1</objectID>
- <destinationCommandIdx type="int">3</destinationCommandIdx>
- </item>
- <item ver="[1, [1, [0, [0]]]]" type="ixCommandOutput">
- <name type="str">Error</name>
- <outputType type="int">1</outputType>
- <destCmdId type="int">10</destCmdId>
- <objectID type="int">2</objectID>
- <destinationCommandIdx type="int">3</destinationCommandIdx>
- </item>
- </outputList>
- <cmdType type="str">RTPVoiceSession</cmdType>
- </item>
- </ceCommands>
- <activityLink ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityLinkInfo">
- <name type="str">VoiceLink1</name>
- <activitiesCount type="int">2</activitiesCount>
- </activityLink>
- <triggers ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TriggerConfig">
- <triggersInCount type="int">4</triggersInCount>
- <triggersOutCount type="int">4</triggersOutCount>
- </triggers>
- <globalSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSettings">
- <globalExecStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalExecSettings">
- <setAborted type="bool">False</setAborted>
- <setAllFailed type="bool">False</setAllFailed>
- <trigTimeout type="int">600000</trigTimeout>
- <notAbortOnTimeout type="bool">False</notAbortOnTimeout>
- <limitErrors type="bool">False</limitErrors>
- <maxErrors type="int">1</maxErrors>
- <limitArrayVarSize type="bool">False</limitArrayVarSize>
- <maxArrayVarSize type="int">10</maxArrayVarSize>
- </globalExecStg>
- <globalSIPStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSIPSettings">
- <disableTCP type="bool">False</disableTCP>
- <prefQOP type="int">0</prefQOP>
- <warnAsError type="bool">False</warnAsError>
- <limitQueueSize type="bool">True</limitQueueSize>
- <maxChannelsInQueue type="int">25</maxChannelsInQueue>
- <enableSIPLogging type="bool">False</enableSIPLogging>
- <limitSIPLoggingChannels type="bool">False</limitSIPLoggingChannels>
- <maxSIPLoggingChannels type="int">10</maxSIPLoggingChannels>
- <minSIPLoggingChannels type="int">0</minSIPLoggingChannels>
- <voipPeerLogSettings type="int">0</voipPeerLogSettings>
- <voipPeerLogExpForChannels type="str"></voipPeerLogExpForChannels>
- <abortLoopOnTriggerTimeout type="bool">False</abortLoopOnTriggerTimeout>
- </globalSIPStg>
- <globalRTPStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalRTPSettings">
- <transmMode type="int">0</transmMode>
- <playMode type="int">0</playMode>
- <repeatCount type="int">1</repeatCount>
- <repeatTime type="int">1000</repeatTime>
- <timeUnit type="int">0</timeUnit>
- <volume type="int">-20</volume>
- <playModePathConf type="int">0</playModePathConf>
- <repeatCountPathConf type="int">0</repeatCountPathConf>
- <repeatTimePathConf type="int">10</repeatTimePathConf>
- <timeUnitPathConf type="int">0</timeUnitPathConf>
- <toneDurationPathConf type="int">200</toneDurationPathConf>
- <interToneDelayPathConf type="int">200</interToneDelayPathConf>
- <toneAmplitudePathConf type="int">-10</toneAmplitudePathConf>
- <firstToneTimeoutPathConf type="int">4000</firstToneTimeoutPathConf>
- <interToneTimeoutPathConf type="int">2000</interToneTimeoutPathConf>
- <qovTalkExtraSilence type="int">500</qovTalkExtraSilence>
- <qovListenExtraDuration type="int">2000</qovListenExtraDuration>
- <downloadRTPCSV type="bool">True</downloadRTPCSV>
- <waitQoVScore type="bool">False</waitQoVScore>
- </globalRTPStg>
- <globalSTUNStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSTUNSettings">
- <keepAliveInterval type="int">15</keepAliveInterval>
- </globalSTUNStg>
- <globalSKINNYStg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalSKINNYSettings">
- <softKeyCount type="int">25</softKeyCount>
- <receiveVideo type="bool">False</receiveVideo>
- <transmitVideo type="bool">False</transmitVideo>
- </globalSKINNYStg>
- <globalT38Stg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_GlobalT38Settings">
- <t30Log type="bool">False</t30Log>
- <t38Log type="bool">False</t38Log>
- <receivedImageLog type="bool">False</receivedImageLog>
- <logType type="int">0</logType>
- <logBegin type="int">1</logBegin>
- <logEnd type="int">10</logEnd>
- <channelRange type="str">[00-10]</channelRange>
- </globalT38Stg>
- </globalSettings>
- <info ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Info">
- <userChannelsNo type="int">45638</userChannelsNo>
- <portInstances type="int">3</portInstances>
- <portInstanceIdx type="int">1</portInstanceIdx>
- <objectiveType type="str">activeUsers</objectiveType>
- <objectiveValue type="int">1000</objectiveValue>
- <maxAllowedObjective type="long">9223372036854775807</maxAllowedObjective>
- <firstSignalingFnID type="int">8</firstSignalingFnID>
- <enableRTPDest type="bool">False</enableRTPDest>
- <rtpPortDest type="str"></rtpPortDest>
- <rtpObjectiveValue type="int">32000</rtpObjectiveValue>
- <hasRtpFunction type="bool">False</hasRtpFunction>
- <hasVideoFunction type="bool">False</hasVideoFunction>
- <hasT38Function type="bool">False</hasT38Function>
- <hasMSRPFunction type="bool">False</hasMSRPFunction>
- <src ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str">CALLING</name>
- <portCount type="int">1</portCount>
- <portCountRtp type="int">1</portCountRtp>
- <portCountT38 type="int">1</portCountT38>
- <portCountMSRP type="int">1</portCountMSRP>
- <ipRangeCount type="int">1</ipRangeCount>
- <ipCount type="int">1</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">1</ipRuleCh>
- <port type="str">{{sipportcalling}}</port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">1</portRuleCh>
- <phone type="str">{{pncalling}}</phone>
- <aliases type="int">1</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">1</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">1</ipRangeCountRtp>
- <ipCountRtp type="int">1</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">1</ipRuleChRtp>
- <portRtp type="str">[10000-65535,4]</portRtp>
- <portT38 type="str">40000</portT38>
- <portMSRP type="str">2855</portMSRP>
- <portRuleRtp type="int">1</portRuleRtp>
- <portRuleChRtp type="int">1</portRuleChRtp>
- <ipRangeCountT38 type="int">1</ipRangeCountT38>
- <ipCountT38 type="int">1</ipCountT38>
- <ipRangeCountMSRP type="int">1</ipRangeCountMSRP>
- <ipCountMSRP type="int">1</ipCountMSRP>
- <symType type="int">1</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str">5061</tlsPort>
- <tlsDisableUdpAndTcp type="bool">True</tlsDisableUdpAndTcp>
- <nodeCount type="int">1</nodeCount>
- <coreCount type="int">2</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">1</calActivityID>
- <layerName type="str">aptixia-T.03440c56.4e1a.4def.8406.ec64db91d4c1-L2EthernetPlugin-166a11b6.4d30.40ea.b9e1.ac4fb44f112b-161.105.231.12;1;1default</layerName>
- </src>
- <dest ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str"></name>
- <portCount type="int">1</portCount>
- <portCountRtp type="int">1</portCountRtp>
- <portCountT38 type="int">1</portCountT38>
- <portCountMSRP type="int">1</portCountMSRP>
- <ipRangeCount type="int">0</ipRangeCount>
- <ipCount type="int">0</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">0</ipRuleCh>
- <port type="str"></port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">0</portRuleCh>
- <phone type="str"></phone>
- <aliases type="int">1</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">0</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">0</ipRangeCountRtp>
- <ipCountRtp type="int">0</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">0</ipRuleChRtp>
- <portRtp type="str"></portRtp>
- <portT38 type="str"></portT38>
- <portMSRP type="str">2855</portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">0</portRuleChRtp>
- <ipRangeCountT38 type="int">0</ipRangeCountT38>
- <ipCountT38 type="int">0</ipCountT38>
- <ipRangeCountMSRP type="int">1</ipRangeCountMSRP>
- <ipCountMSRP type="int">1</ipCountMSRP>
- <symType type="int">1</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str"></tlsPort>
- <tlsDisableUdpAndTcp type="bool">False</tlsDisableUdpAndTcp>
- <nodeCount type="int">1</nodeCount>
- <coreCount type="int">2</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str"></layerName>
- </dest>
- <useServerDest type="bool">False</useServerDest>
- <srvDomainDest type="str"></srvDomainDest>
- <srvAddrDest type="str"></srvAddrDest>
- <srvPortDest type="str">5060</srvPortDest>
- <cloudServerDest ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudServer">
- <name type="str"></name>
- <ipAddr type="str"></ipAddr>
- <rangeType type="str"></rangeType>
- <ipType type="str"></ipType>
- <port type="int">0</port>
- <attachedInfo type="str"></attachedInfo>
- <firstIp type="str"></firstIp>
- <netMask type="str"></netMask>
- <ipCount type="str"></ipCount>
- <ipStep type="str"></ipStep>
- </cloudServerDest>
- <transfer ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ActivityInfo">
- <name type="str"></name>
- <portCount type="int">0</portCount>
- <portCountRtp type="int">0</portCountRtp>
- <portCountT38 type="int">0</portCountT38>
- <portCountMSRP type="int">0</portCountMSRP>
- <ipRangeCount type="int">0</ipRangeCount>
- <ipCount type="int">0</ipCount>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">0</ipRuleCh>
- <port type="str"></port>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">0</portRuleCh>
- <phone type="str"></phone>
- <aliases type="int">0</aliases>
- <phoneType type="int">0</phoneType>
- <phoneRule type="int">0</phoneRule>
- <phoneCount type="int">0</phoneCount>
- <telPar type="str"></telPar>
- <ipRangeCountRtp type="int">0</ipRangeCountRtp>
- <ipCountRtp type="int">0</ipCountRtp>
- <ipRuleRtp type="int">0</ipRuleRtp>
- <ipRuleChRtp type="int">0</ipRuleChRtp>
- <portRtp type="str"></portRtp>
- <portT38 type="str"></portT38>
- <portMSRP type="str"></portMSRP>
- <portRuleRtp type="int">0</portRuleRtp>
- <portRuleChRtp type="int">0</portRuleChRtp>
- <ipRangeCountT38 type="int">0</ipRangeCountT38>
- <ipCountT38 type="int">0</ipCountT38>
- <ipRangeCountMSRP type="int">0</ipRangeCountMSRP>
- <ipCountMSRP type="int">0</ipCountMSRP>
- <symType type="int">0</symType>
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <tlsPort type="str"></tlsPort>
- <tlsDisableUdpAndTcp type="bool">False</tlsDisableUdpAndTcp>
- <nodeCount type="int">0</nodeCount>
- <coreCount type="int">1</coreCount>
- <nicCount type="int">1</nicCount>
- <gtpEnabled type="bool">False</gtpEnabled>
- <dcpEnabled type="bool">False</dcpEnabled>
- <rangeType type="int">0</rangeType>
- <calActivityID type="int">0</calActivityID>
- <layerName type="str"></layerName>
- </transfer>
- <useServerTransfer type="bool">False</useServerTransfer>
- <registrarSrvTransfer type="bool">False</registrarSrvTransfer>
- <srvAddrTransfer type="str"></srvAddrTransfer>
- <srvPortTransfer type="str">5060</srvPortTransfer>
- <cloudServerTransfer ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudServer">
- <name type="str"></name>
- <ipAddr type="str"></ipAddr>
- <rangeType type="str"></rangeType>
- <ipType type="str"></ipType>
- <port type="int">0</port>
- <attachedInfo type="str"></attachedInfo>
- <firstIp type="str"></firstIp>
- <netMask type="str"></netMask>
- <ipCount type="str"></ipCount>
- <ipStep type="str"></ipStep>
- </cloudServerTransfer>
- </info>
- <scenarioSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ScenarioSettings">
- <scenarioFile type="str">.\SIPCall.tst</scenarioFile>
- <activeScenarioChannel type="int">0</activeScenarioChannel>
- <funcsCount type="int">17</funcsCount>
- <isModified type="int">68</isModified>
- <activityID type="int">6</activityID>
- <exportToRM type="int">0</exportToRM>
- </scenarioSettings>
- <executionSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExecutionSettings">
- <loopMode type="int">0</loopMode>
- <loopCount type="int">1</loopCount>
- <loopPreDelay type="int">0</loopPreDelay>
- <loopMidDelay type="int">0</loopMidDelay>
- <gracefulRampDown type="bool">True</gracefulRampDown>
- <rampdownSleep type="bool">False</rampdownSleep>
- <aliases type="int">1</aliases>
- <ipRule type="int">0</ipRule>
- <ipRuleCh type="int">1</ipRuleCh>
- <portRule type="int">0</portRule>
- <portRuleCh type="int">1</portRuleCh>
- <phoneRule type="int">1</phoneRule>
- <multipleUsersPerIO type="bool">True</multipleUsersPerIO>
- <rtpIpRule type="int">0</rtpIpRule>
- <rtpIpRuleCh type="int">1</rtpIpRuleCh>
- <rtpPortRule type="int">1</rtpPortRule>
- <rtpPortRuleCh type="int">1</rtpPortRuleCh>
- <dl_BUG type="bool">True</dl_BUG>
- <dl_TRACE type="bool">False</dl_TRACE>
- <dl_L_INFO type="bool">True</dl_L_INFO>
- <dl_L_ADV type="bool">False</dl_L_ADV>
- <dl_L_VRB type="bool">False</dl_L_VRB>
- <dl_T_IO type="bool">False</dl_T_IO>
- <dl_T_INFO type="bool">False</dl_T_INFO>
- <dl_T_ADV type="bool">False</dl_T_ADV>
- <dl_T_VRB type="bool">False</dl_T_VRB>
- <dl_TG_ADV type="bool">False</dl_TG_ADV>
- <dl_TG_VRB type="bool">False</dl_TG_VRB>
- <dl_Q_ADV type="bool">False</dl_Q_ADV>
- <dl_Q_VRB type="bool">False</dl_Q_VRB>
- <dl_S_FSM type="bool">False</dl_S_FSM>
- <dl_S_SER type="bool">False</dl_S_SER>
- <dl_S_SUA type="bool">False</dl_S_SUA>
- <dl_S_WAIT type="bool">False</dl_S_WAIT>
- <dl_S_SEND type="bool">False</dl_S_SEND>
- <dl_S_INFO type="bool">False</dl_S_INFO>
- <dl_S_ADV type="bool">False</dl_S_ADV>
- <dl_S_VRB type="bool">False</dl_S_VRB>
- <dl_R_DD type="bool">False</dl_R_DD>
- <dl_R_VRB type="bool">False</dl_R_VRB>
- <dl_R_PAR type="bool">False</dl_R_PAR>
- <dl_EE_VRB type="bool">False</dl_EE_VRB>
- <dl_EE_DD type="bool">False</dl_EE_DD>
- <dl_FLOW type="bool">False</dl_FLOW>
- <dl_M_IO type="bool">False</dl_M_IO>
- <dl_SDP_DD type="bool">False</dl_SDP_DD>
- <dl_1 type="bool">False</dl_1>
- <dl_2 type="bool">False</dl_2>
- <dl_3 type="bool">False</dl_3>
- <log_level type="int">9</log_level>
- <log_in_memory type="int">1</log_in_memory>
- <rtp_log_in_file type="int">1</rtp_log_in_file>
- <log_filesize type="int">32</log_filesize>
- <_gbDebugLogs type="bool">False</_gbDebugLogs>
- <ccExportProfile type="bool">False</ccExportProfile>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_ipRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopMidDelay</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_IO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SEND</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_rtpIpRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">_estimatedBacklog</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopPreDelay</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TG_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">log_filesize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtp_log_in_file</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">aliases</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_Q_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">multipleUsersPerIO</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">log_level</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpIpRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rampdownSleep</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_portRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SER</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_Q_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPortRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_M_IO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_EE_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpIpRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_FSM</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">gracefulRampDown</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_FLOW</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_BUG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_SUA</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_rtpPortRule1</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_PAR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loopCount</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">dl_S_WAIT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_SDP_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TRACE</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbDebugLogs</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPortRuleCh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_TG_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portRule</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_INFO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_EE_VRB</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_R_DD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_T_ADV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ccExportProfile</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">log_in_memory</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dl_L_VRB</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </executionSettings>
- <customActivityLinkSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ixCustomActivityParameters">
- <enableDbgLog type="bool">False</enableDbgLog>
- <dbgLogChannels type="str">1-5</dbgLogChannels>
- <bhcaType type="int">0</bhcaType>
- <talkTime type="int">10000</talkTime>
- <channelsNo type="int">1</channelsNo>
- <callSetupTime type="int">500</callSetupTime>
- <callTeardownTime type="int">500</callTeardownTime>
- <interCallDuration type="int">4000</interCallDuration>
- <bhcaObjectiveValue type="int">1</bhcaObjectiveValue>
- <cpsOverwriteValueChecked type="int">0</cpsOverwriteValueChecked>
- <cpsTotalChannelsChecked type="int">0</cpsTotalChannelsChecked>
- <cpsOverwriteValue type="int">18</cpsOverwriteValue>
- <cpsType type="int">0</cpsType>
- <cpsTalkTime type="int">30000</cpsTalkTime>
- <cpsChannelsNo type="int">16750</cpsChannelsNo>
- <cpsTotalChannelsNo type="int">33500</cpsTotalChannelsNo>
- <cpsOverheadTime type="int">1500</cpsOverheadTime>
- <cpsInterCallDuration type="int">2000</cpsInterCallDuration>
- <cpsObjectiveValue type="int">500</cpsObjectiveValue>
- <cpsRegisterTime type="int">40</cpsRegisterTime>
- <cpsSplitTimeline type="int">0</cpsSplitTimeline>
- <lpsType type="int">0</lpsType>
- <lpsTalkTime type="int">800</lpsTalkTime>
- <lpsChannelsNo type="int">2150</lpsChannelsNo>
- <lpsOverheadTime type="int">1500</lpsOverheadTime>
- <lpsInterLoopDuration type="int">2000</lpsInterLoopDuration>
- <lpsObjectiveValue type="int">500</lpsObjectiveValue>
- <lpsActiveChannel type="int">0</lpsActiveChannel>
- <activeUsersTalkTime type="int">30000</activeUsersTalkTime>
- <activeUsersNo type="int">{{activecalls}}</activeUsersNo>
- <activeUsersChannel type="int">0</activeUsersChannel>
- <activeUsersObjectiveValue type="int">{{activecalls}}</activeUsersObjectiveValue>
- </customActivityLinkSettings>
- <rtpWaveFiles ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPWaveFiles">
- <wavesCount type="int">1</wavesCount>
- </rtpWaveFiles>
- <rtpTones ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPTones">
- <usedTonesCount type="int">0</usedTonesCount>
- <customTonesCount type="int">35</customTonesCount>
- <seqCustTonesCount type="int">0</seqCustTonesCount>
- </rtpTones>
- <codecCustomPopup ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecCustomPopup">
- <captureFile type="str">Default.cap</captureFile>
- <parseRTPPort type="bool">False</parseRTPPort>
- <parseSSRC type="bool">False</parseSSRC>
- <rtpPort type="int">10000</rtpPort>
- <ssrc type="str">0x8078C5D3</ssrc>
- </codecCustomPopup>
- <codecCustomPropDlg ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecCustomPropDlg"/>
- <codecSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecSettings">
- <codecs ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CodecSettings_codecs" itemtype="ixConfig">
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecG711u">
- <dPayloadIn type="int">0</dPayloadIn>
- <dPayloadOut type="int">0</dPayloadOut>
- <frameSize type="int">160</frameSize>
- </item>
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CodecG711a">
- <dPayloadIn type="int">8</dPayloadIn>
- <dPayloadOut type="int">8</dPayloadOut>
- <frameSize type="int">160</frameSize>
- </item>
- </codecs>
- <codecs_number type="int">2</codecs_number>
- <_gbVideoCodecs type="bool">False</_gbVideoCodecs>
- <videoPayloadType type="int">96</videoPayloadType>
- <_gbDataCodecs type="bool">False</_gbDataCodecs>
- <dataCodecs ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CodecSettings_dataCodecs" itemtype="ixConfig">
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Rtp2833Events">
- <dPayloadType type="int">100</dPayloadType>
- </item>
- <item ver="[0, [0, [0.1, [1, [0, [0]]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Rtp2833Tones">
- <dPayloadType type="int">101</dPayloadType>
- </item>
- </dataCodecs>
- <crtCustomCodecIndex type="int">-1</crtCustomCodecIndex>
- </codecSettings>
- <rtpSettings ver="[7, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTPSettings">
- <rtpPort type="str">[10000-65535,4]</rtpPort>
- <enableAdvStatCalc type="bool">False</enableAdvStatCalc>
- <enableRTCP type="bool">False</enableRTCP>
- <enableRTCPMux type="bool">False</enableRTCPMux>
- <chEnableHwAcc type="bool">False</chEnableHwAcc>
- <chDisableHwAcc type="bool">False</chDisableHwAcc>
- <enableHwAcc type="bool">False</enableHwAcc>
- <enableIxStack type="bool">False</enableIxStack>
- <enableNBExec type="bool">False</enableNBExec>
- <enablePerStream type="bool">False</enablePerStream>
- <enableMDI type="bool">False</enableMDI>
- <enableRTP type="bool">False</enableRTP>
- <enableMediaSDPParams type="bool">False</enableMediaSDPParams>
- <audioB_option type="bool">False</audioB_option>
- <audioB_value type="str">AS:48</audioB_value>
- <audioRR_option type="bool">False</audioRR_option>
- <audioRR_value type="str">800</audioRR_value>
- <audioRS_option type="bool">False</audioRS_option>
- <audioRS_value type="str">800</audioRS_value>
- <videoB_option type="bool">False</videoB_option>
- <videoB_value type="str">AS:384</videoB_value>
- <videoRR_option type="bool">False</videoRR_option>
- <videoRR_value type="str">6400</videoRR_value>
- <videoRS_option type="bool">False</videoRS_option>
- <videoRS_value type="str">6400</videoRS_value>
- <textB_option type="bool">False</textB_option>
- <textB_value type="str">AS:48</textB_value>
- <textRR_option type="bool">False</textRR_option>
- <textRR_value type="str">800</textRR_value>
- <textRS_option type="bool">False</textRS_option>
- <textRS_value type="str">800</textRS_value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">videoRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbVideoSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">jitMs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbAudioSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ixnamSupported</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dedicatedCoreRange</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelTypeQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMediaSDPParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTextSDPParams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">activityIdQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitComp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dedicatedCoreRangeLength</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">portIPsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">chEnableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoVPerZionPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCPMux</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">silenceMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbMediaSDPParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">valueQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">maxMosStreams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMDI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableIxStack</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">unitsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serviceEnabledQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">chDisableHwAcc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosGroupBox</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRR_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePerStream</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">limitMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">customTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mosInterval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAdvStatCalc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSilence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">metricsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoRS_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMaxDrop</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioRR_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textB_value</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosRtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoB_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">activityNameQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRS_option</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableNBExec</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </rtpSettings>
- <rtcpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_RTCPSettings">
- <rtcpIgnoreSSRC type="bool">False</rtcpIgnoreSSRC>
- <rtcpCNAMEType type="int">0</rtcpCNAMEType>
- <hasSDESName type="bool">False</hasSDESName>
- <hasSDESTool type="bool">False</hasSDESTool>
- <rtcpSDESTool type="str">IxLoad</rtcpSDESTool>
- <rtcpReceiverTimer type="int">2000</rtcpReceiverTimer>
- <rtcpSenderTimer type="int">2000</rtcpSenderTimer>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">rtcpSDESTool</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpSenderTimer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpCNAMEType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">hasSDESTool</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpReceiverTimer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtcpIgnoreSSRC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">hasSDESName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableRTCPMux2</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </rtcpSettings>
- <audioSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AudioSettings">
- <enableAudio type="bool">False</enableAudio>
- <_gbEnableAudio type="bool">False</_gbEnableAudio>
- <enableAudioOWD type="bool">False</enableAudioOWD>
- <useJitter type="bool">False</useJitter>
- <_JB1 type="bool">False</_JB1>
- <jitMs type="int">20</jitMs>
- <useJitComp type="bool">False</useJitComp>
- <jitCMs type="int">1000</jitCMs>
- <jitCMaxDrop type="int">7</jitCMaxDrop>
- <dodName type="str">rtp_esmad-asordo-l_2170</dodName>
- <useMos type="bool">False</useMos>
- <useSilence type="bool">False</useSilence>
- <silenceMode type="int">1</silenceMode>
- <enableTosRtp type="bool">False</enableTosRtp>
- <rtpTos type="int">1</rtpTos>
- <customTosGroupBox type="bool">False</customTosGroupBox>
- <customTos type="str">0x20</customTos>
- <rtpTosVal type="int">32</rtpTosVal>
- <_COV1 type="bool">False</_COV1>
- <useQoV type="bool">False</useQoV>
- <qovAnalize type="int">5</qovAnalize>
- <qovSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_QoVSettings">
- <activityIdQoV type="int">0</activityIdQoV>
- <enableQoV type="bool">False</enableQoV>
- <_gbEnableQoV type="bool">False</_gbEnableQoV>
- <serviceEnabledQoV type="bool">False</serviceEnabledQoV>
- <activityNameQoV type="str"></activityNameQoV>
- <portIPsQoV type="str"></portIPsQoV>
- <unitsQoV type="int">0</unitsQoV>
- <valueQoV type="int">100</valueQoV>
- <channelTypeQoV type="int">0</channelTypeQoV>
- <metricsQoV type="int">0</metricsQoV>
- <channelsQoVPerZionPort type="int">0</channelsQoVPerZionPort>
- <radioBtnQoVASR type="int">0</radioBtnQoVASR>
- <languageASR type="str">English(US)</languageASR>
- </qovSettings>
- <activityIdQoV type="int">0</activityIdQoV>
- <enableQoV type="bool">False</enableQoV>
- <_gbEnableQoV type="bool">False</_gbEnableQoV>
- <serviceEnabledQoV type="bool">False</serviceEnabledQoV>
- <activityNameQoV type="str"></activityNameQoV>
- <portIPsQoV type="str"></portIPsQoV>
- <unitsQoV type="int">0</unitsQoV>
- <valueQoV type="int">100</valueQoV>
- <channelTypeQoV type="int">0</channelTypeQoV>
- <metricsQoV type="int">0</metricsQoV>
- <channelsQoVPerZionPort type="int">0</channelsQoVPerZionPort>
- <radioBtnQoVASR type="int">0</radioBtnQoVASR>
- <languageASR type="str">English(US)</languageASR>
- <audioClip type="str">US_042.wav</audioClip>
- <_audioFormat type="str">Format: PCM, Duration: 32785 ms, Size: 524556 bytes</_audioFormat>
- <outputLevel type="int">-20</outputLevel>
- <_gbOutputLevel type="bool">False</_gbOutputLevel>
- <playTypeAudio type="int">0</playTypeAudio>
- <audioDuration type="int">10</audioDuration>
- <audioDurationUnit type="int">1</audioDurationUnit>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbEnableQoV</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">channelTypeQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">pesqPolqa</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePTT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableP56</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">qovAnalize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoVPerZionPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_COV1</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">useTelchemy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">activityIdQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitComp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_JB1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosRtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">portIPsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbQoVMetrics</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dodName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitMs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbASRLanguage</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">rtpTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnQoVASR</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">silenceMode</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">playTypeAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useQoV</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">activityNameQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">valueQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbOutputLevel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">unitsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serviceEnabledQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">audioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">languageASR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosGroupBox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">audioDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useMos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">qovSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useJitter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSilence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">metricsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">jitCMaxDrop</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">channelsQoV</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAudioOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_audioFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableAudio</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">outputLevel</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </audioSettings>
- <editTos ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditTos">
- <bits012 type="int">0</bits012>
- <minDelay type="bool">False</minDelay>
- <maxThroughput type="bool">False</maxThroughput>
- <maxReliability type="bool">False</maxReliability>
- <_gbBtnTosBit7_0 type="bool">False</_gbBtnTosBit7_0>
- <_gbBtnTosBit7_1 type="bool">False</_gbBtnTosBit7_1>
- <_gbBtnTosBit6_0 type="bool">False</_gbBtnTosBit6_0>
- <_gbBtnTosBit6_1 type="bool">False</_gbBtnTosBit6_1>
- <_gbBtnTosBit5_0 type="bool">False</_gbBtnTosBit5_0>
- <_gbBtnTosBit5_1 type="bool">False</_gbBtnTosBit5_1>
- <_gbBtnTosBit4_0 type="bool">False</_gbBtnTosBit4_0>
- <_gbBtnTosBit4_1 type="bool">False</_gbBtnTosBit4_1>
- <_gbBtnTosBit3_0 type="bool">False</_gbBtnTosBit3_0>
- <_gbBtnTosBit3_1 type="bool">False</_gbBtnTosBit3_1>
- <_gbBtnTosBit2_0 type="bool">False</_gbBtnTosBit2_0>
- <_gbBtnTosBit2_1 type="bool">False</_gbBtnTosBit2_1>
- <_gbDisabledBtns type="bool">False</_gbDisabledBtns>
- </editTos>
- <srtpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SRTPSettings">
- <bEnableSRTP type="bool">False</bEnableSRTP>
- <bEnableVideoSRTP type="bool">False</bEnableVideoSRTP>
- <bEnableTextSRTP type="bool">False</bEnableTextSRTP>
- <bDisableSRTCPEncryption type="bool">False</bDisableSRTCPEncryption>
- <bDisableSRTPEncryption type="bool">False</bDisableSRTPEncryption>
- <bDisableSRTPAuthentication type="bool">False</bDisableSRTPAuthentication>
- <bDisableValidations type="bool">False</bDisableValidations>
- <bAllowOnlySecureStreams type="bool">False</bAllowOnlySecureStreams>
- <bIncludeMKI type="bool">False</bIncludeMKI>
- <bEnablePreencryption type="bool">False</bEnablePreencryption>
- <bDisableMasterSalt type="bool">False</bDisableMasterSalt>
- <bStaticMasterKeySalt type="bool">False</bStaticMasterKeySalt>
- <_masterKeySelection type="int">0</_masterKeySelection>
- <staticSingleKeySalt type="str"></staticSingleKeySalt>
- <staticKeyFile type="str"></staticKeyFile>
- <_enableSRTP type="bool">False</_enableSRTP>
- <_useStaticKey type="bool">False</_useStaticKey>
- <_singleMasterKeyGrp type="bool">False</_singleMasterKeyGrp>
- <_multipleMasterKeysGrp type="bool">False</_multipleMasterKeysGrp>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">bEnableSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_singleMasterKeyGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTPEncryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTPAuthentication</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableValidations</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useStaticKey</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">bEnablePreencryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">staticSingleKeySalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bStaticMasterKeySalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">staticKeyFile</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableMasterSalt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_multipleMasterKeysGrp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">bAllowOnlySecureStreams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bDisableSRTCPEncryption</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableVideoSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bIncludeMKI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bEnableTextSRTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_masterKeySelection</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </srtpSettings>
- <videoClips ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoClips">
- <videoClipsInfo ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VideoClips_videoClipsInfo" itemtype="ixConfig"/>
- <videoClipsInfoLength type="int">0</videoClipsInfoLength>
- <H323MaxProfile type="int">0</H323MaxProfile>
- <H323MaxLevel type="int">0</H323MaxLevel>
- <H323MaxBitRate type="int">0</H323MaxBitRate>
- <H323Packetization type="int">0</H323Packetization>
- <MaxProfileIdc type="int">66</MaxProfileIdc>
- <MaxProfileIop type="int">0</MaxProfileIop>
- <MaxLevel type="int">1</MaxLevel>
- </videoClips>
- <advancedVideo ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AdvancedVideoSettings">
- <enableCustomMaxMBPS type="bool">False</enableCustomMaxMBPS>
- <customMaxMBPS type="int">0</customMaxMBPS>
- <enableCustomMaxFS type="bool">False</enableCustomMaxFS>
- <customMaxFS type="int">0</customMaxFS>
- <enableCustomMaxDPB type="bool">False</enableCustomMaxDPB>
- <customMaxDPB type="int">0</customMaxDPB>
- <enableCustomMaxBRandCPB type="bool">False</enableCustomMaxBRandCPB>
- <customMaxBRandCPB type="int">0</customMaxBRandCPB>
- <enableMaxStaticMBPS type="bool">False</enableMaxStaticMBPS>
- <maxStaticMBPS type="int">0</maxStaticMBPS>
- <enableMaxRcmdNalUnitSize type="bool">False</enableMaxRcmdNalUnitSize>
- <maxRcmdNalUnitSize type="int">0</maxRcmdNalUnitSize>
- <enableMaxNalUnitSize type="bool">False</enableMaxNalUnitSize>
- <maxNalUnitSize type="int">0</maxNalUnitSize>
- </advancedVideo>
- <videoSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoSettings">
- <enableVideo type="bool">False</enableVideo>
- <enableVideoOWD type="bool">False</enableVideoOWD>
- <videoMaxSessions type="int">1</videoMaxSessions>
- <_gbEnableVideo type="bool">False</_gbEnableVideo>
- <videoClip type="str">Fire_avc.mp4</videoClip>
- <_videoFormat type="str">Codec: H264, Duration: 12800 ms, Size: 2012176 bytes, Bitrate: 1225 kbps</_videoFormat>
- <playTypeVideo type="int">0</playTypeVideo>
- <videoDuration type="int">5</videoDuration>
- <videoDurationUnit type="int">1</videoDurationUnit>
- <useConference type="bool">False</useConference>
- <_gbUseConference type="bool">False</_gbUseConference>
- <rotationScheme type="int">0</rotationScheme>
- <confVideoDuration type="int">1</confVideoDuration>
- <confVideoDurationUnit type="int">1</confVideoDurationUnit>
- <confDuration type="int">1</confDuration>
- <confDurationUnit type="int">1</confDurationUnit>
- <btnTelepresence type="bool">False</btnTelepresence>
- <_gbUseTelepresence type="bool">False</_gbUseTelepresence>
- <tipSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoTelepresenceSettings">
- <tipEndpointType type="int">1</tipEndpointType>
- <tipResolution type="int">1</tipResolution>
- <tipVersion type="int">1</tipVersion>
- <tipSyntheticPayload type="bool">False</tipSyntheticPayload>
- <tipMoreClips type="bool">False</tipMoreClips>
- <_gbTipMoreClips type="int">0</_gbTipMoreClips>
- <tipVideoClip2 type="str">Fire_avc.mp4</tipVideoClip2>
- <tipRotationScheme type="int">0</tipRotationScheme>
- <tipConfDuration type="int">1</tipConfDuration>
- <tipConfDurationUnit type="int">1</tipConfDurationUnit>
- <tipAudioDuration type="int">1</tipAudioDuration>
- <tipAudioDurationUnit type="int">1</tipAudioDurationUnit>
- <_gbTipPresentation type="bool">False</_gbTipPresentation>
- <tipUsePresentationStream type="bool">False</tipUsePresentationStream>
- <tipVideoClip type="str">Fire_avc.mp4</tipVideoClip>
- <tipAudioClip type="str">US_042.wav</tipAudioClip>
- <tipStartAfter type="int">1</tipStartAfter>
- <tipStartAfterUnit type="int">1</tipStartAfterUnit>
- <tipDuration type="int">1</tipDuration>
- <tipDurationUnit type="int">1</tipDurationUnit>
- <tipPresentationRotation type="int">0</tipPresentationRotation>
- <tipLegacyMode type="bool">False</tipLegacyMode>
- <_gbTipLegacy type="int">0</_gbTipLegacy>
- <tipLegacyClip type="str">Fire_avc.mp4</tipLegacyClip>
- <tipLegacyModeAudio type="bool">False</tipLegacyModeAudio>
- <_gbTipLegacyAudio type="int">0</_gbTipLegacyAudio>
- <tipLegacyClipAudio type="str">US_042.wav</tipLegacyClipAudio>
- <tipG722Legacy type="bool">False</tipG722Legacy>
- <tipAudioActivityMetric type="bool">False</tipAudioActivityMetric>
- <tipDinamicChannels type="bool">False</tipDinamicChannels>
- <tipVideoRefresh type="bool">False</tipVideoRefresh>
- <tipInbandSets type="bool">False</tipInbandSets>
- <tipArithmetingCoding type="bool">False</tipArithmetingCoding>
- <tipLTRP type="bool">False</tipLTRP>
- <tipGDR type="bool">False</tipGDR>
- <tipHighProfile type="bool">False</tipHighProfile>
- <tipUnrestrictedMedia type="bool">False</tipUnrestrictedMedia>
- <tipRtcpFeedback type="bool">True</tipRtcpFeedback>
- </tipSettings>
- <_gbTosVideo type="bool">False</_gbTosVideo>
- <enableTosVideo type="bool">False</enableTosVideo>
- <tosVideo type="int">1</tosVideo>
- <customTosVideo type="str">0x20</customTosVideo>
- <_gbCustomTosVideo type="bool">False</_gbCustomTosVideo>
- <tosValVideo type="int">32</tosValVideo>
- <useMosVideo type="bool">False</useMosVideo>
- <enableAcceptSSRCChanges type="bool">False</enableAcceptSSRCChanges>
- <ignoreHintTrack type="bool">False</ignoreHintTrack>
- <hintTrackType type="int">1</hintTrackType>
- <enablePACSI type="bool">True</enablePACSI>
- <useSingleNALUnit type="bool">False</useSingleNALUnit>
- <_gbH323AdvancedSettings type="bool">False</_gbH323AdvancedSettings>
- <useH323AdvancedSettings type="bool">False</useH323AdvancedSettings>
- <_gbUseH323AdvancedSettings type="bool">False</_gbUseH323AdvancedSettings>
- <rtpmap type="str"></rtpmap>
- <fmtp type="str"></fmtp>
- <isMP4 type="bool">False</isMP4>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">hintTrackType</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">videoMaxSessions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useSingleNALUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useConference</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">playTypeVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseH323AdvancedSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">isMP4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosValVideo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePACSI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_videoFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseTelepresence</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableVideoOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fmtp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUseConference</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbH323AdvancedSettings</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTosVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTosVideo</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreHintTrack</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAcceptSSRCChanges</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useH323AdvancedSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">videoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rtpmap</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableVideo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">btnTelepresence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useMosVideo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoSettings>
- <videoConfSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoConfSettings">
- <rotationScheme type="int">0</rotationScheme>
- <_gbRotationScheme type="int">0</_gbRotationScheme>
- <confVideoDuration type="int">0</confVideoDuration>
- <confVideoDurationUnit type="int">0</confVideoDurationUnit>
- <confDuration type="int">0</confDuration>
- <confDurationUnit type="int">0</confDurationUnit>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">rotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">confDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbRotationScheme</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">confVideoDuration</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoConfSettings>
- <videoTelepresenceSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_VideoTelepresenceSettings">
- <tipEndpointType type="int">0</tipEndpointType>
- <tipResolution type="int">0</tipResolution>
- <tipVersion type="int">0</tipVersion>
- <tipSyntheticPayload type="bool">False</tipSyntheticPayload>
- <tipMoreClips type="bool">False</tipMoreClips>
- <_gbTipMoreClips type="int">0</_gbTipMoreClips>
- <tipVideoClip2 type="str">Fire_avc.mp4</tipVideoClip2>
- <tipRotationScheme type="int">0</tipRotationScheme>
- <tipConfDuration type="int">0</tipConfDuration>
- <tipConfDurationUnit type="int">0</tipConfDurationUnit>
- <tipAudioDuration type="int">0</tipAudioDuration>
- <tipAudioDurationUnit type="int">0</tipAudioDurationUnit>
- <_gbTipPresentation type="bool">False</_gbTipPresentation>
- <tipUsePresentationStream type="bool">False</tipUsePresentationStream>
- <tipVideoClip type="str">Fire_avc.mp4</tipVideoClip>
- <tipAudioClip type="str">US_042.wav</tipAudioClip>
- <tipStartAfter type="int">0</tipStartAfter>
- <tipStartAfterUnit type="int">0</tipStartAfterUnit>
- <tipDuration type="int">0</tipDuration>
- <tipDurationUnit type="int">0</tipDurationUnit>
- <tipPresentationRotation type="int">0</tipPresentationRotation>
- <tipLegacyMode type="bool">False</tipLegacyMode>
- <_gbTipLegacy type="int">0</_gbTipLegacy>
- <tipLegacyClip type="str">Fire_avc.mp4</tipLegacyClip>
- <tipLegacyModeAudio type="bool">False</tipLegacyModeAudio>
- <_gbTipLegacyAudio type="int">0</_gbTipLegacyAudio>
- <tipLegacyClipAudio type="str">US_042.wav</tipLegacyClipAudio>
- <tipG722Legacy type="bool">False</tipG722Legacy>
- <tipAudioActivityMetric type="bool">False</tipAudioActivityMetric>
- <tipDinamicChannels type="bool">False</tipDinamicChannels>
- <tipVideoRefresh type="bool">False</tipVideoRefresh>
- <tipInbandSets type="bool">False</tipInbandSets>
- <tipArithmetingCoding type="bool">False</tipArithmetingCoding>
- <tipLTRP type="bool">False</tipLTRP>
- <tipGDR type="bool">False</tipGDR>
- <tipHighProfile type="bool">False</tipHighProfile>
- <tipUnrestrictedMedia type="bool">False</tipUnrestrictedMedia>
- <tipRtcpFeedback type="bool">True</tipRtcpFeedback>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tipDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipRotationScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyMode</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipLegacyClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoRefresh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipUsePresentationStream</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipGDR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipStartAfterUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipArithmetingCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipLegacyAudio</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipConfDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipConfDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipG722Legacy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyClipAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipMoreClips</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipInbandSets</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipSyntheticPayload</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipVideoClip2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioDurationUnit</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipResolution</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipVideoClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipLegacyClipAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioDuration</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipLegacyModeAudio</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipPresentation</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipHighProfile</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipRtcpFeedback</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipVideoClip2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipMoreClips</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipDinamicChannels</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipEndpointType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTipLegacy</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tipLTRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipStartAfter</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tipAudioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipPresentationRotation</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipAudioActivityMetric</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tipUnrestrictedMedia</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </videoTelepresenceSettings>
- <textSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TextSettings">
- <enableText type="bool">False</enableText>
- <enableTextOWD type="bool">False</enableTextOWD>
- <_gbEnableText type="bool">False</_gbEnableText>
- <textClip type="str">The quick brown fox jumps over the lazy dog</textClip>
- <textFormat type="str">Format: t140, Max duration: 42300 ms</textFormat>
- <textChpsMin type="float">1.0</textChpsMin>
- <textChpsMax type="float">1.0</textChpsMax>
- <textBufferTime type="int">300</textBufferTime>
- <textRedundancyLevel type="int">0</textRedundancyLevel>
- <textPlayType type="int">0</textPlayType>
- <textDuration type="int">5</textDuration>
- <textDurationUnit type="int">1</textDurationUnit>
- <_gbTosText type="bool">False</_gbTosText>
- <enableTosText type="bool">False</enableTosText>
- <tosText type="int">1</tosText>
- <customTosText type="str">0x20</customTosText>
- <_gbCustomTosText type="bool">False</_gbCustomTosText>
- <tosValText type="int">32</tosValText>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tosValText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textClip</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">customTosText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textChpsMin</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textRedundancyLevel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textChpsMax</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textBufferTime</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textDuration</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTextOWD</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTosText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableText</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textPlayType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTosText</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">enableTosText</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">textFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">textDurationUnit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tosText</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </textSettings>
- <t38Settings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_T38Settings">
- <enableT38 type="bool">False</enableT38>
- <_gbEnableT38 type="bool">False</_gbEnableT38>
- <_gbEnableT38_2 type="bool">False</_gbEnableT38_2>
- <faxImage type="str">Ixia2Pages.tif</faxImage>
- <_faxFormat type="str">Format: TIFF, Img size: 1660 x 2291, Size: 140402 bytes</_faxFormat>
- <t38TransportType type="int">1</t38TransportType>
- <t38Port type="str">40000</t38Port>
- <t38UdpEncapsulation type="int">0</t38UdpEncapsulation>
- <_gbT38UdpEncapsulation type="bool">False</_gbT38UdpEncapsulation>
- <t38PayloadType type="int">102</t38PayloadType>
- <useFaxVersion type="bool">True</useFaxVersion>
- <faxVersion type="int">0</faxVersion>
- <useT38MaxBitrate type="bool">True</useT38MaxBitrate>
- <t38MaxBitrate type="int">5</t38MaxBitrate>
- <useT38RateMgmt type="bool">True</useT38RateMgmt>
- <t38RateMgmt type="int">0</t38RateMgmt>
- <useT38FillBitRemoval type="bool">False</useT38FillBitRemoval>
- <t38FillBitRemoval type="int">0</t38FillBitRemoval>
- <t38TranscodingMMR type="bool">False</t38TranscodingMMR>
- <t38TranscodingJBIG type="bool">False</t38TranscodingJBIG>
- <_gbUdpOptions type="bool">False</_gbUdpOptions>
- <useErrorRecoverySchema type="bool">True</useErrorRecoverySchema>
- <errorRecoverySchema type="int">0</errorRecoverySchema>
- <useT38MaxDatagramSize type="bool">True</useT38MaxDatagramSize>
- <t38MaxDatagramSize type="int">256</t38MaxDatagramSize>
- <useT38MaxBufferSize type="bool">False</useT38MaxBufferSize>
- <t38MaxBufferSize type="int">200</t38MaxBufferSize>
- <imagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_T38Settings_imagesList" itemtype="ixConfig"/>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">t38TranscodingMMR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38UdpEncapsulation</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxBitrate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38RateMgmt</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38TranscodingJBIG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableT38</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38TransportType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableT38_2</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableT38</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">t38Port</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38FillBitRemoval</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">faxVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38FillBitRemoval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38RateMgmt</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">faxImage</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxBufferSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">errorRecoverySchema</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxDatagramSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxBufferSize</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_faxFormat</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38PayloadType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useT38MaxDatagramSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t38MaxBitrate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useFaxVersion</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbUdpOptions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbT38UdpEncapsulation</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">imagesList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useErrorRecoverySchema</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </t38Settings>
- <t30Parameters ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_T30Parameters">
- <t30StationId type="str">5551[000-]</t30StationId>
- <t30SendCoding type="int">0</t30SendCoding>
- <t30SendDataRate type="int">5</t30SendDataRate>
- <t30SendPageSize type="int">0</t30SendPageSize>
- <t30SendMSLT type="int">0</t30SendMSLT>
- <t30SendProtocol type="int">1</t30SendProtocol>
- <t30SendResolution type="int">0</t30SendResolution>
- <sendCNG type="int">1</sendCNG>
- <t30ReceiveCoding type="int">2</t30ReceiveCoding>
- <t30ReceivePageSize type="int">2</t30ReceivePageSize>
- <t30ReceiveMSLT type="int">0</t30ReceiveMSLT>
- <t30ReceiveProtocol type="int">1</t30ReceiveProtocol>
- <t30ReceiveR8x3 type="bool">True</t30ReceiveR8x3>
- <t30ReceiveR8x7 type="bool">True</t30ReceiveR8x7>
- <t30ReceiveR8x15 type="bool">True</t30ReceiveR8x15>
- <t30Receive200x200 type="bool">True</t30Receive200x200>
- <t30ReceiveModulations type="int">3</t30ReceiveModulations>
- <sendCedBeforeDIS type="int">1</sendCedBeforeDIS>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">t30SendResolution</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sendCedBeforeDIS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x7</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendPageSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x3</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveProtocol</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">sendCNG</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendProtocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveMSLT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendMSLT</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30SendDataRate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceivePageSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveModulations</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveR8x15</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30StationId</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30ReceiveCoding</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">t30Receive200x200</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </t30Parameters>
- <msrpSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPSettings">
- <enableMSRP type="bool">False</enableMSRP>
- <_gbEnableMSRP type="bool">False</_gbEnableMSRP>
- <msrpPort type="str">2855</msrpPort>
- <domainType type="int">0</domainType>
- <localDomain type="str">alice[00-99].example.com</localDomain>
- <relays ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_relays" itemtype="ixConfig"/>
- <relaysCount type="int">0</relaysCount>
- <firstRelayIpEnabled type="bool">False</firstRelayIpEnabled>
- <firstRelayIp type="str">10.10.10.1</firstRelayIp>
- <firstRelayIsIPv4 type="bool">True</firstRelayIsIPv4>
- <msrpRelayPort type="int">2855</msrpRelayPort>
- <enableMSRPTos type="bool">False</enableMSRPTos>
- <msrpTos type="int">0</msrpTos>
- <customMSRPTos type="str">0x00</customMSRPTos>
- <tosMSRPVal type="int">0</tosMSRPVal>
- <automaticMSRPAuth type="bool">True</automaticMSRPAuth>
- <msrpReuseTCP type="bool">True</msrpReuseTCP>
- <msrpSendEmptyMsg type="bool">False</msrpSendEmptyMsg>
- <msrpTransactionTimeout type="int">30000</msrpTransactionTimeout>
- <msrpFirstChunkTimeout type="int">60000</msrpFirstChunkTimeout>
- <msrpInterChunkTimeout type="int">30000</msrpInterChunkTimeout>
- <msrpSessionTimeout type="int">70000</msrpSessionTimeout>
- <msrpGuiFiles ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_msrpGuiFiles" itemtype="ixConfig"/>
- <files ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_MSRPSettings_files" itemtype="ixConfig"/>
- <filesCount type="int">0</filesCount>
- <advSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings">
- <closeTCPConnectionAfterBye type="bool">False</closeTCPConnectionAfterBye>
- </advSettings>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">customMSRPTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">filesCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIpEnabled</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">automaticMSRPAuth</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpSendEmptyMsg</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpTransactionTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpInterChunkTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tosMSRPVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableMSRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">localDomain</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">relaysCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">domainType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">advSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">files</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpFirstChunkTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">firstRelayIsIPv4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbMSRPCustomTos</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">msrpSessionTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableMSRP</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableMSRPTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpReuseTCP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpGuiFiles</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpTos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">relays</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msrpRelayPort</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </msrpSettings>
- <_tempFile ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_FileRecord">
- <synthetic type="int">0</synthetic>
- <_typeStr type="str"></_typeStr>
- <name type="str"></name>
- <nameSynthetic type="str"></nameSynthetic>
- <fileClientPath type="str"></fileClientPath>
- <filePcpuPath type="str"></filePcpuPath>
- <_bFileSize type="int">20</_bFileSize>
- <_msrpSizeCombo type="int">2</_msrpSizeCombo>
- <size type="int">0</size>
- <btnMSRPFileBrowse type="int">0</btnMSRPFileBrowse>
- <type type="str">application/octet-stream</type>
- <fileHash type="str"></fileHash>
- </_tempFile>
- <_tempAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MSRPAdvancedSettings">
- <closeTCPConnectionAfterBye type="bool">False</closeTCPConnectionAfterBye>
- </_tempAdvSettings>
- <phoneBookInputLabel ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_PhoneBookInputLabel">
- <label type="str">5</label>
- </phoneBookInputLabel>
- <akaConfigurationInputLabel ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AKAConfigurationInputLabel">
- <configurationLabel type="str"></configurationLabel>
- </akaConfigurationInputLabel>
- <phoneBook ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_PhoneBook">
- <fromFile type="int">0</fromFile>
- <pattern type="str">201004[0000-]</pattern>
- <filePath type="str"></filePath>
- <_PN1 type="bool">False</_PN1>
- <_bTelGrp type="bool">False</_bTelGrp>
- <ckTelURIBook type="bool">False</ckTelURIBook>
- <_bkTelURIparams type="str">phone-context=example.com</_bkTelURIparams>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">phoneBookList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">filePath</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">pattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ckTelURIBook</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_bkTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_PN1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_bTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fromFile</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </phoneBook>
- <akaConfiguration ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AKAConfiguration"/>
- <milenageConfiguration ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MilenageConfiguration"/>
- <msgBox ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_MsgBox">
- <msg1 type="str"></msg1>
- <msg2 type="str"></msg2>
- </msgBox>
- <editCloudRule ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditCloudRule">
- <_gbStep1 type="bool">False</_gbStep1>
- <requestList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_requestList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ANY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INVITE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">BYE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CANCEL</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">OPTIONS</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REGISTER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">NOTIFY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">SUBSCRIBE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REFER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">MESSAGE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">PRACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INFO</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">UPDATE</str>
- </item>
- </requestList>
- <reqList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_reqList" itemtype="ixConfig"/>
- <_gbStep2 type="bool">False</_gbStep2>
- <what type="int">2</what>
- <reqLine type="int">1</reqLine>
- <headerTypeList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditCloudRule_headerTypeList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">From</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Contact</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Also</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Call-ID</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Length</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Type</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Event</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authenticate</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RAck</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Record-Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Refer-To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Referred-By</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Replaces</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Subscription-State</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Via</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">WWW-Authenticate</str>
- </item>
- </headerTypeList>
- <headerType type="str">To</headerType>
- <compactForm type="str">t</compactForm>
- <occurFrom type="str">1</occurFrom>
- <occurTo type="str">1</occurTo>
- <whatExtract type="int">3</whatExtract>
- <extractHeaderName type="bool">False</extractHeaderName>
- <paramName type="str"></paramName>
- <revHeaderOrder type="bool">False</revHeaderOrder>
- <keepHeaderCrlf type="bool">False</keepHeaderCrlf>
- <_gbStep3 type="bool">False</_gbStep3>
- <usePosition type="int">0</usePosition>
- <beginAfter type="bool">False</beginAfter>
- <afterStr type="str">&lt;</afterStr>
- <afterOccur type="str">1</afterOccur>
- <endBefore type="bool">False</endBefore>
- <endStr type="str">&gt;</endStr>
- <endOccur type="str">last</endOccur>
- <positionFrom type="str">1</positionFrom>
- <positionTo type="str">last</positionTo>
- <_gbStep4 type="bool">False</_gbStep4>
- <formulaSource type="int">0</formulaSource>
- <formula type="str"></formula>
- <phoneBookPath type="str"></phoneBookPath>
- <phoneBookDodPath type="str"></phoneBookDodPath>
- <btnPBBrowse type="int">0</btnPBBrowse>
- </editCloudRule>
- <cloudRules ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CloudRules">
- <rulesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_CloudRules_rulesList" itemtype="ixConfig"/>
- <cloudPhoneBooksAbsolutePath type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</cloudPhoneBooksAbsolutePath>
- </cloudRules>
- <cloudServers ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_VoIP_cloudServers" itemtype="ixConfig"/>
- <transferAddress ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TransferAddress">
- <symTransferStr type="str">None</symTransferStr>
- <overridePhoneNo type="bool">False</overridePhoneNo>
- <_useTPb type="int">0</_useTPb>
- <_tBp type="str">&lt;None&gt;</_tBp>
- <_tBpPrv type="str"></_tBpPrv>
- <_tPhone type="str">150[00000000-]</_tPhone>
- <tPhoneType type="int">0</tPhoneType>
- <tPhone type="str">150[00000000-]</tPhone>
- <_tTelGrp type="bool">False</_tTelGrp>
- <_ckTTelURIParams type="bool">False</_ckTTelURIParams>
- <_tTelURIparams type="str">phone-context=example.com</_tTelURIparams>
- <transTelPar type="str"></transTelPar>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_tBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overridePhoneNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useTPb</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">transTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckTTelURIParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">symTransferStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_tBp</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </transferAddress>
- <editContact ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditContact">
- <useDomainName type="int">0</useDomainName>
- <domainName type="str">mysipdomain.ixiacom.com</domainName>
- <_useEPb type="int">0</_useEPb>
- <_eBp type="str">&lt;None&gt;</_eBp>
- <_eBpPrv type="str"></_eBpPrv>
- <_ePhone type="str">160[00000000-]</_ePhone>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <_eTelGrp type="bool">False</_eTelGrp>
- <_ckETelURI type="bool">False</_ckETelURI>
- <_eTelURIparams type="str">phone-context=example.com</_eTelURIparams>
- <editTelPar type="str"></editTelPar>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_useEPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">domainName</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_eBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_eTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useDomainName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">editTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckETelURI</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </editContact>
- <dialPlan ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_DialPlan">
- <sourceIPs type="str"></sourceIPs>
- <_useSPb type="int">0</_useSPb>
- <_sBp type="str">&lt;None&gt;</_sBp>
- <_sBpPrv type="str"></_sBpPrv>
- <_sPhone type="str">{{pncalling}}</_sPhone>
- <srcPhoneType type="int">0</srcPhoneType>
- <srcPhone type="str">{{pncalling}}</srcPhone>
- <_sTelGrp type="bool">False</_sTelGrp>
- <_ckSTelURIParams type="bool">False</_ckSTelURIParams>
- <_sTelURIparams type="str">phone-context=example.com</_sTelURIparams>
- <srcTelPar type="str"></srcTelPar>
- <_sTelGrp1 type="bool">False</_sTelGrp1>
- <_dTelGrp1 type="bool">False</_dTelGrp1>
- <symDestStr type="str">VoIP2_CALLED:{{sipportcalled}}</symDestStr>
- <ovrDestPhone type="bool">True</ovrDestPhone>
- <_useDPb type="int">0</_useDPb>
- <_dBp type="str">&lt;None&gt;</_dBp>
- <_dBpPrv type="str"></_dBpPrv>
- <_dPhone type="str">{{pncalled}}</_dPhone>
- <destPhoneType type="int">0</destPhoneType>
- <destPhone type="str">{{pncalled}}</destPhone>
- <_dTelGrp type="bool">False</_dTelGrp>
- <_ckDTelURIParams type="bool">False</_ckDTelURIParams>
- <_dTelURIparams type="str">phone-context=example.com</_dTelURIparams>
- <destTelPar type="str"></destTelPar>
- <enableEmergencyCalls type="bool">False</enableEmergencyCalls>
- <useAnonymous type="bool">False</useAnonymous>
- <makeEmergencyReg type="bool">False</makeEmergencyReg>
- <emergencyService type="str">sos</emergencyService>
- <emergencyServiceList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_DialPlan_emergencyServiceList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.ambulance</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.fire</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">sos.police</str>
- </item>
- </emergencyServiceList>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_useSPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelGrp1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sourceIPs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableEmergencyCalls</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_sPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useAnonymous</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">symDestStr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergencyDest</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_sBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">makeEmergencyReg</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">destPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcTelPar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergencySource</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_ckSTelURIParams</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_dBp</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDestPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelGrp1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">emergencyServiceList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_dPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcPhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEmergency</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelURIparams</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_UseSrv1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srcPhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sBpPrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_sTelGrp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">emergencyService</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useDPb</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ckDTelURIParams</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </dialPlan>
- <signalingSettings ver="[1, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SignalingSettings">
- <enableSIP type="bool">True</enableSIP>
- <port type="str">{{sipportcalling}}</port>
- <tcpWriteImmediate type="bool">False</tcpWriteImmediate>
- <fqdn type="bool">False</fqdn>
- <realm type="str"></realm>
- <user type="str">{{pncalling}}@{{domainname}}</user>
- <passwd type="str">{{authpassword}}</passwd>
- <akaConfCombo type="str">&lt;None&gt;</akaConfCombo>
- <akaConfComboSelIndex type="int">0</akaConfComboSelIndex>
- <akaSharedSecretType type="int">0</akaSharedSecretType>
- <akaOperatorVariantType type="int">0</akaOperatorVariantType>
- <akaSharedSecretSequence type="str">ixia</akaSharedSecretSequence>
- <akaAbsolutePath type="str">C:\Users\asordo\Documents\__Customers\Orange\OPNFV2_Lannion</akaAbsolutePath>
- <akaOperatorVariantSequence type="str">ixia</akaOperatorVariantSequence>
- <akaSharedSecretSource type="int">0</akaSharedSecretSource>
- <akaOperatorVariantSource type="int">0</akaOperatorVariantSource>
- <akaExportComplete type="int">0</akaExportComplete>
- <akaUseOPasOPC type="bool">False</akaUseOPasOPC>
- <milenageConfCombo type="str">&lt;Default&gt;</milenageConfCombo>
- <milenage_c1 type="str">00000000000000000000000000000000</milenage_c1>
- <milenage_c2 type="str">00000000000000000000000000000001</milenage_c2>
- <milenage_c3 type="str">00000000000000000000000000000002</milenage_c3>
- <milenage_c4 type="str">00000000000000000000000000000004</milenage_c4>
- <milenage_c5 type="str">00000000000000000000000000000008</milenage_c5>
- <milenage_r1 type="int">64</milenage_r1>
- <milenage_r2 type="int">0</milenage_r2>
- <milenage_r3 type="int">32</milenage_r3>
- <milenage_r4 type="int">64</milenage_r4>
- <milenage_r5 type="int">96</milenage_r5>
- <enableTos type="bool">False</enableTos>
- <tos type="int">0</tos>
- <customSipTos type="str">0x00</customSipTos>
- <tosVal type="int">0</tosVal>
- <ovrTrans type="bool">False</ovrTrans>
- <ovrTransOption type="int">0</ovrTransOption>
- <useServer type="bool">True</useServer>
- <srvAddr type="str">{{iplistims}}</srvAddr>
- <srvPort type="str">5060</srvPort>
- <srvDomain type="str">{{domainname}}</srvDomain>
- <outboundProxy type="bool">False</outboundProxy>
- <useDnsSrv type="bool">False</useDnsSrv>
- <registrarSrv type="bool">True</registrarSrv>
- <autoRegister type="bool">True</autoRegister>
- <overrideRegistrar type="bool">False</overrideRegistrar>
- <overrideRegistrarAddress type="str">IP:PORT</overrideRegistrarAddress>
- <ovrContact type="bool">False</ovrContact>
- <ovrDest type="bool">True</ovrDest>
- <ovrDestHostPort type="str">{{domainname}}</ovrDestHostPort>
- <nUdpMaxSize type="int">2048</nUdpMaxSize>
- <enableSigComp type="bool">False</enableSigComp>
- <telURISource type="bool">False</telURISource>
- <telURIDest type="bool">False</telURIDest>
- <securityMechanismValList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SignalingSettings_securityMechanismValList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SecurityMechanismVal">
- <checked type="bool">False</checked>
- <mechanism type="str">ipsec-3gpp</mechanism>
- <algorithm type="int">0</algorithm>
- <algorithmStr type="str">hmac-sha-1-96</algorithmStr>
- <protocol type="int">0</protocol>
- <protocolStr type="str">esp</protocolStr>
- <mode type="int">0</mode>
- <modeStr type="str">trans</modeStr>
- <encrypt_algorithm type="int">0</encrypt_algorithm>
- <encrypt_algorithmStr type="str">aes-cbc</encrypt_algorithmStr>
- <spi_start_idx type="int">255</spi_start_idx>
- <port_c type="str">[3000-4000]</port_c>
- <port_s type="str">4060</port_s>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">protocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">encrypt_algorithmStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">algorithm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">modeStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">protocolStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mechanism</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">algorithmStr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">mode</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port_s</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">port_c</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">spi_start_idx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">encrypt_algorithm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- </securityMechanismValList>
- <useIPSecDoubleSPIPatch type="bool">False</useIPSecDoubleSPIPatch>
- <enablePeriodicDNSQueries type="bool">False</enablePeriodicDNSQueries>
- <DNSTimeoutValue type="int">60</DNSTimeoutValue>
- <skipDeleteDNSRecordsAtLoopEnd type="bool">False</skipDeleteDNSRecordsAtLoopEnd>
- <enableVoLTE type="bool">False</enableVoLTE>
- <mediaBearerType type="int">0</mediaBearerType>
- <enableCCDedicatedBearer type="bool">True</enableCCDedicatedBearer>
- <volte_grbox type="bool">False</volte_grbox>
- <_enableAutoHeaders type="bool">False</_enableAutoHeaders>
- <_btnAutoHeaders type="bool">False</_btnAutoHeaders>
- <dontEndMediaOnBye type="bool">False</dontEndMediaOnBye>
- <closeTCPConnectionsOnRampdown type="bool">False</closeTCPConnectionsOnRampdown>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbSrvSettings</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_btnAutoHeaders</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpWriteImmediate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableAutoHeaders</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSIP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fqdn</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretSource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenageConfCombo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c5</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaConfCombo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_UseSrv1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideRegistrar</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">port</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">registrarSrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r5</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_r1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tos</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">user</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantSource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">telURISource</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useServer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">nUdpMaxSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmit1xx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvDomain</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_btnEditContact1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">telURIDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enablePeriodicDNSQueries</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useIPSecDoubleSPIPatch</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">securityMechanismValList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">skipDeleteDNSRecordsAtLoopEnd</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideRegistrarAddress</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvAddr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrDestHostPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">DNSTimeoutValue</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tosVal</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">passwd</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoRegister</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSigComp</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">akaOperatorVariantSequence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableVoLTE</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmitACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaSharedSecretSequence</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">volte_grbox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">customSipTos</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">dontEndMediaOnBye</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">realm</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaExportComplete</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">mediaBearerType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbPeriodicDNSQuery</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">milenage_c1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaUseOPasOPC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ovrDest1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">outboundProxy</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">closeTCPConnectionsOnRampdown</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrContact</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaAbsolutePath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serverAddresses</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableCCDedicatedBearer</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">akaConfComboSelIndex</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbCustomTos</item>
- <item ref="4"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTrans</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useDnsSrv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTransOption</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSIP2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableSIP1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">srvPort</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </signalingSettings>
- <timerSettings ver="[2, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TimerSettings">
- <enableTimers type="bool">True</enableTimers>
- <expirationValList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TimerSettings_expirationValList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">REGISTER</message>
- <msgPart type="int">0</msgPart>
- <msgPartStr type="str">Expires Header(s)</msgPartStr>
- <value type="int">3600</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">INVITE</message>
- <msgPart type="int">2</msgPart>
- <msgPartStr type="str">Session-Expire(s)</msgPartStr>
- <value type="int">90</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ExpirationVal">
- <checked type="bool">True</checked>
- <message type="str">UPDATE</message>
- <msgPart type="int">2</msgPart>
- <msgPartStr type="str">Session-Expire(s)</msgPartStr>
- <value type="int">90</value>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">message</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">msgPart</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">checked</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">value</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">msgPartStr</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </item>
- </expirationValList>
- <sessionRefreshType type="int">1</sessionRefreshType>
- <refreshAfterSecs type="int">3000</refreshAfterSecs>
- <refreshAfterPercent type="int">50</refreshAfterPercent>
- <refreshInSecs type="int">32</refreshInSecs>
- <enableRetransmissions type="bool">False</enableRetransmissions>
- <T1 type="int">500</T1>
- <T2 type="int">4000</T2>
- <ignoreRetransmissions type="bool">True</ignoreRetransmissions>
- <retransmitACK type="bool">True</retransmitACK>
- <stopActiveRetr type="bool">True</stopActiveRetr>
- <retransmit1xx type="bool">False</retransmit1xx>
- <ovrTimeout type="bool">False</ovrTimeout>
- <minInterReregister type="int">0</minInterReregister>
- <autoEndCall2 type="bool">False</autoEndCall2>
- <enableAutoPRACK type="bool">False</enableAutoPRACK>
- <rprSendNegotiatedSDP type="bool">False</rprSendNegotiatedSDP>
- <rprTimeUntilNextRPR type="int">150</rprTimeUntilNextRPR>
- <rprScenarioHasPRACK type="bool">False</rprScenarioHasPRACK>
- <auto4xx type="bool">False</auto4xx>
- <auto4xxAbort type="bool">False</auto4xxAbort>
- <autoProcedureList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TimerSettings_autoProcedureList" itemtype="ixConfig"/>
- <autoProceduresCount type="int">0</autoProceduresCount>
- <procListChanged type="bool">True</procListChanged>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">btnRefreshProcList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoEndCall</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreRetransmissions</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">minInterReregister</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoEndCall2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTimers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshInSecs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">retransmit1xx</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbEnableTimers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrTimeout</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sessionRefreshType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">auto4xx</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">retransmitACK</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">procListChanged</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">T2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">autoProcedureList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbAutoPRACK</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">T1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshAfterPercent</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableAutoPRACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stopActiveRetr</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableRetransmissions</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rprTimeUntilNextRPR</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">rprScenarioHasPRACK</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">expirationValList</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">refreshAfterSecs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">autoProceduresCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">auto4xxAbort</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">rprSendNegotiatedSDP</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </timerSettings>
- <advancedSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AdvancedSettings">
- <useCloud type="bool">False</useCloud>
- <_useCloud1 type="bool">False</_useCloud1>
- <cloud type="str">&lt;None&gt;</cloud>
- <serverRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AdvancedSettings_serverRules" itemtype="ixConfig"/>
- <enableVirtualIPs type="bool">False</enableVirtualIPs>
- <virtualIPTable ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AdvancedSettings_virtualIPTable" itemtype="ixConfig"/>
- <ovrCloudRules type="bool">False</ovrCloudRules>
- <_ovrCloudRules1 type="bool">False</_ovrCloudRules1>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbVirtualIPs</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">useCloud</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ovrCloudRules</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_ovrCloudRules1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">cloud</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableVirtualIPs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">virtualIPTable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">serverRules</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_useCloud1</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </advancedSettings>
- <tlsSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsSettings">
- <enableTLS type="bool">False</enableTLS>
- <enableDTLS type="bool">False</enableDTLS>
- <enableTLS_MSRP type="bool">False</enableTLS_MSRP>
- <enableTLS_HTTP type="bool">False</enableTLS_HTTP>
- <_enableTLS1 type="bool">False</_enableTLS1>
- <_enableTLS2 type="bool">False</_enableTLS2>
- <_enableTLS3 type="bool">False</_enableTLS3>
- <tlsPort type="str">5061</tlsPort>
- <tlsProtocol type="int">3</tlsProtocol>
- <tlsSessionRefresh type="bool">False</tlsSessionRefresh>
- <_tlsSessionRefresh type="bool">False</_tlsSessionRefresh>
- <tlsRefreshInterval type="int">3600</tlsRefreshInterval>
- <tlsAuthClient type="int">0</tlsAuthClient>
- <tlsReuseConnection type="bool">False</tlsReuseConnection>
- <_tlsReuseConnection type="bool">False</_tlsReuseConnection>
- <ignoreSubjectAltName type="bool">False</ignoreSubjectAltName>
- <tlsMutual type="bool">False</tlsMutual>
- <_gbTlsMutual type="bool">False</_gbTlsMutual>
- <tlsCyphers ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_TlsSettings_tlsCyphers" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES128-GCM-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES256-GCM-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-RSA-AES128-GCM-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES256-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-ECDSA-AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">ECDHE-RSA-AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">AES128-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">True</enabled>
- <name type="str">AES256-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-ECDSA-AES256-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-ECDSA-AES128-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES256-GCM-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES128-SHA256</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">ECDHE-RSA-AES256-SHA384</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">DES-CBC3-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-RC2-CBC-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP-RC4-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP1024-DES-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">EXP1024-RC4-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">IDEA-CBC-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">NULL-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">NULL-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">RC4-MD5</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_TlsCyphers">
- <enabled type="bool">False</enabled>
- <name type="str">RC4-SHA</name>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">enabled</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">name</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </item>
- </tlsCyphers>
- <tlsCertificatesPath type="str">C:\Program Files (x86)\Ixia\IxLoad\8.20-EA\aptixia\data\SSL_Certificates</tlsCertificatesPath>
- <tlsPrivateKeyCertificate type="str">Unsecured_RSA_key_1024.pem</tlsPrivateKeyCertificate>
- <tlsPublicKeyCertificate type="str">Unsecured_RSA_cert_1024.pem</tlsPublicKeyCertificate>
- <tlsKeyType type="int">0</tlsKeyType>
- <tlsCertType type="int">0</tlsCertType>
- <tlsPassword type="str"></tlsPassword>
- <sipScheme type="int">0</sipScheme>
- <tlsTransportType type="int">0</tlsTransportType>
- <tlsDisableUdpAndTcp type="bool">True</tlsDisableUdpAndTcp>
- <tlsEnableTcpKeepAlive type="bool">False</tlsEnableTcpKeepAlive>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tlsCertType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPassword</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ignoreSubjectAltName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPrivateKeyCertificate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsTransportType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS_HTTP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsCyphers</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsProtocol</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsKeyType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tlsSessionRefresh</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tlsCertificatesPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsEnableTcpKeepAlive</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbTlsMutual</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tlsPublicKeyCertificate</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableCert</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsAuthClient</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsMutual</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS4</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS1</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS2</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_enableTLS3</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableDTLS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTLS_MSRP</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsReuseConnection</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsRefreshInterval</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsSessionRefresh</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tlsDisableUdpAndTcp</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">sipScheme</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_tlsReuseConnection</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </tlsSettings>
- <dtlsOptions ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_DtlsOptions">
- <dtlsRetry type="int">200</dtlsRetry>
- <dtlsTimeout type="int">30000</dtlsTimeout>
- <dtlsSessionTicket type="bool">False</dtlsSessionTicket>
- </dtlsOptions>
- <iceOptions ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_IceOptions">
- <iceRetryCount type="int">6</iceRetryCount>
- <iceInitialRetry type="int">100</iceInitialRetry>
- <iceTimeout type="int">30000</iceTimeout>
- </iceOptions>
- <otherSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_OtherSettings">
- <VOIP_Var0 type="str"></VOIP_Var0>
- <VOIP_Var1 type="str"></VOIP_Var1>
- <VOIP_Var2 type="str"></VOIP_Var2>
- <VOIP_Var3 type="str"></VOIP_Var3>
- <VOIP_Var4 type="str"></VOIP_Var4>
- <VOIP_IPAddress0 type="str"></VOIP_IPAddress0>
- <VOIP_IPAddress1 type="str"></VOIP_IPAddress1>
- <VOIP_IPAddress2 type="str"></VOIP_IPAddress2>
- <VOIP_IPAddress3 type="str"></VOIP_IPAddress3>
- <VOIP_IPAddress4 type="str"></VOIP_IPAddress4>
- <ipPreference type="int">0</ipPreference>
- <bUseHardcoded type="bool">False</bUseHardcoded>
- <_gbHardcodedForDemo type="bool">False</_gbHardcodedForDemo>
- <_gbStunSettings type="bool">False</_gbStunSettings>
- <bUseStun type="bool">False</bUseStun>
- <stunAddr type="str">127.0.0.1</stunAddr>
- <stunPort type="str">3478</stunPort>
- <bUseIce type="bool">False</bUseIce>
- <bIceLite type="bool">False</bIceLite>
- <_gbSRVCCSettings type="bool">False</_gbSRVCCSettings>
- <bUseSRVCC type="bool">False</bUseSRVCC>
- <mobilityPath type="str"></mobilityPath>
- <ddgGroupboxSRVCC type="bool">False</ddgGroupboxSRVCC>
- <PCO_Groupbox type="bool">False</PCO_Groupbox>
- <bUsePCO type="bool">False</bUsePCO>
- <_gbPCO type="bool">False</_gbPCO>
- <PCO_List type="str"></PCO_List>
- <useBHCA type="bool">False</useBHCA>
- <loadVariablesFromCsv type="bool">False</loadVariablesFromCsv>
- <pathForCsvWithVariables type="str"></pathForCsvWithVariables>
- <absolutePathForCsvWithVariables type="str"></absolutePathForCsvWithVariables>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">_gbIceSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">_gbPCO</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress4</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress0</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_IPAddress2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUseIce</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">mobilityPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var0</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbStunSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">PCO_List</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_gbSRVCCSettings</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">absolutePathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bIceLite</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">PCO_Groupbox</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">bUseHardcoded</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">bUseSRVCC</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useBHCA</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ipPreference</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnBrowseForVariableCsv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUsePCO</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stunPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">bUseStun</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">stunAddr</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ddgGroupboxSRVCC</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">_gbHardcodedForDemo</item>
- <item ref="2"/>
- </item>
- <item type="tuple">
- <item type="str">pathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">DodPathForCsvWithVariables</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">_varCsvGroupBox</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var1</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">loadVariablesFromCsv</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var3</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var2</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">VOIP_Var4</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </otherSettings>
- <smsSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSSettings">
- <enableSMS type="bool">False</enableSMS>
- <requestURI type="str">sc.home1.net</requestURI>
- <enableTelURI type="bool">False</enableTelURI>
- <telURI type="str">phone-context=example</telURI>
- <smscPhoneNo type="str">61814712345</smscPhoneNo>
- <smscTypeOfNo type="int">0</smscTypeOfNo>
- <smscNumberingPlan type="int">0</smscNumberingPlan>
- <enableSMOrigOverrideDest type="bool">False</enableSMOrigOverrideDest>
- <btnSMOrigEdit type="bool">False</btnSMOrigEdit>
- <enableSMOrigReqStatusReport type="bool">False</enableSMOrigReqStatusReport>
- <enableSMOrigReplyPath type="bool">False</enableSMOrigReplyPath>
- <smsAddressOriginator ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddressInfo">
- <phoneType type="bool">False</phoneType>
- <phoneValue type="str">160[00000000-]</phoneValue>
- <comboPhoneBookEntry type="str">&lt;None&gt;</comboPhoneBookEntry>
- </smsAddressOriginator>
- <smOrigTypeOfNo type="int">0</smOrigTypeOfNo>
- <smOrigNumberingPlan type="int">0</smOrigNumberingPlan>
- <enableSMRecipOverrideSrc type="bool">False</enableSMRecipOverrideSrc>
- <btnSMRecipEdit type="bool">False</btnSMRecipEdit>
- <enableSMRecipReqStatusReport type="bool">False</enableSMRecipReqStatusReport>
- <enableSMRecipReplyPath type="bool">False</enableSMRecipReplyPath>
- <smsAddressRecipient ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddressInfo">
- <phoneType type="bool">False</phoneType>
- <phoneValue type="str">160[00000000-]</phoneValue>
- <comboPhoneBookEntry type="str">&lt;None&gt;</comboPhoneBookEntry>
- </smsAddressRecipient>
- <smRecipTypeOfNo type="int">0</smRecipTypeOfNo>
- <smRecipNumberingPlan type="int">0</smRecipNumberingPlan>
- <depActivities ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SMSSettings_depActivities" itemtype="ixConfig"/>
- <useFilesFromActivity type="bool">False</useFilesFromActivity>
- <verifyUserInfo type="bool">False</verifyUserInfo>
- <smsImportFilesActivity type="str">None</smsImportFilesActivity>
- <smsActivityForFiles type="int">0</smsActivityForFiles>
- <pcpuCommonPath type="str"></pcpuCommonPath>
- <smsFiles ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_SMSSettings_smsFiles" itemtype="ixConfig"/>
- <smsFilesCount type="int">0</smsFilesCount>
- <grBoxSMServiceCenter type="bool">False</grBoxSMServiceCenter>
- <grBoxSMOriginator type="bool">False</grBoxSMOriginator>
- <grBoxSMRecipient type="bool">False</grBoxSMRecipient>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">smOrigNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFiles</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMS</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigReplyPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFilesCount</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSMRecipEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigReqStatusReport</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMRecipient</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipOverrideSrc</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMOriginator</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smsAddressOriginator</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">telURI</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">depActivities</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">pcpuCommonPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smOrigTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smRecipTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">requestURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsFilesBackup</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsAddressRecipient</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">useFilesFromActivity</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smRecipNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smscPhoneNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsImportFilesActivity</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipReplyPath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSMOrigEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smscNumberingPlan</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">duringLoadFromBackup</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMRecipReqStatusReport</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">grBoxSMServiceCenter</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">verifyUserInfo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">smscTypeOfNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">enableSMOrigOverrideDest</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">smsActivityForFiles</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsSettings>
- <smsFilesAdd ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSFilesAdd">
- <loadedFileType type="int">0</loadedFileType>
- <fileName type="str"></fileName>
- <ixSmsFileName type="str"></ixSmsFileName>
- <ixSmsFilePath type="str"></ixSmsFilePath>
- <segmentOrder type="str"></segmentOrder>
- <totalTpudSize type="str"></totalTpudSize>
- <segmentNo type="str">0</segmentNo>
- <comboCoding type="int">0</comboCoding>
- <comboRefNo type="int">0</comboRefNo>
- <contentViewEdit type="str"></contentViewEdit>
- <contentViewShow type="str"></contentViewShow>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">contentViewShow</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">ixSmsFilePath</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">contentViewEdit</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">segmentOrder</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboRefNo</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">loadedFileType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSmsLoadFiles</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ixSmsFileName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">btnSmsSaveAs</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fileName</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">segmentNo</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">totalTpudSize</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboCoding</item>
- <item ref="3"/>
- </item>
- </_dict>
- </state>
- </smsFilesAdd>
- <smsAddressOriginator ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddress">
- <radioBtnPhoneNo type="int">0</radioBtnPhoneNo>
- <comboPhoneBook type="str">&lt;None&gt;</comboPhoneBook>
- <phoneBookPreview type="str"></phoneBookPreview>
- <userPattern type="str">160[00000000-]</userPattern>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <fakeEnableTelURI type="bool">False</fakeEnableTelURI>
- <fakeTelURI type="str"></fakeTelURI>
- <fakeTelToPort type="str"></fakeTelToPort>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">userPattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneBookPreview</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeEnableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboPhoneBook</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelToPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnPhoneNo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsAddressOriginator>
- <smsAddressRecipient ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SMSAddress">
- <radioBtnPhoneNo type="int">0</radioBtnPhoneNo>
- <comboPhoneBook type="str">&lt;None&gt;</comboPhoneBook>
- <phoneBookPreview type="str"></phoneBookPreview>
- <userPattern type="str">160[00000000-]</userPattern>
- <ePhoneType type="int">0</ePhoneType>
- <ePhone type="str">160[00000000-]</ePhone>
- <fakeEnableTelURI type="bool">False</fakeEnableTelURI>
- <fakeTelURI type="str"></fakeTelURI>
- <fakeTelToPort type="str"></fakeTelToPort>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">userPattern</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">phoneBookPreview</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhoneType</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">ePhone</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeEnableTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">comboPhoneBook</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelToPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">fakeTelURI</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">radioBtnPhoneNo</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </smsAddressRecipient>
- <compatibility ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_Compatibility">
- <hasRtpChMapRules type="bool">True</hasRtpChMapRules>
- </compatibility>
- <editAutoHeaderRule ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_EditAutoHeaderRule">
- <defaultMessagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_defaultMessagesList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INVITE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">ACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">BYE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CANCEL</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">OPTIONS</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REGISTER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">NOTIFY</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">SUBSCRIBE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">REFER</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">MESSAGE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">PRACK</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">INFO</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">UPDATE</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">100 (Trying)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">180 (Ringing)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">181 (Call Is Being Forwarded)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">182 (Queued)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">183 (Session Progress)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">200 (OK)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">202 (Accepted)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">300 (Multiple Choices)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">301 (Moved Permanently)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">302 (Moved Temporarily)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">305 (Use Proxy)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">380 (Alternative Service)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">400 (Bad Request)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">401 (Unauthorized)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">402 (Payment Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">403 (Forbidden)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">404 (Not Found)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">405 (Method Not Allowed)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">406 (Not Acceptable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">407 (Proxy Authentication Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">408 (Request Timeout)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">410 (Gone)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">413 (Request Entity Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">414 (Request-URI Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">415 (Unsupported Media Type)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">416 (Unsupported URI Scheme)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">420 (Bad Extension)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">421 (Extension Required)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">423 (Interval Too Brief)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">480 (Temporarily not available)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">481 (Call Leg/Transaction Does Not Exist)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">482 (Loop Detected)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">483 (Too Many Hops)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">484 (Address Incomplete)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">485 (Ambiguous)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">486 (Busy Here)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">487 (Request Terminated)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">488 (Not Acceptable Here)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">491 (Request Pending)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">493 (Undecipherable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">500 (Internal Server Error)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">501 (Not Implemented)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">502 (Bad Gateway)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">503 (Service Unavailable)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">504 (Server Time-out)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">505 (SIP Version not supported)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">513 (Message Too Large)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">600 (Busy Everywhere)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">603 (Decline)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">604 (Does not exist anywhere)</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">606 (Not Acceptable)</str>
- </item>
- </defaultMessagesList>
- <messagesList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_messagesList" itemtype="ixConfig"/>
- <autoHeaderTypeList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_autoHeaderTypeList" itemtype="ixConfig">
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Request-Uri</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Via</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">From</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Call-ID</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">CSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Contact</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Content-Length</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Record-Route</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Proxy-Authorization</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Referred-By</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Replaces</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Event</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RAck</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">RSeq</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Refer-To</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Subscription-State</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">WWW-Authenticate</str>
- </item>
- <item ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_CString">
- <str type="str">Also</str>
- </item>
- </autoHeaderTypeList>
- <autoHeaderType type="str">To</autoHeaderType>
- <option type="int">0</option>
- <appendToUri type="bool">False</appendToUri>
- <headerValue type="str"></headerValue>
- <parsedHeader ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_EditAutoHeaderRule_parsedHeader" itemtype="ixConfig"/>
- <valid type="bool">True</valid>
- </editAutoHeaderRule>
- <autoHeadersSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_AutoHeadersSettings">
- <enableAutoHeaders type="bool">False</enableAutoHeaders>
- <tableRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_tableRules" itemtype="ixConfig"/>
- <reqAutoHeadRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_reqAutoHeadRules" itemtype="ixConfig"/>
- <respAutoHeadRules ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyGroupSequence_AutoHeadersSettings_respAutoHeadRules" itemtype="ixConfig"/>
- </autoHeadersSettings>
- <sipAdvSettings ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_SipAdvancedSettings">
- <overrideTCPLocalPort type="bool">False</overrideTCPLocalPort>
- <tcpLocalPortStart type="int">40000</tcpLocalPortStart>
- <tcpLocalPortEnd type="int">60000</tcpLocalPortEnd>
- <tcpLocalPortStep type="int">1</tcpLocalPortStep>
- <closeNonsecureTcpConnectionsEnable type="bool">False</closeNonsecureTcpConnectionsEnable>
- <closeIdleTcpConnectionsEnable type="bool">False</closeIdleTcpConnectionsEnable>
- <tcpIdlePeriod type="int">10</tcpIdlePeriod>
- <donotCloseTCPInsideCallEnable type="bool">False</donotCloseTCPInsideCallEnable>
- <recordingServerEnable type="bool">False</recordingServerEnable>
- <state ver="[0, [0, [0]]]" type="ixPropertyStateDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">tcpIdlePeriod</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpEndPortLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpIdlePeriodLabel</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">donotCloseTCPInsideCallEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">tcpPortStepLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortStep</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortEnd</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpStartPortLabel</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">tcpLocalPortStart</item>
- <item ref="3"/>
- </item>
- <item type="tuple">
- <item type="str">closeIdleTcpConnectionsEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">recordingServerEnable</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">overrideTCPLocalPort</item>
- <item ref="1"/>
- </item>
- <item type="tuple">
- <item type="str">closeNonsecureTcpConnectionsEnable</item>
- <item ref="1"/>
- </item>
- </_dict>
- </state>
- </sipAdvSettings>
- </pm>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">16382</_apiUniqueId>
- <uniqueID type="int">39</uniqueID>
- <commandIdCounter type="int">59</commandIdCounter>
- <networkPluginSettings ver="[0]" type="ixNetworkActivityPluginSupport">
- <serializedNetworkSettingsMap ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list"/>
- </serializedNetworkSettingsMap>
- <protocolName type="str">VoIP</protocolName>
- </networkPluginSettings>
- </item>
- </agentList>
- </traffic>
- <network ver="[17, [1, [6, [1, [0, [0]]]]]]" type="ixNetworkGroup">
- <resourceSyncTimeStamp type="NoneType">None</resourceSyncTimeStamp>
- <name type="str">VM1</name>
- <role type="str">Both</role>
- <networkType type="str">none</networkType>
- <aggregation type="int">0</aggregation>
- <lineSpeed type="str">Default</lineSpeed>
- <cpuAggregation type="bool">False</cpuAggregation>
- <chassisChain ref="6"/>
- <cardType type="str">Ixia Virtual Load Module</cardType>
- <activePortList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig"/>
- <portList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" oid="21" type="ixNetworkPortListSequenceContainer" itemtype="ixConfig">
- <item ver="[3, [1, [1, [0, [0]]]]]" type="ixPort">
- <chassisId type="int">1</chassisId>
- <cardId type="int">1</cardId>
- <portId type="int">1</portId>
- <enableCapture type="bool">False</enableCapture>
- <cardType type="str">Ixia Virtual Load Module</cardType>
- <portPersistentSetting ver="[0, [1, [0, [0]]]]" type="ixPortPersistentSetting">
- <viewFilter type="NoneType">None</viewFilter>
- </portPersistentSetting>
- <analyzerPartialCapture type="str">False;8192</analyzerPartialCapture>
- <name type="str"></name>
- <afmPort type="NoneType">None</afmPort>
- </item>
- </portList>
- <comment type="str"></comment>
- <networkRangeList ver="[0, [2, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixNetworkRangeListSequenceContainer" itemtype="ixNetworkRange">
- <item ver="[13, [1, [1, [1, [0, [0]]]]]]" oid="15" type="ixNetworkRange">
- <_smRangeObjectId type="str">5affc0a7-68f6-46f6-b801-0e18e067a572</_smRangeObjectId>
- <name type="str">Network Range IP-R13 in VM1 ({{ipcard1}}+1)</name>
- <rangeGroup ver="[3, [0, [1, [0, [0]]]]]" oid="16" type="ixIpDistributionGroup">
- <name type="str">Group1</name>
- <ipDistributionMethod type="str">consecutiveIps</ipDistributionMethod>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15457</_apiUniqueId>
- <_networkRangeList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixWeakrefSequenceContainer" itemtype="ixNetworkRange">
- <item ref="15"/>
- </_networkRangeList>
- <_rangeGroupObjectId type="str">abf2b6e4-a102-4cbe-bf1b-a11f11b2faac</_rangeGroupObjectId>
- <_smPluginObjectId type="str">9ea551b2-a0af-4a7d-9872-e9b94298d7bd</_smPluginObjectId>
- </rangeGroup>
- <enableStats type="bool">False</enableStats>
- </item>
- </networkRangeList>
- <layerPlugins type="NoneType">None</layerPlugins>
- <stack type="NoneType">None</stack>
- <rangeGroupList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixIpDistributionGroupList" itemtype="ixIpDistributionGroup">
- <item ref="16"/>
- </rangeGroupList>
- <dynamicControlPlaneSetting type="int">0</dynamicControlPlaneSetting>
- <linkLayerOptions type="int">0</linkLayerOptions>
- <ipSourcePortFrom type="int">1024</ipSourcePortFrom>
- <ipSourcePortTo type="int">65535</ipSourcePortTo>
- <emulatedRouterGateway type="str">0.0.0.0</emulatedRouterGateway>
- <emulatedRouterSubnet type="str">255.255.0.0</emulatedRouterSubnet>
- <emulatedRouterGatewayIPv6 type="str">::</emulatedRouterGatewayIPv6>
- <emulatedRouterSubnetIPv6 type="str">FFFF:FFFF:FFFF:FFFF:FFFF:FFFF::0</emulatedRouterSubnetIPv6>
- <emulatedRouterIpAddressPool ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="ixEmulatedRouterIpAddressRange"/>
- <macMappingMode type="int">0</macMappingMode>
- <arpSettings ver="[0, [1, [0, [0]]]]" type="ixArpSettings">
- <gratuitousArp type="bool">True</gratuitousArp>
- <processGratArp type="bool">False</processGratArp>
- </arpSettings>
- <dnsParameters ver="[1, [1, [0, [0]]]]" type="ixDns">
- <enable type="bool">False</enable>
- <cacheTimeout type="int">30000</cacheTimeout>
- <serverList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsServerItem"/>
- <suffixList ver="[3, [0, [0, [0], [0]], [0]]]" type="ixConfigSequenceContainer" itemtype="_ixDnsSuffixItem"/>
- </dnsParameters>
- <tcpParameters ver="[0, [1, [0, [0]]]]" type="ixTcpParameters">
- <tcpParametersFull ver="[4, [1, [0, [0]]]]" oid="17" type="ixTcpParametersFull">
- <enableCongestionNotification type="bool">False</enableCongestionNotification>
- <enableTimeStamp type="bool">True</enableTimeStamp>
- <timeWaitRecycle type="bool">True</timeWaitRecycle>
- <timeWaitReuse type="bool">False</timeWaitReuse>
- <enableTxBwLimit type="bool">False</enableTxBwLimit>
- <txBwLimitUnit type="int">0</txBwLimitUnit>
- <txBwLimit type="int">1024</txBwLimit>
- <enableRxBwLimit type="bool">False</enableRxBwLimit>
- <rxBwLimitUnit type="int">0</rxBwLimitUnit>
- <rxBwLimit type="int">1024</rxBwLimit>
- <finTimeout type="int">60</finTimeout>
- <keepAliveInterval type="int">75</keepAliveInterval>
- <keepAliveProbes type="int">9</keepAliveProbes>
- <keepAliveTime type="int">7200</keepAliveTime>
- <synRetries type="int">5</synRetries>
- <synAckRetries type="int">5</synAckRetries>
- <retransmitRetries type="int">5</retransmitRetries>
- <transmitBuffer type="int">8192</transmitBuffer>
- <receiveBuffer type="int">8192</receiveBuffer>
- <tcpSack type="bool">True</tcpSack>
- <windowScaling type="bool">False</windowScaling>
- <rtoMin type="int">1000</rtoMin>
- <rtoMax type="int">60000</rtoMax>
- </tcpParametersFull>
- <tcpParametersFull ref="17"/>
- </tcpParameters>
- <impairment ver="[5, [1, [0, [0]]]]" type="ixImpairment">
- <enable type="bool">False</enable>
- <addDelay type="bool">False</addDelay>
- <addReorder type="bool">False</addReorder>
- <addDrop type="bool">False</addDrop>
- <addDuplicate type="bool">False</addDuplicate>
- <randomizeSeed type="bool">False</randomizeSeed>
- <delay type="int">1</delay>
- <reorder type="int">1</reorder>
- <reorderLength type="int">1</reorderLength>
- <sourcePort type="int">0</sourcePort>
- <destinationPort type="int">0</destinationPort>
- <drop type="int">1</drop>
- <duplicate type="int">1</duplicate>
- <jitter type="int">0</jitter>
- <gap type="int">1</gap>
- <destinationIp type="str">any</destinationIp>
- <typeOfService type="str">any</typeOfService>
- <protocol type="str">any</protocol>
- <addFragmentation type="bool">False</addFragmentation>
- <fragmentationType type="str">FragmentationPercent</fragmentationType>
- <fragmentPercent type="int">50</fragmentPercent>
- <mtu type="int">1000</mtu>
- <fragmentSequenceSkip type="int">1</fragmentSequenceSkip>
- <fragmentSequenceLength type="int">1</fragmentSequenceLength>
- <_seed type="int">1</_seed>
- </impairment>
- <_portGroupId type="str">e7fa1f9e-23d9-4742-96b2-6edce6c4424e</_portGroupId>
- <_smExternalLinks ver="[0, [1, [0, [0]]]]" type="_smExternalLinkersMap">
- <externalLinks type="dict"/>
- </_smExternalLinks>
- <smVersion type="int">1</smVersion>
- </network>
- <activityParameters ver="[2, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityParametersList" itemtype="ixActivityParameters">
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" type="ixActivity">
- <agent ref="18"/>
- <protocolAndType type="str">VoIP Peer</protocolAndType>
- <name type="str">REGISTERING</name>
- <enable type="bool">True</enable>
- <timeline ver="[2, [1, [1, [0, [0]]]]]" oid="20" type="ixTimeline">
- <name type="str">Timeline1</name>
- <iterationTime type="int">{{registeringduration}}</iterationTime>
- <totalTime type="int">{{registeringduration}}</totalTime>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">10</offlineTime>
- <sustainTime type="int">0</sustainTime>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">{{registeringtotalcalls}}</rampUpValue>
- <rampUpInterval type="int">{{registeringduration}}</rampUpInterval>
- <rampUpTime type="int">{{registeringduration}}</rampUpTime>
- <rampDownTime type="int">0</rampDownTime>
- <rampDownValue type="int">0</rampDownValue>
- <timelineType type="int">1</timelineType>
- <advancedIteration ver="[0, [1, [0, [0]]]]" type="ixAdvancedIteration">
- <segmentList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixTimelineSegmentList" itemtype="ixTimelineSegment">
- <item ver="[2, [0, [1, [0, [0]]]]]" type="ixLinearTimeSegment">
- <name type="str">Linear Segment 1</name>
- <noiseAmplitudeScale type="int">0</noiseAmplitudeScale>
- <segmentType type="int">1</segmentType>
- <startObjectiveScale type="float">0.0</startObjectiveScale>
- <endObjectiveScale type="float">1.0</endObjectiveScale>
- <duration type="int">{{registeringduration}}</duration>
- <objectID type="int">17</objectID>
- </item>
- </segmentList>
- <maxscale type="int">20</maxscale>
- <_apiUniqueId type="int">16159</_apiUniqueId>
- </advancedIteration>
- <objectID type="int">3</objectID>
- </timeline>
- <customParameters ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ixCustomActivityParameters">
- <enableDbgLog type="bool">False</enableDbgLog>
- <dbgLogChannels type="str">1-5</dbgLogChannels>
- <bhcaType type="int">0</bhcaType>
- <talkTime type="int">10000</talkTime>
- <channelsNo type="int">1</channelsNo>
- <callSetupTime type="int">500</callSetupTime>
- <callTeardownTime type="int">500</callTeardownTime>
- <interCallDuration type="int">4000</interCallDuration>
- <bhcaObjectiveValue type="int">80000</bhcaObjectiveValue>
- <cpsOverwriteValueChecked type="int">0</cpsOverwriteValueChecked>
- <cpsTotalChannelsChecked type="int">0</cpsTotalChannelsChecked>
- <cpsOverwriteValue type="int">18</cpsOverwriteValue>
- <cpsType type="int">0</cpsType>
- <cpsTalkTime type="int">1500</cpsTalkTime>
- <cpsChannelsNo type="int">5</cpsChannelsNo>
- <cpsTotalChannelsNo type="int">2500</cpsTotalChannelsNo>
- <cpsOverheadTime type="int">1500</cpsOverheadTime>
- <cpsInterCallDuration type="int">2000</cpsInterCallDuration>
- <cpsObjectiveValue type="int">100</cpsObjectiveValue>
- <cpsRegisterTime type="int">40</cpsRegisterTime>
- <cpsSplitTimeline type="int">0</cpsSplitTimeline>
- <lpsType type="int">0</lpsType>
- <lpsTalkTime type="int">800</lpsTalkTime>
- <lpsChannelsNo type="int">2150</lpsChannelsNo>
- <lpsOverheadTime type="int">1500</lpsOverheadTime>
- <lpsInterLoopDuration type="int">2000</lpsInterLoopDuration>
- <lpsObjectiveValue type="int">100</lpsObjectiveValue>
- <lpsActiveChannel type="int">0</lpsActiveChannel>
- <activeUsersTalkTime type="int">750</activeUsersTalkTime>
- <activeUsersNo type="int">86534</activeUsersNo>
- <activeUsersChannel type="int">0</activeUsersChannel>
- <activeUsersObjectiveValue type="int">100</activeUsersObjectiveValue>
- </customParameters>
- <role type="str">Peer</role>
- <activeRole type="str">Both</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">{{registeringtotalcalls}}</objectiveValue>
- <userObjectiveType type="str">activeUsers</userObjectiveType>
- <userObjectiveValue type="long">{{registeringtotalcalls}}</userObjectiveValue>
- <constraintType type="str">SimulatedUserConstraint</constraintType>
- <constraintValue type="int">86534</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">True</enableConstraint>
- <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">protocolSpecific</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15566</_apiUniqueId>
- <resourceGuid type="str">58ff41761a9072107c63efca</resourceGuid>
- <_objectiveValue type="int">{{registeringtotalcalls}}</_objectiveValue>
- <timelineScale type="tuple">
- <item type="float">1.0</item>
- </timelineScale>
- </item>
- <item ver="[0, [19, [1, [1, [0, [0]]]]]]" oid="24" type="ixActivity">
- <agent ref="19"/>
- <protocolAndType type="str">VoIP Peer</protocolAndType>
- <name type="str">CALLING</name>
- <enable type="bool">True</enable>
- <timeline ref="11"/>
- <customParameters ver="[0, [0.1, [1, [0, [0]]]]]" type="#Plugins.agent.VoIP_Peer.VoIP_data$ixPropertyClass_ixCustomActivityParameters">
- <enableDbgLog type="bool">False</enableDbgLog>
- <dbgLogChannels type="str">1-5</dbgLogChannels>
- <bhcaType type="int">0</bhcaType>
- <talkTime type="int">10000</talkTime>
- <channelsNo type="int">1</channelsNo>
- <callSetupTime type="int">500</callSetupTime>
- <callTeardownTime type="int">500</callTeardownTime>
- <interCallDuration type="int">4000</interCallDuration>
- <bhcaObjectiveValue type="int">80000</bhcaObjectiveValue>
- <cpsOverwriteValueChecked type="int">0</cpsOverwriteValueChecked>
- <cpsTotalChannelsChecked type="int">0</cpsTotalChannelsChecked>
- <cpsOverwriteValue type="int">18</cpsOverwriteValue>
- <cpsType type="int">0</cpsType>
- <cpsTalkTime type="int">30000</cpsTalkTime>
- <cpsChannelsNo type="int">16750</cpsChannelsNo>
- <cpsTotalChannelsNo type="int">33500</cpsTotalChannelsNo>
- <cpsOverheadTime type="int">1500</cpsOverheadTime>
- <cpsInterCallDuration type="int">2000</cpsInterCallDuration>
- <cpsObjectiveValue type="int">100</cpsObjectiveValue>
- <cpsRegisterTime type="int">40</cpsRegisterTime>
- <cpsSplitTimeline type="int">0</cpsSplitTimeline>
- <lpsType type="int">0</lpsType>
- <lpsTalkTime type="int">800</lpsTalkTime>
- <lpsChannelsNo type="int">2150</lpsChannelsNo>
- <lpsOverheadTime type="int">1500</lpsOverheadTime>
- <lpsInterLoopDuration type="int">2000</lpsInterLoopDuration>
- <lpsObjectiveValue type="int">100</lpsObjectiveValue>
- <lpsActiveChannel type="int">0</lpsActiveChannel>
- <activeUsersTalkTime type="int">30000</activeUsersTalkTime>
- <activeUsersNo type="int">{{activecalls}}</activeUsersNo>
- <activeUsersChannel type="int">0</activeUsersChannel>
- <activeUsersObjectiveValue type="int">100</activeUsersObjectiveValue>
- </customParameters>
- <role type="str">Peer</role>
- <activeRole type="str">Both</activeRole>
- <objectivePercent type="float">100.0</objectivePercent>
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">{{activecalls}}</objectiveValue>
- <userObjectiveType type="str">activeUsers</userObjectiveType>
- <userObjectiveValue type="long">{{activecalls}}</userObjectiveValue>
- <constraintType type="str">SimulatedUserConstraint</constraintType>
- <constraintValue type="int">{{activecalls}}</constraintValue>
- <timerGranularity type="int">100</timerGranularity>
- <enableConstraint type="bool">True</enableConstraint>
- <secondaryConstraintType type="str">SimulatedUserConstraint</secondaryConstraintType>
- <secondaryConstraintValue type="int">100</secondaryConstraintValue>
- <secondaryEnableConstraint type="bool">False</secondaryEnableConstraint>
- <portMapPolicy type="str">protocolSpecific</portMapPolicy>
- <concurrentObjectiveBehavior type="int">1</concurrentObjectiveBehavior>
- <cpsObjectiveBehavior type="int">0</cpsObjectiveBehavior>
- <userIpMapping type="str">1:1</userIpMapping>
- <destinationIpMapping type="str">Consecutive</destinationIpMapping>
- <playlists ver="[1, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixPlaylistList" itemtype="ixPlaylist"/>
- <objectID type="int">6</objectID>
- <_apiUniqueId type="int">16446</_apiUniqueId>
- <resourceGuid type="str">58ff41761a9072107c63efca</resourceGuid>
- <_objectiveValue type="int">{{activecalls}}</_objectiveValue>
- <timelineScale type="tuple">
- <item type="float">1.0</item>
- </timelineScale>
- </item>
- </activityParameters>
- <timeline ref="20"/>
- <communityCapture ver="[0, [1, [0, [0]]]]" type="ixViewCommunityCapture">
- <captureViewOptions ref="12"/>
- <filter ver="[0, [1, [0, [0]]]]" type="ixViewFilter">
- <filterString type="str"></filterString>
- </filter>
- <portList ref="21"/>
- <enable type="bool">False</enable>
- <_apiUniqueId type="int">15466</_apiUniqueId>
- </communityCapture>
- <payload type="NoneType">None</payload>
- <activityIpWiring ver="[0, [1, [0, [0]]]]" oid="22" type="ixRangeAgentEndpointWiring">
- <rangeAgentConnections type="list"/>
- <_apiUniqueId type="int">15451</_apiUniqueId>
- <rangeAgentDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="15"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixRangeAgentWiring">
- <range ref="15"/>
- <agentEndpointConnections type="list"/>
- <agentConnectionsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item ref="18"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="18"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">SIP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">SIP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">RTP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">RTP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">T38</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">T38</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">MSRP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">MSRP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- <item type="tuple">
- <item ref="19"/>
- <item ver="[0, [1, [0, [0]]]]" type="ixAgentEndpointWiring">
- <agent ref="19"/>
- <endpoints type="list"/>
- <endpointsDict ver="[0, [0, [0]]]" type="ixOrderedDict">
- <_dict type="list">
- <item type="tuple">
- <item type="str">SIP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">SIP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">RTP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">RTP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">T38</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">T38</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- <item type="tuple">
- <item type="str">MSRP</item>
- <item ver="[0, [1, [0, [0]]]]" type="ixEndpoint">
- <endpointName type="str">MSRP</endpointName>
- <isAvailable type="bool">True</isAvailable>
- </item>
- </item>
- </_dict>
- </endpointsDict>
- </item>
- </item>
- </_dict>
- </agentConnectionsDict>
- </item>
- </item>
- </_dict>
- </rangeAgentDict>
- </activityIpWiring>
- <tcpAccelerationAllowedFlag type="bool">True</tcpAccelerationAllowedFlag>
- <iterations type="int">1</iterations>
- <standbyTime type="int">0</standbyTime>
- <offlineTime type="int">10</offlineTime>
- <sustainTime type="int">244522</sustainTime>
- <iterationTime type="int">3549</iterationTime>
- <totalTime type="int">3549</totalTime>
- <portMapPolicy type="str">protocolSpecific</portMapPolicy>
- <objectiveType type="str">n/a</objectiveType>
- <objectiveValue type="int">{{registeringtotalcalls}}</objectiveValue>
- <rampUpType type="int">0</rampUpType>
- <rampUpValue type="int">5</rampUpValue>
- <rampUpInterval type="int">1</rampUpInterval>
- <rampUpTime type="int">17307</rampUpTime>
- <rampDownTime type="int">20</rampDownTime>
- <userObjectiveType type="str">activeUsers</userObjectiveType>
- <userObjectiveValue type="long">{{registeringtotalcalls}}</userObjectiveValue>
- <totalUserObjectiveValue type="long">{{registeringtotalcalls}}</totalUserObjectiveValue>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15450</_apiUniqueId>
- <isVisible type="bool">True</isVisible>
- <activityIpWiring ref="22"/>
- <_portOperationModesAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">2</key>
- <value type="bool">False</value>
- </item>
- <item>
- <key type="int">3</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">4</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">8</key>
- <value type="bool">True</value>
- </item>
- </_portOperationModesAllowed>
- <_tcpAccelerationAllowed type="dict">
- <item>
- <key type="int">0</key>
- <value type="bool">True</value>
- </item>
- <item>
- <key type="int">1</key>
- <value type="bool">False</value>
- </item>
- </_tcpAccelerationAllowed>
- </item>
- </elementList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15447</_apiUniqueId>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixTrafficColumn">
- <name type="str">Terminate</name>
- <elementList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixScenarioElementList" itemtype="ixScenarioElement">
- <item ref="23"/>
- </elementList>
- <objectID type="int">2</objectID>
- <_apiUniqueId type="int">15449</_apiUniqueId>
- </item>
- </columnList>
- <links ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixActivityLinkList" itemtype="ixActivityLink">
- <item ver="[1, [0, [1, [0, [0]]]]]" type="ixActivityLink">
- <objectiveType type="str">concurrentConnections</objectiveType>
- <objectiveValue type="int">{{activecalls}}</objectiveValue>
- <portMapPolicy type="str">protocolSpecific</portMapPolicy>
- <userObjectiveType type="str">activeUsers</userObjectiveType>
- <userObjectiveValue type="long">{{activecalls}}</userObjectiveValue>
- <timeline ref="11"/>
- <constraintValue type="int">{{activecalls}}</constraintValue>
- <enableConstraint type="bool">True</enableConstraint>
- <name type="str">VoiceLink1</name>
- <activityList ver="[1, [0, [0, [3, [0, [0, [0], [0]], [0]]]]]]" type="ixActivityListWeakrefSequenceContainer" itemtype="ixActivityParameters">
- <item ref="24"/>
- <item ref="25"/>
- </activityList>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">16586</_apiUniqueId>
- </item>
- </links>
- <appMixList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixAppMixList" itemtype="ixAppMix"/>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15446</_apiUniqueId>
- </item>
- </scenarioList>
- <currentUniqueIDForAgent type="int">45</currentUniqueIDForAgent>
- <enableNetworkDiagnostics type="bool">True</enableNetworkDiagnostics>
- <showNetworkDiagnosticsFromApplyConfig type="bool">True</showNetworkDiagnosticsFromApplyConfig>
- <showNetworkDiagnosticsAfterRunStops type="bool">True</showNetworkDiagnosticsAfterRunStops>
- <resetNetworkDiagnosticsAtStartRun type="bool">True</resetNetworkDiagnosticsAtStartRun>
- <enableNetworkDiagnosticsLogging type="bool">False</enableNetworkDiagnosticsLogging>
- <enableTcpAdvancedStats type="bool">False</enableTcpAdvancedStats>
- <enableFrameSizeDistributionStats type="bool">False</enableFrameSizeDistributionStats>
- <isFrameSizeDistributionViewSupported type="bool">False</isFrameSizeDistributionViewSupported>
- <statViewThroughputUnits type="str">Kbps</statViewThroughputUnits>
- <totalUserObjectiveInfoList ver="[0, [3, [0, [0, [0], [0]], [0]]]]" type="ixTotalUserObjectiveInfoList" itemtype="ixTotalUserObjectiveInfo"/>
- <activitiesGroupedByObjective type="bool">False</activitiesGroupedByObjective>
- <eventHandlerSettings ver="[0, [1, [0, [0]]]]" type="ixEventHandlerSettings">
- <disabledEventClasses type="str"></disabledEventClasses>
- <disabledPorts type="str"></disabledPorts>
- <_apiUniqueId type="int">15684</_apiUniqueId>
- </eventHandlerSettings>
- <allowMixedObjectiveTypes type="bool">False</allowMixedObjectiveTypes>
- <networkProtocolOptions type="NoneType">None</networkProtocolOptions>
- <seedForRandomBehavior type="int">0</seedForRandomBehavior>
- <csvThroughputScalingFactor type="int">0</csvThroughputScalingFactor>
- <reporterThroughputScalingFactor type="int">0</reporterThroughputScalingFactor>
- <profileDirectory ver="[2, [1, [0, [0]]]]" type="ixProfileDirectory">
- <categoryList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileCategoryList" itemtype="ixProfileCategory">
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Playlist</name>
- <categoryId type="str">playlist</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.Playlist.ixPropertyMap_PlaylistCategory$ixPropertyMap_PlaylistCategory"/>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">0</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Random Data</name>
- <categoryId type="str">rdge</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm ver="[0, [1, [0.1, [1, [0, [0]]]]]]" type="#Plugins.profile.RandomData.ixPropertyMap_RandomDataCategory$ixPropertyMap_RandomDataCategory">
- <startcore type="int">0</startcore>
- <totalcores type="int">1</totalcores>
- </pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">1</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Real File</name>
- <categoryId type="str">realfile</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">2</objectID>
- </item>
- <item ver="[0, [1, [0, [0]]]]" type="ixProfileCategory">
- <name type="str">Unified File System</name>
- <categoryId type="str">ufs</categoryId>
- <profileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <pm type="NoneType">None</pm>
- <temporaryProfileList ver="[0, [0, [3, [0, [0, [0], [0]], [0]]]]]" type="ixProfileList" itemtype="ixProfile"/>
- <objectID type="int">3</objectID>
- </item>
- </categoryList>
- <_profileMru type="str"></_profileMru>
- </profileDirectory>
- <communityList type="NoneType">None</communityList>
- <autoUpdateAppFlowsToLatest type="bool">True</autoUpdateAppFlowsToLatest>
- <downgradeAppLibFlowsToLatestValidVersion type="bool">True</downgradeAppLibFlowsToLatestValidVersion>
- <objectID type="int">0</objectID>
- <_apiUniqueId type="int">15445</_apiUniqueId>
- <lastStatViewerConfiguration type="str"></lastStatViewerConfiguration>
- <statManagerOptions ver="[1, [1, [0, [0]]]]" type="ixStatManagerOptions">
- <pollingInterval type="int">2</pollingInterval>
- <allowCsvLogging type="bool">True</allowCsvLogging>
- <enableDataStore type="bool">False</enableDataStore>
- <svConfiguration type="str">begin 666 &lt;data&gt;&#10;M&gt;)S=G6MOXSBRAO^*D(,9S&amp; GMJB[,ND,TD[2$W1NB-T]N]A&gt;--0VDVC;EKR2&#10;MG,L&gt;G/]^*-E.1+)DUTQ$&quot;LB'[C@65:5Z0Y;X4)?:_^UQ-C7N:9;':?)NA_3,&#10;MG=\.]H=%5'R.Z0/-7C9Y/&lt;_LF3TKM'98 YJ7WY[%&gt;6%\I$_O=J)Y$3_&amp;42^_&#10;M[\W+/?*&quot;)F/:J[7[(XOF;!/;&gt;7!Y,3J^&amp;!G]@_VKZ^,A^W@X.KV\$'__&gt;GQT&#10;M.CI\?W9&lt;;AA&lt;GK\_O3@^&gt;G:=/W_&quot;'(#D_&amp;#_)*/_6; V3\9]-%W0=SO63N4H&#10;MOS]+;V_CY';]_2A;T&amp;K3*)[1X5,R?D_OHOLXS=8-S.&gt;M&gt;1'-YE&lt;9'&lt;?5@:VV&#10;MV]7VX]N,'4NIZNAI3M?;2+7MDJD\3:/)5986=%S4]GUV_G)&lt;O\&gt;3&quot;4U*0_FZ&#10;MU4DTS9?-CI/HVY0&gt;144T+-*,R@VN7L2I'X&lt;#[;W1$SN@RT4Q7Q3/0IXOID4\&#10;MGXJQ58V.AEN:G4&gt;/9:_+V?$-%GF1SCZP/]G=&lt;QMO[?,DGM*KJ'C&gt;4GU_.*59&#10;MD:]_&amp;JQ+)_G&gt;8QZ_V[DKBOE&gt;O__P\-![L'MI=MNW3)/T_WY^-AS?T5FT&amp;R?L&#10;MC\;$V'G&gt;:[)]K\II?^WUB-Y$+*9*)_ZWJAF_&gt;9&quot;EJUZ04&lt;I:,ZU'I&gt;@'^X_Y&#10;M7EY9-V)V&quot;!?TH?H[T&amp;)U9&amp;6HZT/$'.&amp;R[2R?,&quot;OO=A99LK*&gt;[\[B,3N(]*;8&#10;M':&gt;S/=9N=]EJISH&amp;.J4SFA1&amp;$LTH?QC+5GNG^&gt;J;=SM%U3M7WY]'&lt;?(&lt;3MES&#10;M*:UB/DPF'[)T,&lt;^?6YZEXZALLG3(#H+UAL&gt;R-RY_OTOC,35F&lt;7(Y'B^RO!I@&#10;ML^AQ_=LB^98ND@F=0,&lt;+&gt; 6=Y,O.2 $3IT&lt;[1L':O=MAFZ9I&lt;KLC'$L?V.DJ&#10;MRM@O?VG7&quot;_9_;;&gt;\R&amp;+&lt;CF4P?VG'P1T=?R]'V\L?K_K#59:&amp;3RP[S'I_Q,DD&#10;M?&lt;A[)VDVRWLO&gt;_QB0 U^,3ZOSA-.KSQ+F+\8 ];G%QE]E]!%D4737XRKQ;=I&#10;M/&amp;;)&gt;I1^I\F[;[X?N6/7(Z'M4#,(:Y%$R=,R-HSNQ=U?TN RF[#SP&lt;N&gt;&lt;5)@&#10;M=EMFR$EMQV]I.J51 NS&lt;Y_I97^R%_1?CJZU5Q\&gt;T7([D@_U)?'-SF^TM?T2S&#10;MOS+F5_LL36S;9^UH]YZP8764CA?E,1VO#TT&gt;?,;J&quot;,N,)F\ES]TO2Q^J/T@E&#10;MW6J?NR@?W$7)+66&quot;LBS-&lt;FTUY$^/#LS]/OM_?SWF#G;)?O_YE_UR/!U4CO;[&#10;MU&gt;?]2L7*Y7Y_J&gt;A+?SZP]ONUW_;+#G70+^VQG_O5057VEY]69\C)09GY]OOK&#10;MWYA9*;@_+X&lt;%R$$0&lt;A!!#E-28W4*P@E&quot; $'6!@1A3&quot;VZV( N%D(72]!%[B57&#10;M:588@ZM/1ADKFQ7%8UZB\CC^K$*@S;IHKI[&gt;Y &quot;JV0C5;$$U2U+M!^,HSK\;&#10;MGXIX&amp;O\W*F&gt;KG&amp;AEW']6-,AD73-+BV0N()F#D,S9*MDH+:*I&lt;4YG:?;TT\?W&#10;M/[]:,-F@_G'I 7*Y&quot;+G&lt;K7(Q5J!MJB79JXNE9SCZ@%@&gt;0BQOJUAEKCEC\&amp;@&lt;&#10;MWM\:/Q'C/$X6!7V]:(UVZ^+96L0+ /%\A'C^GQ3/7069MZU&gt;W7!=/D&gt;+?&quot;$@&#10;M7X&quot;0+_BS?4^9?J1)0%&gt;+@,0$% P1&quot;H;;3Z;K0%]_#GVQ5%?(TZ,0-)&lt;GF,D\&#10;M$6?S\C3MS-JUJ^E4;MRDF3&amp;8QB60E1.MUT_7-MKN8-I&amp;0 I 88#( 40&amp;@;,X&#10;M^5Y%2U_=W&gt;JF],\]&quot; 0%!$,%1,(&quot;4&quot;9J#.&gt;4OGY4UDWIGW40B ((!@.(R &amp; &#10;M3&quot;&lt;9^S\WANR[%J9H-5OZI_X$FOL3S.2?B+/_S4(9UVT,/MF@_DD9@&gt;;_! , &#10;M1&quot;0 0++/T32&gt;&amp;*LXK^F8QO&lt;MC,8&amp;J_JG9 3B 8(! B(2 5:\=GK&gt;)M,=3,P@&#10;M,B 8-&quot; B&amp;P ROG\JVDIO=5,=S,X@ B 8!&quot; B T RQ44M%1D_??PV;P$ &amp;JS6&#10;MQ?/U+,M&quot;DW^&quot;F?T3&lt;?K?V,=:2W&quot;BN;I&lt;@1ZY(!*P,&quot;1@2230T-&gt;XM--J?X,M&#10;MUT4,]8@(48&quot;%H0 +00&amp;C+$KR65P8A]F&lt;A?R?!&lt;U?G^%@H]R45P\:6.#U M0%&#10;M P0:&quot;&amp;'.IT]M*U&gt;9Y'33=/D)8@4+PPH6@A56(ZO5+@?:Y)33 P\6! \6!AXL&#10;M!#SP4;;1X0&quot;+G&amp;IZ^,&amp;&quot;^,'&quot;\(,E\&lt;.V):,AS&gt;YIIF;)B+?=P9*1!;&amp;$A6$)&#10;M2[JZX+[=)2,+8@4+PPJ6=!T!E.EM+!E9$&quot;M8&amp;%:PI.L%LDQO:,G(AKC PG&quot;!&#10;M)5T6V&quot;C4VUDRLB$VL#%L8(ML $CVQI&gt;,;(@); P3V&quot;(38,5[BTM&amp;-H0'-@8/&#10;M;!$/ !G?S)*1#=X_A+J!2+J#&quot;)#I;2\9V1 0V!@@L*5[B9KZV!M:,K(A$K Q&#10;M)&amp;!+]Q(U]+6WOV1D0Q1@8RC 1E# VUXRLB$TL#%H8&quot;/0X.TN&amp;=D0*]@85K 1&#10;MK/&quot;6EXP&lt;&quot;!YL##S8&quot;'AXJTM&amp;#L0/#H8?'.1=1J,[YNCV;KXHEBL\[2P6R5:[&#10;MN&quot;$&lt;X@&lt;'PP^.R ^.O$JYNG%*S&lt;1NLW']2TD.Q! .AB$&lt;D2&amp;V2*EDWK+=@?YE&#10;M)P?B#0?#&amp;X[(&amp;X&quot;DJS5:-;USLW']&quot;U,.^!P#ZD$&amp;D3ZV2*FD=VYWH'_ARH$(&#10;MQ&lt;$0BK/]6L7G]/1J&amp;,]?_W#6RE G#VDY$'XX&amp;/QP1/QP (9;Y$_&amp;[^DB,P;1&#10;MM'SN)&lt;H76?7486[\M K[YU&gt;?J]?Z(;UQW=#4)#-$*@Z&amp;5!R15$K=19E_'QR^&#10;M?KEOK6)EK(.&gt;&quot;$&amp;)@X$21X026*)!FQ(-NCC9NA!].!CZ&lt;$3Z 9KN6M&quot;IRI&amp;&#10;M)F2:'X::!(1 Q,6 B&quot;N&quot;2*DH^+3@.M;6&gt;IMH5O_0=&quot;$$&lt;3$(XDH((LMV.&quot;Y*&#10;M1&amp;U=-\EN!P,6 @X7 QRN!!RR&lt;,/%&gt;$SS_&amp;:AH-.!MCMXM!?&quot;&quot;Q&gt;#%ZZ$%[* &#10;M?T194KXQJ'7U9,/ZY[XNA!,N!B=&lt;&quot;2=DZ4ZBF!UJ^\I)=O5?L'7!!Z113TB+&#10;MT !ENV]IN8.&quot;=&quot;&lt;9UG^1UH5HPL70A(N@B;,TG:N8G4AV^:F)IDP'$8*+(017&#10;M) 17GO[*Z=RHHE9XOE@[Z&amp;&quot;Z I&amp;$BR$)5R0)0$H^0[4L(VQ&lt;_\3%@TC#Q9&quot;&amp;&#10;M*Y(&amp;(*%P&gt;FQ9PP;K^B&lt;O'D0;'H8V/)$V !&amp;%?-^RB W6]4]C/(@]/ Q[&gt;&quot;)[&#10;M &quot;)R;-6RA*!M_=,9#V(0#\,@GL@@@(&quot;G24&amp;S*CCC:)%5KP R?CJ\O_W9^.&lt;L&#10;M_U=K6FYSHW^JXT%DXF'(Q)/(!%B+B:9J%F)$N_Q41U./A,C$PY&quot;))Y))J:68&#10;M%XN&quot;SN95[BJ#;2\CBG8[&gt;',31&quot;8&gt;ADP\D4P X08I2U3C]H63['8PG0%?XX1Z&#10;MCY/()8!PJTF;JH[79+Z#&quot;0W$*!Z&amp;43R140 9GR\:MBN?:+:#*0S$(QZ&amp;1SR1&#10;M1Z!\E^0/-&amp;L_W0EF]4]&lt;?(A!/ R#&gt;&quot;*#- ]:19VNP;K^:8H/,8B/81!?9!! &#10;MQ.-D%9IQFL1%S 1IX&lt;&amp;-E82@;?TWU/L0?_@8_O!%_M@H8'L/ODCZP?&gt;(Z[FE&#10;MWH?HP\?0AR_2QT;Y!M6+E]7TOYIM_3?9^Q!G^!C.\$7. 2L;DB^H5G[YP_ &#10;MLOZ;ZWV(-'P,:?@(TJCN-VE7M;K)#FZH]R' \#&amp; X2, 8WU!MMUY&quot;F&gt;T@YOI&#10;M?8@M? Q;^ BVN*;_5L%DHMD.;J7WP;?#HEX/BX*)29RI44XTW,$-]3Y$%#Z&amp;&#10;M*'P$42S/&gt;@]Q&lt;6&lt;&lt;+HH[MBD&gt;+Y?&lt;RD&lt;O6/3MG60QKCA]]:!' *&amp;'CT$/'X$&gt;&#10;MRZ#+XD'&amp;IZ.KEK5\,&lt;OIIH&lt;V H@V @QM! C:J 4X&amp;BC1K3++Z:8',@((,@(,&#10;M9 0(R*@'&gt;#94HEMIEM--#UT$$%T$&amp;+H($'11&quot;_ \?F0)OYK3SM/L]&lt;^S 1I*&#10;M+C@]]&lt;!&amp; ,%&amp;@(&amp;- 'E1HWHB0-65#=DX?WE#4Q*$H&quot;/ 0$&lt;@0D&gt;P]?*&amp;T&lt;_I&#10;M6-4UCI5Q_1&lt;Z HA# @R'!&quot;*' !(*%R3:E1 VKO^21P!A28#!DD#$$D!&quot;?F&amp;S&#10;M705!V_HO=@00GP08/@E$/H&amp;&amp;,;&gt;\WO(HAFSKO^P1@/4K4 4L1$@!!)36E]K5&#10;ML,F\_LL@(&lt;0B 89% I%% !E?%IS:U4^RJ__21PC!2(B!D5&quot;$$3 #_EO9.02T&#10;MK?_21PA128BADE&quot;D$E! ?B&amp;E;0E!Z_HO@(00HH081 E%1(&amp;F,EO73UJ&gt;W6#]&#10;MZ;]0$D+L$F+8)139I5'H]&gt;**&quot;E$%V_HOEH00MX08;@D1W,*OLB@3\,5V!Y=/&#10;M0@A;0@RVA!ALX=9;U&quot;GX;+N#BRDA1&quot;TAAEI&quot;!+4TK[8H4Q/VT\'EEA#&quot;F1&quot;#&#10;M,Z'T!'K#TLXHGJE;VI&amp;,\TL[FF9$$-*$&amp;*0)1:0I585$'-)B,:^B57$?]287&#10;M^I=YB D6Z$-5Z!/9!M!S%$V_*U,2-JY_G8&gt;8&lt; D_7 T_$70 %=?WP2A3LMF!&#10;M_D4?8H)U_$Q4(3]3I!ZH3RX?&quot;BG#5?F\Q#8W^E&gt;#B F6_C-1M?],Z6GXIM&gt;K&#10;M*GBKC&amp;B7/_'HH4AB@A4!351)0%.N\R$7-%V&amp;N7Y!99LWT@&amp;6NSC5@)4&quot;352I&#10;M0%,N]]$D8.NW&lt;6YZS:^N,PQ8,=!$E0PTI4?BH==&gt;WL9YL&lt;Q2*D9PHWU^).M9&#10;MIB F6$+01-40-.4B@K*&lt;+Q?QN, 57&quot;04['&lt;QJL%&quot;@B:JDJ IEQ*4Q:P]UZY&amp;&#10;MS68'78QTL.&quot;@B:HX:,HE!X'R&amp;.OG(E1(&quot;1OO8!()UAVOQ$7(*!&lt;?W#3$CZCJ&#10;M02YYZ&amp;#N&quot;)&lt;IQ]4IEPN5;Q[FJA3=Y$+_54724+ &lt;5[%&lt;+E;8.-15R=ED7O]U&#10;M1@(7-&lt;=5-9?*FF^9'RF[?VJS$WZFI.=Z!(&amp;KH./*H,MUT(D\96^8R:BZIPIR&#10;MTL&amp;&lt;&quot;:Z9CBN:+E=-!V1MFM*TJ^L6+QW,GN#*ZKC2ZG)M]8W]54A[JGHL[*:+&#10;M&amp;14(3;C&quot;ZW+E]&lt;U]5JFV6_UT,;L&quot;(0I7CEVJQ[[M_%5=QU%\^A)]&lt;)IJNA9,&#10;MX.+MN.KM&lt;OEV(B\E2R&amp;K6$C&gt;[*2#LQ=&lt;UAU7UUTN[ [(R@]+9&lt;)N&lt;]/!^0LL&#10;M 4]0-&gt;&quot;)5 0&gt;R /#TROCG&quot;6_Z%;)#+;)/#_Z=6D)XA6J%#R1:\%;0#T'%NVJ&#10;M$E)+A0OK.@J6NQCG(%2AZL$3N2#\-@'9MKS%17O0=A&lt;C&amp;B0H5'%X(E&gt;'WR;B&#10;M&gt;52,[U2I^&amp;R\@]DG6&quot;B&gt;H&quot;K%$[E4?*.,^9Q- ]LJ0\J+R)ON8(X)5HTGJ++Q&#10;M1*X;#TCX$F/+8UDVW,%J'5@KGJ&quot;*Q1.I6OSV'JAF)$O6.UBK ZO)$U0Y&gt;2+5&#10;MDX&gt;$/+WX?#HZ5G1JAHWK?S* @-7F&quot;:K&lt;/)'JS6-D;'E0-YG7_WP &gt;O1$U1!&#10;M&gt;B)5I,=(V?;@;K2O_QD E:J)ZA2]42J58\1\YH6JQM;%&quot;K*.]'_9 !:]@3&#10;M5!%[(E6QAV0]''Q4E#(!RQT\&amp;4# \O4$5;^&gt;2 7LMRK8&lt;K8$;7?P= !J]L3&#10;M5'E[(M6WWZIBVXD2-M[!LP $+'1/4)7NB53J?JN.2G+D!@\=O)&quot;)V&quot;#?V&quot;B^&#10;ML3%\\_X?JB:5@.4.7KE$;!!Q;!3BV!C$X&gt;)L.4.&quot;MCMX 1.Q0;ZQ47QC8_B&amp;&#10;MB[3M# D;[^&quot;%3,0&amp; &lt;=&amp; 8Z- 1PNU*J\01)-IT]J)87\=/#:)N* S&amp;.CF,?&amp;&#10;M, \7M9+SSP8/';RXB3@@^#@H\'$PX$,&gt;'U4M44*F.0TU48X#4HZ#HAP'0SE\&#10;MH&quot;V?@F#CW&amp;JY)M9Q0-9Q4*SC8%B'#[7MC-E@G5-2$^\X(.\X*-YQ,+S#QZHD&#10;M46YRP6FJB7T&lt;D'T&lt;%/LX&amp;/:QU&amp;5*R#2GH2;:&lt;4#:&lt;5&quot;TXV!HQU*9*6'CG(Z:&#10;MF,&lt;!F&lt;=!,8^#81Y+::9LL,XIJ8E[')!['!3W.!CNL=1GRDTN.$TU,9 #,I&quot;#&#10;M8B 'PT&quot;VNDP)F&gt;8TU$0Z+D@Z#HIT' SIV&quot;HS)6R&lt;TU$3W[@@W[@HOG$Q?&amp;,K&#10;MS90-UCDE-5&amp;.&quot;U*.BZ(&lt;%T,YMOI,N&lt;D%_ZB*)DU!XG%1Q.-BB,=1ERDAT_PM&#10;MDYHT!%G'1;&amp;.BV$=1V6FA(US.FKB&amp;Q?D&amp;Q?%-RZ&amp;;QREF;+!.J&gt;D)LIQ0&lt;IQ&#10;M493C8BC'49\I-[G@--5$/&quot;Y(/&quot;Z*&gt;%P,\;CJ,B5DFM-0$^NX(.NX*-9Q,:SC&#10;MJLR4L'%.1TU\XX)\XZ+XQL7PC:LT4S98YY341#D&gt;2#DNBG)&lt;#.6XZC/E)A&gt;&lt;&#10;MIIJ(QP.)QT,1CX&lt;A'D]=IH1,&lt;QIJ8AT/9!T/Q3H&gt;AG4\E9D2-L[=?:Z);SR0&#10;M;SP4WW@8OO&amp;49LH&amp;ZYR2FBC' RG'0U&amp;.AZ$&lt;3WVFW.2&quot;TU03\7@@\7@HXO$P&#10;MQ#,XO!@&lt;GQEJ;K^&quot;C7,Z:N(=#^0=#\4['H9WQ%!;SI=-YCDM-7&amp;.!W*.A^(&lt;&#10;M#\,Y8K!MY\Q&amp;^YR:FHC' XG'0Q&amp;/AR$&gt;,5HE&gt;7.S$TY7303D@03DH0C(PQ#0&#10;MY=7H]/)BJ&quot;AU-ECGE-1$0#Y(0!Z*@#P, 4FQMIP\&amp;^US:FIB'Q]D'Q_%/CZ&amp;&#10;M?:1HVTZ?S0XX/35QD ]RD(_B(!_#05*X2A+H%B_&lt;XZ2:R,@'R&lt;A'D9&amp;/(:/K&#10;MXP^GP]'QM:(4VF2&gt;TU(3&amp;_D@&amp;_DH-O(Q;&quot;0'V_:SXHT..#TU&lt;9$/&lt;I&amp;/XB(?&#10;MPT5RN&amp;VGT0T&gt;.$4U$9(/$I*/(B0?]18#*5XEB72;&amp;TY;3&lt;3D@\3DHXC)QQ#3&#10;MQ&gt;7H].0?BO(H;)S341,K^2 K^2A6\C&amp;L)(;:&lt;@YM,L]IJ8F/?)&quot;/?!0?^1@^&#10;M$H-M.W\VVN?4U,1( &lt;A(/HJ1? PCB=$JR9V;G7&quot;Z:J*E *2E $5+ 8:6AI_&gt;&#10;M#P?7I^]5/8'::)]34Q,K!2 K!2A6&quot;E!O;I.C;3F%;O# O2M&amp;$R,%(&quot;,%*$8*&#10;M4*]RD^-M_0U&amp;&amp;UQPFFIBI0!DI0#%2@'JS6YRP$K2Z58_G+J:R&quot;D R2E D5. &#10;M(Z&lt;3A4@/V.94U$1+ 4A+ 8J6 APMG2B%&gt;= ZIZ0F-@I -@I0;!1@V$B(M7V,&#10;MA\US6FKBHP#DHP#%1P&amp;&amp;CX1@%0'\!A^&lt;JII(*0!)*4&quot;14H AI?/CX?#P@ZH9&#10;M:(-U3DE-E!2&quot;E!2@*&quot;G 4)(4:\MYL]$^IZ8F-@I!-@I1;!1BV$B*MNW&lt;V&gt;R &#10;MTU,3'84@'84H.@HQ=&quot;2%JR1_;O'&quot;O092$R6%(&quot;6%*$H*,91T&gt;G%RJ2A]0J8Y&#10;M#35140A248BBHA!#17R@+2=.V#BGHR;^&quot;4'^&quot;5'\$V+XAP^U_3&gt;2@M8Y)34Q&#10;M4 @R4(ABH!##0'RLBEY'VNR&quot;TU03#84@#84H&amp;@HQ-/3IZNA0V3N&lt;8&gt;.&lt;CII(&#10;M* 1)*$214(@A(3'4EO-EDWE.2TW\$X+\$Z+X)\3PCQALVSFST3ZGIAX&amp;LDR0&#10;M@4(4 X48!A*C59(W-SOA=-5#0Y8)T5&quot;E]E9=62N$KE?7ZM[D#-KF5-3#0)8)&#10;M,5&quot;E+4)%# ,)D;:&lt;-ANLUY4,]#&quot;/94+,4^F+4!+#/$*L;2?-)O.&lt;EGK8QS(A&#10;M]JD41FB)81\A6&quot;4I&lt;Z,/3E4])&amp;29$ E56B-4Q9#0IXN/%Y=_7*B;)#79Y]34&#10;M0T.6&quot;=%0I3%&quot;30P-2=&amp;V/DUJ=,#IJ8&gt;$+!,BH4IEA)XH$GH.5]$SKLT..#WU&#10;M$)%E0D14J8S0$T5$4KCJ.NC&amp;YUT#/5QDF1 753HC%,5PT;*TU/HTP78VSO/;&#10;M]LK,-YGGM-1$102BHDIAA)88*BJ#/;U-TJPJ5KX*.L_+ZL2M&quot;MKH@U-5$Q,1&#10;MD(D(BHD(ZNZY&gt;AG#RVS.;+7=/T7CG(Z:J(B 5$105$3P%4_764V-D)+UNI*A&#10;M)BHB(!41%!41D8J@.KRT&amp;F\LW)N,YG&gt;4%[$\F+\LHFR9?Y6&lt;IED[ 5F(H%B(&#10;MB&quot;QD &gt;7B3Z*8':ZQ6&lt;G7=,=F!W5!=75($(((&quot;H*(&quot;$&amp;0G,/%&gt;,PBO5E,%4JZ&#10;MV4E=5DW$3D :(B@:(B(-0;)&gt;TS&amp;-[Y7VTTTNZI+J&amp;O@@$!$4$!$1B&quot;!)#]D&lt;&#10;M&lt;#8OE&amp;JZT0&gt;73S6)&quot;E(105$1$:D(.!\=9UF:J:@(+QOFST:Z] ,9B* 8B(@,&#10;M5&quot;DJ&quot;#C*XMM;FAG+&gt;%OKAZ+9#LX\%H@\!(4\1$0&gt;2+KKT57;LM5-=G!6L4&quot;&gt;&#10;ML5 \8XD\ TFV+B+5MFZ2W0[.'Q8(,18*8BP18L&quot;A&amp;L]HNBA:'ZJ&quot;V0[.$A9(&#10;M+1:*6BR16N LQXALGF;MBR&lt;9YM[1H4D^$%DL%+)8,K+(\I6 .XBF4^-DFCZT&#10;M+2%LG'M\3Y.,(*I8*%2Q9%2!9:R6J%L_W0*6N3M\-0D(0HF%@A)+AA)8P.%1&#10;MZV==T2QW8X FZ4#XL%#P8&lt;GPT2S=ARG[WABDR20N6E^&lt;A1UP*XJ:Y 2QPT)A&#10;MAR5B1Y.&lt;QX]%%HT+XW.4Q&gt;71YRKZ9;,3;GE1DZP@C5@H&amp;K$P-%*M\&quot;N:(X*V&#10;MN4FV)C&quot;Q03&quot;Q4&amp;!BB6 &quot;,/$1G49/*IA8-LPSL:;IC@U2BHVB%%NBE%)1\6Z5&#10;M-&quot;^,HYAUDRIBXZ?#^]N?C7_.\G^U=[/*!A&lt;=L+(-LHN-8A=;8A= TG,ZB:-5&#10;MK*._JU!T@X&lt;.2-H&amp;B&lt;9&amp;$8TM$0U&quot;T//H4;&amp;@-0\=T+4-,HZ-8AQ;8AR,H'&amp;B&#10;M6M 7#QTPMPW2CHVB'5NBG2V&quot;7BL?\M?-0U[7:0FD'QM%/[9$/PA!U0[YZ^8A&#10;MKXG';9&quot;);!03V1(38015.N2OFX&gt;\)CZW02JR451D2U34,'':O8K'WQ=SM5.G&#10;M9B&lt;=L+L-4I&amp;-HB);HB*&lt;K.V/_&lt;U..F!X!\0D&amp;X5)MG3]!BEKZQE@LY,.&amp;-X!&#10;MZ&lt;E!T9.#H:?/\82FAA9Q,:ZZ('P'Q&quot;D'A5,.!J&gt;: V\]+V!&lt;&lt;1IK(BP')&quot;P'&#10;M15@.AK : V__E(9QQ6FL&quot;;H&lt;$+H&lt;%'0Y&amp;.A:!JX&gt;O;;ZX=351&amp; .2&amp; .BL &lt;&#10;M#($U1*TH12#7&quot;W2M$CH@CCDH'',P. 9'K2HY8)&gt;W-+&amp;9 [*9@V(S!\-F&lt;M1J&#10;M&quot;&amp;VK'TY=3:#F@*#FH$#-P8!:0]0:,L.&amp;906BB=&lt;&lt;D-&lt;&lt;%*\Y&amp;%Z#H]:1&amp;3:L&#10;M@A%-V.:&quot;V.:@L,T1L0VHMK7(BW1F5$XY(2OW@)(FH&amp;3=2+^3&quot;RXN2&amp;$NBL)&lt;&#10;MD&lt;*:5'JE/H(R?VU&gt;WS]*QXL9.[;C*2U_L&amp;]6$2Y_1+.R#=-A5%IAGP=9FN&gt;E&#10;ME=+:P?YU-(G3RIBP(6:VV#0XKDPVMAI,8^;T),UFBVDTI$41)[&gt;Y&lt;1]-%_3=&#10;MSO_^^#^/1[^R_PY__?$_B[3X]3/-RGNFE[_L+7^0GKO\\(O4N@QUU?:?+QO_&#10;M]?+Q_UX^[AA]]H&gt;@&gt;7&amp;]2,3C^'%:_/K;XVQJW&quot;_]OUM[-I&lt;?#)J,TPG;8[5A&#10;M4=SL$F_Y^;&lt;?;XM?:T?&amp;3*V\G&quot;8WZ9!F&lt;32-_QN5MV*\CVX-YB7)]Q[S&gt;&amp;7J&#10;MKBCF&gt;_W^P\-#[\'NI=EMWS)-TO_[^=EP?$=GT2[K&gt;T64C.GJ2-;[3Y#[+UOQ&#10;MQV@8Y5'.OA8K-5C'B\=763K/Q7;+EF4\94&lt;NMY:?2?EEO_XMO,^ =&gt;C;-'LJ&#10;M6WQ.XS%=)\[G_&gt;LM9!N#F]N3&gt;$K+,5 V&amp;.Q]^&lt;3&amp;8?XERM-LDGY9=^S\R]&gt;O&#10;MRP%3;KS,RD'[Y?+JXN2S]?4L2A*F_)?KXP]?!X=G9U^K[[]&gt;7A]&gt;?#C^&gt;A_&gt;&#10;M];+'F^IP!&amp;=P1#1;1[P\AN= 7C;(.QXM*IV,?N/FWQ]6'7]#F^&amp;V-N5A7'[[&#10;M-QT7\3W--[7Z/;Z]F[)_16.KJ](5BXIEM G[+[Z):5:V=.W0_T9#?]&gt;]\2&gt;[&#10;MCNW:N]]N'']WXMV8MN&gt;0\8T75IHT&amp;9!=L0Y8[UOL5]&lt;A;F6DMDG&gt;K^P*P].C&#10;M&lt;N-PE^RZNQ;9M4V7&gt;*YK.^XNL^'Y[)A,?]&lt;F%H/AT#'-7&gt;('KE?9KNT.'A,;&#10;M%&amp;7&amp;OTS*%I9)_%UFR3)'A.R9WIYM]P+'M&lt;+0_9MI[9GF^G&quot;YO1KLIO-YV&lt;)@&#10;M.6 OB:&gt;K&lt;5RF\M40;_B;+#/I&gt;32^BQ.ZUN5X&gt;'YXM'LXO+P^NMP]6W9DJ-T6&#10;M&lt;X&gt;324;S:OB3T.H1+^B1'B'6RV[$[)D]EZ7BEV]6#=U&gt;K=D-#&lt;R]/6+&gt;F'L.&#10;MI=_V?/-FCUB1_X,CM0EO[#W+GY ]SYUX&gt;TY@^S\05VP5F1[=8WV-[OG^-[(7&#10;M3NP??#[9]IL&quot;D4,^?;R@Q4.:?5^?9EBKH&amp;&gt;7D1%OF=2@)AL,7=,IC?)*X=/'&#10;MLS2:&amp;$PXTS@^Y(W5FFTP5LMS+!F79V:CS$BY\=-CX/W\Y?0QCKXLO7PICWI7&#10;M]-*&lt;NDX?KVEYCS3-:F'9/;^,W'975H F&lt;/KX=#X&lt;1],J&amp;F*N^K[PO;SC\+ZV&#10;M^&gt;,W=JHI=^.^!&lt;=+&amp;90\(JJ=,2&gt;PVHF.YN7&lt;_7)&gt;W139,&quot;;2Z93ESW**5C8X&#10;MHD7U).&gt;RF_';&amp;G&lt;^HU&amp;6T$EY\B_;W413]H&gt;O&amp;1&quot;V-]HI;\9&gt;SN% ,_SF1BLL&#10;M#Y&lt;M2X6JAE6:J9D1MV\RM'J@;9,ML4FSN2PMTG$ZK&gt;X'O(G&amp;%+8(MFHT&gt;ITN&#10;M&quot;GI=S=DA:\)FR,QL7F:/T7-W$:6'MC?URXW];=DO)T])V6L_TB?@3,PU^5Q.&#10;M5*5&amp;ST.O8;99MJ[FO?W!Y&lt;7H^&amp;+$\.+Z&gt;,@^');%.,LM]=^_'A^=C@[?GQV7&#10;M&amp;P:7Y^]/+XX9T%33[.JK_/XRF3Y5OY/RB[,X^4XGS]O[+_NLGR9_^92#V\_8&#10;M).%@O^K(1L+.5&gt;]V*FL[SS/Q';+#;U_.]':,=(EL#..BZM'@,WI/IPSAEO%6&#10;M&gt;QSL#Y/9W&amp;#ROMN)V-^!)=!&gt;?M^;K^&lt;F8]HK&amp;ZSF*N4D&gt;Z&gt;,&gt;Z54N6F0)C?Q&#10;M[2*K!*W30LXVCMG&amp;ZN^Q^OT^RI;'N#R/E_NOSNA1-2&gt;3S_03FH^SN.HAJXVU&#10;MZ3JSRDYI4W8^6T_YRK_VRE'=[X3&gt;;]FAUJ)?/_+7]HUJ]S+.\@&lt;;\^7?CO'I&#10;&amp;_P,I\+)D&#10; &#10;end&#10;</svConfiguration>
- <svRestConfiguration type="str"></svRestConfiguration>
- </statManagerOptions>
- <currentUniqueIDForAgent type="int">45</currentUniqueIDForAgent>
- <_scenarioElementFactory ver="[0, [1, [0, [0]]]]" type="ixScenarioElementFactory">
- <singletonDict type="dict"/>
- <referenceCountDict type="dict">
- <item>
- <key type="str">qovCoprocessor</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">Impairment</key>
- <value type="int">0</value>
- </item>
- <item>
- <key type="str">asrCoprocessor</key>
- <value type="int">0</value>
- </item>
- </referenceCountDict>
- </_scenarioElementFactory>
- </item>
- </testList>
-</root>
diff --git a/functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst b/functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst
deleted file mode 100644
index a7bce95a..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/files/Registration_only_LPS.tst
+++ /dev/null
Binary files differ
diff --git a/functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst b/functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst
deleted file mode 100644
index 78391886..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/files/SIPCall.tst
+++ /dev/null
Binary files differ
diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py b/functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py
deleted file mode 100644
index 973e0264..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/utils/IxChassisUtils.py
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 IXIA and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-import httplib2
-import json
-import logging
-
-
-okStates = [200, 201, 202]
-states = [
- 'Queued',
- 'In Progress',
- 'Manual Step Required',
- 'Error',
- 'Finished',
- 'Aborted',
- 'Retried',
- 'IRebooting',
- 'Force Continue',
- 'Pending',
- ]
-notStartedState = 'Not_Started'
-errorStates = ['Error', 'Aborted', 'Force Continue']
-finishedStates = ['Manual Step Required', 'Finished']
-
-logger = logging.getLogger(__name__)
-
-
-class TestFailedError(Exception):
- pass
-
-
-class ChassisRestAPI:
- @staticmethod
- def postWithPayload(loginUrl, payload=None):
- urlHeadersJson = {'content-type': 'application/json'}
- try:
- h = httplib2.Http('.cache',
- disable_ssl_certificate_validation=True)
- if payload is None:
- logger.debug('POST: ' + loginUrl)
- (response, content) = h.request(loginUrl, 'POST', '',
- urlHeadersJson)
- logger.debug(content)
- else:
- logger.debug('POST: ' + loginUrl + ' <- Data: ' + str(payload))
- (response, content) = h.request(loginUrl, 'POST',
- body=payload,
- headers=urlHeadersJson)
- logger.debug(response)
- logger.debug(content)
- except Exception, e:
- raise Exception('Got an error code: ', e)
- return content
-
- @staticmethod
- def postWithPayloadAndHeaders(loginUrl, urlHeadersJson,
- payload=None):
- try:
- h = httplib2.Http('.cache',
- disable_ssl_certificate_validation=True)
- if payload is None:
- logger.debug('POST: ' + loginUrl)
- (response, content) = h.request(loginUrl, 'POST', '',
- urlHeadersJson)
- else:
- logger.debug('POST: ' + loginUrl + ' <- Data: ' + str(payload))
- (response, content) = h.request(loginUrl, 'POST',
- body=payload,
- headers=urlHeadersJson)
- except Exception, e:
- raise Exception('Got an error code: ', e)
- return content
-
- @staticmethod
- def postOperation(url, apiKey, payload=''):
- urlHeadersJson = {'content-type': 'application/json',
- 'X-Api-Key': '%s' % str(apiKey)}
- try:
- h = httplib2.Http('.cache',
- disable_ssl_certificate_validation=True)
- if payload is None:
- logger.debug('POST: ' + url)
- (response, content) = h.request(url, 'POST',
- json.dumps(payload),
- urlHeadersJson)
- else:
- logger.debug('POST: ' + url + ' <- Data: ' + str(payload))
- (response, content) = h.request(url, 'POST',
- json.dumps(payload),
- headers=urlHeadersJson)
- except Exception, e:
- raise Exception('Got an error code: ', e)
- return content
-
- @staticmethod
- def patch(url, payload, apiKey):
- urlHeadersJson = {'content-type': 'application/json',
- 'X-Api-Key': '%s' % str(apiKey)}
- try:
- h = httplib2.Http('.cache',
- disable_ssl_certificate_validation=True)
- logger.debug('PATCH: ' + url + ' <-- Attribute: ' +
- str(payload))
- (response, content) = h.request(url, 'PATCH',
- json.dumps(payload),
- urlHeadersJson)
- except Exception, e:
-
- # print (response, content)
-
- raise Exception('Got an error code: ', e)
- return content
-
- @staticmethod
- def delete(url, apiKey):
- urlHeadersJson = {'content-type': 'application/json',
- 'X-Api-Key': '%s' % str(apiKey)}
- try:
- h = httplib2.Http('.cache',
- disable_ssl_certificate_validation=True)
- (response, content) = h.request(url, 'DELETE', '', urlHeadersJson)
- logger.debug('DELETE: ' + url)
- except Exception, e:
- raise Exception('Got an error code: ', e)
- if response.status not in okStates:
- raise TestFailedError(json.loads(content)['error'])
- return json.loads(content)
-
- @staticmethod
- def getWithHeaders(url, apiKey):
- urlHeadersJson = {'content-type': 'application/json',
- 'X-Api-Key': '%s' % str(apiKey)}
- try:
- h = httplib2.Http('.cache',
- disable_ssl_certificate_validation=True)
- logger.debug('GET: ' + url)
- (response, content) = h.request(url, 'GET', '', urlHeadersJson)
- except Exception, e:
- raise Exception('Got an error code: ', e)
- if response.status not in okStates:
- raise TestFailedError(json.loads(content)['error'])
- output = json.loads(content)
- return output
diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py b/functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py
deleted file mode 100644
index 50dfbc66..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/utils/IxLoadUtils.py
+++ /dev/null
@@ -1,398 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 IXIA and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-import requests
-import sys
-import time
-import logging
-
-from functest.opnfv_tests.vnf.ims.ixia.utils import IxRestUtils
-
-
-kActionStateFinished = 'finished'
-kActionStatusSuccessful = 'Successful'
-kActionStatusError = 'Error'
-kTestStateUnconfigured = 'Unconfigured'
-
-logger = logging.getLogger(__name__)
-
-
-def stripApiAndVersionFromURL(url):
-
- # remove the slash (if any) at the beginning of the url
-
- if url[0] == '/':
- url = url[1:]
-
- urlElements = url.split('/')
- if 'api' in url:
-
- # strip the api/v0 part of the url
-
- urlElements = urlElements[2:]
-
- return '/'.join(urlElements)
-
-
-def waitForActionToFinish(connection, replyObj, actionUrl):
- """
- This method waits for an action to finish executing. after a POST request
- is sent in order to start an action, The HTTP reply will contain,
- in the header, a 'location' field, that contains an URL.
- The action URL contains the status of the action. we perform a GET on that
- URL every 0.5 seconds until the action finishes with a success.
- If the action fails, we will throw an error and
- print the action's error message.
- """
-
- actionResultURL = replyObj.headers.get('location')
- if actionResultURL:
- actionResultURL = stripApiAndVersionFromURL(actionResultURL)
- actionFinished = False
-
- while not actionFinished:
- actionStatusObj = connection.httpGet(actionResultURL)
-
- if actionStatusObj.state == kActionStateFinished:
- if actionStatusObj.status == kActionStatusSuccessful:
- actionFinished = True
- else:
- errorMsg = "Error while executing action '%s'." \
- % actionUrl
-
- if actionStatusObj.status == kActionStatusError:
- errorMsg += actionStatusObj.error
-
- print errorMsg
-
- sys.exit(1)
- else:
- time.sleep(0.1)
-
-
-def performGenericOperation(connection, url, payloadDict):
- """
- This will perform a generic operation on the given url,
- it will wait for it to finish.
- """
-
- data = IxRestUtils.formatDictToJSONPayload(payloadDict)
- reply = connection.httpPost(url=url, data=data)
-
- waitForActionToFinish(connection, reply, url)
-
- return reply
-
-
-def performGenericPost(connection, listUrl, payloadDict):
- """
- This will perform a generic POST method on a given url
- """
-
- data = IxRestUtils.formatDictToJSONPayload(payloadDict)
-
- reply = connection.httpPost(url=listUrl, data=data)
- try:
- newObjPath = reply.headers['location']
- except:
- raise Exception('Location header is not present. \
- Please check if the action was created successfully.')
-
- newObjID = newObjPath.split('/')[-1]
- return newObjID
-
-
-def performGenericDelete(connection, listUrl, payloadDict):
- """
- This will perform a generic DELETE method on a given url
- """
-
- data = IxRestUtils.formatDictToJSONPayload(payloadDict)
-
- reply = connection.httpDelete(url=listUrl, data=data)
- return reply
-
-
-def performGenericPatch(connection, url, payloadDict):
- """
- This will perform a generic PATCH method on a given url
- """
-
- data = IxRestUtils.formatDictToJSONPayload(payloadDict)
-
- reply = connection.httpPatch(url=url, data=data)
- return reply
-
-
-def createSession(connection, ixLoadVersion):
- """
- This method is used to create a new session.
- It will return the url of the newly created session
- """
-
- sessionsUrl = 'sessions'
- data = {'ixLoadVersion': ixLoadVersion}
-
- sessionId = performGenericPost(connection, sessionsUrl, data)
-
- newSessionUrl = '%s/%s' % (sessionsUrl, sessionId)
- startSessionUrl = '%s/operations/start' % newSessionUrl
-
- # start the session
-
- performGenericOperation(connection, startSessionUrl, {})
-
- logger.debug('Created session no %s' % sessionId)
-
- return newSessionUrl
-
-
-def deleteSession(connection, sessionUrl):
- """
- This method is used to delete an existing session.
- """
-
- deleteParams = {}
- performGenericDelete(connection, sessionUrl, deleteParams)
-
-
-def uploadFile(connection, url, fileName, uploadPath, overwrite=True):
- headers = {'Content-Type': 'multipart/form-data'}
- params = {'overwrite': overwrite, 'uploadPath': uploadPath}
-
- logger.debug('Uploading...')
- try:
- with open(fileName, 'rb') as f:
- resp = requests.post(url, data=f, params=params,
- headers=headers)
- except requests.exceptions.ConnectionError, e:
- raise Exception('Upload file failed. Received connection error. \
- One common cause for this error is the size of the \
- file to be uploaded.The web server sets a limit of 1GB\
- for the uploaded file size. \
- Received the following error: %s' % str(e))
- except IOError, e:
- raise Exception('Upload file failed. Received IO error: %s'
- % str(e))
- except Exception:
- raise Exception('Upload file failed. Received the following error: %s'
- % str(e))
- else:
- logger.debug('Upload file finished.')
- logger.debug('Response status code %s' % resp.status_code)
- logger.debug('Response text %s' % resp.text)
-
-
-def loadRepository(connection, sessionUrl, rxfFilePath):
- """
- This method will perform a POST request to load a repository.
- """
-
- loadTestUrl = '%s/ixload/test/operations/loadTest' % sessionUrl
- data = {'fullPath': rxfFilePath}
-
- performGenericOperation(connection, loadTestUrl, data)
-
-
-def saveRxf(connection, sessionUrl, rxfFilePath):
- """
- This method saves the current rxf to the disk of the machine on
- which the IxLoad instance is running.
- """
-
- saveRxfUrl = '%s/ixload/test/operations/saveAs' % sessionUrl
- rxfFilePath = rxfFilePath.replace('\\', '\\\\')
- data = {'fullPath': rxfFilePath, 'overWrite': 1}
-
- performGenericOperation(connection, saveRxfUrl, data)
-
-
-def runTest(connection, sessionUrl):
- """
- This method is used to start the currently loaded test.
- After starting the 'Start Test' action, wait for the action to complete.
- """
-
- startRunUrl = '%s/ixload/test/operations/runTest' % sessionUrl
- data = {}
-
- performGenericOperation(connection, startRunUrl, data)
-
-
-def getTestCurrentState(connection, sessionUrl):
- """
- This method gets the test current state.
- (for example - running, unconfigured, ..)
- """
-
- activeTestUrl = '%s/ixload/test/activeTest' % sessionUrl
- testObj = connection.httpGet(activeTestUrl)
-
- return testObj.currentState
-
-
-def getTestRunError(connection, sessionUrl):
- """
- This method gets the error that appeared during the last test run.
- If no error appeared (the test ran successfully),
- the return value will be 'None'.
- """
-
- activeTestUrl = '%s/ixload/test/activeTest' % sessionUrl
- testObj = connection.httpGet(activeTestUrl)
-
- return testObj.testRunError
-
-
-def waitForTestToReachUnconfiguredState(connection, sessionUrl):
- """
- This method waits for the current test to reach the 'Unconfigured' state.
- """
-
- while getTestCurrentState(connection, sessionUrl) \
- != kTestStateUnconfigured:
- time.sleep(0.1)
-
-
-def pollStats(connection, sessionUrl, watchedStatsDict, pollingInterval=4):
- """
- This method is used to poll the stats.
- Polling stats is per request but this method does a continuous poll.
- """
-
- statSourceList = watchedStatsDict.keys()
- statsDict = {}
-
- collectedTimestamps = {}
- testIsRunning = True
-
- # check stat sources
-
- for statSource in statSourceList[:]:
- statSourceUrl = '%s/ixload/stats/%s/values' % (sessionUrl, statSource)
- statSourceReply = connection.httpRequest('GET', statSourceUrl)
- if statSourceReply.status_code != 200:
- logger.debug("Warning - Stat source '%s' does not exist. \
- Will ignore it." % statSource)
- statSourceList.remove(statSource)
-
- # check the test state, and poll stats while the test is still running
-
- while testIsRunning:
-
- # the polling interval is configurable.
- # by default, it's set to 4 seconds
-
- time.sleep(pollingInterval)
-
- for statSource in statSourceList:
- valuesUrl = '%s/ixload/stats/%s/values' % (sessionUrl, statSource)
-
- valuesObj = connection.httpGet(valuesUrl)
- valuesDict = valuesObj.getOptions()
-
- # get just the new timestamps - that were not previously
- # retrieved in another stats polling iteration
-
- newTimestamps = [int(timestamp) for timestamp in
- valuesDict.keys() if timestamp
- not in collectedTimestamps.get(statSource,
- [])]
- newTimestamps.sort()
-
- for timestamp in newTimestamps:
- timeStampStr = str(timestamp)
-
- collectedTimestamps.setdefault(
- statSource, []).append(timeStampStr)
-
- timestampDict = statsDict.setdefault(
- statSource, {}).setdefault(timestamp, {})
-
- # save the values for the current timestamp,
- # and later print them
-
- logger.info(' -- ')
- for (caption, value) in \
- valuesDict[timeStampStr].getOptions().items():
- if caption in watchedStatsDict[statSource]:
- logger.info(' %s -> %s' % (caption, value))
- timestampDict[caption] = value
-
- testIsRunning = getTestCurrentState(connection, sessionUrl) \
- == 'Running'
-
- logger.debug('Stopped receiving stats.')
- return timestampDict
-
-
-def clearChassisList(connection, sessionUrl):
- """
- This method is used to clear the chassis list.
- After execution no chassis should be available in the chassisListself.
- """
-
- chassisListUrl = '%s/ixload/chassischain/chassisList' % sessionUrl
- deleteParams = {}
- performGenericDelete(connection, chassisListUrl, deleteParams)
-
-
-def configureLicenseServer(connection, sessionUrl, licenseServerIp):
- """
- This method is used to clear the chassis list.
- After execution no chassis should be available in the chassisList.
- """
-
- chassisListUrl = '%s/ixload/preferences' % sessionUrl
- patchParams = {'licenseServer': licenseServerIp}
- performGenericPatch(connection, chassisListUrl, patchParams)
-
-
-def addChassisList(connection, sessionUrl, chassisList):
- """
- This method is used to add one or more chassis to the chassis list.
- """
-
- chassisListUrl = '%s/ixload/chassisChain/chassisList' % sessionUrl
-
- for chassisName in chassisList:
- data = {'name': chassisName}
- chassisId = performGenericPost(connection, chassisListUrl, data)
-
- # refresh the chassis
-
- refreshConnectionUrl = '%s/%s/operations/refreshConnection' \
- % (chassisListUrl, chassisId)
- performGenericOperation(connection, refreshConnectionUrl, {})
-
-
-def assignPorts(connection, sessionUrl, portListPerCommunity):
- """
- This method is used to assign ports from a connected chassis
- to the required NetTraffics.
- """
-
- communtiyListUrl = '%s/ixload/test/activeTest/communityList' \
- % sessionUrl
-
- communityList = connection.httpGet(url=communtiyListUrl)
-
- for community in communityList:
- portListForCommunity = portListPerCommunity.get(community.name)
-
- portListUrl = '%s/%s/network/portList' % (communtiyListUrl,
- community.objectID)
-
- if portListForCommunity:
- for portTuple in portListForCommunity:
- (chassisId, cardId, portId) = portTuple
- paramDict = {'chassisId': chassisId, 'cardId': cardId,
- 'portId': portId}
-
- performGenericPost(connection, portListUrl, paramDict)
diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py b/functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py
deleted file mode 100644
index 41c23dc5..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/utils/IxRestUtils.py
+++ /dev/null
@@ -1,193 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 IXIA and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-from urlparse import urljoin
-import requests
-
-
-def getConnection(server, port):
- """
- Gets a Connection instance, that will be used to
- make the HTTP requests to the application
- """
- connectionUrl = 'http://%s:%s/' % (server, port)
-
- conn = Connection(connectionUrl, 'v0')
- return conn
-
-
-def formatDictToJSONPayload(dictionary):
- """
- Converts a given python dict instance to a string
- JSON payload that can be sent to a REST API.
- """
- jsonPayload = '{'
- optionsList = []
- for (key, val) in dictionary.items():
- valStr = str(val)
- if type(val) is str:
- valStr = '"%s"' % val
- if type(val) is bool:
- valStr = valStr.lower()
- optionsList.append('"%s":%s' % (key, valStr))
-
- jsonPayload += ','.join(optionsList)
- jsonPayload += '}'
-
- return jsonPayload
-
-
-class Connection(object):
-
- """
- Class that executes the HTTP requests to the application instance.
- It handles creating the HTTP session and executing HTTP methods.
- """
-
- kHeaderContentType = 'content-type'
- kContentJson = 'application/json'
-
- def __init__(self, siteUrl, apiVersion):
- self.httpSession = None
-
- self.url = Connection.urljoin(siteUrl, 'api')
- self.url = Connection.urljoin(self.url, apiVersion)
-
- def _getHttpSession(self):
- """
- This is a lazy initializer for the HTTP session.
- It does not need to be active until it is required.
- """
-
- if self.httpSession is None:
- self.httpSession = requests.Session()
- return self.httpSession
-
- @classmethod
- def urljoin(cls, base, end):
- """ Join two URLs. If the second URL is absolute, the base is ignored.
-
- Use this instead of urlparse.urljoin directly so that we can customize
- its behavior if necessary.
- Currently differs in that it
-
- 1. appends a / to base if not present.
- 2. casts end to a str as a convenience
- """
-
- if base and not base.endswith('/'):
- base = base + '/'
- return urljoin(base, str(end))
-
- def httpRequest(self, method, url='', data='', params={}, headers={}):
- """
- Method for making a HTTP request.
- The method type (GET, POST, PATCH, DELETE) will be sent as a parameter.
- Along with the url and request data. The HTTP response is returned
- """
-
- headers[Connection.kHeaderContentType] = Connection.kContentJson
-
- absUrl = Connection.urljoin(self.url, url)
- result = self._getHttpSession().request(method,
- absUrl,
- data=str(data),
- params=params,
- headers=headers)
- return result
-
- def httpGet(self, url='', data='', params={}, headers={}):
- """
- Method for calling HTTP GET.
- This will return a WebObject that has the fields returned
- in JSON format by the GET operation.
- """
-
- reply = self.httpRequest('GET', url, data, params, headers)
- return _WebObject(reply.json())
-
- def httpPost(self, url='', data='', params={}, headers={}):
- """
- Method for calling HTTP POST. Will return the HTTP reply.
- """
-
- return self.httpRequest('POST', url, data, params, headers)
-
- def httpPatch(self, url='', data='', params={}, headers={}):
- """
- Method for calling HTTP PATCH. Will return the HTTP reply.
- """
-
- return self.httpRequest('PATCH', url, data, params, headers)
-
- def httpDelete(self, url='', data='', params={}, headers={}):
- """
- Method for calling HTTP DELETE. Will return the HTTP reply.
- """
-
- return self.httpRequest('DELETE', url, data, params, headers)
-
-
-def _WebObject(value):
- """
- Method used for creating a wrapper object corresponding to the JSON string
- received on a GET request.
- """
-
- if isinstance(value, dict):
- result = WebObject(**value)
- elif isinstance(value, list):
- result = WebList(entries=value)
- else:
- result = value
- return result
-
-
-class WebList(list):
-
- """
- Using this class a JSON list will be transformed
- in a list of WebObject instances.
- """
-
- def __init__(self, entries=[]):
- """
- Create a WebList from a list of items that
- are processed by the _WebObject function
- """
-
- for item in entries:
- self.append(_WebObject(item))
-
-
-class WebObject(object):
-
- """
- A WebObject instance will have its fields set to correspond to
- the JSON format received on a GET request.
- """
-
- def __init__(self, **entries):
- """
- Create a WebObject instance by providing a dict having a
- property - value structure.
- """
-
- self.jsonOptions = {}
- for (key, value) in entries.iteritems():
- webObj = _WebObject(value)
- self.jsonOptions[key] = webObj
- self.__dict__[key] = webObj
-
- def getOptions(self):
- '''
- Get the JSON dictionary which represents the WebObject Instance
- '''
-
- return self.jsonOptions
diff --git a/functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py b/functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/ims/ixia/utils/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/ims/orchestra.yaml b/functest/opnfv_tests/vnf/ims/orchestra.yaml
deleted file mode 100644
index f81f55fb..00000000
--- a/functest/opnfv_tests/vnf/ims/orchestra.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
----
-tenant_images:
- orchestrator:
- ubuntu-14.04-server-cloudimg-amd64-disk1:
- /home/opnfv/functest/images/trusty-server-cloudimg-amd64-disk1.img
- orchestra_openims:
- openims: /home/opnfv/functest/images/img
- orchestra_clearwaterims:
- ubuntu-14.04-server-cloudimg-amd64-disk1:
- /home/opnfv/functest/images/trusty-server-cloudimg-amd64-disk1.img
-mano:
- name: OpenBaton
- version: '3.2.0'
- requirements:
- flavor:
- name: openbaton
- ram_min: 4096
- disk: 5
- vcpus: 2
- image: 'ubuntu-14.04-server-cloudimg-amd64-disk1'
- bootstrap:
- url: http://get.openbaton.org/bootstraps/bootstrap_3.2.0_opnfv/bootstrap
- config:
- url:
- http://get.openbaton.org/bootstraps/bootstrap_3.2.0_opnfv/bootstrap-config-file
- gvnfm:
- userdata:
- url:
- https://raw.githubusercontent.com/openbaton/generic-vnfm/3.2.0/src/main/resources/user-data.sh
- credentials:
- username: admin
- password: openbaton
-
-orchestra_openims:
- name: OpenIMS
- descriptor:
- url:
- http://marketplace.openbaton.org:8080/api/v1/nsds/fokus/OpenImsCore/3.2.0/json
- requirements:
- flavor:
- name: m1.small
- ram_min: 2048
- disk: 5
- vcpus: 2
- test:
- scscf:
- ports: [3870, 6060]
- pcscf:
- ports: [4060]
- icscf:
- ports: [3869, 5060]
- fhoss:
- ports: [3868]
- bind9:
- ports: []
-
-orchestra_clearwaterims:
- name: Clearwater IMS
- descriptor:
- url:
- http://marketplace.openbaton.org:8080/api/v1/nsds/fokus/ClearwaterIMS/3.2.0/json
- requirements:
- flavor:
- name: m1.small
- ram_min: 2048
- disk: 5
- vcpus: 2
- test:
diff --git a/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py b/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py
deleted file mode 100644
index 2d248b2e..00000000
--- a/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py
+++ /dev/null
@@ -1,574 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Orchestra Clearwater IMS testcase implementation."""
-
-import json
-import logging
-import os
-import socket
-import time
-
-import pkg_resources
-import yaml
-
-from functest.core import vnf
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-
-from org.openbaton.cli.errors.errors import NfvoException
-from org.openbaton.cli.agents.agents import MainAgent
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.vm_inst import FloatingIpConfig
-from snaps.config.vm_inst import VmInstanceConfig
-from snaps.openstack.utils import keystone_utils
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.create_image import OpenStackImage
-from snaps.openstack.create_instance import OpenStackVmInstance
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-
-
-__author__ = "Pauls, Michael <michael.pauls@fokus.fraunhofer.de>"
-# ----------------------------------------------------------
-#
-# UTILS
-#
-# -----------------------------------------------------------
-
-
-def get_config(parameter, file_path):
- """
- Get config parameter.
-
- Returns the value of a given parameter in file.yaml
- parameter must be given in string format with dots
- Example: general.openstack.image_name
- """
- with open(file_path) as config_file:
- file_yaml = yaml.safe_load(config_file)
- config_file.close()
- value = file_yaml
- for element in parameter.split("."):
- value = value.get(element)
- if value is None:
- raise ValueError("The parameter %s is not defined in"
- " reporting.yaml", parameter)
- return value
-
-
-def servertest(host, port):
- """Method to test that a server is reachable at IP:port"""
- args = socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM)
- for family, socktype, proto, _, sockaddr in args:
- sock = socket.socket(family, socktype, proto)
- try:
- sock.connect(sockaddr)
- except socket.error:
- return False
- else:
- sock.close()
- return True
-
-
-def get_userdata(orchestrator=dict):
- """Build userdata for Open Baton machine"""
- userdata = "#!/bin/bash\n"
- userdata += "echo \"Executing userdata...\"\n"
- userdata += "set -x\n"
- userdata += "set -e\n"
- userdata += "echo \"Install curl...\"\n"
- userdata += "apt-get install curl\n"
- userdata += "echo \"Inject public key...\"\n"
- userdata += ("echo \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuPXrV3"
- "geeHc6QUdyUr/1Z+yQiqLcOskiEGBiXr4z76MK4abiFmDZ18OMQlc"
- "fl0p3kS0WynVgyaOHwZkgy/DIoIplONVr2CKBKHtPK+Qcme2PVnCtv"
- "EqItl/FcD+1h5XSQGoa+A1TSGgCod/DPo+pes0piLVXP8Ph6QS1k7S"
- "ic7JDeRQ4oT1bXYpJ2eWBDMfxIWKZqcZRiGPgMIbJ1iEkxbpeaAd9O"
- "4MiM9nGCPESmed+p54uYFjwEDlAJZShcAZziiZYAvMZhvAhe6USljc"
- "7YAdalAnyD/jwCHuwIrUw/lxo7UdNCmaUxeobEYyyFA1YVXzpNFZya"
- "XPGAAYIJwEq/ openbaton@opnfv\" >> /home/ubuntu/.ssh/aut"
- "horized_keys\n")
- userdata += "echo \"Download bootstrap...\"\n"
- userdata += ("curl -s %s "
- "> ./bootstrap\n" % orchestrator['bootstrap']['url'])
- userdata += ("curl -s %s" "> ./config_file\n" %
- orchestrator['bootstrap']['config']['url'])
- userdata += ("echo \"Disable usage of mysql...\"\n")
- userdata += "sed -i s/mysql=.*/mysql=no/g /config_file\n"
- userdata += "echo \"Set autostart of components to 'false'\"\n"
- userdata += "export OPENBATON_COMPONENT_AUTOSTART=false\n"
- userdata += "echo \"Execute bootstrap...\"\n"
- bootstrap = "sh ./bootstrap release -configFile=./config_file"
- userdata += bootstrap + "\n"
- userdata += "echo \"Setting 'nfvo.plugin.timeout' to '300000'\"\n"
- userdata += ("echo \"nfvo.plugin.timeout=600000\" >> "
- "/etc/openbaton/openbaton-nfvo.properties\n")
- userdata += (
- "wget %s -O /etc/openbaton/openbaton-vnfm-generic-user-data.sh\n" %
- orchestrator['gvnfm']['userdata']['url'])
- userdata += "sed -i '113i"'\ \ \ \ '"sleep 60' " \
- "/etc/openbaton/openbaton-vnfm-generic-user-data.sh\n"
- userdata += ("sed -i s/nfvo.marketplace.port=8082/nfvo.marketplace."
- "port=8080/g /etc/openbaton/openbaton-nfvo.properties\n")
- userdata += "echo \"Starting NFVO\"\n"
- userdata += "service openbaton-nfvo restart\n"
- userdata += "echo \"Starting Generic VNFM\"\n"
- userdata += "service openbaton-vnfm-generic restart\n"
- userdata += "echo \"...end of userdata...\"\n"
- return userdata
-
-
-class ClearwaterImsVnf(vnf.VnfOnBoarding):
- """Clearwater IMS VNF deployed with openBaton orchestrator"""
-
- # logger = logging.getLogger(__name__)
-
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "orchestra_clearwaterims"
- super(ClearwaterImsVnf, self).__init__(**kwargs)
- self.logger = logging.getLogger("functest.ci.run_tests.orchestra")
- self.logger.info("kwargs %s", (kwargs))
-
- self.case_dir = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/vnf/ims/')
- self.data_dir = getattr(config.CONF, 'dir_ims_data')
- self.test_dir = getattr(config.CONF, 'dir_repo_vims_test')
- self.created_resources = []
- self.logger.info("%s VNF onboarding test starting", self.case_name)
-
- try:
- self.config = getattr(
- config.CONF, 'vnf_{}_config'.format(self.case_name))
- except BaseException:
- raise Exception("Orchestra VNF config file not found")
-
- config_file = self.case_dir + self.config
-
- self.mano = dict(
- get_config("mano", config_file),
- details={}
- )
- self.logger.debug("Orchestrator configuration %s", self.mano)
-
- self.details['orchestrator'] = dict(
- name=self.mano['name'],
- version=self.mano['version'],
- status='ERROR',
- result=''
- )
-
- self.vnf = dict(
- get_config(self.case_name, config_file),
- )
- self.logger.debug("VNF configuration: %s", self.vnf)
-
- self.details['vnf'] = dict(
- name=self.vnf['name'],
- )
-
- self.details['test_vnf'] = dict(
- name=self.case_name,
- )
-
- # Orchestra base Data directory creation
- if not os.path.exists(self.data_dir):
- os.makedirs(self.data_dir)
-
- self.images = get_config("tenant_images.orchestrator", config_file)
- self.images.update(
- get_config(
- "tenant_images.%s" %
- self.case_name,
- config_file))
- self.creds = None
- self.orchestra_router = None
-
- def prepare(self):
- """Prepare testscase (Additional pre-configuration steps)."""
- super(ClearwaterImsVnf, self).prepare()
-
- self.logger.info("Additional pre-configuration steps")
-
- public_auth_url = keystone_utils.get_endpoint(
- self.snaps_creds, 'identity')
- self.creds = {
- "tenant": self.snaps_creds.project_name,
- "username": self.snaps_creds.username,
- "password": self.snaps_creds.password,
- "auth_url": public_auth_url}
- self.prepare_images()
- self.prepare_flavor()
- self.prepare_security_groups()
- self.prepare_network()
-
- def prepare_images(self):
- """Upload images if they doen't exist yet"""
- self.logger.info("Upload images if they doen't exist yet")
- for image_name, image_file in self.images.iteritems():
- self.logger.info("image: %s, file: %s", image_name, image_file)
- if image_file and image_name:
- image = OpenStackImage(
- self.snaps_creds,
- ImageConfig(name=image_name,
- image_user='cloud',
- img_format='qcow2',
- image_file=image_file,
- public=True))
- image.create()
- self.created_resources.append(image)
-
- def prepare_security_groups(self):
- """Create Open Baton security group if it doesn't exist yet"""
- self.logger.info(
- "Creating security group for Open Baton if not yet existing...")
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.tcp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.egress,
- protocol=Protocol.tcp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.udp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.egress,
- protocol=Protocol.udp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.icmp))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.egress,
- protocol=Protocol.icmp))
- security_group = OpenStackSecurityGroup(
- self.snaps_creds,
- SecurityGroupConfig(
- name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- rule_settings=sg_rules))
- security_group_info = security_group.create()
- self.created_resources.append(security_group)
- self.mano['details']['sec_group'] = security_group_info.name
- self.logger.info(
- "Security group orchestra-sec-group-allowall prepared")
-
- def prepare_flavor(self):
- """Create Open Baton flavor if it doesn't exist yet"""
- self.logger.info(
- "Create Flavor for Open Baton NFVO if not yet existing")
-
- flavor_settings = FlavorConfig(
- name=self.mano['requirements']['flavor']['name'],
- ram=self.mano['requirements']['flavor']['ram_min'],
- disk=self.mano['requirements']['flavor']['disk'],
- vcpus=self.mano['requirements']['flavor']['vcpus'])
- flavor = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_info = flavor.create()
- self.created_resources.append(flavor)
- self.mano['details']['flavor'] = {}
- self.mano['details']['flavor']['name'] = flavor_settings.name
- self.mano['details']['flavor']['id'] = flavor_info.id
-
- def prepare_network(self):
- """Create network/subnet/router if they doen't exist yet"""
- self.logger.info(
- "Creating network/subnet/router if they doen't exist yet...")
- subnet_settings = SubnetConfig(
- name='{}_subnet-{}'.format(self.case_name, self.uuid),
- cidr="192.168.100.0/24")
- network_settings = NetworkConfig(
- name='{}_net-{}'.format(self.case_name, self.uuid),
- subnet_settings=[subnet_settings])
- orchestra_network = OpenStackNetwork(
- self.snaps_creds, network_settings)
- orchestra_network_info = orchestra_network.create()
- self.mano['details']['network'] = {}
- self.mano['details']['network']['id'] = orchestra_network_info.id
- self.mano['details']['network']['name'] = orchestra_network_info.name
- self.mano['details']['external_net_name'] = snaps_utils.\
- get_ext_net_name(self.snaps_creds)
- self.created_resources.append(orchestra_network)
- self.orchestra_router = OpenStackRouter(
- self.snaps_creds,
- RouterConfig(
- name='{}_router-{}'.format(self.case_name, self.uuid),
- external_gateway=self.mano['details']['external_net_name'],
- internal_subnets=[
- subnet_settings.name]))
- self.orchestra_router.create()
- self.created_resources.append(self.orchestra_router)
- self.logger.info("Created network and router for Open Baton NFVO...")
-
- def get_vim_descriptor(self):
- """"Create VIM descriptor to be used for onboarding"""
- self.logger.info(
- "Building VIM descriptor with PoP creds: %s",
- self.creds)
- self.logger.debug("VIM project/tenant id: %s",
- self.snaps_creds.project_name)
- keystone = keystone_utils.keystone_client(self.snaps_creds)
- project_id = keystone_utils.get_project(
- keystone=keystone, project_name=self.snaps_creds.project_name).id
- vim_json = {
- "name": "vim-instance",
- "authUrl": self.creds.get("auth_url"),
- "tenant": project_id,
- "username": self.creds.get("username"),
- "password": self.creds.get("password"),
- "securityGroups": [
- self.mano['details']['sec_group']
- ],
- "type": "openstack",
- "location": {
- "name": "opnfv",
- "latitude": "52.525876",
- "longitude": "13.314400"
- }
- }
- self.logger.info("Built VIM descriptor: %s", vim_json)
- return vim_json
-
- def deploy_orchestrator(self):
- self.logger.info("Deploying Open Baton...")
- self.logger.info("Details: %s", self.mano['details'])
- start_time = time.time()
-
- self.logger.info("Creating orchestra instance...")
- userdata = get_userdata(self.mano)
- self.logger.info("flavor: %s\n"
- "image: %s\n"
- "network_id: %s\n",
- self.mano['details']['flavor']['name'],
- self.mano['requirements']['image'],
- self.mano['details']['network']['id'])
- self.logger.debug("userdata: %s\n", userdata)
- # setting up image
- image_settings = ImageConfig(
- name=self.mano['requirements']['image'],
- image_user='ubuntu',
- exists=True)
- # setting up port
- port_settings = PortConfig(
- name='{}_port-{}'.format(self.case_name, self.uuid),
- network_name=self.mano['details']['network']['name'])
-
- # build configuration of vm
- orchestra_settings = VmInstanceConfig(
- name=self.case_name,
- flavor=self.mano['details']['flavor']['name'],
- port_settings=[port_settings],
- security_group_names=[self.mano['details']['sec_group']],
- floating_ip_settings=[FloatingIpConfig(
- name='orchestra_fip-{}'.format(self.uuid),
- port_name=port_settings.name,
- router_name=self.orchestra_router.router_settings.name)],
- userdata=str(userdata))
- orchestra_vm = OpenStackVmInstance(
- self.snaps_creds, orchestra_settings, image_settings)
- orchestra_vm.create()
- self.mano['details']['fip'] = orchestra_vm.get_floating_ip()
- self.created_resources.append(orchestra_vm)
- self.mano['details']['id'] = orchestra_vm.get_vm_info()['id']
- self.logger.info(
- "Created orchestra instance: %s", self.mano['details']['id'])
- self.logger.info("Waiting for Open Baton NFVO to be up and running...")
- timeout = 0
- while timeout < 20:
- if servertest(
- self.mano['details']['fip'].ip,
- "8080"):
- break
- else:
- self.logger.info(
- "Open Baton NFVO is not started yet (%ss)",
- (timeout * 60))
- time.sleep(60)
- timeout += 1
-
- if timeout >= 20:
- duration = time.time() - start_time
- self.details["orchestrator"].update(
- status='FAIL', duration=duration)
- self.logger.error("Open Baton is not started correctly")
- return False
-
- self.logger.info("Waiting for all components to be up and running...")
- time.sleep(60)
- duration = time.time() - start_time
- self.details["orchestrator"].update(status='PASS', duration=duration)
- self.logger.info("Deploy Open Baton NFVO: OK")
- return True
-
- def deploy_vnf(self):
- start_time = time.time()
- self.logger.info("Deploying %s...", self.vnf['name'])
-
- main_agent = MainAgent(
- nfvo_ip=self.mano['details']['fip'].ip,
- nfvo_port=8080,
- https=False,
- version=1,
- username=self.mano['credentials']['username'],
- password=self.mano['credentials']['password'])
-
- self.logger.info(
- "Create %s Flavor if not existing", self.vnf['name'])
- flavor_settings = FlavorConfig(
- name=self.vnf['requirements']['flavor']['name'],
- ram=self.vnf['requirements']['flavor']['ram_min'],
- disk=self.vnf['requirements']['flavor']['disk'],
- vcpus=self.vnf['requirements']['flavor']['vcpus'])
- flavor = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_info = flavor.create()
- self.logger.debug("Flavor id: %s", flavor_info.id)
-
- self.logger.info("Getting project 'default'...")
- project_agent = main_agent.get_agent("project", "")
- for project in json.loads(project_agent.find()):
- if project.get("name") == "default":
- self.mano['details']['project_id'] = project.get("id")
- self.logger.info("Found project 'default': %s", project)
- break
-
- vim_json = self.get_vim_descriptor()
- self.logger.info("Registering VIM: %s", vim_json)
-
- main_agent.get_agent(
- "vim", project_id=self.mano['details']['project_id']).create(
- entity=json.dumps(vim_json))
-
- market_agent = main_agent.get_agent(
- "market", project_id=self.mano['details']['project_id'])
-
- try:
- self.logger.info("sending: %s", self.vnf['descriptor']['url'])
- nsd = market_agent.create(entity=self.vnf['descriptor']['url'])
- if nsd.get('id') is None:
- self.logger.error("NSD not onboarded correctly")
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
- self.mano['details']['nsd_id'] = nsd.get('id')
- self.logger.info("Onboarded NSD: " + nsd.get("name"))
-
- nsr_agent = main_agent.get_agent(
- "nsr", project_id=self.mano['details']['project_id'])
-
- self.mano['details']['nsr'] = nsr_agent.create(
- self.mano['details']['nsd_id'])
- except NfvoException:
- self.logger.exception("failed")
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
-
- if self.mano['details']['nsr'].get('code') is not None:
- self.logger.error(
- "%s cannot be deployed: %s -> %s",
- self.vnf['name'],
- self.mano['details']['nsr'].get('code'),
- self.mano['details']['nsr'].get('message'))
- self.logger.error("%s cannot be deployed", self.vnf['name'])
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
-
- timeout = 0
- self.logger.info("Waiting for NSR to go to ACTIVE...")
- while self.mano['details']['nsr'].get("status") != 'ACTIVE' \
- and self.mano['details']['nsr'].get("status") != 'ERROR':
- timeout += 1
- self.logger.info("NSR is not yet ACTIVE... (%ss)", 60 * timeout)
- if timeout == 30:
- self.logger.error("INACTIVE NSR after %s sec..", 60 * timeout)
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
- time.sleep(60)
- self.mano['details']['nsr'] = json.loads(
- nsr_agent.find(self.mano['details']['nsr'].get('id')))
-
- duration = time.time() - start_time
- if self.mano['details']['nsr'].get("status") == 'ACTIVE':
- self.details["vnf"].update(status='PASS', duration=duration)
- self.logger.info("Sleep for 60s to ensure that all "
- "services are up and running...")
- time.sleep(60)
- result = True
- else:
- self.details["vnf"].update(status='FAIL', duration=duration)
- self.logger.error("NSR: %s", self.mano['details'].get('nsr'))
- result = False
- return result
-
- def test_vnf(self):
- self.logger.info(
- "Testing VNF Clearwater IMS is not yet implemented...")
- start_time = time.time()
-
- duration = time.time() - start_time
- self.details["test_vnf"].update(status='PASS', duration=duration)
- self.logger.info("Test VNF: OK")
- return True
-
- def clean(self):
- self.logger.info("Cleaning %s...", self.case_name)
- try:
- main_agent = MainAgent(
- nfvo_ip=self.mano['details']['fip'].ip,
- nfvo_port=8080, https=False, version=1,
- username=self.mano['credentials']['username'],
- password=self.mano['credentials']['password'])
- self.logger.info("Terminating %s...", self.vnf['name'])
- if self.mano['details'].get('nsr'):
- main_agent.get_agent(
- "nsr",
- project_id=self.mano['details']['project_id']).delete(
- self.mano['details']['nsr'].get('id'))
- self.logger.info("Sleeping 60 seconds...")
- time.sleep(60)
- else:
- self.logger.info("No need to terminate the VNF...")
- except (NfvoException, KeyError) as exc:
- self.logger.error('Unexpected error cleaning - %s', exc)
- super(ClearwaterImsVnf, self).clean()
diff --git a/functest/opnfv_tests/vnf/ims/orchestra_openims.py b/functest/opnfv_tests/vnf/ims/orchestra_openims.py
deleted file mode 100644
index 8f209d5c..00000000
--- a/functest/opnfv_tests/vnf/ims/orchestra_openims.py
+++ /dev/null
@@ -1,598 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Orchestra OpenIMS testcase implementation."""
-
-import json
-import logging
-import os
-import socket
-import time
-import pkg_resources
-import yaml
-
-from functest.core import vnf
-from functest.utils import config
-
-from org.openbaton.cli.errors.errors import NfvoException
-from org.openbaton.cli.agents.agents import MainAgent
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.vm_inst import FloatingIpConfig
-from snaps.config.vm_inst import VmInstanceConfig
-from snaps.openstack.utils import keystone_utils
-from snaps.openstack.create_image import OpenStackImage
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_instance import OpenStackVmInstance
-
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-
-
-__author__ = "Pauls, Michael <michael.pauls@fokus.fraunhofer.de>"
-# ----------------------------------------------------------
-#
-# UTILS
-#
-# -----------------------------------------------------------
-
-
-def get_config(parameter, file_path):
- """
- Get config parameter.
-
- Returns the value of a given parameter in file.yaml
- parameter must be given in string format with dots
- Example: general.openstack.image_name
- """
- with open(file_path) as config_file:
- file_yaml = yaml.safe_load(config_file)
- config_file.close()
- value = file_yaml
- for element in parameter.split("."):
- value = value.get(element)
- if value is None:
- raise ValueError("The parameter %s is not defined in"
- " reporting.yaml", parameter)
- return value
-
-
-def servertest(host, port):
- """Method to test that a server is reachable at IP:port"""
- args = socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM)
- for family, socktype, proto, _, sockaddr in args:
- sock = socket.socket(family, socktype, proto)
- try:
- sock.connect(sockaddr)
- except socket.error:
- return False
- else:
- sock.close()
- return True
-
-
-def get_userdata(orchestrator=dict):
- """Build userdata for Open Baton machine"""
- userdata = "#!/bin/bash\n"
- userdata += "echo \"Executing userdata...\"\n"
- userdata += "set -x\n"
- userdata += "set -e\n"
- userdata += "echo \"Install curl...\"\n"
- userdata += "apt-get install curl\n"
- userdata += "echo \"Inject public key...\"\n"
- userdata += ("echo \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuPXrV3"
- "geeHc6QUdyUr/1Z+yQiqLcOskiEGBiXr4z76MK4abiFmDZ18OMQlc"
- "fl0p3kS0WynVgyaOHwZkgy/DIoIplONVr2CKBKHtPK+Qcme2PVnCtv"
- "EqItl/FcD+1h5XSQGoa+A1TSGgCod/DPo+pes0piLVXP8Ph6QS1k7S"
- "ic7JDeRQ4oT1bXYpJ2eWBDMfxIWKZqcZRiGPgMIbJ1iEkxbpeaAd9O"
- "4MiM9nGCPESmed+p54uYFjwEDlAJZShcAZziiZYAvMZhvAhe6USljc"
- "7YAdalAnyD/jwCHuwIrUw/lxo7UdNCmaUxeobEYyyFA1YVXzpNFZya"
- "XPGAAYIJwEq/ openbaton@opnfv\" >> /home/ubuntu/.ssh/aut"
- "horized_keys\n")
- userdata += "echo \"Download bootstrap...\"\n"
- userdata += ("curl -s %s "
- "> ./bootstrap\n" % orchestrator['bootstrap']['url'])
- userdata += ("curl -s %s" "> ./config_file\n" %
- orchestrator['bootstrap']['config']['url'])
- userdata += ("echo \"Disable usage of mysql...\"\n")
- userdata += "sed -i s/mysql=.*/mysql=no/g /config_file\n"
- userdata += "echo \"Set autostart of components to 'false'\"\n"
- userdata += "export OPENBATON_COMPONENT_AUTOSTART=false\n"
- userdata += "echo \"Execute bootstrap...\"\n"
- bootstrap = "sh ./bootstrap release -configFile=./config_file"
- userdata += bootstrap + "\n"
- userdata += "echo \"Setting 'nfvo.plugin.timeout' to '300000'\"\n"
- userdata += ("echo \"nfvo.plugin.timeout=600000\" >> "
- "/etc/openbaton/openbaton-nfvo.properties\n")
- userdata += (
- "wget %s -O /etc/openbaton/openbaton-vnfm-generic-user-data.sh\n" %
- orchestrator['gvnfm']['userdata']['url'])
- userdata += "sed -i '113i"'\ \ \ \ '"sleep 60' " \
- "/etc/openbaton/openbaton-vnfm-generic-user-data.sh\n"
- userdata += ("sed -i s/nfvo.marketplace.port=8082/nfvo.marketplace."
- "port=8080/g /etc/openbaton/openbaton-nfvo.properties\n")
- userdata += "echo \"Starting NFVO\"\n"
- userdata += "service openbaton-nfvo restart\n"
- userdata += "echo \"Starting Generic VNFM\"\n"
- userdata += "service openbaton-vnfm-generic restart\n"
- userdata += "echo \"...end of userdata...\"\n"
- return userdata
-
-
-class OpenImsVnf(vnf.VnfOnBoarding):
- """OpenIMS VNF deployed with openBaton orchestrator"""
-
- # logger = logging.getLogger(__name__)
-
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "orchestra_openims"
- super(OpenImsVnf, self).__init__(**kwargs)
- self.logger = logging.getLogger("functest.ci.run_tests.orchestra")
- self.logger.info("kwargs %s", (kwargs))
-
- self.case_dir = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/vnf/ims/')
- self.data_dir = getattr(config.CONF, 'dir_ims_data')
- self.test_dir = getattr(config.CONF, 'dir_repo_vims_test')
- self.created_resources = []
- self.logger.info("%s VNF onboarding test starting", self.case_name)
-
- try:
- self.config = getattr(
- config.CONF, 'vnf_{}_config'.format(self.case_name))
- except BaseException:
- raise Exception("Orchestra VNF config file not found")
- config_file = self.case_dir + self.config
-
- self.mano = dict(
- get_config("mano", config_file),
- details={}
- )
- self.logger.debug("Orchestrator configuration %s", self.mano)
-
- self.details['orchestrator'] = dict(
- name=self.mano['name'],
- version=self.mano['version'],
- status='ERROR',
- result=''
- )
-
- self.vnf = dict(
- get_config(self.case_name, config_file),
- )
- self.logger.debug("VNF configuration: %s", self.vnf)
-
- self.details['vnf'] = dict(
- name=self.vnf['name'],
- )
-
- self.details['test_vnf'] = dict(
- name=self.case_name,
- )
-
- # Orchestra base Data directory creation
- if not os.path.exists(self.data_dir):
- os.makedirs(self.data_dir)
-
- self.images = get_config("tenant_images.orchestrator", config_file)
- self.images.update(get_config("tenant_images.%s" %
- self.case_name, config_file))
- self.creds = None
- self.orchestra_router = None
-
- def prepare(self):
- """Prepare testscase (Additional pre-configuration steps)."""
- super(OpenImsVnf, self).prepare()
-
- public_auth_url = keystone_utils.get_endpoint(
- self.snaps_creds, 'identity')
-
- self.logger.info("Additional pre-configuration steps")
- self.creds = {
- "tenant": self.snaps_creds.project_name,
- "username": self.snaps_creds.username,
- "password": self.snaps_creds.password,
- "auth_url": public_auth_url}
- self.prepare_images()
- self.prepare_flavor()
- self.prepare_security_groups()
- self.prepare_network()
-
- def prepare_images(self):
- """Upload images if they doen't exist yet"""
- self.logger.info("Upload images if they doen't exist yet")
- for image_name, image_file in self.images.iteritems():
- self.logger.info("image: %s, file: %s", image_name, image_file)
- if image_file and image_name:
- image = OpenStackImage(
- self.snaps_creds,
- ImageConfig(name=image_name,
- image_user='cloud',
- img_format='qcow2',
- image_file=image_file,
- public=True))
- image.create()
- self.created_resources.append(image)
-
- def prepare_security_groups(self):
- """Create Open Baton security group if it doesn't exist yet"""
- self.logger.info(
- "Creating security group for Open Baton if not yet existing...")
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.tcp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.egress,
- protocol=Protocol.tcp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.udp,
- port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- direction=Direction.egress,
- protocol=Protocol.udp,
- port_range_min=1,
- port_range_max=65535))
- security_group = OpenStackSecurityGroup(
- self.snaps_creds,
- SecurityGroupConfig(
- name="orchestra-sec-group-allowall-{}".format(
- self.uuid),
- rule_settings=sg_rules))
-
- security_group_info = security_group.create()
- self.created_resources.append(security_group)
- self.mano['details']['sec_group'] = security_group_info.name
- self.logger.info(
- "Security group orchestra-sec-group-allowall prepared")
-
- def prepare_flavor(self):
- """Create Open Baton flavor if it doesn't exist yet"""
- self.logger.info(
- "Create Flavor for Open Baton NFVO if not yet existing")
-
- flavor_settings = FlavorConfig(
- name=self.mano['requirements']['flavor']['name'],
- ram=self.mano['requirements']['flavor']['ram_min'],
- disk=self.mano['requirements']['flavor']['disk'],
- vcpus=self.mano['requirements']['flavor']['vcpus'])
- flavor = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_info = flavor.create()
- self.created_resources.append(flavor)
- self.mano['details']['flavor'] = {}
- self.mano['details']['flavor']['name'] = flavor_settings.name
- self.mano['details']['flavor']['id'] = flavor_info.id
-
- def prepare_network(self):
- """Create network/subnet/router if they doen't exist yet"""
- self.logger.info(
- "Creating network/subnet/router if they doen't exist yet...")
- subnet_settings = SubnetConfig(
- name='{}_subnet-{}'.format(self.case_name, self.uuid),
- cidr="192.168.100.0/24")
- network_settings = NetworkConfig(
- name='{}_net-{}'.format(self.case_name, self.uuid),
- subnet_settings=[subnet_settings])
- orchestra_network = OpenStackNetwork(
- self.snaps_creds, network_settings)
- orchestra_network_info = orchestra_network.create()
- self.mano['details']['network'] = {}
- self.mano['details']['network']['id'] = orchestra_network_info.id
- self.mano['details']['network']['name'] = orchestra_network_info.name
- self.mano['details']['external_net_name'] = \
- snaps_utils.get_ext_net_name(self.snaps_creds)
- self.created_resources.append(orchestra_network)
- self.orchestra_router = OpenStackRouter(
- self.snaps_creds,
- RouterConfig(
- name='{}_router-{}'.format(self.case_name, self.uuid),
- external_gateway=self.mano['details']['external_net_name'],
- internal_subnets=[
- subnet_settings.name]))
- self.orchestra_router.create()
- self.created_resources.append(self.orchestra_router)
- self.logger.info("Created network and router for Open Baton NFVO...")
-
- def get_vim_descriptor(self):
- """"Create VIM descriptor to be used for onboarding"""
- self.logger.info(
- "Building VIM descriptor with PoP creds: %s",
- self.creds)
- self.logger.debug("VIM project/tenant id: %s",
- self.snaps_creds.project_name)
- keystone = keystone_utils.keystone_client(self.snaps_creds)
- project_id = keystone_utils.get_project(
- keystone=keystone, project_name=self.snaps_creds.project_name).id
- vim_json = {
- "name": "vim-instance",
- "authUrl": self.creds.get("auth_url"),
- "tenant": project_id,
- "username": self.creds.get("username"),
- "password": self.creds.get("password"),
- "securityGroups": [
- self.mano['details']['sec_group']
- ],
- "type": "openstack",
- "location": {
- "name": "opnfv",
- "latitude": "52.525876",
- "longitude": "13.314400"
- }
- }
- self.logger.info("Built VIM descriptor: %s", vim_json)
- return vim_json
-
- def deploy_orchestrator(self):
- self.logger.info("Deploying Open Baton...")
- self.logger.info("Details: %s", self.mano['details'])
- start_time = time.time()
-
- self.logger.info("Creating orchestra instance...")
- userdata = get_userdata(self.mano)
- self.logger.info("flavor: %s\n"
- "image: %s\n"
- "network_id: %s\n",
- self.mano['details']['flavor']['name'],
- self.mano['requirements']['image'],
- self.mano['details']['network']['id'])
- self.logger.debug("userdata: %s\n", userdata)
- # setting up image
- image_settings = ImageConfig(
- name=self.mano['requirements']['image'],
- image_user='ubuntu',
- exists=True)
- # setting up port
- port_settings = PortConfig(
- name='{}_port-{}'.format(self.case_name, self.uuid),
- network_name=self.mano['details']['network']['name'])
- # build configuration of vm
- orchestra_settings = VmInstanceConfig(
- name='{}-{}'.format(self.case_name, self.uuid),
- flavor=self.mano['details']['flavor']['name'],
- port_settings=[port_settings],
- security_group_names=[self.mano['details']['sec_group']],
- floating_ip_settings=[FloatingIpConfig(
- name='orchestra_fip-{}'.format(self.uuid),
- port_name=port_settings.name,
- router_name=self.orchestra_router.router_settings.name)],
- userdata=str(userdata))
- orchestra_vm = OpenStackVmInstance(
- self.snaps_creds, orchestra_settings, image_settings)
- orchestra_vm.create()
- self.mano['details']['fip'] = orchestra_vm.get_floating_ip()
- self.created_resources.append(orchestra_vm)
- self.mano['details']['id'] = orchestra_vm.get_vm_info()['id']
- self.logger.info(
- "Created orchestra instance: %s", self.mano['details']['id'])
- self.logger.info("Waiting for Open Baton NFVO to be up and running...")
- timeout = 0
- while timeout < 20:
- if servertest(
- self.mano['details']['fip'].ip,
- "8080"):
- break
- else:
- self.logger.info("Open Baton NFVO is not started yet (%ss)",
- (timeout * 60))
- time.sleep(60)
- timeout += 1
-
- if timeout >= 20:
- duration = time.time() - start_time
- self.details["orchestrator"].update(
- status='FAIL', duration=duration)
- self.logger.error("Open Baton is not started correctly")
- return False
-
- self.logger.info("Waiting for all components to be up and running...")
- time.sleep(60)
- duration = time.time() - start_time
- self.details["orchestrator"].update(status='PASS', duration=duration)
- self.logger.info("Deploy Open Baton NFVO: OK")
- return True
-
- def deploy_vnf(self):
- start_time = time.time()
- self.logger.info("Deploying %s...", self.vnf['name'])
-
- main_agent = MainAgent(
- nfvo_ip=self.mano['details']['fip'].ip,
- nfvo_port=8080,
- https=False,
- version=1,
- username=self.mano['credentials']['username'],
- password=self.mano['credentials']['password'])
-
- self.logger.info(
- "Create %s Flavor if not existing", self.vnf['name'])
- flavor_settings = FlavorConfig(
- name=self.vnf['requirements']['flavor']['name'],
- ram=self.vnf['requirements']['flavor']['ram_min'],
- disk=self.vnf['requirements']['flavor']['disk'],
- vcpus=self.vnf['requirements']['flavor']['vcpus'])
- flavor = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_info = flavor.create()
- self.logger.debug("Flavor id: %s", flavor_info.id)
-
- self.logger.info("Getting project 'default'...")
- project_agent = main_agent.get_agent("project", "")
- for project in json.loads(project_agent.find()):
- if project.get("name") == "default":
- self.mano['details']['project_id'] = project.get("id")
- self.logger.info("Found project 'default': %s", project)
- break
-
- vim_json = self.get_vim_descriptor()
- self.logger.info("Registering VIM: %s", vim_json)
-
- main_agent.get_agent(
- "vim", project_id=self.mano['details']['project_id']).create(
- entity=json.dumps(vim_json))
-
- market_agent = main_agent.get_agent(
- "market", project_id=self.mano['details']['project_id'])
-
- try:
- self.logger.info("sending: %s", self.vnf['descriptor']['url'])
- nsd = market_agent.create(entity=self.vnf['descriptor']['url'])
- if nsd.get('id') is None:
- self.logger.error("NSD not onboarded correctly")
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
- self.mano['details']['nsd_id'] = nsd.get('id')
- self.logger.info("Onboarded NSD: " + nsd.get("name"))
-
- nsr_agent = main_agent.get_agent(
- "nsr", project_id=self.mano['details']['project_id'])
-
- self.mano['details']['nsr'] = nsr_agent.create(
- self.mano['details']['nsd_id'])
- except NfvoException:
- self.logger.exception("failed")
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
-
- if self.mano['details']['nsr'].get('code') is not None:
- self.logger.error(
- "%s cannot be deployed: %s -> %s",
- self.vnf['name'],
- self.mano['details']['nsr'].get('code'),
- self.mano['details']['nsr'].get('message'))
- self.logger.error("%s cannot be deployed", self.vnf['name'])
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
-
- timeout = 0
- self.logger.info("Waiting for NSR to go to ACTIVE...")
- while self.mano['details']['nsr'].get("status") != 'ACTIVE' \
- and self.mano['details']['nsr'].get("status") != 'ERROR':
- timeout += 1
- self.logger.info("NSR is not yet ACTIVE... (%ss)", 60 * timeout)
- if timeout == 30:
- self.logger.error("INACTIVE NSR after %s sec..", 60 * timeout)
- duration = time.time() - start_time
- self.details["vnf"].update(status='FAIL', duration=duration)
- return False
- time.sleep(60)
- self.mano['details']['nsr'] = json.loads(
- nsr_agent.find(self.mano['details']['nsr'].get('id')))
-
- duration = time.time() - start_time
- if self.mano['details']['nsr'].get("status") == 'ACTIVE':
- self.details["vnf"].update(status='PASS', duration=duration)
- self.logger.info("Sleep for 60s to ensure that all "
- "services are up and running...")
- time.sleep(60)
- result = True
- else:
- self.details["vnf"].update(status='FAIL', duration=duration)
- self.logger.error("NSR: %s", self.mano['details'].get('nsr'))
- result = False
- return result
-
- def test_vnf(self):
- self.logger.info("Testing VNF OpenIMS...")
- start_time = time.time()
- self.logger.info(
- "Testing if %s works properly...",
- self.mano['details']['nsr'].get('name'))
- for vnfr in self.mano['details']['nsr'].get('vnfr'):
- self.logger.info(
- "Checking ports %s of VNF %s",
- self.vnf['test'][vnfr.get('name')]['ports'],
- vnfr.get('name'))
- for vdu in vnfr.get('vdu'):
- for vnfci in vdu.get('vnfc_instance'):
- self.logger.debug(
- "Checking ports of VNFC instance %s",
- vnfci.get('hostname'))
- for floating_ip in vnfci.get('floatingIps'):
- self.logger.debug(
- "Testing %s:%s",
- vnfci.get('hostname'),
- floating_ip.get('ip'))
- for port in self.vnf['test'][vnfr.get(
- 'name')]['ports']:
- if servertest(floating_ip.get('ip'), port):
- self.logger.info(
- "VNFC instance %s is reachable at %s:%s",
- vnfci.get('hostname'),
- floating_ip.get('ip'),
- port)
- else:
- self.logger.error(
- "VNFC instance %s is not reachable "
- "at %s:%s",
- vnfci.get('hostname'),
- floating_ip.get('ip'),
- port)
- duration = time.time() - start_time
- self.details["test_vnf"].update(
- status='FAIL', duration=duration, esult=(
- "Port %s of server %s -> %s is "
- "not reachable",
- port,
- vnfci.get('hostname'),
- floating_ip.get('ip')))
- self.logger.error("Test VNF: ERROR")
- return False
- duration = time.time() - start_time
- self.details["test_vnf"].update(status='PASS', duration=duration)
- self.logger.info("Test VNF: OK")
- return True
-
- def clean(self):
- self.logger.info("Cleaning %s...", self.case_name)
- try:
- main_agent = MainAgent(
- nfvo_ip=self.mano['details']['fip'].ip,
- nfvo_port=8080, https=False, version=1,
- username=self.mano['credentials']['username'],
- password=self.mano['credentials']['password'])
- self.logger.info("Terminating %s...", self.vnf['name'])
- if self.mano['details'].get('nsr'):
- main_agent.get_agent(
- "nsr",
- project_id=self.mano['details']['project_id']).\
- delete(self.mano['details']['nsr'].get('id'))
- self.logger.info("Sleeping 60 seconds...")
- time.sleep(60)
- else:
- self.logger.info("No need to terminate the VNF...")
- except (NfvoException, KeyError) as exc:
- self.logger.error('Unexpected error cleaning - %s', exc)
- super(OpenImsVnf, self).clean()
diff --git a/functest/opnfv_tests/vnf/router/__init__.py b/functest/opnfv_tests/vnf/router/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/router/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py b/functest/opnfv_tests/vnf/router/cloudify_vrouter.py
deleted file mode 100644
index 18acce6f..00000000
--- a/functest/opnfv_tests/vnf/router/cloudify_vrouter.py
+++ /dev/null
@@ -1,499 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""vrouter testcase implementation."""
-
-import logging
-import os
-import time
-import uuid
-
-from cloudify_rest_client import CloudifyClient
-from cloudify_rest_client.executions import Execution
-from scp import SCPClient
-
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-import functest.opnfv_tests.vnf.router.vrouter_base as vrouter_base
-from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf
-from functest.utils import config
-from functest.utils import functest_utils
-
-from git import Repo
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.keypair import KeypairConfig
-from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.user import UserConfig
-from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig
-
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.create_image import OpenStackImage
-from snaps.openstack.create_instance import OpenStackVmInstance
-from snaps.openstack.create_keypairs import OpenStackKeypair
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_user import OpenStackUser
-
-import snaps.openstack.utils.glance_utils as glance_utils
-from snaps.openstack.utils import keystone_utils
-
-
-__author__ = "Shuya Nakama <shuya.nakama@okinawaopenlabs.org>"
-
-
-class CloudifyVrouter(vrouter_base.VrouterOnBoardingBase):
- # pylint: disable=too-many-instance-attributes
- """vrouter testcase deployed with Cloudify Orchestrator."""
-
- __logger = logging.getLogger(__name__)
- name = __name__
-
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "vyos_vrouter"
- super(CloudifyVrouter, self).__init__(**kwargs)
-
- # Retrieve the configuration
- try:
- self.config = getattr(
- config.CONF, 'vnf_{}_config'.format(self.case_name))
- except Exception:
- raise Exception("VNF config file not found")
-
- self.cfy_manager_ip = ''
- self.util_info = {}
- self.deployment_name = ''
-
- config_file = os.path.join(self.case_dir, self.config)
- self.orchestrator = dict(
- requirements=functest_utils.get_parameter_from_yaml(
- "orchestrator.requirements", config_file),
- )
- self.details['orchestrator'] = dict(
- name=functest_utils.get_parameter_from_yaml(
- "orchestrator.name", config_file),
- version=functest_utils.get_parameter_from_yaml(
- "orchestrator.version", config_file),
- status='ERROR',
- result=''
- )
- self.__logger.debug("Orchestrator configuration %s", self.orchestrator)
- self.__logger.debug("name = %s", self.name)
- self.vnf = dict(
- descriptor=functest_utils.get_parameter_from_yaml(
- "vnf.descriptor", config_file),
- inputs=functest_utils.get_parameter_from_yaml(
- "vnf.inputs", config_file),
- requirements=functest_utils.get_parameter_from_yaml(
- "vnf.requirements", config_file)
- )
- self.details['vnf'] = dict(
- descriptor_version=self.vnf['descriptor']['version'],
- name=functest_utils.get_parameter_from_yaml(
- "vnf.name", config_file),
- version=functest_utils.get_parameter_from_yaml(
- "vnf.version", config_file),
- )
- self.__logger.debug("VNF configuration: %s", self.vnf)
-
- self.util = Utilvnf()
-
- self.details['test_vnf'] = dict(
- name=functest_utils.get_parameter_from_yaml(
- "vnf_test_suite.name", config_file),
- version=functest_utils.get_parameter_from_yaml(
- "vnf_test_suite.version", config_file)
- )
- self.images = functest_utils.get_parameter_from_yaml(
- "tenant_images", config_file)
- self.__logger.info("Images needed for vrouter: %s", self.images)
-
- @staticmethod
- def run_blocking_ssh_command(ssh, cmd,
- error_msg="Unable to run this command"):
- """Command to run ssh command with the exit status."""
- (_, stdout, stderr) = ssh.exec_command(cmd)
- CloudifyVrouter.__logger.debug("SSH %s stdout: %s", cmd, stdout.read())
- if stdout.channel.recv_exit_status() != 0:
- CloudifyVrouter.__logger.error(
- "SSH %s stderr: %s", cmd, stderr.read())
- raise Exception(error_msg)
-
- def prepare(self):
- super(CloudifyVrouter, self).prepare()
- self.__logger.info("Additional pre-configuration steps")
- self.util.set_credentials(self.snaps_creds)
- self.__logger.info("Upload some OS images if it doesn't exist")
- for image_name, image_file in self.images.iteritems():
- self.__logger.info("image: %s, file: %s", image_name, image_file)
- if image_file and image_name:
- image_creator = OpenStackImage(
- self.snaps_creds,
- ImageConfig(
- name=image_name, image_user='cloud',
- img_format='qcow2', image_file=image_file))
- image_creator.create()
- self.created_object.append(image_creator)
-
- def deploy_orchestrator(self):
- # pylint: disable=too-many-locals,too-many-statements
- """
- Deploy Cloudify Manager.
- network, security group, fip, VM creation
- """
- # network creation
- start_time = time.time()
- self.__logger.info("Creating keypair ...")
- kp_file = os.path.join(self.data_dir, "cloudify_vrouter.pem")
- keypair_settings = KeypairConfig(
- name='cloudify_vrouter_kp-{}'.format(self.uuid),
- private_filepath=kp_file)
- keypair_creator = OpenStackKeypair(self.snaps_creds, keypair_settings)
- keypair_creator.create()
- self.created_object.append(keypair_creator)
-
- self.__logger.info("Creating full network ...")
- subnet_settings = SubnetConfig(
- name='cloudify_vrouter_subnet-{}'.format(self.uuid),
- cidr='10.67.79.0/24')
- network_settings = NetworkConfig(
- name='cloudify_vrouter_network-{}'.format(self.uuid),
- subnet_settings=[subnet_settings])
- network_creator = OpenStackNetwork(self.snaps_creds, network_settings)
- network_creator.create()
- self.created_object.append(network_creator)
- ext_net_name = snaps_utils.get_ext_net_name(self.snaps_creds)
- router_creator = OpenStackRouter(
- self.snaps_creds,
- RouterConfig(
- name='cloudify_vrouter_router-{}'.format(self.uuid),
- external_gateway=ext_net_name,
- internal_subnets=[subnet_settings.name]))
- router_creator.create()
- self.created_object.append(router_creator)
-
- # security group creation
- self.__logger.info("Creating security group for cloudify manager vm")
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="sg-cloudify-manager-{}".format(self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.tcp, port_range_min=1,
- port_range_max=65535))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name="sg-cloudify-manager-{}".format(self.uuid),
- direction=Direction.ingress,
- protocol=Protocol.udp, port_range_min=1,
- port_range_max=65535))
-
- security_group_creator = OpenStackSecurityGroup(
- self.snaps_creds,
- SecurityGroupConfig(
- name="sg-cloudify-manager-{}".format(self.uuid),
- rule_settings=sg_rules))
-
- security_group_creator.create()
- self.created_object.append(security_group_creator)
-
- # orchestrator VM flavor
- self.__logger.info("Get or create flavor for cloudify manager vm ...")
-
- flavor_settings = FlavorConfig(
- name=self.orchestrator['requirements']['flavor']['name'],
- ram=self.orchestrator['requirements']['flavor']['ram_min'],
- disk=50, vcpus=2)
- flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor_creator.create()
- self.created_object.append(flavor_creator)
- image_settings = ImageConfig(
- name=self.orchestrator['requirements']['os_image'],
- image_user='centos', exists=True)
-
- port_settings = PortConfig(
- name='cloudify_manager_port-{}'.format(self.uuid),
- network_name=network_settings.name)
-
- manager_settings = VmInstanceConfig(
- name='cloudify_manager-{}'.format(self.uuid),
- flavor=flavor_settings.name,
- port_settings=[port_settings],
- security_group_names=[
- security_group_creator.sec_grp_settings.name],
- floating_ip_settings=[FloatingIpConfig(
- name='cloudify_manager_fip-{}'.format(self.uuid),
- port_name=port_settings.name,
- router_name=router_creator.router_settings.name)])
-
- manager_creator = OpenStackVmInstance(
- self.snaps_creds, manager_settings, image_settings,
- keypair_settings)
-
- self.__logger.info("Creating cloudify manager VM")
- manager_creator.create()
- self.created_object.append(manager_creator)
-
- cfy_client = CloudifyClient(
- host=manager_creator.get_floating_ip().ip,
- username='admin', password='admin', tenant='default_tenant')
-
- self.orchestrator['object'] = cfy_client
-
- self.cfy_manager_ip = manager_creator.get_floating_ip().ip
-
- self.__logger.info("Attemps running status of the Manager")
- cfy_status = None
- retry = 10
- while str(cfy_status) != 'running' and retry:
- try:
- cfy_status = cfy_client.manager.get_status()['status']
- self.__logger.debug("The current manager status is %s",
- cfy_status)
- except Exception: # pylint: disable=broad-except
- self.__logger.exception(
- "Cloudify Manager isn't up and running. Retrying ...")
- retry = retry - 1
- time.sleep(30)
-
- if str(cfy_status) == 'running':
- self.__logger.info("Cloudify Manager is up and running")
- else:
- raise Exception("Cloudify Manager isn't up and running")
-
- duration = time.time() - start_time
-
- self.__logger.info("Put private keypair in manager")
- if manager_creator.vm_ssh_active(block=True):
- ssh = manager_creator.ssh_client()
- scp = SCPClient(ssh.get_transport(), socket_timeout=15.0)
- scp.put(kp_file, '~/')
- cmd = "sudo cp ~/cloudify_vrouter.pem /etc/cloudify/"
- self.run_blocking_ssh_command(ssh, cmd)
- cmd = "sudo chmod 444 /etc/cloudify/cloudify_vrouter.pem"
- self.run_blocking_ssh_command(ssh, cmd)
- cmd = "sudo yum install -y gcc python-devel"
- self.run_blocking_ssh_command(
- ssh, cmd, "Unable to install packages on manager")
-
- self.details['orchestrator'].update(status='PASS', duration=duration)
-
- self.vnf['inputs'].update(dict(external_network_name=ext_net_name))
-
- return True
-
- def deploy_vnf(self):
- start_time = time.time()
-
- self.__logger.info("Upload VNFD")
- cfy_client = self.orchestrator['object']
- descriptor = self.vnf['descriptor']
- self.deployment_name = descriptor.get('name')
-
- vrouter_blueprint_dir = os.path.join(
- self.data_dir, self.util.blueprint_dir)
- if not os.path.exists(vrouter_blueprint_dir):
- Repo.clone_from(
- descriptor.get('url'), vrouter_blueprint_dir,
- branch=descriptor.get('version'))
-
- cfy_client.blueprints.upload(
- vrouter_blueprint_dir + self.util.blueprint_file_name,
- descriptor.get('name'))
-
- self.__logger.info("Get or create flavor for vrouter")
- flavor_settings = FlavorConfig(
- name=self.vnf['requirements']['flavor']['name'],
- ram=self.vnf['requirements']['flavor']['ram_min'],
- disk=25, vcpus=1)
- flavor_creator = OpenStackFlavor(self.snaps_creds, flavor_settings)
- flavor = flavor_creator.create()
- self.created_object.append(flavor_creator)
-
- # set image name
- glance = glance_utils.glance_client(self.snaps_creds)
- image = glance_utils.get_image(glance, "vyos1.1.7")
-
- user_creator = OpenStackUser(
- self.snaps_creds,
- UserConfig(
- name='cloudify_network_bug-{}'.format(self.uuid),
- password=str(uuid.uuid4()),
- roles={'_member_': self.tenant_name}))
- user_creator.create()
- self.created_object.append(user_creator)
- snaps_creds = user_creator.get_os_creds(self.snaps_creds.project_name)
-
- self.vnf['inputs'].update(dict(target_vnf_image_id=image.id))
- self.vnf['inputs'].update(dict(reference_vnf_image_id=image.id))
- self.vnf['inputs'].update(dict(target_vnf_flavor_id=flavor.id))
- self.vnf['inputs'].update(dict(reference_vnf_flavor_id=flavor.id))
- self.vnf['inputs'].update(dict(
- keystone_username=snaps_creds.username))
- self.vnf['inputs'].update(dict(
- keystone_password=snaps_creds.password))
- self.vnf['inputs'].update(dict(
- keystone_tenant_name=snaps_creds.project_name))
- self.vnf['inputs'].update(dict(
- region=snaps_creds.region_name))
- self.vnf['inputs'].update(dict(
- keystone_url=keystone_utils.get_endpoint(
- snaps_creds, 'identity')))
-
- self.__logger.info("Create VNF Instance")
- cfy_client.deployments.create(
- descriptor.get('name'), descriptor.get('name'),
- self.vnf.get('inputs'))
-
- wait_for_execution(
- cfy_client, get_execution_id(cfy_client, descriptor.get('name')),
- self.__logger, timeout=7200)
-
- self.__logger.info("Start the VNF Instance deployment")
- execution = cfy_client.executions.start(descriptor.get('name'),
- 'install')
- # Show execution log
- execution = wait_for_execution(cfy_client, execution, self.__logger)
-
- duration = time.time() - start_time
-
- self.__logger.info(execution)
- if execution.status == 'terminated':
- self.details['vnf'].update(status='PASS', duration=duration)
- result = True
- else:
- self.details['vnf'].update(status='FAIL', duration=duration)
- result = False
- return result
-
- def test_vnf(self):
- cfy_client = self.orchestrator['object']
- credentials = {"snaps_creds": self.snaps_creds,
- "username": self.snaps_creds.username,
- "password": self.snaps_creds.password,
- "auth_url": self.snaps_creds.auth_url,
- "tenant_name": self.snaps_creds.project_name}
-
- self.util_info = {"credentials": credentials,
- "cfy": cfy_client,
- "vnf_data_dir": self.util.vnf_data_dir}
-
- start_time = time.time()
-
- result, test_result_data = super(CloudifyVrouter, self).test_vnf()
-
- duration = time.time() - start_time
-
- if result:
- self.details['test_vnf'].update(
- status='PASS', result='OK', full_result=test_result_data,
- duration=duration)
- else:
- self.details['test_vnf'].update(
- status='FAIL', result='NG', full_result=test_result_data,
- duration=duration)
-
- return True
-
- def clean(self):
- try:
- cfy_client = self.orchestrator['object']
- dep_name = self.vnf['descriptor'].get('name')
- # kill existing execution
- self.__logger.info('Deleting the current deployment')
- exec_list = cfy_client.executions.list(dep_name)
- for execution in exec_list:
- if execution['status'] == "started":
- try:
- cfy_client.executions.cancel(
- execution['id'], force=True)
- except Exception: # pylint: disable=broad-except
- self.__logger.warn("Can't cancel the current exec")
-
- execution = cfy_client.executions.start(
- dep_name, 'uninstall', parameters=dict(ignore_failure=True))
-
- wait_for_execution(cfy_client, execution, self.__logger)
- cfy_client.deployments.delete(self.vnf['descriptor'].get('name'))
- cfy_client.blueprints.delete(self.vnf['descriptor'].get('name'))
- except Exception: # pylint: disable=broad-except
- self.__logger.warn("Some issue during the undeployment ..")
- self.__logger.warn("Tenant clean continue ..")
- super(CloudifyVrouter, self).clean()
-
- def get_vnf_info_list(self, target_vnf_name):
- return self.util.get_vnf_info_list(
- self.cfy_manager_ip, self.deployment_name, target_vnf_name)
-
-
-def wait_for_execution(client, execution, logger, timeout=7200, ):
- """Wait for a workflow execution on Cloudify Manager."""
- # if execution already ended - return without waiting
- if execution.status in Execution.END_STATES:
- return execution
-
- if timeout is not None:
- deadline = time.time() + timeout
-
- # Poll for execution status and execution logs, until execution ends
- # and we receive an event of type in WORKFLOW_END_TYPES
- offset = 0
- batch_size = 50
- event_list = []
- execution_ended = False
- while True:
- event_list = client.events.list(
- execution_id=execution.id, _offset=offset, _size=batch_size,
- include_logs=False, sort='@timestamp').items
-
- offset = offset + len(event_list)
- for event in event_list:
- logger.debug(event.get('message'))
-
- if timeout is not None:
- if time.time() > deadline:
- raise RuntimeError(
- 'execution of operation {0} for deployment {1} '
- 'timed out'.format(execution.workflow_id,
- execution.deployment_id))
- else:
- # update the remaining timeout
- timeout = deadline - time.time()
-
- if not execution_ended:
- execution = client.executions.get(execution.id)
- execution_ended = execution.status in Execution.END_STATES
-
- if execution_ended:
- break
-
- time.sleep(5)
-
- return execution
-
-
-def get_execution_id(client, deployment_id):
- """
- Get the execution id of a env preparation.
- network, security group, fip, VM creation
- """
- executions = client.executions.list(deployment_id=deployment_id)
- for execution in executions:
- if execution.workflow_id == 'create_deployment_environment':
- return execution
- raise RuntimeError('Failed to get create_deployment_environment '
- 'workflow execution.'
- 'Available executions: {0}'.format(executions))
diff --git a/functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml b/functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml
deleted file mode 100644
index 58bdb66a..00000000
--- a/functest/opnfv_tests/vnf/router/cloudify_vrouter.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-tenant_images:
- cloudify_manager_4.0:
- /home/opnfv/functest/images/cloudify-manager-premium-4.0.1.qcow2
- vyos1.1.7: /home/opnfv/functest/images/vyos-1.1.7.img
-test_data:
- url: 'https://github.com/oolorg/opnfv-vnf-data.git'
- branch: 'master'
-orchestrator:
- name: cloudify
- version: '4.0'
- requirements:
- flavor:
- name: m1.medium
- ram_min: 4096
- os_image: 'cloudify_manager_4.0'
-vnf:
- name: vyos1.1.7
- version: '1.1.7'
- descriptor:
- url: https://github.com/oolorg/opnfv-vnf-vyos-blueprint/
- name: vrouter-opnfv
- version: 'master'
- requirements:
- flavor:
- name: m1.medium
- ram_min: 2048
- inputs:
- external_network_name: admin_floating_net
- region: RegionOne
-vnf_test_suite:
- name: vyos-vrouter-test
- version: "1.0"
diff --git a/functest/opnfv_tests/vnf/router/test_controller/__init__.py b/functest/opnfv_tests/vnf/router/test_controller/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/router/test_controller/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py b/functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py
deleted file mode 100644
index be7bee88..00000000
--- a/functest/opnfv_tests/vnf/router/test_controller/function_test_exec.py
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""vrouter function test execution module"""
-
-import logging
-import time
-import yaml
-
-from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf
-from functest.opnfv_tests.vnf.router.vnf_controller.vnf_controller import (
- VnfController)
-
-
-class FunctionTestExec(object):
- """vrouter function test execution class"""
-
- logger = logging.getLogger(__name__)
-
- def __init__(self, util_info):
- self.logger.debug("init test exec")
- self.util = Utilvnf()
- credentials = util_info["credentials"]
- self.vnf_ctrl = VnfController(util_info)
-
- test_cmd_map_file = open(self.util.vnf_data_dir +
- self.util.opnfv_vnf_data_dir +
- self.util.command_template_dir +
- self.util.test_cmd_map_yaml_file,
- 'r')
- self.test_cmd_map_yaml = yaml.safe_load(test_cmd_map_file)
- test_cmd_map_file.close()
-
- self.util.set_credentials(credentials["snaps_creds"])
-
- with open(self.util.test_env_config_yaml) as file_fd:
- test_env_config_yaml = yaml.safe_load(file_fd)
- file_fd.close()
-
- self.protocol_stable_wait = test_env_config_yaml.get("general").get(
- "protocol_stable_wait")
-
- def config_target_vnf(self, target_vnf, reference_vnf, test_kind):
- self.logger.debug("Configuration to target vnf")
- test_info = self.test_cmd_map_yaml[target_vnf["os_type"]]
- test_cmd_file_path = test_info[test_kind]["pre_command_target"]
- target_parameter_file_path = test_info[test_kind]["parameter_target"]
- prompt_file_path = test_info["prompt"]
-
- return self.vnf_ctrl.config_vnf(target_vnf,
- reference_vnf,
- test_cmd_file_path,
- target_parameter_file_path,
- prompt_file_path)
-
- def config_reference_vnf(self, target_vnf, reference_vnf, test_kind):
- self.logger.debug("Configuration to reference vnf")
- test_info = self.test_cmd_map_yaml[reference_vnf["os_type"]]
- test_cmd_file_path = test_info[test_kind]["pre_command_reference"]
- reference_parameter_file_path = test_info[test_kind][
- "parameter_reference"]
- prompt_file_path = test_info["prompt"]
-
- return self.vnf_ctrl.config_vnf(reference_vnf,
- target_vnf,
- test_cmd_file_path,
- reference_parameter_file_path,
- prompt_file_path)
-
- def result_check(self, target_vnf, reference_vnf, test_kind, test_list):
- test_info = self.test_cmd_map_yaml[target_vnf["os_type"]]
- target_parameter_file_path = test_info[test_kind]["parameter_target"]
- prompt_file_path = test_info["prompt"]
- check_rule_file_path_list = []
-
- for test in test_list:
- check_rule_file_path_list.append(test_info[test_kind][test])
-
- return self.vnf_ctrl.result_check(target_vnf,
- reference_vnf,
- check_rule_file_path_list,
- target_parameter_file_path,
- prompt_file_path)
-
- def run(self, target_vnf, reference_vnf_list, test_info, test_list):
- test_result_data = {}
- test_kind = test_info["protocol"]
- for reference_vnf in reference_vnf_list:
- self.logger.debug("Start config command " +
- target_vnf["vnf_name"] + " and " +
- reference_vnf["vnf_name"])
-
- result = self.config_target_vnf(target_vnf,
- reference_vnf,
- test_kind)
- if not result:
- return False, test_result_data
-
- result = self.config_reference_vnf(target_vnf,
- reference_vnf,
- test_kind)
- if not result:
- return False, test_result_data
-
- self.logger.debug("Finish config command.")
-
- self.logger.debug("Waiting for protocol stable.")
- time.sleep(self.protocol_stable_wait)
-
- self.logger.debug("Start check method")
-
- (result, res_dict_data_list) = self.result_check(target_vnf,
- reference_vnf,
- test_kind,
- test_list)
-
- test_result_data = {"test_kind": test_info["test_kind"],
- "protocol": test_info["protocol"],
- "result": res_dict_data_list}
-
- if not result:
- self.logger.debug("Error check method.")
- return False, test_result_data
-
- self.logger.debug("Finish check method.")
-
- return True, test_result_data
diff --git a/functest/opnfv_tests/vnf/router/test_scenario.yaml b/functest/opnfv_tests/vnf/router/test_scenario.yaml
deleted file mode 100644
index 8bdaf06a..00000000
--- a/functest/opnfv_tests/vnf/router/test_scenario.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-test_scenario_list:
- -
- test_type: 'function_test'
- vnf_list:
- -
- vnf_name: 'target_vnf'
- os_type: 'vyos'
- image_name: 'vyos1.1.7'
- flavor_name: 'm1.medium'
- -
- vnf_name: 'reference_vnf'
- os_type: 'vyos'
- image_name: 'vyos1.1.7'
- flavor_name: 'm1.medium'
- function_test_list:
- -
- target_vnf_name: 'target_vnf'
- test_list:
- -
- test_kind: 'Interoperability'
- protocol: 'BGP'
- BGP:
- - 'Checking_the_peer_of_BGP'
- - 'Checking_the_status_of_BGP'
- - 'Checking_the_advertised_routes'
- - 'Checking_the_received_routes'
- - 'Checking_the_routing_table'
diff --git a/functest/opnfv_tests/vnf/router/utilvnf.py b/functest/opnfv_tests/vnf/router/utilvnf.py
deleted file mode 100644
index 6861b386..00000000
--- a/functest/opnfv_tests/vnf/router/utilvnf.py
+++ /dev/null
@@ -1,323 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-""" Utility module of vrouter testcase """
-
-import json
-import logging
-import os
-import pkg_resources
-import requests
-import yaml
-
-from functest.utils import config
-from git import Repo
-from requests.auth import HTTPBasicAuth
-from snaps.openstack.utils import nova_utils
-
-
-RESULT_SPRIT_INDEX = {
- "transfer": 8,
- "bandwidth": 6,
- "jitter": 4,
- "los_total": 2,
- "pkt_loss": 1
-}
-
-BIT_PER_BYTE = 8
-
-NOVA_CLIENT_API_VERSION = '2'
-NOVA_CILENT_NETWORK_INFO_INDEX = 0
-CFY_INFO_OUTPUT_FILE = "output.txt"
-
-CIDR_NETWORK_SEGMENT_INFO_INDEX = 0
-PACKET_LOST_INFO_INDEX = 0
-PACKET_TOTAL_INFO_INDEX = 1
-
-NUMBER_OF_DIGITS_FOR_AVG_TRANSFER = 0
-NUMBER_OF_DIGITS_FOR_AVG_BANDWIDTH = 0
-NUMBER_OF_DIGITS_FOR_AVG_JITTER = 3
-NUMBER_OF_DIGITS_FOR_AVG_PKT_LOSS = 1
-
-
-class Utilvnf(object): # pylint: disable=too-many-instance-attributes
- """ Utility class of vrouter testcase """
-
- logger = logging.getLogger(__name__)
-
- def __init__(self):
- self.snaps_creds = ""
- self.vnf_data_dir = getattr(config.CONF, 'dir_router_data')
- self.opnfv_vnf_data_dir = "opnfv-vnf-data/"
- self.command_template_dir = "command_template/"
- self.test_scenario_yaml = "test_scenario.yaml"
- test_env_config_yaml_file = "test_env_config.yaml"
- self.test_cmd_map_yaml_file = "test_cmd_map.yaml"
- self.test_env_config_yaml = os.path.join(
- self.vnf_data_dir,
- self.opnfv_vnf_data_dir,
- test_env_config_yaml_file)
-
- self.blueprint_dir = "opnfv-vnf-vyos-blueprint/"
- self.blueprint_file_name = "function-test-openstack-blueprint.yaml"
-
- if not os.path.exists(self.vnf_data_dir):
- os.makedirs(self.vnf_data_dir)
-
- case_dir = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/vnf/router')
-
- config_file_name = getattr(
- config.CONF, 'vnf_{}_config'.format("vyos_vrouter"))
-
- config_file = os.path.join(case_dir, config_file_name)
-
- with open(config_file) as file_fd:
- vrouter_config_yaml = yaml.safe_load(file_fd)
- file_fd.close()
-
- test_data = vrouter_config_yaml.get("test_data")
-
- self.logger.debug("Downloading the test data.")
- vrouter_data_path = self.vnf_data_dir + self.opnfv_vnf_data_dir
-
- if not os.path.exists(vrouter_data_path):
- Repo.clone_from(test_data['url'],
- vrouter_data_path,
- branch=test_data['branch'])
-
- with open(self.test_env_config_yaml) as file_fd:
- test_env_config_yaml = yaml.safe_load(file_fd)
- file_fd.close()
-
- self.image = test_env_config_yaml.get(
- "general").get("images").get("vyos")
- self.tester_image = test_env_config_yaml.get(
- "general").get("images").get("tester_vm_os")
-
- self.test_result_json_file = "test_result.json"
- if os.path.isfile(self.test_result_json_file):
- os.remove(self.test_result_json_file)
- self.logger.debug("removed %s", self.test_result_json_file)
-
- def get_nova_client(self):
- nova_client = nova_utils.nova_client(self.snaps_creds)
-
- return nova_client
-
- def set_credentials(self, snaps_creds):
- self.snaps_creds = snaps_creds
-
- def get_address(self, server_name, network_name):
- nova_client = self.get_nova_client()
- servers_list = nova_client.servers.list()
- server = None
-
- for server in servers_list:
- if server.name == server_name:
- break
-
- address = server.addresses[
- network_name][NOVA_CILENT_NETWORK_INFO_INDEX]["addr"]
-
- return address
-
- def get_mac_address(self, server_name, network_name):
- nova_client = self.get_nova_client()
- servers_list = nova_client.servers.list()
- server = None
-
- for server in servers_list:
- if server.name == server_name:
- break
-
- mac_address = server.addresses[network_name][
- NOVA_CILENT_NETWORK_INFO_INDEX]["OS-EXT-IPS-MAC:mac_addr"]
-
- return mac_address
-
- def reboot_vm(self, server_name):
- nova_client = self.get_nova_client()
- servers_list = nova_client.servers.list()
- server = None
-
- for server in servers_list:
- if server.name == server_name:
- break
-
- server.reboot()
-
- return
-
- def delete_vm(self, server_name):
- nova_client = self.get_nova_client()
- servers_list = nova_client.servers.list()
- server = None
-
- for server in servers_list:
- if server.name == server_name:
- nova_client.servers.delete(server)
- break
-
- return
-
- def get_blueprint_outputs(self, cfy_manager_ip, deployment_name):
- url = "http://%s/deployments/%s/outputs" % (
- cfy_manager_ip, deployment_name)
-
- response = requests.get(
- url,
- auth=HTTPBasicAuth('admin', 'admin'),
- headers={'Tenant': 'default_tenant'})
-
- resp_data = response.json()
- self.logger.debug(resp_data)
- data = resp_data["outputs"]
- return data
-
- def get_blueprint_outputs_vnfs(self, cfy_manager_ip, deployment_name):
- outputs = self.get_blueprint_outputs(cfy_manager_ip,
- deployment_name)
- vnfs = outputs["vnfs"]
- vnf_list = []
- for vnf_name in vnfs:
- vnf_list.append(vnfs[vnf_name])
- return vnf_list
-
- def get_blueprint_outputs_networks(self, cfy_manager_ip, deployment_name):
- outputs = self.get_blueprint_outputs(cfy_manager_ip,
- deployment_name)
- networks = outputs["networks"]
- network_list = []
- for network_name in networks:
- network_list.append(networks[network_name])
- return network_list
-
- def request_vnf_reboot(self, vnf_info_list):
- for vnf in vnf_info_list:
- self.logger.debug("reboot the " + vnf["vnf_name"])
- self.reboot_vm(vnf["vnf_name"])
-
- def request_vm_delete(self, vnf_info_list):
- for vnf in vnf_info_list:
- self.logger.debug("delete the " + vnf["vnf_name"])
- self.delete_vm(vnf["vnf_name"])
-
- def get_vnf_info_list(self, cfy_manager_ip, topology_deploy_name,
- target_vnf_name):
- network_list = self.get_blueprint_outputs_networks(
- cfy_manager_ip,
- topology_deploy_name)
- vnf_info_list = self.get_blueprint_outputs_vnfs(cfy_manager_ip,
- topology_deploy_name)
- for vnf in vnf_info_list:
- vnf_name = vnf["vnf_name"]
- vnf["os_type"] = self.image["os_type"]
- vnf["user"] = self.image["user"]
- vnf["pass"] = self.image["pass"]
-
- vnf["target_vnf_flag"] = bool(vnf_name == target_vnf_name)
-
- self.logger.debug("vnf name : " + vnf_name)
- self.logger.debug(vnf_name + " floating ip address : " +
- vnf["floating_ip"])
-
- for network in network_list:
- network_name = network["network_name"]
- ip_address = self.get_address(vnf["vnf_name"],
- network["network_name"])
- vnf[network_name + "_ip"] = ip_address
- mac = self.get_mac_address(vnf["vnf_name"],
- network["network_name"])
- vnf[network_name + "_mac"] = mac
-
- self.logger.debug(network_name + "_ip of " + vnf["vnf_name"] +
- " : " + vnf[network_name + "_ip"])
- self.logger.debug(network_name + "_mac of " + vnf["vnf_name"] +
- " : " + vnf[network_name + "_mac"])
-
- return vnf_info_list
-
- @staticmethod
- def get_target_vnf(vnf_info_list):
- for vnf in vnf_info_list:
- if vnf["target_vnf_flag"]:
- return vnf
-
- return None
-
- @staticmethod
- def get_reference_vnf_list(vnf_info_list):
- reference_vnf_list = []
- for vnf in vnf_info_list:
- if not vnf["target_vnf_flag"]:
- reference_vnf_list.append(vnf)
-
- return reference_vnf_list
-
- @staticmethod
- def get_vnf_info(vnf_info_list, vnf_name):
- for vnf in vnf_info_list:
- if vnf["vnf_name"] == vnf_name:
- return vnf
-
- return None
-
- @staticmethod
- def convert_functional_test_result(result_data_list):
- result = {}
- for result_data in result_data_list:
- test_kind = result_data["test_kind"]
- protocol = result_data["protocol"]
- test_result_data = result_data["result"]
-
- if test_kind not in result:
- result[test_kind] = []
-
- result[test_kind].append({protocol: test_result_data})
-
- return {"Functional_test": result}
-
- def write_result_data(self, result_data):
- test_result = []
- if not os.path.isfile(self.test_result_json_file):
- file_fd = open(self.test_result_json_file, "w")
- file_fd.close()
- else:
- file_fd = open(self.test_result_json_file, "r")
- test_result = json.load(file_fd)
- file_fd.close()
-
- test_result.append(result_data)
-
- file_fd = open(self.test_result_json_file, "w")
- json.dump(test_result, file_fd)
- file_fd.close()
-
- def output_test_result_json(self):
- if os.path.isfile(self.test_result_json_file):
- file_fd = open(self.test_result_json_file, "r")
- test_result = json.load(file_fd)
- file_fd.close()
- output_json_data = json.dumps(test_result,
- sort_keys=True,
- indent=4)
- self.logger.debug("test_result %s", output_json_data)
- else:
- self.logger.debug("Not found %s", self.test_result_json_file)
-
- @staticmethod
- def get_test_scenario(file_path):
- test_scenario_file = open(file_path,
- 'r')
- test_scenario_yaml = yaml.safe_load(test_scenario_file)
- test_scenario_file.close()
- return test_scenario_yaml["test_scenario_list"]
diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/__init__.py b/functest/opnfv_tests/vnf/router/vnf_controller/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/vnf/router/vnf_controller/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/checker.py b/functest/opnfv_tests/vnf/router/vnf_controller/checker.py
deleted file mode 100644
index a7a70f6d..00000000
--- a/functest/opnfv_tests/vnf/router/vnf_controller/checker.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""vrouter test result check module"""
-
-import json
-import logging
-import re
-
-from jinja2 import Environment, FileSystemLoader
-
-
-class Checker(object):
- """vrouter test result check class"""
-
- logger = logging.getLogger(__name__)
-
- def __init__(self):
- self.logger.debug("init checker")
-
- @staticmethod
- def load_check_rule(rule_file_dir, rule_file_name, parameter):
- loader = FileSystemLoader(rule_file_dir,
- encoding='utf8')
- env = Environment(loader=loader)
- check_rule_template = env.get_template(rule_file_name)
- check_rule = check_rule_template.render(parameter)
- check_rule_data = json.loads(check_rule)
- return check_rule_data
-
- @staticmethod
- def regexp_information(response, rules):
- status = False
- result_data = {}
-
- for rule in rules["rules"]:
- result_data = {
- "test_name": rule["description"],
- "result": "NG"
- }
-
- match = re.search(rule["regexp"],
- response)
- rule["response"] = response
- if match is None:
- status = False
- break
-
- if not match.group(1) == rule["result"]:
- status = False
- else:
- result_data["result"] = "OK"
- status = True
-
- return status, result_data
diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py b/functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py
deleted file mode 100644
index 7d9116bc..00000000
--- a/functest/opnfv_tests/vnf/router/vnf_controller/command_generator.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""command generator module for vrouter testing"""
-
-import logging
-from jinja2 import Environment, FileSystemLoader
-
-
-class CommandGenerator(object):
- """command generator class for vrouter testing"""
-
- logger = logging.getLogger(__name__)
-
- def __init__(self):
- self.logger.debug("init command generator")
-
- @staticmethod
- def load_template(template_dir, template):
- # pylint disable=missing-docstring
- loader = FileSystemLoader(template_dir,
- encoding='utf8')
- env = Environment(loader=loader)
- return env.get_template(template)
-
- @staticmethod
- def command_create(template, parameter):
- # pylint disable=missing-docstring
- commands = template.render(parameter)
- return commands.split('\n')
diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py b/functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py
deleted file mode 100644
index 628afd30..00000000
--- a/functest/opnfv_tests/vnf/router/vnf_controller/ssh_client.py
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""ssh client module for vrouter testing"""
-
-import logging
-import time
-import yaml
-
-import paramiko
-
-from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf
-
-RECEIVE_ROOP_WAIT = 1
-
-DEFAULT_CONNECT_TIMEOUT = 10
-DEFAULT_CONNECT_RETRY_COUNT = 10
-DEFAULT_SEND_TIMEOUT = 10
-
-
-class SshClient(object): # pylint: disable=too-many-instance-attributes
- """ssh client class for vrouter testing"""
-
- logger = logging.getLogger(__name__)
-
- def __init__(self, ip_address, user, password=None, key_filename=None):
- self.ip_address = ip_address
- self.user = user
- self.password = password
- self.key_filename = key_filename
- self.connected = False
- self.shell = None
-
- self.logger.setLevel(logging.INFO)
-
- self.ssh = paramiko.SSHClient()
- self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-
- self.util = Utilvnf()
- with open(self.util.test_env_config_yaml) as file_fd:
- test_env_config_yaml = yaml.safe_load(file_fd)
- file_fd.close()
-
- self.ssh_revieve_buff = test_env_config_yaml.get("general").get(
- "ssh_receive_buffer")
-
- def connect(self, time_out=DEFAULT_CONNECT_TIMEOUT,
- retrycount=DEFAULT_CONNECT_RETRY_COUNT):
- # pylint: disable=missing-docstring
- while retrycount > 0:
- try:
- self.logger.info("SSH connect to %s.", self.ip_address)
- self.ssh.connect(self.ip_address,
- username=self.user,
- password=self.password,
- key_filename=self.key_filename,
- timeout=time_out,
- look_for_keys=False,
- allow_agent=False)
-
- self.logger.info("SSH connection established to %s.",
- self.ip_address)
-
- self.shell = self.ssh.invoke_shell()
-
- while not self.shell.recv_ready():
- time.sleep(RECEIVE_ROOP_WAIT)
-
- self.shell.recv(self.ssh_revieve_buff)
- break
- except Exception: # pylint: disable=broad-except
- self.logger.info("SSH timeout for %s...", self.ip_address)
- time.sleep(time_out)
- retrycount -= 1
-
- if retrycount == 0:
- self.logger.error("Cannot establish connection to IP '%s'. " +
- "Aborting",
- self.ip_address)
- self.connected = False
- return self.connected
-
- self.connected = True
- return self.connected
-
- def send(self, cmd, prompt, timeout=DEFAULT_SEND_TIMEOUT):
- # pylint: disable=missing-docstring
- if self.connected is True:
- self.shell.settimeout(timeout)
- self.logger.debug("Commandset : '%s'", cmd)
-
- try:
- self.shell.send(cmd + '\n')
- except Exception: # pylint: disable=broad-except
- self.logger.error("ssh send timeout : Command : '%s'", cmd)
- return None
-
- res_buff = ''
- while not res_buff.endswith(prompt):
- time.sleep(RECEIVE_ROOP_WAIT)
- try:
- res = self.shell.recv(self.ssh_revieve_buff)
- except Exception: # pylint: disable=broad-except
- self.logger.error("ssh receive timeout : Command : '%s'",
- cmd)
- break
-
- res_buff += res
-
- self.logger.debug("Response : '%s'", res_buff)
- return res_buff
- self.logger.error("Cannot connected to IP '%s'.", self.ip_address)
- return None
-
- def close(self):
- # pylint: disable=missing-docstring
- if self.connected is True:
- self.ssh.close()
-
- @staticmethod
- def error_check(response, err_strs=None):
- # pylint: disable=missing-docstring
- if err_strs is None:
- err_strs = ["error", "warn", "unknown command", "already exist"]
- for err in err_strs:
- if err in response:
- return False
-
- return True
diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py b/functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py
deleted file mode 100644
index 10e48645..00000000
--- a/functest/opnfv_tests/vnf/router/vnf_controller/vm_controller.py
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""vm controll module"""
-
-import logging
-import os
-import time
-import yaml
-
-from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf
-from functest.opnfv_tests.vnf.router.vnf_controller.command_generator import (
- CommandGenerator)
-from functest.opnfv_tests.vnf.router.vnf_controller.ssh_client import (
- SshClient)
-
-
-class VmController(object):
- """vm controll class"""
-
- logger = logging.getLogger(__name__)
-
- def __init__(self, util_info):
- self.logger.debug("initialize vm controller")
- self.command_gen = CommandGenerator()
- credentials = util_info["credentials"]
-
- self.util = Utilvnf()
- self.util.set_credentials(credentials["snaps_creds"])
-
- with open(self.util.test_env_config_yaml) as file_fd:
- test_env_config_yaml = yaml.safe_load(file_fd)
- file_fd.close()
-
- self.reboot_wait = test_env_config_yaml.get("general").get(
- "reboot_wait")
- self.command_wait = test_env_config_yaml.get("general").get(
- "command_wait")
- self.ssh_connect_timeout = test_env_config_yaml.get("general").get(
- "ssh_connect_timeout")
- self.ssh_connect_retry_count = test_env_config_yaml.get("general").get(
- "ssh_connect_retry_count")
-
- def command_gen_from_template(self, command_file_path, cmd_input_param):
- (command_file_dir, command_file_name) = os.path.split(
- command_file_path)
- template = self.command_gen.load_template(command_file_dir,
- command_file_name)
- return self.command_gen.command_create(template,
- cmd_input_param)
-
- def config_vm(self, vm_info, test_cmd_file_path,
- cmd_input_param, prompt_file_path):
- ssh = self.connect_ssh_and_config_vm(vm_info,
- test_cmd_file_path,
- cmd_input_param,
- prompt_file_path)
- if ssh is None:
- return False
-
- ssh.close()
-
- return True
-
- def connect_ssh_and_config_vm(self, vm_info, test_cmd_file_path,
- cmd_input_param, prompt_file_path):
-
- key_filename = None
- if "key_path" in vm_info:
- key_filename = vm_info["key_path"]
-
- ssh = SshClient(ip_address=vm_info["floating_ip"],
- user=vm_info["user"],
- password=vm_info["pass"],
- key_filename=key_filename)
-
- result = ssh.connect(self.ssh_connect_timeout,
- self.ssh_connect_retry_count)
- if not result:
- self.logger.debug("try to vm reboot.")
- self.util.reboot_vm(vm_info["vnf_name"])
- time.sleep(self.reboot_wait)
- result = ssh.connect(self.ssh_connect_timeout,
- self.ssh_connect_retry_count)
- if not result:
- return None
-
- (result, _) = self.command_create_and_execute(
- ssh,
- test_cmd_file_path,
- cmd_input_param,
- prompt_file_path)
- if not result:
- ssh.close()
- return None
-
- return ssh
-
- def command_create_and_execute(self, ssh, test_cmd_file_path,
- cmd_input_param, prompt_file_path):
- prompt_file = open(prompt_file_path,
- 'r')
- prompt = yaml.safe_load(prompt_file)
- prompt_file.close()
- config_mode_prompt = prompt["config_mode"]
-
- commands = self.command_gen_from_template(test_cmd_file_path,
- cmd_input_param)
- return self.command_list_execute(ssh,
- commands,
- config_mode_prompt)
-
- def command_list_execute(self, ssh, command_list, prompt):
- res_data_list = []
- for command in command_list:
- self.logger.debug("Command : " + command)
- (res, res_data) = self.command_execute(ssh,
- command,
- prompt)
- self.logger.debug("Response : " + res_data)
- res_data_list.append(res_data)
- if not res:
- return res, res_data_list
-
- time.sleep(self.command_wait)
-
- return True, res_data_list
-
- def command_execute(self, ssh, command, prompt):
- res_data = ssh.send(command, prompt)
- if res_data is None:
- self.logger.info("retry send command : " + command)
- res_data = ssh.send(command,
- prompt)
- if not ssh.error_check(res_data):
- return False, res_data
-
- return True, res_data
diff --git a/functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py b/functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py
deleted file mode 100644
index a5b1ad85..00000000
--- a/functest/opnfv_tests/vnf/router/vnf_controller/vnf_controller.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""vrouter controll module"""
-
-import logging
-import os
-import time
-import yaml
-
-import prettytable
-
-from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf
-from functest.opnfv_tests.vnf.router.vnf_controller.checker import Checker
-from functest.opnfv_tests.vnf.router.vnf_controller.ssh_client import (
- SshClient)
-from functest.opnfv_tests.vnf.router.vnf_controller.vm_controller import (
- VmController)
-
-
-class VnfController(object):
- """vrouter controll class"""
-
- logger = logging.getLogger(__name__)
-
- def __init__(self, util_info):
- self.logger.debug("init vnf controller")
- self.util = Utilvnf()
- self.vm_controller = VmController(util_info)
-
- with open(self.util.test_env_config_yaml) as file_fd:
- test_env_config_yaml = yaml.safe_load(file_fd)
- file_fd.close()
-
- self.cmd_wait = test_env_config_yaml.get("general").get("command_wait")
- self.ssh_connect_timeout = test_env_config_yaml.get("general").get(
- "ssh_connect_timeout")
- self.ssh_connect_retry_count = test_env_config_yaml.get("general").get(
- "ssh_connect_retry_count")
-
- def config_vnf(self, source_vnf, destination_vnf, test_cmd_file_path,
- parameter_file_path, prompt_file_path):
- # pylint: disable=too-many-arguments
- parameter_file = open(parameter_file_path,
- 'r')
- cmd_input_param = yaml.safe_load(parameter_file)
- parameter_file.close()
-
- cmd_input_param["macaddress"] = source_vnf["data_plane_network_mac"]
- cmd_input_param["source_ip"] = source_vnf["data_plane_network_ip"]
- cmd_input_param["destination_ip"] = destination_vnf[
- "data_plane_network_ip"]
-
- return self.vm_controller.config_vm(source_vnf,
- test_cmd_file_path,
- cmd_input_param,
- prompt_file_path)
-
- def result_check(self, target_vnf, reference_vnf,
- check_rule_file_path_list, parameter_file_path,
- prompt_file_path):
- # pylint: disable=too-many-arguments,too-many-locals
-
- res_dict_data_list = []
-
- parameter_file = open(parameter_file_path,
- 'r')
- cmd_input_param = yaml.safe_load(parameter_file)
- parameter_file.close()
-
- cmd_input_param["source_ip"] = target_vnf["data_plane_network_ip"]
- cmd_input_param["destination_ip"] = reference_vnf[
- "data_plane_network_ip"]
-
- prompt_file = open(prompt_file_path,
- 'r')
- prompt = yaml.safe_load(prompt_file)
- prompt_file.close()
- terminal_mode_prompt = prompt["terminal_mode"]
-
- ssh = SshClient(target_vnf["floating_ip"],
- target_vnf["user"],
- target_vnf["pass"])
-
- result = ssh.connect(self.ssh_connect_timeout,
- self.ssh_connect_retry_count)
- if not result:
- return False, res_dict_data_list
-
- checker = Checker()
-
- res_table = prettytable.PrettyTable(
- header_style='upper', padding_width=5,
- field_names=['test item', 'result'])
-
- status = True
- res_data_list = []
- for check_rule_file_path in check_rule_file_path_list:
- (check_rule_dir, check_rule_file) = os.path.split(
- check_rule_file_path)
- check_rules = checker.load_check_rule(check_rule_dir,
- check_rule_file,
- cmd_input_param)
- (res, res_data) = self.vm_controller.command_execute(
- ssh,
- check_rules["command"],
- terminal_mode_prompt)
- res_data_list.append(res_data)
- if not res:
- status = False
- break
-
- (res, res_dict_data) = checker.regexp_information(res_data,
- check_rules)
- res_dict_data_list.append(res_dict_data)
- res_table.add_row([res_dict_data["test_name"],
- res_dict_data["result"]])
- if not res:
- status = False
-
- time.sleep(self.cmd_wait)
-
- ssh.close()
-
- self.logger.info("Test result:\n\n%s\n", res_table.get_string())
-
- self.output_check_result_detail_data(res_data_list)
-
- return status, res_dict_data_list
-
- def output_check_result_detail_data(self, res_data_list):
- for res_data in res_data_list:
- self.logger.debug(res_data)
diff --git a/functest/opnfv_tests/vnf/router/vrouter_base.py b/functest/opnfv_tests/vnf/router/vrouter_base.py
deleted file mode 100644
index 8818032d..00000000
--- a/functest/opnfv_tests/vnf/router/vrouter_base.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-"""vrouter testing base class module"""
-
-import datetime
-import json
-import logging
-import os
-import time
-
-import pkg_resources
-
-import functest.core.vnf as vnf
-from functest.utils import config
-from functest.opnfv_tests.vnf.router.test_controller import function_test_exec
-from functest.opnfv_tests.vnf.router.utilvnf import Utilvnf
-
-__author__ = "Shuya Nakama <shuya.nakama@okinawaopenlabs.org>"
-
-REBOOT_WAIT = 30
-
-
-class VrouterOnBoardingBase(vnf.VnfOnBoarding):
- """vrouter testing base class"""
-
- def __init__(self, **kwargs):
- self.logger = logging.getLogger(__name__)
- super(VrouterOnBoardingBase, self).__init__(**kwargs)
- self.case_dir = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/vnf/router')
- self.data_dir = getattr(config.CONF, 'dir_router_data')
- self.result_dir = os.path.join(getattr(config.CONF, 'dir_results'),
- self.case_name)
- self.util = Utilvnf()
- self.util_info = {}
-
- self.vnf_list = []
-
- if not os.path.exists(self.data_dir):
- os.makedirs(self.data_dir)
- if not os.path.exists(self.result_dir):
- os.makedirs(self.result_dir)
-
- def test_vnf(self):
- """vrouter test execution"""
- result = False
- test_result_data_list = []
- test_scenario_file_path = os.path.join(self.case_dir,
- self.util.test_scenario_yaml)
- test_scenario_list = self.util.get_test_scenario(
- test_scenario_file_path)
- for test_scenario in test_scenario_list:
- if test_scenario["test_type"] == "function_test":
- function_test_list = test_scenario["function_test_list"]
- for function_test in function_test_list:
- test_list = function_test["test_list"]
- target_vnf_name = function_test["target_vnf_name"]
- for test_info in test_list:
- self.logger.info(test_info["protocol"] + " " +
- test_info["test_kind"] +
- " test.")
- (result, result_data) = self.function_test_vrouter(
- target_vnf_name, test_info)
- test_result_data_list.append(result_data)
- if not result:
- break
-
- self.util.request_vm_delete(self.vnf_list)
-
- test_result_data = json.dumps(test_result_data_list, indent=4)
-
- return result, test_result_data
-
- def function_test_vrouter(self, target_vnf_name, test_info):
- """function test execution"""
-
- test_protocol = test_info["protocol"]
- test_list = test_info[test_protocol]
-
- vnf_info_list = self.get_vnf_info_list(target_vnf_name)
- self.vnf_list = vnf_info_list
-
- self.logger.debug("request vnf's reboot.")
- self.util.request_vnf_reboot(vnf_info_list)
- time.sleep(REBOOT_WAIT)
-
- target_vnf = self.util.get_target_vnf(vnf_info_list)
-
- reference_vnf_list = self.util.get_reference_vnf_list(vnf_info_list)
-
- test_exec = function_test_exec.FunctionTestExec(self.util_info)
-
- # start test
- start_time_ts = time.time()
- self.logger.info("vRouter test Start Time:'%s'", (
- datetime.datetime.fromtimestamp(start_time_ts).strftime(
- '%Y-%m-%d %H:%M:%S')))
-
- (result, test_result_data) = test_exec.run(target_vnf,
- reference_vnf_list,
- test_info,
- test_list)
-
- end_time_ts = time.time()
- duration = round(end_time_ts - start_time_ts, 1)
- self.logger.info("vRouter test duration :'%s'", duration)
-
- return result, test_result_data
-
- def get_vnf_info_list(self, target_vnf_name):
- # pylint: disable=unused-argument,no-self-use
- vnf_info_list = []
- return vnf_info_list
diff --git a/functest/tests/unit/ci/test_check_deployment.py b/functest/tests/unit/ci/test_check_deployment.py
deleted file mode 100644
index aeeca587..00000000
--- a/functest/tests/unit/ci/test_check_deployment.py
+++ /dev/null
@@ -1,286 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Ericsson and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import socket
-import unittest
-
-import logging
-import mock
-
-from functest.ci import check_deployment
-
-__author__ = "Jose Lausuch <jose.lausuch@ericsson.com>"
-
-
-class CheckDeploymentTesting(unittest.TestCase):
- """The super class which testing classes could inherit."""
- # pylint: disable=missing-docstring,too-many-public-methods
-
- logging.disable(logging.CRITICAL)
-
- def setUp(self):
- self.client_test = mock.Mock()
- self.deployment = check_deployment.CheckDeployment()
- self.service_test = 'compute'
- self.rc_file = self.deployment.rc_file
- self.endpoint_test = 'http://192.168.0.6:5000/v3'
- creds_attr = {'auth_url': self.endpoint_test,
- 'proxy_settings': ''}
- proxy_attr = {'host': '192.168.0.1', 'port': '5000'}
- proxy_settings = mock.Mock()
- proxy_settings.configure_mock(**proxy_attr)
- self.os_creds = mock.Mock()
- self.os_creds.configure_mock(**creds_attr)
- self.os_creds.proxy_settings = proxy_settings
- self.deployment.os_creds = self.os_creds
-
- @mock.patch('socket.socket.connect', side_effect=TypeError)
- def test_verify_connectivity_ko1(self, *args):
- self.assertFalse(check_deployment.verify_connectivity("127.0.0.1"))
- args[0].assert_called_once_with((None, 80))
-
- @mock.patch('socket.socket.connect', side_effect=socket.error)
- def test_verify_connectivity_ko2(self, *args):
- self.assertFalse(
- check_deployment.verify_connectivity("http://127.0.0.1"))
- args[0].assert_called_once_with(("127.0.0.1", 80))
-
- @mock.patch('socket.socket.connect', side_effect=socket.error)
- def test_verify_connectivity_ko3(self, *args):
- self.assertFalse(
- check_deployment.verify_connectivity("https://127.0.0.1"))
- args[0].assert_called_once_with(("127.0.0.1", 443))
-
- @mock.patch('socket.socket.connect')
- def test_verify_connectivity(self, *args):
- self.assertTrue(
- check_deployment.verify_connectivity("https://127.0.0.1"))
- args[0].assert_called_once_with(("127.0.0.1", 443))
-
- @mock.patch('snaps.openstack.utils.keystone_utils.keystone_session',
- return_value=mock.Mock(
- get_token=mock.Mock(side_effect=Exception)))
- def test_get_auth_token_ko(self, *args):
- with self.assertRaises(Exception):
- check_deployment.get_auth_token(self.os_creds)
- args[0].assert_called_once_with(self.os_creds)
-
- @mock.patch('snaps.openstack.utils.keystone_utils.keystone_session',
- return_value=mock.Mock(
- get_token=mock.Mock(return_value="foo")))
- def test_get_auth_token(self, *args):
- self.assertEqual(check_deployment.get_auth_token(self.os_creds), "foo")
- args[0].assert_called_once_with(self.os_creds)
-
- @mock.patch('six.moves.builtins.open',
- mock.mock_open(read_data='OS_AUTH_URL'))
- @mock.patch('functest.ci.check_deployment.os.path.isfile', returns=True)
- def test_check_rc(self, *args):
- self.deployment.check_rc()
- args[0].assert_called_once_with(self.rc_file)
-
- @mock.patch('functest.ci.check_deployment.os.path.isfile',
- return_value=False)
- def test_check_rc_missing_file(self, *args):
- with self.assertRaises(Exception) as context:
- self.deployment.check_rc()
- args[0].assert_called_once_with(self.rc_file)
- msg = 'RC file {} does not exist!'.format(self.rc_file)
- self.assertTrue(msg in str(context.exception))
-
- @mock.patch('six.moves.builtins.open',
- mock.mock_open(read_data='test'))
- @mock.patch('functest.ci.check_deployment.os.path.isfile',
- return_value=True)
- def test_check_rc_missing_os_auth(self, *args):
- with self.assertRaises(Exception) as context:
- self.deployment.check_rc()
- args[0].assert_called_once_with(self.rc_file)
- msg = 'OS_AUTH_URL not defined in {}.'.format(self.rc_file)
- self.assertTrue(msg in str(context.exception))
-
- @mock.patch('functest.ci.check_deployment.get_auth_token',
- return_value='gAAAAABaOhXGS')
- @mock.patch('functest.ci.check_deployment.verify_connectivity',
- return_value=True)
- def test_check_auth_endpoint(self, *args):
- self.deployment.check_auth_endpoint()
- args[0].assert_called_once_with(self.endpoint_test)
- args[1].assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.verify_connectivity',
- return_value=False)
- def test_check_auth_endpoint_ko(self, *args):
- with self.assertRaises(Exception) as context:
- self.deployment.check_auth_endpoint()
- msg = "OS_AUTH_URL {} is not reachable.".format(self.os_creds.auth_url)
- args[0].assert_called_once_with(self.os_creds.auth_url)
- self.assertTrue(msg in str(context.exception))
-
- @mock.patch('functest.ci.check_deployment.verify_connectivity',
- return_value=True)
- @mock.patch('functest.ci.check_deployment.keystone_utils.get_endpoint')
- def test_check_public_endpoint(self, *args):
- args[0].return_value = self.endpoint_test
- self.deployment.check_public_endpoint()
- args[0].assert_called_once_with(
- mock.ANY, 'identity', interface='public')
- args[1].assert_called_once_with(self.endpoint_test)
-
- @mock.patch('functest.ci.check_deployment.verify_connectivity',
- return_value=False)
- @mock.patch('functest.ci.check_deployment.keystone_utils.get_endpoint')
- def test_check_public_endpoint_ko(self, *args):
- args[0].return_value = self.endpoint_test
- with self.assertRaises(Exception) as context:
- self.deployment.check_public_endpoint()
- args[0].assert_called_once_with(
- mock.ANY, 'identity', interface='public')
- args[1].assert_called_once_with(self.endpoint_test)
- msg = "Public endpoint {} is not reachable.".format(self.endpoint_test)
- self.assertTrue(msg in str(context.exception))
-
- @mock.patch('functest.ci.check_deployment.verify_connectivity',
- return_value=True)
- @mock.patch('functest.ci.check_deployment.keystone_utils.get_endpoint')
- def test_check_service_endpoint(self, *args):
- self.deployment.check_service_endpoint(self.service_test)
- args[0].assert_called_once_with(
- mock.ANY, self.service_test, interface='public')
- args[1].assert_called_once_with(args[0].return_value)
-
- @mock.patch('functest.ci.check_deployment.verify_connectivity',
- return_value=False)
- @mock.patch('functest.ci.check_deployment.keystone_utils.get_endpoint')
- def test_check_service_endpoint_ko(self, *args):
- args[0].return_value = self.endpoint_test
- with self.assertRaises(Exception) as context:
- self.deployment.check_service_endpoint(self.service_test)
- msg = "{} endpoint {} is not reachable.".format(
- self.service_test, self.endpoint_test)
- self.assertTrue(msg in str(context.exception))
- args[0].assert_called_once_with(
- mock.ANY, self.service_test, interface='public')
- args[1].assert_called_once_with(args[0].return_value)
-
- @mock.patch('functest.ci.check_deployment.nova_utils.nova_client')
- def test_check_nova(self, mock_method):
- self.deployment.check_nova()
- mock_method.assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.nova_utils.nova_client',
- return_value=mock.Mock(
- servers=mock.Mock(list=mock.Mock(side_effect=Exception))))
- def test_check_nova_fail(self, mock_method):
- with self.assertRaises(Exception):
- self.deployment.check_nova()
- mock_method.assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.neutron_utils.neutron_client')
- def test_check_neutron(self, mock_method):
- self.deployment.check_neutron()
- mock_method.assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.neutron_utils.neutron_client',
- return_value=mock.Mock(
- list_networks=mock.Mock(side_effect=Exception)))
- def test_check_neutron_fail(self, mock_method):
- with self.assertRaises(Exception):
- self.deployment.check_neutron()
- mock_method.assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.glance_utils.glance_client')
- def test_check_glance(self, mock_method):
- self.deployment.check_glance()
- mock_method.assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.glance_utils.glance_client',
- return_value=mock.Mock(
- images=mock.Mock(list=mock.Mock(side_effect=Exception))))
- def test_check_glance_fail(self, mock_method):
- with self.assertRaises(Exception):
- self.deployment.check_glance()
- mock_method.assert_called_once_with(mock.ANY)
-
- @mock.patch('functest.ci.check_deployment.LOGGER.info')
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='ext-net')
- def test_check_extnet(self, *args):
- self.deployment.check_ext_net()
- args[0].assert_called_once_with(mock.ANY)
- args[1].assert_called_once_with(
- "External network found: %s", "ext-net")
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='')
- def test_check_extnet_none(self, mock_getext):
- with self.assertRaises(Exception) as context:
- self.deployment.check_ext_net()
- self.assertTrue(mock_getext.called)
- msg = 'ERROR: No external networks in the deployment.'
- self.assertTrue(msg in str(context.exception))
-
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_rc',
- side_effect=Exception)
- def test_check_all_exc1(self, *args):
- with self.assertRaises(Exception):
- self.deployment.check_all()
- args[0].assert_called_once_with()
-
- @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials',
- side_effect=Exception)
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_rc')
- def test_check_all_exc2(self, *args):
- with self.assertRaises(Exception):
- self.deployment.check_all()
- args[0].assert_called_once_with()
- args[1].assert_called_once_with(
- os_env_file=self.rc_file, proxy_settings_str=None,
- ssh_proxy_cmd=None)
-
- @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials',
- return_value=None)
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_rc')
- def test_check_all_exc3(self, *args):
- with self.assertRaises(Exception):
- self.deployment.check_all()
- args[0].assert_called_once_with()
- args[1].assert_called_once_with(
- os_env_file=self.rc_file, proxy_settings_str=None,
- ssh_proxy_cmd=None)
-
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_ext_net')
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_glance')
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_neutron')
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_nova')
- @mock.patch(
- 'functest.ci.check_deployment.CheckDeployment.check_service_endpoint')
- @mock.patch(
- 'functest.ci.check_deployment.CheckDeployment.check_public_endpoint')
- @mock.patch(
- 'functest.ci.check_deployment.CheckDeployment.check_auth_endpoint')
- @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials')
- @mock.patch('functest.ci.check_deployment.CheckDeployment.check_rc')
- def test_check_all(self, *args):
- self.assertEqual(self.deployment.check_all(), 0)
- for i in [0, 2, 3, 5, 6, 7, 8]:
- args[i].assert_called_once_with()
- args[1].assert_called_once_with(
- os_env_file=self.rc_file, proxy_settings_str=None,
- ssh_proxy_cmd=None)
- calls = [mock.call('compute'), mock.call('network'),
- mock.call('image')]
- args[4].assert_has_calls(calls)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/cli/__init__.py b/functest/tests/unit/cli/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/cli/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/cli/commands/__init__.py b/functest/tests/unit/cli/commands/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/cli/commands/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/cli/commands/test_cli_env.py b/functest/tests/unit/cli/commands/test_cli_env.py
deleted file mode 100644
index 7d6f7787..00000000
--- a/functest/tests/unit/cli/commands/test_cli_env.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import os
-import re
-import unittest
-
-import mock
-
-from functest.cli.commands import cli_env
-
-
-class RegexMatch(object): # pylint: disable=too-few-public-methods
- def __init__(self, msg):
- self.msg = msg
-
- def __eq__(self, other):
- match = re.search(self.msg, other)
- return match is not None
-
-
-class CliEnvTesting(unittest.TestCase):
-
- def setUp(self):
- self.cli_environ = cli_env.CliEnv()
-
- def _test_show_missing_env_var(self, var, *args):
- # pylint: disable=unused-argument
- if var == 'INSTALLER_TYPE':
- os.environ['INSTALLER_TYPE'] = ''
- reg_string = r"| INSTALLER: Unknown, \S+\s*|"
- elif var == 'SCENARIO':
- os.environ['DEPLOY_SCENARIO'] = ''
- reg_string = r"| SCENARIO: Unknown\s*|"
- elif var == 'NODE':
- os.environ['NODE_NAME'] = ''
- reg_string = r"| POD: Unknown\s*|"
- elif var == 'BUILD_TAG':
- os.environ['BUILD_TAG'] = ''
- reg_string = r"| BUILD TAG: None|"
-
- with mock.patch('functest.cli.commands.cli_env.click.echo') \
- as mock_click_echo:
- self.cli_environ.show()
- mock_click_echo.assert_called_with(RegexMatch(reg_string))
-
- def test_show_ci_installer_type_ko(self, *args):
- self._test_show_missing_env_var('INSTALLER_TYPE', *args)
-
- def test_show_missing_ci_scenario(self, *args):
- self._test_show_missing_env_var('SCENARIO', *args)
-
- def test_show_missing_ci_node(self, *args):
- self._test_show_missing_env_var('NODE', *args)
-
- def test_show_missing_ci_build_tag(self, *args):
- self._test_show_missing_env_var('BUILD_TAG', *args)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/cli/commands/test_cli_os.py b/functest/tests/unit/cli/commands/test_cli_os.py
deleted file mode 100644
index a5e562a2..00000000
--- a/functest/tests/unit/cli/commands/test_cli_os.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-import os
-
-import mock
-
-from functest.cli.commands import cli_os
-
-
-class CliOpenStackTesting(unittest.TestCase):
-
- def setUp(self):
- self.endpoint_ip = 'test_ip'
- self.os_auth_url = 'http://test_ip:test_port/v2.0'
- self.installer_type = 'test_installer_type'
- self.openstack_creds = 'test_env_file'
- self.snapshot_file = 'test_snapshot_file'
- os.environ["OS_AUTH_URL"] = ''
- self.cli_os = cli_os.CliOpenStack()
-
- def test_ping_endpoint_default(self):
- self.cli_os.os_auth_url = self.os_auth_url
- self.cli_os.endpoint_ip = self.endpoint_ip
- with mock.patch('functest.cli.commands.cli_os.os.system',
- return_value=0):
- self.assertEqual(self.cli_os.ping_endpoint(), 0)
-
- @mock.patch('functest.cli.commands.cli_os.exit', side_effect=Exception)
- @mock.patch('functest.cli.commands.cli_os.click.echo')
- def test_ping_endpoint_auth_url_ko(self, mock_click_echo, mock_exit):
- with self.assertRaises(Exception):
- self.cli_os.os_auth_url = None
- self.cli_os.ping_endpoint()
- mock_click_echo.assert_called_once_with(
- "Source the OpenStack credentials first")
- mock_exit.assert_called_once_with(0)
-
- @mock.patch('functest.cli.commands.cli_os.exit')
- @mock.patch('functest.cli.commands.cli_os.click.echo')
- def test_ping_endpoint_system_fails(self, mock_click_echo, mock_exit):
- self.cli_os.os_auth_url = self.os_auth_url
- self.cli_os.endpoint_ip = self.endpoint_ip
- with mock.patch('functest.cli.commands.cli_os.os.system',
- return_value=1):
- self.cli_os.ping_endpoint()
- mock_click_echo.assert_called_once_with(
- "Cannot talk to the endpoint %s\n" % self.endpoint_ip)
- mock_exit.assert_called_once_with(0)
-
- def test_check(self):
- with mock.patch.object(self.cli_os, 'ping_endpoint'), \
- mock.patch('functest.cli.commands.cli_os.check_deployment.'
- 'CheckDeployment') as mock_check_deployment:
- self.cli_os.check()
- self.assertTrue(mock_check_deployment.called)
-
- @mock.patch('functest.cli.commands.cli_os.click.echo')
- def test_show_credentials(self, mock_click_echo):
- key = 'OS_KEY'
- value = 'OS_VALUE'
- with mock.patch.dict(os.environ, {key: value}):
- self.cli_os.show_credentials()
- mock_click_echo.assert_any_call("{}={}".format(key, value))
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/cli/commands/test_cli_testcase.py b/functest/tests/unit/cli/commands/test_cli_testcase.py
deleted file mode 100644
index 30e55fac..00000000
--- a/functest/tests/unit/cli/commands/test_cli_testcase.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from functest.cli.commands import cli_testcase
-
-
-class CliTestCasesTesting(unittest.TestCase):
-
- def setUp(self):
- self.testname = 'testname'
- with mock.patch('functest.ci.tier_builder'):
- self.cli_tests = cli_testcase.CliTestcase()
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_default(self, mock_ft_utils):
- cmd = "run_tests -n -r -t {}".format(self.testname)
- self.cli_tests.run(self.testname, noclean=True, report=True)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_noclean_missing_report(self, mock_ft_utils):
- cmd = "run_tests -n -t {}".format(self.testname)
- self.cli_tests.run(self.testname, noclean=True, report=False)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_report_missing_noclean(self, mock_ft_utils):
- cmd = "run_tests -r -t {}".format(self.testname)
- self.cli_tests.run(self.testname, noclean=False, report=True)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_missing_noclean_report(self, mock_ft_utils):
- cmd = "run_tests -t {}".format(self.testname)
- self.cli_tests.run(self.testname, noclean=False, report=False)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.cli.commands.cli_testcase.click.echo')
- def test_list(self, mock_click_echo):
- with mock.patch.object(self.cli_tests.tiers, 'get_tiers',
- return_value=[]):
- self.cli_tests.list()
- mock_click_echo.assert_called_with("")
-
- @mock.patch('functest.cli.commands.cli_testcase.click.echo')
- def test_show_default_desc_none(self, mock_click_echo):
- with mock.patch.object(self.cli_tests.tiers, 'get_test',
- return_value=None):
- self.cli_tests.show(self.testname)
- mock_click_echo.assert_any_call("The test case '%s' "
- "does not exist or is"
- " not supported."
- % self.testname)
-
- @mock.patch('functest.cli.commands.cli_testcase.click.echo')
- def test_show_default(self, mock_click_echo):
- mock_obj = mock.Mock()
- with mock.patch.object(self.cli_tests.tiers, 'get_test',
- return_value=mock_obj):
- self.cli_tests.show(self.testname)
- mock_click_echo.assert_called_with(mock_obj)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/cli/commands/test_cli_tier.py b/functest/tests/unit/cli/commands/test_cli_tier.py
deleted file mode 100644
index f81ad31d..00000000
--- a/functest/tests/unit/cli/commands/test_cli_tier.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from functest.cli.commands import cli_tier
-
-
-class CliTierTesting(unittest.TestCase):
-
- def setUp(self):
- self.tiername = 'tiername'
- self.testnames = 'testnames'
- with mock.patch('functest.ci.tier_builder'):
- self.cli_tier = cli_tier.CliTier()
-
- @mock.patch('functest.cli.commands.cli_tier.click.echo')
- def test_list(self, mock_click_echo):
- with mock.patch.object(self.cli_tier.tiers, 'get_tiers',
- return_value=[]):
- self.cli_tier.list()
- mock_click_echo.assert_called_with("")
-
- @mock.patch('functest.cli.commands.cli_tier.click.echo')
- def test_show_default(self, mock_click_echo):
- with mock.patch.object(self.cli_tier.tiers, 'get_tier',
- return_value=self.tiername):
- self.cli_tier.show(self.tiername)
- mock_click_echo.assert_called_with(self.tiername)
-
- @mock.patch('functest.cli.commands.cli_tier.click.echo')
- def test_show_missing_tier(self, mock_click_echo):
- with mock.patch.object(self.cli_tier.tiers, 'get_tier',
- return_value=None), \
- mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
- return_value='tiernames'):
- self.cli_tier.show(self.tiername)
- mock_click_echo.assert_called_with("The tier with name '%s' does "
- "not exist. Available tiers are"
- ":\n %s\n" % (self.tiername,
- 'tiernames'))
-
- @mock.patch('functest.cli.commands.cli_tier.click.echo')
- def test_gettests_default(self, mock_click_echo):
- mock_obj = mock.Mock()
- attrs = {'get_test_names.return_value': self.testnames}
- mock_obj.configure_mock(**attrs)
-
- with mock.patch.object(self.cli_tier.tiers, 'get_tier',
- return_value=mock_obj):
- self.cli_tier.gettests(self.tiername)
- mock_click_echo.assert_called_with(
- "Test cases in tier '%s':\n %s\n" % (
- self.tiername, self.testnames))
-
- @mock.patch('functest.cli.commands.cli_tier.click.echo')
- def test_gettests_missing_tier(self, mock_click_echo):
- with mock.patch.object(self.cli_tier.tiers, 'get_tier',
- return_value=None), \
- mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
- return_value='tiernames'):
- self.cli_tier.gettests(self.tiername)
- mock_click_echo.assert_called_with("The tier with name '%s' does "
- "not exist. Available tiers are"
- ":\n %s\n" % (self.tiername,
- 'tiernames'))
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_default(self, mock_ft_utils):
- cmd = "run_tests -n -r -t {}".format(self.tiername)
- self.cli_tier.run(self.tiername, noclean=True, report=True)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_report_missing_noclean(self, mock_ft_utils):
- cmd = "run_tests -r -t {}".format(self.tiername)
- self.cli_tier.run(self.tiername, noclean=False, report=True)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_noclean_missing_report(self, mock_ft_utils):
- cmd = "run_tests -n -t {}".format(self.tiername)
- self.cli_tier.run(self.tiername, noclean=True, report=False)
- mock_ft_utils.assert_called_with(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_missing_noclean_report(self, mock_ft_utils):
- cmd = "run_tests -t {}".format(self.tiername)
- self.cli_tier.run(self.tiername, noclean=False, report=False)
- mock_ft_utils.assert_called_with(cmd)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/cli/test_cli_base.py b/functest/tests/unit/cli/test_cli_base.py
deleted file mode 100644
index 185a5220..00000000
--- a/functest/tests/unit/cli/test_cli_base.py
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import os
-import unittest
-
-import mock
-from click.testing import CliRunner
-
-with mock.patch('functest.cli.commands.cli_testcase.CliTestcase.__init__',
- mock.Mock(return_value=None)), \
- mock.patch('functest.cli.commands.cli_tier.CliTier.__init__',
- mock.Mock(return_value=None)):
- os.environ['OS_AUTH_URL'] = ''
- from functest.cli import cli_base
-
-
-class CliBaseTesting(unittest.TestCase):
-
- def setUp(self):
- self.runner = CliRunner()
- self._openstack = cli_base.OPENSTACK
- self._env = cli_base.ENV
- self._testcase = cli_base.TESTCASE
- self._tier = cli_base.TIER
-
- def test_os_check(self):
- with mock.patch.object(self._openstack, 'check') as mock_method:
- result = self.runner.invoke(cli_base.os_check)
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_os_show_credentials(self):
- with mock.patch.object(self._openstack, 'show_credentials') \
- as mock_method:
- result = self.runner.invoke(cli_base.os_show_credentials)
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_env_show(self):
- with mock.patch.object(self._env, 'show') as mock_method:
- result = self.runner.invoke(cli_base.env_show)
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_testcase_list(self):
- with mock.patch.object(self._testcase, 'list') as mock_method:
- result = self.runner.invoke(cli_base.testcase_list)
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_testcase_show(self):
- with mock.patch.object(self._testcase, 'show') as mock_method:
- result = self.runner.invoke(cli_base.testcase_show, ['testname'])
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_testcase_run(self):
- with mock.patch.object(self._testcase, 'run') as mock_method:
- result = self.runner.invoke(cli_base.testcase_run,
- ['testname', '--noclean'])
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_tier_list(self):
- with mock.patch.object(self._tier, 'list') as mock_method:
- result = self.runner.invoke(cli_base.tier_list)
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_tier_show(self):
- with mock.patch.object(self._tier, 'show') as mock_method:
- result = self.runner.invoke(cli_base.tier_show, ['tiername'])
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_tier_gettests(self):
- with mock.patch.object(self._tier, 'gettests') as mock_method:
- result = self.runner.invoke(cli_base.tier_gettests, ['tiername'])
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
- def test_tier_run(self):
- with mock.patch.object(self._tier, 'run') as mock_method:
- result = self.runner.invoke(cli_base.tier_run,
- ['tiername', '--noclean'])
- self.assertEqual(result.exit_code, 0)
- self.assertTrue(mock_method.called)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/odl/__init__.py b/functest/tests/unit/odl/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/odl/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/odl/test_odl.py b/functest/tests/unit/odl/test_odl.py
deleted file mode 100644
index 65784ae5..00000000
--- a/functest/tests/unit/odl/test_odl.py
+++ /dev/null
@@ -1,523 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Define the classes required to fully cover odl."""
-
-import logging
-import os
-import unittest
-
-import mock
-from robot.errors import RobotError
-import six
-from six.moves import urllib
-
-from functest.core import testcase
-from functest.opnfv_tests.sdn.odl import odl
-
-__author__ = "Cedric Ollivier <cedric.ollivier@orange.com>"
-
-
-class ODLTesting(unittest.TestCase):
-
- """The super class which testing classes could inherit."""
- # pylint: disable=missing-docstring
-
- logging.disable(logging.CRITICAL)
-
- _keystone_ip = "127.0.0.1"
- _neutron_url = u"https://127.0.0.1:9696"
- _sdn_controller_ip = "127.0.0.3"
- _os_auth_url = "http://{}:5000/v3".format(_keystone_ip)
- _os_projectname = "admin"
- _os_username = "admin"
- _os_password = "admin"
- _odl_webport = "8080"
- _odl_restconfport = "8181"
- _odl_username = "admin"
- _odl_password = "admin"
- _os_userdomainname = 'Default'
- _os_projectdomainname = 'Default'
-
- def setUp(self):
- for var in ("INSTALLER_TYPE", "SDN_CONTROLLER", "SDN_CONTROLLER_IP"):
- if var in os.environ:
- del os.environ[var]
- os.environ["OS_AUTH_URL"] = self._os_auth_url
- os.environ["OS_USERNAME"] = self._os_username
- os.environ["OS_USER_DOMAIN_NAME"] = self._os_userdomainname
- os.environ["OS_PASSWORD"] = self._os_password
- os.environ["OS_PROJECT_NAME"] = self._os_projectname
- os.environ["OS_PROJECT_DOMAIN_NAME"] = self._os_projectdomainname
- os.environ["OS_PASSWORD"] = self._os_password
- self.test = odl.ODLTests(case_name='odl', project_name='functest')
- self.defaultargs = {'odlusername': self._odl_username,
- 'odlpassword': self._odl_password,
- 'neutronurl': "http://{}:9696".format(
- self._keystone_ip),
- 'osauthurl': self._os_auth_url,
- 'osusername': self._os_username,
- 'osuserdomainname': self._os_userdomainname,
- 'osprojectname': self._os_projectname,
- 'osprojectdomainname': self._os_projectdomainname,
- 'ospassword': self._os_password,
- 'odlip': self._keystone_ip,
- 'odlwebport': self._odl_webport,
- 'odlrestconfport': self._odl_restconfport,
- 'pushtodb': False}
-
-
-class ODLRobotTesting(ODLTesting):
-
- """The class testing ODLTests.set_robotframework_vars()."""
- # pylint: disable=missing-docstring
-
- @mock.patch('fileinput.input', side_effect=Exception())
- def test_set_vars_ko(self, mock_method):
- self.assertFalse(self.test.set_robotframework_vars())
- mock_method.assert_called_once_with(
- os.path.join(odl.ODLTests.odl_test_repo,
- 'csit/variables/Variables.robot'), inplace=True)
-
- @mock.patch('fileinput.input', return_value=[])
- def test_set_vars_empty(self, mock_method):
- self.assertTrue(self.test.set_robotframework_vars())
- mock_method.assert_called_once_with(
- os.path.join(odl.ODLTests.odl_test_repo,
- 'csit/variables/Variables.robot'), inplace=True)
-
- @mock.patch('sys.stdout', new_callable=six.StringIO)
- def _test_set_vars(self, msg1, msg2, *args):
- line = mock.MagicMock()
- line.__iter__.return_value = [msg1]
- with mock.patch('fileinput.input', return_value=line) as mock_method:
- self.assertTrue(self.test.set_robotframework_vars())
- mock_method.assert_called_once_with(
- os.path.join(odl.ODLTests.odl_test_repo,
- 'csit/variables/Variables.robot'), inplace=True)
- self.assertEqual(args[0].getvalue(), "{}\n".format(msg2))
-
- def test_set_vars_auth_default(self):
- self._test_set_vars(
- "@{AUTH} ",
- "@{AUTH} admin admin")
-
- def test_set_vars_auth1(self):
- self._test_set_vars(
- "@{AUTH1} foo bar",
- "@{AUTH1} foo bar")
-
- @mock.patch('sys.stdout', new_callable=six.StringIO)
- def test_set_vars_auth_foo(self, *args):
- line = mock.MagicMock()
- line.__iter__.return_value = ["@{AUTH} "]
- with mock.patch('fileinput.input', return_value=line) as mock_method:
- self.assertTrue(self.test.set_robotframework_vars('foo', 'bar'))
- mock_method.assert_called_once_with(
- os.path.join(odl.ODLTests.odl_test_repo,
- 'csit/variables/Variables.robot'), inplace=True)
- self.assertEqual(
- args[0].getvalue(),
- "@{AUTH} foo bar\n")
-
-
-class ODLMainTesting(ODLTesting):
-
- """The class testing ODLTests.run_suites()."""
- # pylint: disable=missing-docstring
-
- def _get_run_suites_kwargs(self, key=None):
- kwargs = {'odlusername': self._odl_username,
- 'odlpassword': self._odl_password,
- 'neutronurl': self._neutron_url,
- 'osauthurl': self._os_auth_url,
- 'osusername': self._os_username,
- 'osuserdomainname': self._os_userdomainname,
- 'osprojectname': self._os_projectname,
- 'osprojectdomainname': self._os_projectdomainname,
- 'ospassword': self._os_password,
- 'odlip': self._sdn_controller_ip,
- 'odlwebport': self._odl_webport,
- 'odlrestconfport': self._odl_restconfport}
- if key:
- del kwargs[key]
- return kwargs
-
- def _test_run_suites(self, status, *args):
- kwargs = self._get_run_suites_kwargs()
- self.assertEqual(self.test.run_suites(**kwargs), status)
- if args:
- args[0].assert_called_once_with(self.test.odl_variables_file)
- if len(args) > 1:
- variable = [
- 'KEYSTONEURL:{}://{}'.format(
- urllib.parse.urlparse(self._os_auth_url).scheme,
- urllib.parse.urlparse(self._os_auth_url).netloc),
- 'NEUTRONURL:{}'.format(self._neutron_url),
- 'OS_AUTH_URL:"{}"'.format(self._os_auth_url),
- 'OSUSERNAME:"{}"'.format(self._os_username),
- 'OSUSERDOMAINNAME:"{}"'.format(self._os_userdomainname),
- 'OSTENANTNAME:"{}"'.format(self._os_projectname),
- 'OSPROJECTDOMAINNAME:"{}"'.format(self._os_projectdomainname),
- 'OSPASSWORD:"{}"'.format(self._os_password),
- 'ODL_SYSTEM_IP:{}'.format(self._sdn_controller_ip),
- 'PORT:{}'.format(self._odl_webport),
- 'RESTCONFPORT:{}'.format(self._odl_restconfport)]
- args[1].assert_called_once_with(
- odl.ODLTests.basic_suite_dir, odl.ODLTests.neutron_suite_dir,
- log='NONE',
- output=os.path.join(self.test.res_dir, 'output.xml'),
- report='NONE', stdout=mock.ANY, variable=variable,
- variablefile=[])
-
- def _test_no_keyword(self, key):
- kwargs = self._get_run_suites_kwargs(key)
- self.assertEqual(self.test.run_suites(**kwargs),
- testcase.TestCase.EX_RUN_ERROR)
-
- def test_no_odlusername(self):
- self._test_no_keyword('odlusername')
-
- def test_no_odlpassword(self):
- self._test_no_keyword('odlpassword')
-
- def test_no_neutronurl(self):
- self._test_no_keyword('neutronurl')
-
- def test_no_osauthurl(self):
- self._test_no_keyword('osauthurl')
-
- def test_no_osusername(self):
- self._test_no_keyword('osusername')
-
- def test_no_osprojectname(self):
- self._test_no_keyword('osprojectname')
-
- def test_no_ospassword(self):
- self._test_no_keyword('ospassword')
-
- def test_no_odlip(self):
- self._test_no_keyword('odlip')
-
- def test_no_odlwebport(self):
- self._test_no_keyword('odlwebport')
-
- def test_no_odlrestconfport(self):
- self._test_no_keyword('odlrestconfport')
-
- @mock.patch('os.path.isfile', return_value=True)
- def test_set_vars_ko(self, *args):
- with mock.patch.object(self.test, 'set_robotframework_vars',
- return_value=False) as mock_object:
- self._test_run_suites(testcase.TestCase.EX_RUN_ERROR)
- mock_object.assert_called_once_with(
- self._odl_username, self._odl_password)
- args[0].assert_called_once_with(self.test.odl_variables_file)
-
- @mock.patch('robot.run', side_effect=RobotError)
- @mock.patch('os.path.isfile', return_value=True)
- def test_run_ko(self, *args):
- with mock.patch.object(self.test, 'set_robotframework_vars',
- return_value=True), \
- self.assertRaises(RobotError):
- self._test_run_suites(testcase.TestCase.EX_RUN_ERROR, *args)
-
- @mock.patch('robot.run')
- @mock.patch('os.path.isfile', return_value=True)
- def test_parse_results_ko(self, *args):
- with mock.patch.object(self.test, 'set_robotframework_vars',
- return_value=True), \
- mock.patch.object(self.test, 'parse_results',
- side_effect=RobotError):
- self._test_run_suites(testcase.TestCase.EX_RUN_ERROR, *args)
-
- @mock.patch('robot.run')
- @mock.patch('os.path.isfile', return_value=True)
- def test_ok(self, *args):
- with mock.patch.object(self.test, 'set_robotframework_vars',
- return_value=True), \
- mock.patch.object(self.test, 'parse_results'):
- self._test_run_suites(testcase.TestCase.EX_OK, *args)
-
- @mock.patch('robot.run')
- @mock.patch('os.path.isfile', return_value=False)
- def test_ok_no_creds(self, *args):
- with mock.patch.object(self.test, 'set_robotframework_vars',
- return_value=True) as mock_method, \
- mock.patch.object(self.test, 'parse_results'):
- self._test_run_suites(testcase.TestCase.EX_OK, *args)
- mock_method.assert_not_called()
-
- @mock.patch('robot.run', return_value=1)
- @mock.patch('os.path.isfile', return_value=True)
- def test_testcases_in_failure(self, *args):
- with mock.patch.object(self.test, 'set_robotframework_vars',
- return_value=True), \
- mock.patch.object(self.test, 'parse_results'):
- self._test_run_suites(testcase.TestCase.EX_OK, *args)
-
-
-class ODLRunTesting(ODLTesting):
-
- """The class testing ODLTests.run()."""
- # pylint: disable=missing-docstring
-
- @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
- return_value=ODLTesting._neutron_url)
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials')
- def _test_no_env_var(self, var, *args):
- del os.environ[var]
- self.assertEqual(self.test.run(), testcase.TestCase.EX_RUN_ERROR)
- args[0].assert_called_once_with()
- args[1].assert_called_once_with(mock.ANY, 'network')
-
- @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
- return_value=ODLTesting._neutron_url)
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials')
- def _test_missing_value(self, *args):
- self.assertEqual(self.test.run(), testcase.TestCase.EX_RUN_ERROR)
- args[0].assert_called_once_with()
- args[1].assert_called_once_with(mock.ANY, 'network')
-
- @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
- return_value=ODLTesting._neutron_url)
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials')
- def _test_run(self, status=testcase.TestCase.EX_OK,
- exception=None, *args, **kwargs):
- odlip = kwargs['odlip'] if 'odlip' in kwargs else '127.0.0.3'
- odlwebport = kwargs['odlwebport'] if 'odlwebport' in kwargs else '8080'
- odlrestconfport = (kwargs['odlrestconfport']
- if 'odlrestconfport' in kwargs else '8181')
- if exception:
- self.test.run_suites = mock.Mock(side_effect=exception)
- else:
- self.test.run_suites = mock.Mock(return_value=status)
- self.assertEqual(self.test.run(), status)
- self.test.run_suites.assert_called_once_with(
- odl.ODLTests.default_suites, neutronurl=self._neutron_url,
- odlip=odlip, odlpassword=self._odl_password,
- odlrestconfport=odlrestconfport, odlusername=self._odl_username,
- odlwebport=odlwebport, osauthurl=self._os_auth_url,
- ospassword=self._os_password, osprojectname=self._os_projectname,
- osusername=self._os_username,
- osprojectdomainname=self._os_projectdomainname,
- osuserdomainname=self._os_userdomainname)
- args[0].assert_called_once_with()
- args[1].assert_called_once_with(mock.ANY, 'network')
-
- @mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
- return_value=ODLTesting._neutron_url)
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials')
- def _test_multiple_suites(self, suites,
- status=testcase.TestCase.EX_OK, *args, **kwargs):
- odlip = kwargs['odlip'] if 'odlip' in kwargs else '127.0.0.3'
- odlwebport = kwargs['odlwebport'] if 'odlwebport' in kwargs else '8080'
- odlrestconfport = (kwargs['odlrestconfport']
- if 'odlrestconfport' in kwargs else '8181')
- self.test.run_suites = mock.Mock(return_value=status)
- self.assertEqual(self.test.run(suites=suites), status)
- self.test.run_suites.assert_called_once_with(
- suites, neutronurl=self._neutron_url, odlip=odlip,
- odlpassword=self._odl_password, odlrestconfport=odlrestconfport,
- odlusername=self._odl_username, odlwebport=odlwebport,
- osauthurl=self._os_auth_url, ospassword=self._os_password,
- osprojectname=self._os_projectname, osusername=self._os_username,
- osprojectdomainname=self._os_projectdomainname,
- osuserdomainname=self._os_userdomainname)
- args[0].assert_called_once_with()
- args[1].assert_called_once_with(mock.ANY, 'network')
-
- def test_exc(self):
- with mock.patch('snaps.openstack.utils.keystone_utils.get_endpoint',
- side_effect=Exception()):
- self.assertEqual(self.test.run(),
- testcase.TestCase.EX_RUN_ERROR)
-
- def test_no_os_auth_url(self):
- self._test_no_env_var("OS_AUTH_URL")
-
- def test_no_os_username(self):
- self._test_no_env_var("OS_USERNAME")
-
- def test_no_os_password(self):
- self._test_no_env_var("OS_PASSWORD")
-
- def test_no_os__name(self):
- self._test_no_env_var("OS_PROJECT_NAME")
-
- def test_run_suites_false(self):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- self._test_run(testcase.TestCase.EX_RUN_ERROR, None,
- odlip=self._sdn_controller_ip,
- odlwebport=self._odl_webport)
-
- def test_run_suites_exc(self):
- with self.assertRaises(Exception):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- self._test_run(testcase.TestCase.EX_RUN_ERROR,
- Exception(),
- odlip=self._sdn_controller_ip,
- odlwebport=self._odl_webport)
-
- def test_no_sdn_controller_ip(self):
- self._test_missing_value()
-
- def test_without_installer_type(self):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- self._test_run(testcase.TestCase.EX_OK, None,
- odlip=self._sdn_controller_ip,
- odlwebport=self._odl_webport)
-
- def test_suites(self):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- self._test_multiple_suites(
- [odl.ODLTests.basic_suite_dir],
- testcase.TestCase.EX_OK,
- odlip=self._sdn_controller_ip,
- odlwebport=self._odl_webport)
-
- def test_fuel(self):
- os.environ["INSTALLER_TYPE"] = "fuel"
- self._test_run(testcase.TestCase.EX_OK, None,
- odlip=urllib.parse.urlparse(self._neutron_url).hostname,
- odlwebport='8181',
- odlrestconfport='8282')
-
- def test_apex_no_controller_ip(self):
- os.environ["INSTALLER_TYPE"] = "apex"
- self._test_missing_value()
-
- def test_apex(self):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- os.environ["INSTALLER_TYPE"] = "apex"
- self._test_run(testcase.TestCase.EX_OK, None,
- odlip=self._sdn_controller_ip, odlwebport='8081',
- odlrestconfport='8081')
-
- def test_netvirt_no_controller_ip(self):
- os.environ["INSTALLER_TYPE"] = "netvirt"
- self._test_missing_value()
-
- def test_netvirt(self):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- os.environ["INSTALLER_TYPE"] = "netvirt"
- self._test_run(testcase.TestCase.EX_OK, None,
- odlip=self._sdn_controller_ip, odlwebport='8081',
- odlrestconfport='8081')
-
- def test_compass(self):
- os.environ["INSTALLER_TYPE"] = "compass"
- self._test_run(testcase.TestCase.EX_OK, None,
- odlip=urllib.parse.urlparse(self._neutron_url).hostname,
- odlrestconfport='8080')
-
- def test_daisy_no_controller_ip(self):
- os.environ["INSTALLER_TYPE"] = "daisy"
- self._test_missing_value()
-
- def test_daisy(self):
- os.environ["SDN_CONTROLLER_IP"] = self._sdn_controller_ip
- os.environ["INSTALLER_TYPE"] = "daisy"
- self._test_run(testcase.TestCase.EX_OK, None,
- odlip=self._sdn_controller_ip, odlwebport='8181',
- odlrestconfport='8087')
-
-
-class ODLArgParserTesting(ODLTesting):
-
- """The class testing ODLParser."""
- # pylint: disable=missing-docstring
-
- def setUp(self):
- self.parser = odl.ODLParser()
- super(ODLArgParserTesting, self).setUp()
-
- def test_default(self):
- self.assertEqual(self.parser.parse_args(), self.defaultargs)
-
- def test_basic(self):
- self.defaultargs['neutronurl'] = self._neutron_url
- self.defaultargs['odlip'] = self._sdn_controller_ip
- self.assertEqual(
- self.parser.parse_args(
- ["--neutronurl={}".format(self._neutron_url),
- "--odlip={}".format(self._sdn_controller_ip)]),
- self.defaultargs)
-
- @mock.patch('sys.stderr', new_callable=six.StringIO)
- def test_fail(self, mock_method):
- self.defaultargs['foo'] = 'bar'
- with self.assertRaises(SystemExit):
- self.parser.parse_args(["--foo=bar"])
- self.assertTrue(mock_method.getvalue().startswith("usage:"))
-
- def _test_arg(self, arg, value):
- self.defaultargs[arg] = value
- self.assertEqual(
- self.parser.parse_args(["--{}={}".format(arg, value)]),
- self.defaultargs)
-
- def test_odlusername(self):
- self._test_arg('odlusername', 'foo')
-
- def test_odlpassword(self):
- self._test_arg('odlpassword', 'foo')
-
- def test_osauthurl(self):
- self._test_arg('osauthurl', 'http://127.0.0.4:5000/v2')
-
- def test_neutronurl(self):
- self._test_arg('neutronurl', 'http://127.0.0.4:9696')
-
- def test_osusername(self):
- self._test_arg('osusername', 'foo')
-
- def test_osuserdomainname(self):
- self._test_arg('osuserdomainname', 'domain')
-
- def test_osprojectname(self):
- self._test_arg('osprojectname', 'foo')
-
- def test_osprojectdomainname(self):
- self._test_arg('osprojectdomainname', 'domain')
-
- def test_ospassword(self):
- self._test_arg('ospassword', 'foo')
-
- def test_odlip(self):
- self._test_arg('odlip', '127.0.0.4')
-
- def test_odlwebport(self):
- self._test_arg('odlwebport', '80')
-
- def test_odlrestconfport(self):
- self._test_arg('odlrestconfport', '80')
-
- def test_pushtodb(self):
- self.defaultargs['pushtodb'] = True
- self.assertEqual(self.parser.parse_args(["--{}".format('pushtodb')]),
- self.defaultargs)
-
- def test_multiple_args(self):
- self.defaultargs['neutronurl'] = self._neutron_url
- self.defaultargs['odlip'] = self._sdn_controller_ip
- self.assertEqual(
- self.parser.parse_args(
- ["--neutronurl={}".format(self._neutron_url),
- "--odlip={}".format(self._sdn_controller_ip)]),
- self.defaultargs)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/__init__.py b/functest/tests/unit/openstack/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/openstack/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/openstack/rally/__init__.py b/functest/tests/unit/openstack/rally/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/openstack/rally/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/openstack/rally/test_rally.py b/functest/tests/unit/openstack/rally/test_rally.py
deleted file mode 100644
index 9cc6bf53..00000000
--- a/functest/tests/unit/openstack/rally/test_rally.py
+++ /dev/null
@@ -1,431 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring,protected-access,invalid-name
-
-import json
-import logging
-import os
-import unittest
-
-import mock
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.rally import rally
-
-from snaps.openstack.os_credentials import OSCreds
-
-
-class OSRallyTesting(unittest.TestCase):
- # pylint: disable=too-many-public-methods
- def setUp(self):
- os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
- with mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials',
- return_value=os_creds) as mock_get_creds:
- self.rally_base = rally.RallyBase()
- self.assertTrue(mock_get_creds.called)
-
- def test_build_task_args_missing_floating_network(self):
- os.environ['OS_AUTH_URL'] = ''
- self.rally_base.ext_net_name = ''
- task_args = self.rally_base._build_task_args('test_file_name')
- self.assertEqual(task_args['floating_network'], '')
-
- def test_build_task_args_missing_net_id(self):
- os.environ['OS_AUTH_URL'] = ''
- self.rally_base.priv_net_id = ''
- task_args = self.rally_base._build_task_args('test_file_name')
- self.assertEqual(task_args['netid'], '')
-
- @staticmethod
- def check_scenario_file(value):
- yaml_file = 'opnfv-{}.yaml'.format('test_file_name')
- if yaml_file in value:
- return False
- return True
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists')
- def test_prepare_test_list_missing_scenario_file(self, mock_func):
- mock_func.side_effect = self.check_scenario_file
- with self.assertRaises(Exception):
- self.rally_base._prepare_test_list('test_file_name')
- mock_func.assert_called()
-
- @staticmethod
- def check_temp_dir(value):
- yaml_file = 'opnfv-{}.yaml'.format('test_file_name')
- if yaml_file in value:
- return True
- return False
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.makedirs')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_apply_blacklist')
- def test_prepare_test_list_missing_temp_dir(
- self, mock_method, mock_os_makedirs, mock_path_exists):
- mock_path_exists.side_effect = self.check_temp_dir
-
- yaml_file = 'opnfv-{}.yaml'.format('test_file_name')
- ret_val = os.path.join(self.rally_base.TEMP_DIR, yaml_file)
- self.assertEqual(self.rally_base._prepare_test_list('test_file_name'),
- ret_val)
- mock_path_exists.assert_called()
- mock_method.assert_called()
- mock_os_makedirs.assert_called()
-
- def test_get_task_id_default(self):
- cmd_raw = 'Task 1: started'
- self.assertEqual(self.rally_base.get_task_id(cmd_raw),
- '1')
-
- def test_get_task_id_missing_id(self):
- cmd_raw = ''
- self.assertEqual(self.rally_base.get_task_id(cmd_raw),
- None)
-
- def test_task_succeed_fail(self):
- json_raw = json.dumps([None])
- self.assertEqual(self.rally_base.task_succeed(json_raw),
- False)
- json_raw = json.dumps([{'result': [{'error': ['test_error']}]}])
- self.assertEqual(self.rally_base.task_succeed(json_raw),
- False)
-
- def test_task_succeed_success(self):
- json_raw = json.dumps('')
- self.assertEqual(self.rally_base.task_succeed(json_raw),
- True)
-
- def test_get_cmd_output(self):
- proc = mock.Mock()
- proc.stdout.__iter__ = mock.Mock(return_value=iter(['line1', 'line2']))
- self.assertEqual(self.rally_base.get_cmd_output(proc),
- 'line1line2')
-
- @mock.patch('__builtin__.open', mock.mock_open())
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.yaml.safe_load',
- return_value={'scenario': [
- {'scenarios': ['test_scenario'],
- 'installers': ['test_installer'],
- 'tests': ['test']},
- {'scenarios': ['other_scenario'],
- 'installers': ['test_installer'],
- 'tests': ['other_test']}]})
- def test_excl_scenario_default(self, mock_func):
- os.environ['INSTALLER_TYPE'] = 'test_installer'
- os.environ['DEPLOY_SCENARIO'] = 'test_scenario'
- self.assertEqual(self.rally_base.excl_scenario(), ['test'])
- mock_func.assert_called()
-
- @mock.patch('__builtin__.open', mock.mock_open())
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.yaml.safe_load',
- return_value={'scenario': [
- {'scenarios': ['^os-[^-]+-featT-modeT$'],
- 'installers': ['test_installer'],
- 'tests': ['test1']},
- {'scenarios': ['^os-ctrlT-[^-]+-modeT$'],
- 'installers': ['test_installer'],
- 'tests': ['test2']},
- {'scenarios': ['^os-ctrlT-featT-[^-]+$'],
- 'installers': ['test_installer'],
- 'tests': ['test3']},
- {'scenarios': ['^os-'],
- 'installers': ['test_installer'],
- 'tests': ['test4']},
- {'scenarios': ['other_scenario'],
- 'installers': ['test_installer'],
- 'tests': ['test0a']},
- {'scenarios': [''], # empty scenario
- 'installers': ['test_installer'],
- 'tests': ['test0b']}]})
- def test_excl_scenario_regex(self, mock_func):
- os.environ['INSTALLER_TYPE'] = 'test_installer'
- os.environ['DEPLOY_SCENARIO'] = 'os-ctrlT-featT-modeT'
- self.assertEqual(self.rally_base.excl_scenario(),
- ['test1', 'test2', 'test3', 'test4'])
- mock_func.assert_called()
-
- @mock.patch('__builtin__.open', side_effect=Exception)
- def test_excl_scenario_exception(self, mock_open):
- self.assertEqual(self.rally_base.excl_scenario(), [])
- mock_open.assert_called()
-
- @mock.patch('__builtin__.open', mock.mock_open())
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.yaml.safe_load',
- return_value={'functionality': [
- {'functions': ['no_migration'], 'tests': ['test']}]})
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_migration_supported', return_value=False)
- def test_excl_func_default(self, mock_func, mock_yaml_load):
- os.environ['INSTALLER_TYPE'] = 'test_installer'
- os.environ['DEPLOY_SCENARIO'] = 'test_scenario'
- self.assertEqual(self.rally_base.excl_func(), ['test'])
- mock_func.assert_called()
- mock_yaml_load.assert_called()
-
- @mock.patch('__builtin__.open', side_effect=Exception)
- def test_excl_func_exception(self, mock_open):
- self.assertEqual(self.rally_base.excl_func(), [])
- mock_open.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.stat')
- def test_file_is_empty_default(self, mock_os_stat):
- attrs = {'st_size': 10}
- mock_os_stat.return_value.configure_mock(**attrs)
- self.assertEqual(self.rally_base.file_is_empty('test_file_name'),
- False)
- mock_os_stat.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.stat',
- side_effect=Exception)
- def test_file_is_empty_exception(self, mock_os_stat):
- self.assertEqual(self.rally_base.file_is_empty('test_file_name'), True)
- mock_os_stat.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists',
- return_value=False)
- def test_run_task_missing_task_file(self, mock_path_exists):
- with self.assertRaises(Exception):
- self.rally_base._run_task('test_name')
- mock_path_exists.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists',
- return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_prepare_test_list', return_value='test_file_name')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'file_is_empty', return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.info')
- def test_run_task_no_tests_for_scenario(self, mock_logger_info,
- mock_file_empty, mock_prep_list,
- mock_path_exists):
- self.rally_base._run_task('test_name')
- mock_logger_info.assert_any_call('No tests for scenario \"%s\"',
- 'test_name')
- mock_file_empty.assert_called()
- mock_prep_list.assert_called()
- mock_path_exists.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_prepare_test_list', return_value='test_file_name')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'file_is_empty', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_build_task_args', return_value={})
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_append_summary')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'get_task_id', return_value=None)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'get_cmd_output', return_value='')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists',
- return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.subprocess.Popen')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.error')
- def test_run_task_taskid_missing(self, mock_logger_error, *args):
- # pylint: disable=unused-argument
- self.rally_base._run_task('test_name')
- text = 'Failed to retrieve task_id, validating task...'
- mock_logger_error.assert_any_call(text)
-
- @mock.patch('__builtin__.open', mock.mock_open())
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_prepare_test_list', return_value='test_file_name')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'file_is_empty', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_build_task_args', return_value={})
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_append_summary')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'get_task_id', return_value='1')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'get_cmd_output', return_value='')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- 'task_succeed', return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.path.exists',
- return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.subprocess.Popen')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.os.makedirs')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.info')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.LOGGER.error')
- def test_run_task_default(self, mock_logger_error, mock_logger_info,
- *args):
- # pylint: disable=unused-argument
- self.rally_base._run_task('test_name')
- text = 'Test scenario: "test_name" OK.\n'
- mock_logger_info.assert_any_call(text)
- mock_logger_error.assert_not_called()
-
- def test_prepare_env_testname_invalid(self):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test'
- with self.assertRaises(Exception):
- self.rally_base._prepare_env()
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt')
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='test_net_name')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image',
- return_value=None)
- def test_prepare_env_image_missing(
- self, mock_get_img, mock_get_net, mock_get_comp_cnt):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test1'
- with self.assertRaises(Exception):
- self.rally_base._prepare_env()
- mock_get_img.assert_called()
- mock_get_net.assert_called()
- mock_get_comp_cnt.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt')
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='test_net_name')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network',
- return_value=None)
- def test_prepare_env_network_creation_failed(
- self, mock_create_net, mock_get_img, mock_get_net,
- mock_get_comp_cnt):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test1'
- with self.assertRaises(Exception):
- self.rally_base._prepare_env()
- mock_create_net.assert_called()
- mock_get_img.assert_called()
- mock_get_net.assert_called()
- mock_get_comp_cnt.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt')
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='test_net_name')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_router',
- return_value=None)
- def test_prepare_env_router_creation_failed(self, *args):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test1'
- with self.assertRaises(Exception):
- self.rally_base._prepare_env()
- for func in args:
- func.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt')
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='test_net_name')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_router')
- @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
- return_value=None)
- def test_prepare_env_flavor_creation_failed(self, mock_create_flavor,
- *args):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test1'
- with self.assertRaises(Exception):
- self.rally_base._prepare_env()
- for func in args:
- func.assert_called()
- mock_create_flavor.assert_called_once()
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt')
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='test_net_name')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network')
- @mock.patch('snaps.openstack.utils.deploy_utils.create_router')
- @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
- side_effect=[mock.Mock, None])
- def test_prepare_env_flavor_alt_creation_failed(self, mock_create_flavor,
- *args):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test1'
- with self.assertRaises(Exception):
- self.rally_base._prepare_env()
- for func in args:
- func.assert_called()
- self.assertEqual(mock_create_flavor.call_count, 2)
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_run_task')
- def test_run_tests_all(self, mock_run_task):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'all'
- self.rally_base._run_tests()
- mock_run_task.assert_any_call('test1')
- mock_run_task.assert_any_call('test2')
-
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_run_task')
- def test_run_tests_default(self, mock_run_task):
- self.rally_base.TESTS = ['test1', 'test2']
- self.rally_base.test_name = 'test1'
- self.rally_base._run_tests()
- mock_run_task.assert_any_call('test1')
-
- def test_clean_up_default(self):
- creator1 = mock.Mock()
- creator2 = mock.Mock()
- self.rally_base.creators = [creator1, creator2]
- self.rally_base._clean_up()
- self.assertTrue(creator1.clean.called)
- self.assertTrue(creator2.clean.called)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_rally_deployment')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_prepare_env')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_run_tests')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_generate_report')
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_clean_up')
- def test_run_default(self, *args):
- self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_OK)
- for func in args:
- func.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_rally_deployment', side_effect=Exception)
- def test_run_exception_create_rally_dep(self, mock_create_rally_dep):
- self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_RUN_ERROR)
- mock_create_rally_dep.assert_called()
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_rally_deployment', return_value=mock.Mock())
- @mock.patch('functest.opnfv_tests.openstack.rally.rally.RallyBase.'
- '_prepare_env', side_effect=Exception)
- def test_run_exception_prepare_env(self, mock_prep_env, *args):
- # pylint: disable=unused-argument
- self.assertEqual(self.rally_base.run(), testcase.TestCase.EX_RUN_ERROR)
- mock_prep_env.assert_called()
-
- def test_append_summary(self):
- text = '[{"result":[{"error":[]},{"error":["err"]}],' \
- '"full_duration": 17.312026}]'
- self.rally_base._append_summary(text, "foo_test")
- self.assertEqual(self.rally_base.summary[0]['test_name'], "foo_test")
- self.assertEqual(self.rally_base.summary[0]['overall_duration'],
- 17.312026)
- self.assertEqual(self.rally_base.summary[0]['nb_tests'], 2)
- self.assertEqual(self.rally_base.summary[0]['nb_success'], 1)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/refstack_client/__init__.py b/functest/tests/unit/openstack/refstack_client/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/openstack/refstack_client/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/openstack/refstack_client/test_refstack_client.py b/functest/tests/unit/openstack/refstack_client/test_refstack_client.py
deleted file mode 100644
index 1d5cc69f..00000000
--- a/functest/tests/unit/openstack/refstack_client/test_refstack_client.py
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import os
-import unittest
-
-import mock
-import pkg_resources
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.refstack_client.refstack_client import \
- RefstackClient, RefstackClientParser
-
-from snaps.openstack.os_credentials import OSCreds
-
-__author__ = ("Matthew Li <matthew.lijun@huawei.com>,"
- "Linda Wang <wangwulin@huawei.com>")
-
-
-class OSRefstackClientTesting(unittest.TestCase):
- """The class testing RefstackClient """
- # pylint: disable=missing-docstring, too-many-public-methods
-
- _config = pkg_resources.resource_filename(
- 'functest',
- 'opnfv_tests/openstack/refstack_client/refstack_tempest.conf')
-
- def setUp(self):
- self.default_args = {'config': None,
- 'testlist': RefstackClient.defcorelist}
- os.environ['OS_AUTH_URL'] = 'https://ip:5000/v3'
- os.environ['OS_INSECURE'] = 'true'
- self.case_name = 'refstack_defcore'
- self.result = 0
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
- self.details = {"tests": 3,
- "failures": 1,
- "success": ['tempest.api.compute [18.464988s]'],
- "errors": ['tempest.api.volume [0.230334s]'],
- "skipped": ['tempest.api.network [1.265828s]']}
-
- def _create_client(self):
- with mock.patch('snaps.openstack.tests.openstack_tests.'
- 'get_credentials', return_value=self.os_creds):
- return RefstackClient()
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_defcore_insecure(self, m_cmd):
- insecure = '-k'
- config = 'tempest.conf'
- testlist = 'testlist'
- client = self._create_client()
- cmd = ("refstack-client test {0} -c {1} -v --test-list {2}".format(
- insecure, config, testlist))
- client.run_defcore(config, testlist)
- m_cmd.assert_any_call(cmd)
-
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_run_defcore(self, m_cmd):
- os.environ['OS_AUTH_URL'] = 'http://ip:5000/v3'
- insecure = ''
- config = 'tempest.conf'
- testlist = 'testlist'
- client = self._create_client()
- cmd = ("refstack-client test {0} -c {1} -v --test-list {2}".format(
- insecure, config, testlist))
- client.run_defcore(config, testlist)
- m_cmd.assert_any_call(cmd)
-
- @mock.patch('functest.opnfv_tests.openstack.refstack_client.'
- 'refstack_client.LOGGER.info')
- @mock.patch('__builtin__.open', side_effect=Exception)
- def test_parse_refstack_result_fail(self, *args):
- self._create_client().parse_refstack_result()
- args[1].assert_called_once_with(
- "Testcase %s success_rate is %s%%",
- self.case_name, self.result)
-
- def test_parse_refstack_result_ok(self):
- log_file = ('''
- {0} tempest.api.compute [18.464988s] ... ok
- {0} tempest.api.volume [0.230334s] ... FAILED
- {0} tempest.api.network [1.265828s] ... SKIPPED:
- Ran: 3 tests in 1259.0000 sec.
- - Passed: 1
- - Skipped: 1
- - Failed: 1
- ''')
- client = self._create_client()
- with mock.patch('__builtin__.open',
- mock.mock_open(read_data=log_file)):
- client.parse_refstack_result()
- self.assertEqual(client.details, self.details)
-
- def _get_main_kwargs(self, key=None):
- kwargs = {'config': self._config,
- 'testlist': RefstackClient.defcorelist}
- if key:
- del kwargs[key]
- return kwargs
-
- def _test_main_missing_keyword(self, key):
- kwargs = self._get_main_kwargs(key)
- client = self._create_client()
- self.assertEqual(client.main(**kwargs),
- testcase.TestCase.EX_RUN_ERROR)
-
- def test_main_missing_conf(self):
- self._test_main_missing_keyword('config')
-
- def test_main_missing_testlist(self):
- self._test_main_missing_keyword('testlist')
-
- def _test_argparser(self, arg, value):
- self.default_args[arg] = value
- parser = RefstackClientParser()
- self.assertEqual(parser.parse_args(["--{}={}".format(arg, value)]),
- self.default_args)
-
- def test_argparser_conf(self):
- self._test_argparser('config', self._config)
-
- def test_argparser_testlist(self):
- self._test_argparser('testlist', RefstackClient.defcorelist)
-
- def test_argparser_multiple_args(self):
- self.default_args['config'] = self._config
- self.default_args['testlist'] = RefstackClient.defcorelist
- parser = RefstackClientParser()
- self.assertEqual(parser.parse_args(
- ["--config={}".format(self._config),
- "--testlist={}".format(RefstackClient.defcorelist)]),
- self.default_args)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/snaps/__init__.py b/functest/tests/unit/openstack/snaps/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/openstack/snaps/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/openstack/snaps/test_snaps.py b/functest/tests/unit/openstack/snaps/test_snaps.py
deleted file mode 100644
index 3d9e9df0..00000000
--- a/functest/tests/unit/openstack/snaps/test_snaps.py
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-from snaps.openstack.os_credentials import OSCreds
-
-from functest.core.testcase import TestCase
-from functest.opnfv_tests.openstack.snaps import (
- connection_check, api_check, health_check, smoke)
-
-
-class ConnectionCheckTesting(unittest.TestCase):
- """
- Ensures the VPingUserdata class can run in Functest. This test does not
- actually connect with an OpenStack pod.
- """
-
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- self.connection_check = connection_check.ConnectionCheck(
- os_creds=self.os_creds, ext_net_name='foo')
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_client_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_success(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = []
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.connection_check.run())
- self.assertEquals(
- TestCase.EX_OK, self.connection_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
- use_keystone=True)
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_client_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.connection_check.run())
- self.assertEquals(
- TestCase.EX_TESTCASE_FAILED, self.connection_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
- use_keystone=True)
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_client_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko_criteria(self, *args):
- self.connection_check.criteria = 90
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.connection_check.run())
- self.assertEquals(
- TestCase.EX_OK, self.connection_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', os_creds=self.os_creds, suite=mock.ANY,
- use_keystone=True)
-
-
-class APICheckTesting(unittest.TestCase):
- """
- Ensures the VPingUserdata class can run in Functest. This test does not
- actually connect with an OpenStack pod.
- """
-
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- self.api_check = api_check.ApiCheck(
- os_creds=self.os_creds, ext_net_name='foo')
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_api_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_success(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = []
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.api_check.run())
- self.assertEquals(
- TestCase.EX_OK, self.api_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', image_metadata=mock.ANY,
- os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_api_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.api_check.run())
- self.assertEquals(
- TestCase.EX_TESTCASE_FAILED, self.api_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', image_metadata=mock.ANY,
- os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_api_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko_criteria(self, *args):
- self.api_check.criteria = 90
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.api_check.run())
- self.assertEquals(
- TestCase.EX_OK, self.api_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', image_metadata=mock.ANY,
- os_creds=self.os_creds, suite=mock.ANY, use_keystone=True)
-
-
-class HealthCheckTesting(unittest.TestCase):
- """
- Ensures the VPingUserdata class can run in Functest. This test does not
- actually connect with an OpenStack pod.
- """
-
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- self.health_check = health_check.HealthCheck(
- os_creds=self.os_creds, ext_net_name='foo')
-
- @mock.patch('snaps.openstack.tests.os_source_file_test.'
- 'OSIntegrationTestCase.parameterize')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_success(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = []
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.health_check.run())
- self.assertEquals(
- TestCase.EX_OK, self.health_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- mock.ANY, ext_net_name='foo', flavor_metadata=None,
- image_metadata=mock.ANY, netconf_override=None,
- os_creds=self.os_creds, use_keystone=True)
-
- @mock.patch('snaps.openstack.tests.os_source_file_test.'
- 'OSIntegrationTestCase.parameterize')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.health_check.run())
- self.assertEquals(
- TestCase.EX_TESTCASE_FAILED, self.health_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- mock.ANY, ext_net_name='foo', flavor_metadata=None,
- image_metadata=mock.ANY, netconf_override=None,
- os_creds=self.os_creds, use_keystone=True)
-
- @mock.patch('snaps.openstack.tests.os_source_file_test.'
- 'OSIntegrationTestCase.parameterize')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko_criteria(self, *args):
- self.health_check.criteria = 90
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.health_check.run())
- self.assertEquals(
- TestCase.EX_OK, self.health_check.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- mock.ANY, ext_net_name='foo', flavor_metadata=None,
- image_metadata=mock.ANY, netconf_override=None,
- os_creds=self.os_creds, use_keystone=True)
-
-
-class SmokeTesting(unittest.TestCase):
- """
- Ensures the VPingUserdata class can run in Functest. This test does not
- actually connect with an OpenStack pod.
- """
-
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- self.smoke = smoke.SnapsSmoke(
- os_creds=self.os_creds, ext_net_name='foo')
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_integration_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_success(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = []
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.smoke.run())
- self.assertEquals(TestCase.EX_OK, self.smoke.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
- netconf_override=None, os_creds=self.os_creds,
- suite=mock.ANY, use_floating_ips=True, use_keystone=True)
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_integration_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko(self, *args):
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.smoke.run())
- self.assertEquals(
- TestCase.EX_TESTCASE_FAILED, self.smoke.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
- netconf_override=mock.ANY, os_creds=self.os_creds,
- suite=mock.ANY, use_floating_ips=True, use_keystone=True)
-
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
- 'add_openstack_integration_tests')
- @mock.patch('unittest.TextTestRunner.run',
- return_value=mock.MagicMock(name='unittest.TextTestResult'))
- def test_run_1_of_100_ko_criteria(self, *args):
- self.smoke.criteria = 90
- args[0].return_value.testsRun = 100
- args[0].return_value.failures = ['foo']
- args[0].return_value.errors = []
- self.assertEquals(TestCase.EX_OK, self.smoke.run())
- self.assertEquals(
- TestCase.EX_OK, self.smoke.is_successful())
- args[0].assert_called_with(mock.ANY)
- args[1].assert_called_with(
- ext_net_name='foo', flavor_metadata=None, image_metadata=mock.ANY,
- netconf_override=None, os_creds=self.os_creds,
- suite=mock.ANY, use_floating_ips=True, use_keystone=True)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/tempest/__init__.py b/functest/tests/unit/openstack/tempest/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/openstack/tempest/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/openstack/tempest/test_conf_utils.py b/functest/tests/unit/openstack/tempest/test_conf_utils.py
deleted file mode 100644
index 1d5f29a2..00000000
--- a/functest/tests/unit/openstack/tempest/test_conf_utils.py
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import os
-import unittest
-
-import mock
-
-from functest.opnfv_tests.openstack.tempest import tempest, conf_utils
-from functest.utils import config
-from snaps.openstack.os_credentials import OSCreds
-
-
-class OSTempestConfUtilsTesting(unittest.TestCase):
- # pylint: disable=too-many-public-methods
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- @mock.patch('snaps.openstack.utils.deploy_utils.create_project',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_user',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network',
- return_value=None)
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image',
- return_value=mock.Mock())
- def test_create_res_missing_net_dic(self, *mock_args):
- # pylint: disable=unused-argument
- tempest_resources = tempest.TempestResourcesManager(
- os_creds=self.os_creds)
- with self.assertRaises(Exception) as context:
- tempest_resources.create()
- msg = 'Failed to create private network'
- self.assertTrue(msg in context.exception)
-
- @mock.patch('snaps.openstack.utils.deploy_utils.create_project',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_user',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image',
- return_value=None)
- def test_create_res_missing_image(self, *mock_args):
- # pylint: disable=unused-argument
- tempest_resources = tempest.TempestResourcesManager(
- os_creds=self.os_creds)
-
- with self.assertRaises(Exception) as context:
- tempest_resources.create()
- msg = 'Failed to create image'
- self.assertTrue(msg in context.exception, msg=str(context.exception))
-
- @mock.patch('snaps.openstack.utils.deploy_utils.create_project',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_user',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_network',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.deploy_utils.create_image',
- return_value=mock.Mock())
- @mock.patch('snaps.openstack.utils.keystone_utils.keystone_client')
- @mock.patch('snaps.openstack.utils.keystone_utils.get_project')
- @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
- return_value=None)
- def test_create_res_missing_flavor(self, *mock_args):
- # pylint: disable=unused-argument
- tempest_resources = tempest.TempestResourcesManager(
- os_creds=self.os_creds)
-
- setattr(config.CONF, 'tempest_use_custom_flavors', 'True')
- with self.assertRaises(Exception) as context:
- tempest_resources.create()
- msg = 'Failed to create flavor'
- self.assertTrue(msg in context.exception, msg=str(context.exception))
-
- setattr(config.CONF, 'tempest_use_custom_flavors', 'False')
- with self.assertRaises(Exception) as context:
- tempest_resources.create(use_custom_flavors=True)
- msg = 'Failed to create flavor'
- self.assertTrue(msg in context.exception, msg=str(context.exception))
-
- @staticmethod
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils'
- '.LOGGER.info')
- @mock.patch('functest.utils.functest_utils.execute_command_raise')
- @mock.patch('functest.utils.functest_utils.execute_command')
- def test_create_rally_deployment(mock_exec, mock_exec_raise,
- mock_logger_info):
-
- conf_utils.create_rally_deployment()
-
- cmd = "rally deployment destroy opnfv-rally"
- error_msg = "Deployment %s does not exist." % \
- getattr(config.CONF, 'rally_deployment_name')
- mock_logger_info.assert_any_call("Creating Rally environment...")
- mock_exec.assert_any_call(cmd, error_msg=error_msg, verbose=False)
-
- cmd = "rally deployment create --fromenv --name="
- cmd += getattr(config.CONF, 'rally_deployment_name')
- error_msg = "Problem while creating Rally deployment"
- mock_exec_raise.assert_any_call(cmd, error_msg=error_msg)
-
- cmd = "rally deployment check"
- error_msg = ("OpenStack not responding or "
- "faulty Rally deployment.")
- mock_exec_raise.assert_any_call(cmd, error_msg=error_msg)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils'
- '.LOGGER.debug')
- def test_create_verifier(self, mock_logger_debug):
- mock_popen = mock.Mock()
- attrs = {'poll.return_value': None,
- 'stdout.readline.return_value': '0'}
- mock_popen.configure_mock(**attrs)
-
- setattr(config.CONF, 'tempest_verifier_name', 'test_verifier_name')
- with mock.patch('functest.utils.functest_utils.execute_command_raise',
- side_effect=Exception), \
- self.assertRaises(Exception):
- conf_utils.create_verifier()
- mock_logger_debug.assert_any_call("Tempest test_verifier_name"
- " does not exist")
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_verifier', return_value=mock.Mock())
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_rally_deployment', return_value=mock.Mock())
- def test_get_verif_id_missing_verif(self, mock_rally, mock_tempest):
- # pylint: disable=unused-argument
- setattr(config.CONF, 'tempest_verifier_name', 'test_verifier_name')
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.subprocess.Popen') as mock_popen, \
- self.assertRaises(Exception):
- mock_stdout = mock.Mock()
- attrs = {'stdout.readline.return_value': ''}
- mock_stdout.configure_mock(**attrs)
- mock_popen.return_value = mock_stdout
- conf_utils.get_verifier_id()
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_verifier', return_value=mock.Mock())
- @mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'create_rally_deployment', return_value=mock.Mock())
- def test_get_verifier_id_default(self, mock_rally, mock_tempest):
- # pylint: disable=unused-argument
- setattr(config.CONF, 'tempest_verifier_name', 'test_verifier_name')
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.subprocess.Popen') as mock_popen:
- mock_stdout = mock.Mock()
- attrs = {'stdout.readline.return_value': 'test_deploy_id'}
- mock_stdout.configure_mock(**attrs)
- mock_popen.return_value = mock_stdout
-
- self.assertEqual(conf_utils.get_verifier_id(),
- 'test_deploy_id')
-
- def test_get_depl_id_missing_rally(self):
- setattr(config.CONF, 'tempest_verifier_name', 'test_deploy_name')
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.subprocess.Popen') as mock_popen, \
- self.assertRaises(Exception):
- mock_stdout = mock.Mock()
- attrs = {'stdout.readline.return_value': ''}
- mock_stdout.configure_mock(**attrs)
- mock_popen.return_value = mock_stdout
- conf_utils.get_verifier_deployment_id()
-
- def test_get_depl_id_default(self):
- setattr(config.CONF, 'tempest_verifier_name', 'test_deploy_name')
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.subprocess.Popen') as mock_popen:
- mock_stdout = mock.Mock()
- attrs = {'stdout.readline.return_value': 'test_deploy_id'}
- mock_stdout.configure_mock(**attrs)
- mock_popen.return_value = mock_stdout
-
- self.assertEqual(conf_utils.get_verifier_deployment_id(),
- 'test_deploy_id')
-
- def test_get_verif_repo_dir_default(self):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.path.join',
- return_value='test_verifier_repo_dir'), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.get_verifier_id') as mock_get_id:
- self.assertEqual(conf_utils.get_verifier_repo_dir(''),
- 'test_verifier_repo_dir')
- self.assertTrue(mock_get_id.called)
-
- def test_get_depl_dir_default(self):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.path.join',
- return_value='test_verifier_repo_dir'), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.get_verifier_id') as mock_get_vid, \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.get_verifier_deployment_id') \
- as mock_get_did:
- self.assertEqual(conf_utils.get_verifier_deployment_dir('', ''),
- 'test_verifier_repo_dir')
- self.assertTrue(mock_get_vid.called)
- self.assertTrue(mock_get_did.called)
-
- def test_backup_config_default(self):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.path.exists',
- return_value=False), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.makedirs') as mock_makedirs, \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.shutil.copyfile') as mock_copyfile:
- conf_utils.backup_tempest_config('test_conf_file')
- self.assertTrue(mock_makedirs.called)
- self.assertTrue(mock_copyfile.called)
-
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.path.exists',
- return_value=True), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.shutil.copyfile') as mock_copyfile:
- conf_utils.backup_tempest_config('test_conf_file')
- self.assertTrue(mock_copyfile.called)
-
- def test_conf_tempest_def(self):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.configure_verifier',
- return_value='test_conf_file'), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.configure_tempest_update_params')\
- as mock_upd:
- conf_utils.configure_tempest('test_dep_dir')
- self.assertTrue(mock_upd.called)
-
- def test_gen_test_accounts_file_def(self):
- with mock.patch("__builtin__.open", mock.mock_open()), \
- mock.patch('functest.opnfv_tests.openstack.tempest.conf_utils.'
- 'yaml.dump') as mock_dump:
- conf_utils.generate_test_accounts_file('test_tenant_id')
- self.assertTrue(mock_dump.called)
-
- def _test_missing_param(self, params, image_id, flavor_id):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ConfigParser.RawConfigParser.'
- 'set') as mset, \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ConfigParser.RawConfigParser.'
- 'read') as mread, \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ConfigParser.RawConfigParser.'
- 'write') as mwrite, \
- mock.patch('__builtin__.open', mock.mock_open()), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.backup_tempest_config'), \
- mock.patch('functest.utils.functest_utils.yaml.safe_load',
- return_value={'validation': {'ssh_timeout': 300}}):
- os.environ['OS_ENDPOINT_TYPE'] = ''
- conf_utils.configure_tempest_update_params(
- 'test_conf_file', image_id=image_id, flavor_id=flavor_id)
- mset.assert_any_call(params[0], params[1], params[2])
- self.assertTrue(mread.called)
- self.assertTrue(mwrite.called)
-
- def test_upd_missing_image_id(self):
- self._test_missing_param(('compute', 'image_ref', 'test_image_id'),
- 'test_image_id', None)
-
- def test_upd_missing_image_id_alt(self):
- conf_utils.IMAGE_ID_ALT = 'test_image_id_alt'
- self._test_missing_param(('compute', 'image_ref_alt',
- 'test_image_id_alt'), None, None)
-
- def test_upd_missing_flavor_id(self):
- setattr(config.CONF, 'tempest_use_custom_flavors', 'True')
- self._test_missing_param(('compute', 'flavor_ref', 'test_flavor_id'),
- None, 'test_flavor_id')
-
- def test_upd_missing_flavor_id_alt(self):
- setattr(config.CONF, 'tempest_use_custom_flavors', 'True')
- conf_utils.FLAVOR_ID_ALT = 'test_flavor_id_alt'
- self._test_missing_param(('compute', 'flavor_ref_alt',
- 'test_flavor_id_alt'), None, None)
-
- def test_verif_missing_conf_file(self):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.path.isfile',
- return_value=False), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ft_utils.execute_command') as mexe, \
- self.assertRaises(Exception) as context:
- conf_utils.configure_verifier('test_dep_dir')
- mexe.assert_any_call("rally verify configure-verifier")
- msg = ("Tempest configuration file 'test_dep_dir/tempest.conf'"
- " NOT found.")
- self.assertTrue(msg in context.exception)
-
- def test_configure_verifier_default(self):
- with mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.os.path.isfile',
- return_value=True), \
- mock.patch('functest.opnfv_tests.openstack.tempest.'
- 'conf_utils.ft_utils.execute_command') as mexe:
- self.assertEqual(conf_utils.configure_verifier('test_dep_dir'),
- 'test_dep_dir/tempest.conf')
- mexe.assert_any_call("rally verify configure-verifier "
- "--reconfigure")
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/tempest/test_tempest.py b/functest/tests/unit/openstack/tempest/test_tempest.py
deleted file mode 100644
index ba2c1c48..00000000
--- a/functest/tests/unit/openstack/tempest/test_tempest.py
+++ /dev/null
@@ -1,261 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import os
-import unittest
-
-import mock
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.tempest import tempest
-from functest.opnfv_tests.openstack.tempest import conf_utils
-
-from snaps.openstack.os_credentials import OSCreds
-
-
-class OSTempestTesting(unittest.TestCase):
-
- def setUp(self):
- os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- with mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'conf_utils.get_verifier_id',
- return_value='test_deploy_id'), \
- mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'conf_utils.get_verifier_deployment_id',
- return_value='test_deploy_id'), \
- mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'conf_utils.get_verifier_repo_dir',
- return_value='test_verifier_repo_dir'), \
- mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'conf_utils.get_verifier_deployment_dir',
- return_value='test_verifier_deploy_dir'), \
- mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_credentials',
- return_value=os_creds):
- self.tempestcommon = tempest.TempestCommon()
- self.tempestsmoke_serial = tempest.TempestSmokeSerial()
- self.tempestsmoke_parallel = tempest.TempestSmokeParallel()
- self.tempestfull_parallel = tempest.TempestFullParallel()
- self.tempestcustom = tempest.TempestCustom()
- self.tempestdefcore = tempest.TempestDefcore()
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.LOGGER.error')
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.LOGGER.debug')
- def test_gen_tl_cm_missing_file(self, mock_logger_debug,
- mock_logger_error):
- # pylint: disable=unused-argument
- self.tempestcommon.mode = 'custom'
- with mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.isfile', return_value=False), \
- self.assertRaises(Exception) as context:
- msg = "Tempest test list file %s NOT found."
- self.tempestcommon.generate_test_list('test_verifier_repo_dir')
- self.assertTrue(
- (msg % conf_utils.TEMPEST_CUSTOM) in context.exception)
-
- def test_gen_tl_cm_default(self):
- self.tempestcommon.mode = 'custom'
- with mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'shutil.copyfile') as mock_copyfile, \
- mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.isfile', return_value=True):
- self.tempestcommon.generate_test_list('test_verifier_repo_dir')
- self.assertTrue(mock_copyfile.called)
-
- def _test_gen_tl_mode_default(self, mode):
- self.tempestcommon.mode = mode
- if self.tempestcommon.mode == 'smoke':
- testr_mode = r"'tempest\.(api|scenario).*\[.*\bsmoke\b.*\]'"
- elif self.tempestcommon.mode == 'full':
- testr_mode = r"'^tempest\.'"
- else:
- testr_mode = 'tempest.api.' + self.tempestcommon.mode
- conf_utils.TEMPEST_RAW_LIST = 'raw_list'
- verifier_repo_dir = 'test_verifier_repo_dir'
- with mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'ft_utils.execute_command') as mock_exec:
- cmd = ("cd {0};"
- "testr list-tests {1} > {2};"
- "cd -;".format(verifier_repo_dir, testr_mode,
- conf_utils.TEMPEST_RAW_LIST))
- self.tempestcommon.generate_test_list('test_verifier_repo_dir')
- mock_exec.assert_any_call(cmd)
-
- def test_gen_tl_smoke_mode(self):
- self._test_gen_tl_mode_default('smoke')
-
- def test_gen_tl_full_mode(self):
- self._test_gen_tl_mode_default('full')
-
- def test_verif_res_missing_verif_id(self):
- self.tempestcommon.verification_id = None
- with self.assertRaises(Exception):
- self.tempestcommon.parse_verifier_result()
-
- def test_apply_missing_blacklist(self):
- with mock.patch('__builtin__.open', mock.mock_open()) as mock_open, \
- mock.patch.object(self.tempestcommon, 'read_file',
- return_value=['test1', 'test2']):
- conf_utils.TEMPEST_BLACKLIST = Exception
- os.environ['INSTALLER_TYPE'] = 'installer_type'
- os.environ['DEPLOY_SCENARIO'] = 'deploy_scenario'
- self.tempestcommon.apply_tempest_blacklist()
- obj = mock_open()
- obj.write.assert_any_call('test1\n')
- obj.write.assert_any_call('test2\n')
-
- def test_apply_blacklist_default(self):
- item_dict = {'scenarios': ['deploy_scenario'],
- 'installers': ['installer_type'],
- 'tests': ['test2']}
- with mock.patch('__builtin__.open', mock.mock_open()) as mock_open, \
- mock.patch.object(self.tempestcommon, 'read_file',
- return_value=['test1', 'test2']), \
- mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'yaml.safe_load', return_value=item_dict):
- os.environ['INSTALLER_TYPE'] = 'installer_type'
- os.environ['DEPLOY_SCENARIO'] = 'deploy_scenario'
- self.tempestcommon.apply_tempest_blacklist()
- obj = mock_open()
- obj.write.assert_any_call('test1\n')
- self.assertFalse(obj.write.assert_any_call('test2\n'))
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.LOGGER.info')
- def test_run_verifier_tests_default(self, mock_logger_info):
- with mock.patch('__builtin__.open', mock.mock_open()), \
- mock.patch('__builtin__.iter', return_value=[r'\} tempest\.']), \
- mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'subprocess.Popen'):
- conf_utils.TEMPEST_LIST = 'test_tempest_list'
- cmd = ["rally", "verify", "start", "--load-list",
- conf_utils.TEMPEST_LIST]
- with self.assertRaises(Exception):
- self.tempestcommon.run_verifier_tests()
- mock_logger_info. \
- assert_any_call("Starting Tempest test suite: '%s'.", cmd)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'subprocess.Popen')
- def test_generate_report(self, mock_popen):
- self.tempestcommon.verification_id = "1234"
- html_file = os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest-report.html")
- cmd = ["rally", "verify", "report", "--type", "html", "--uuid",
- "1234", "--to", html_file]
- self.tempestcommon.generate_report()
- mock_popen.assert_called_once_with(cmd, stdout=mock.ANY,
- stderr=mock.ANY)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.exists', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.os.makedirs',
- side_effect=Exception)
- def test_run_makedirs_ko(self, *args):
- # pylint: disable=unused-argument
- self.assertEqual(self.tempestcommon.run(),
- testcase.TestCase.EX_RUN_ERROR)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.exists', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.os.makedirs')
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'TempestResourcesManager.create', side_effect=Exception)
- def test_run_create_resources_ko(self, *args):
- # pylint: disable=unused-argument
- self.assertEqual(self.tempestcommon.run(),
- testcase.TestCase.EX_RUN_ERROR)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.exists', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.os.makedirs')
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'TempestResourcesManager.create', return_value={})
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt', side_effect=Exception)
- def test_run_get_active_comp_cnt_ko(self, *args):
- # pylint: disable=unused-argument
- self.assertEqual(self.tempestcommon.run(),
- testcase.TestCase.EX_RUN_ERROR)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.exists', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.os.makedirs')
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'TempestResourcesManager.create', return_value={})
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt', return_value=2)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'conf_utils.configure_tempest', side_effect=Exception)
- def test_run_configure_tempest_ko(self, *args):
- # pylint: disable=unused-argument
- self.assertEqual(self.tempestcommon.run(),
- testcase.TestCase.EX_RUN_ERROR)
-
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'os.path.exists', return_value=False)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.os.makedirs')
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'TempestResourcesManager.create', return_value={})
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_active_compute_cnt', return_value=2)
- @mock.patch('functest.opnfv_tests.openstack.tempest.tempest.'
- 'conf_utils.configure_tempest')
- def _test_run(self, status, *args):
- # pylint: disable=unused-argument
- self.assertEqual(self.tempestcommon.run(), status)
-
- def test_run_missing_gen_test_list(self):
- with mock.patch.object(self.tempestcommon, 'generate_test_list',
- side_effect=Exception):
- self._test_run(testcase.TestCase.EX_RUN_ERROR)
-
- def test_run_apply_blacklist_ko(self):
- with mock.patch.object(self.tempestcommon, 'generate_test_list'), \
- mock.patch.object(self.tempestcommon,
- 'apply_tempest_blacklist',
- side_effect=Exception()):
- self._test_run(testcase.TestCase.EX_RUN_ERROR)
-
- def test_run_verifier_tests_ko(self):
- with mock.patch.object(self.tempestcommon, 'generate_test_list'), \
- mock.patch.object(self.tempestcommon,
- 'apply_tempest_blacklist'), \
- mock.patch.object(self.tempestcommon, 'run_verifier_tests',
- side_effect=Exception()), \
- mock.patch.object(self.tempestcommon, 'parse_verifier_result',
- side_effect=Exception):
- self._test_run(testcase.TestCase.EX_RUN_ERROR)
-
- def test_run_verif_result_ko(self):
- with mock.patch.object(self.tempestcommon, 'generate_test_list'), \
- mock.patch.object(self.tempestcommon,
- 'apply_tempest_blacklist'), \
- mock.patch.object(self.tempestcommon, 'run_verifier_tests'), \
- mock.patch.object(self.tempestcommon, 'parse_verifier_result',
- side_effect=Exception):
- self._test_run(testcase.TestCase.EX_RUN_ERROR)
-
- def test_run(self):
- with mock.patch.object(self.tempestcommon, 'generate_test_list'), \
- mock.patch.object(self.tempestcommon,
- 'apply_tempest_blacklist'), \
- mock.patch.object(self.tempestcommon, 'run_verifier_tests'), \
- mock.patch.object(self.tempestcommon,
- 'parse_verifier_result'), \
- mock.patch.object(self.tempestcommon, 'generate_report'):
- self._test_run(testcase.TestCase.EX_OK)
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/openstack/vping/__init__.py b/functest/tests/unit/openstack/vping/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/openstack/vping/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/openstack/vping/test_vping.py b/functest/tests/unit/openstack/vping/test_vping.py
deleted file mode 100644
index 91cf2259..00000000
--- a/functest/tests/unit/openstack/vping/test_vping.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from snaps.config.keypair import KeypairConfig
-from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.config.security_group import SecurityGroupConfig
-from snaps.config.vm_inst import VmInstanceConfig
-
-from snaps.openstack.create_image import OpenStackImage
-from snaps.openstack.create_instance import OpenStackVmInstance
-from snaps.openstack.create_keypairs import OpenStackKeypair
-from snaps.openstack.create_network import OpenStackNetwork
-from snaps.openstack.create_router import OpenStackRouter
-from snaps.openstack.create_security_group import OpenStackSecurityGroup
-
-from snaps.openstack.os_credentials import OSCreds
-
-from functest.core.testcase import TestCase
-from functest.opnfv_tests.openstack.vping import vping_userdata, vping_ssh
-
-
-class VPingUserdataTesting(unittest.TestCase):
- """
- Ensures the VPingUserdata class can run in Functest. This test does not
- actually connect with an OpenStack pod.
- """
-
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- self.vping_userdata = vping_userdata.VPingUserdata(
- os_creds=self.os_creds)
-
- @mock.patch('snaps.openstack.utils.deploy_utils.create_vm_instance')
- @mock.patch('os.path.exists', return_value=True)
- @mock.patch('snaps.openstack.utils.keystone_utils.keystone_client')
- @mock.patch('snaps.openstack.utils.keystone_utils.get_project')
- @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
- return_value=None)
- @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
- 'get_port_ip', return_value='10.0.0.1')
- @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
- 'vm_active', return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='foo')
- def test_vping_userdata(self, *args):
- # pylint: disable=unused-argument
- with mock.patch('snaps.openstack.utils.deploy_utils.create_image',
- return_value=OpenStackImage(self.os_creds, None)), \
- mock.patch('snaps.openstack.utils.deploy_utils.create_network',
- return_value=OpenStackNetwork(
- self.os_creds, NetworkConfig(name='foo'))), \
- mock.patch('snaps.openstack.utils.deploy_utils.create_router',
- return_value=OpenStackRouter(
- self.os_creds, RouterConfig(name='foo'))), \
- mock.patch('snaps.openstack.utils.deploy_utils.'
- 'create_vm_instance',
- return_value=OpenStackVmInstance(
- self.os_creds,
- VmInstanceConfig(
- name='foo', flavor='bar',
- port_settings=[PortConfig(
- name='foo', network_name='bar')]),
- None)), \
- mock.patch('snaps.openstack.create_instance.'
- 'OpenStackVmInstance.get_console_output',
- return_value='vPing OK'):
- self.assertEquals(TestCase.EX_OK, self.vping_userdata.run())
-
-
-class VPingSSHTesting(unittest.TestCase):
- """
- Ensures the VPingUserdata class can run in Functest. This test does not
- actually connect with an OpenStack pod.
- """
-
- def setUp(self):
- self.os_creds = OSCreds(
- username='user', password='pass',
- auth_url='http://foo.com:5000/v3', project_name='bar')
-
- self.vping_ssh = vping_ssh.VPingSSH(
- os_creds=self.os_creds)
-
- @mock.patch('snaps.openstack.utils.deploy_utils.create_vm_instance')
- @mock.patch('os.path.exists', return_value=True)
- @mock.patch('snaps.openstack.utils.keystone_utils.keystone_client')
- @mock.patch('snaps.openstack.utils.keystone_utils.get_project')
- @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create',
- return_value=None)
- @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
- 'get_port_ip', return_value='10.0.0.1')
- @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
- 'vm_active', return_value=True)
- @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
- 'vm_ssh_active', return_value=True)
- @mock.patch('snaps.openstack.create_instance.OpenStackVmInstance.'
- 'ssh_client', return_value=True)
- @mock.patch('scp.SCPClient')
- @mock.patch('functest.opnfv_tests.openstack.vping.vping_ssh.'
- 'VPingSSH._transfer_ping_script', return_value=True)
- @mock.patch('functest.opnfv_tests.openstack.vping.vping_ssh.'
- 'VPingSSH._do_vping_ssh', return_value=TestCase.EX_OK)
- @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_utils.'
- 'get_ext_net_name', return_value='foo')
- def test_vping_ssh(self, *args):
- # pylint: disable=unused-argument
- os_vm_inst = mock.MagicMock(name='get_console_output')
- os_vm_inst.get_console_output.return_value = 'vPing OK'
- ssh_client = mock.MagicMock(name='get_transport')
- ssh_client.get_transport.return_value = None
- scp_client = mock.MagicMock(name='put')
- scp_client.put.return_value = None
-
- with mock.patch('snaps.openstack.utils.deploy_utils.create_image',
- return_value=OpenStackImage(self.os_creds, None)), \
- mock.patch('snaps.openstack.utils.deploy_utils.create_network',
- return_value=OpenStackNetwork(
- self.os_creds,
- NetworkConfig(
- name='foo',
- subnet_settings=[
- SubnetConfig(
- name='bar',
- cidr='10.0.0.1/24')]))), \
- mock.patch('snaps.openstack.utils.deploy_utils.'
- 'create_vm_instance',
- return_value=OpenStackVmInstance(
- self.os_creds,
- VmInstanceConfig(
- name='foo', flavor='bar',
- port_settings=[PortConfig(
- name='foo', network_name='bar')]),
- None)), \
- mock.patch('snaps.openstack.utils.deploy_utils.create_keypair',
- return_value=OpenStackKeypair(
- self.os_creds, KeypairConfig(name='foo'))), \
- mock.patch('snaps.openstack.utils.deploy_utils.create_router',
- return_value=OpenStackRouter(
- self.os_creds, RouterConfig(name='foo'))), \
- mock.patch('snaps.openstack.utils.deploy_utils.'
- 'create_security_group',
- return_value=OpenStackSecurityGroup(
- self.os_creds,
- SecurityGroupConfig(name='foo'))), \
- mock.patch('snaps.openstack.create_instance.'
- 'OpenStackVmInstance.'
- 'get_vm_inst', return_value=os_vm_inst), \
- mock.patch('snaps.openstack.create_instance.'
- 'OpenStackVmInstance.'
- 'ssh_client', return_value=ssh_client):
- self.assertEquals(TestCase.EX_OK, self.vping_ssh.run())
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/utils/test_functest_utils.py b/functest/tests/unit/utils/test_functest_utils.py
deleted file mode 100644
index 9f8733bb..00000000
--- a/functest/tests/unit/utils/test_functest_utils.py
+++ /dev/null
@@ -1,305 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2016 Orange and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import os
-import time
-import unittest
-
-import mock
-import pkg_resources
-from six.moves import urllib
-
-from functest.utils import functest_utils
-
-
-class FunctestUtilsTesting(unittest.TestCase):
-
- readline = 0
- test_ip = ['10.1.23.4', '10.1.14.15', '10.1.16.15']
-
- def setUp(self):
- self.url = 'http://www.opnfv.org/'
- self.timeout = 5
- self.dest_path = 'test_path'
- self.repo_path = 'test_repo_path'
- self.installer = 'test_installer'
- self.scenario = 'test_scenario'
- self.build_tag = 'jenkins-functest-fuel-opnfv-jump-2-daily-master-190'
- self.build_tag_week = 'jenkins-functest-fuel-baremetal-weekly-master-8'
- self.version = 'master'
- self.node_name = 'test_node_name'
- self.project = 'test_project'
- self.case_name = 'test_case_name'
- self.status = 'test_status'
- self.details = 'test_details'
- self.db_url = 'test_db_url'
- self.criteria = 50
- self.result = 75
- self.start_date = 1482624000
- self.stop_date = 1482624000
- self.start_time = time.time()
- self.stop_time = time.time()
- self.readline = -1
- self.test_ip = ['10.1.23.4', '10.1.14.15', '10.1.16.15']
- self.test_file = 'test_file'
- self.error_msg = 'test_error_msg'
- self.cmd = 'test_cmd'
- self.output_file = 'test_output_file'
- self.testname = 'testname'
- self.parameter = 'general.openstack.image_name'
- self.config_yaml = pkg_resources.resource_filename(
- 'functest', 'ci/config_functest.yaml')
- self.db_url_env = 'http://foo/testdb'
- self.testcases_yaml = "test_testcases_yaml"
- self.file_yaml = {'general': {'openstack': {'image_name':
- 'test_image_name'}}}
-
- @mock.patch('six.moves.urllib.request.urlopen',
- side_effect=urllib.error.URLError('no host given'))
- def test_check_internet_connectivity_failed(self, mock_method):
- self.assertFalse(functest_utils.check_internet_connectivity())
- mock_method.assert_called_once_with(self.url, timeout=self.timeout)
-
- @mock.patch('six.moves.urllib.request.urlopen')
- def test_check_internet_connectivity_default(self, mock_method):
- self.assertTrue(functest_utils.check_internet_connectivity())
- mock_method.assert_called_once_with(self.url, timeout=self.timeout)
-
- @mock.patch('six.moves.urllib.request.urlopen')
- def test_check_internet_connectivity_debian(self, mock_method):
- self.url = "https://www.debian.org/"
- self.assertTrue(functest_utils.check_internet_connectivity(self.url))
- mock_method.assert_called_once_with(self.url, timeout=self.timeout)
-
- @mock.patch('six.moves.urllib.request.urlopen',
- side_effect=urllib.error.URLError('no host given'))
- def test_download_url_failed(self, mock_url):
- self.assertFalse(functest_utils.download_url(self.url, self.dest_path))
-
- @mock.patch('six.moves.urllib.request.urlopen')
- def test_download_url_default(self, mock_url):
- with mock.patch("six.moves.builtins.open", mock.mock_open()) as m, \
- mock.patch('functest.utils.functest_utils.shutil.copyfileobj')\
- as mock_sh:
- name = self.url.rsplit('/')[-1]
- dest = self.dest_path + "/" + name
- self.assertTrue(functest_utils.download_url(self.url,
- self.dest_path))
- m.assert_called_once_with(dest, 'wb')
- self.assertTrue(mock_sh.called)
-
- def _get_env_dict(self, var):
- dic = {'INSTALLER_TYPE': self.installer,
- 'DEPLOY_SCENARIO': self.scenario,
- 'NODE_NAME': self.node_name,
- 'BUILD_TAG': self.build_tag}
- dic.pop(var, None)
- return dic
-
- @staticmethod
- def readline_side():
- if FunctestUtilsTesting.readline == \
- len(FunctestUtilsTesting.test_ip) - 1:
- return False
- FunctestUtilsTesting.readline += 1
- return FunctestUtilsTesting.test_ip[FunctestUtilsTesting.readline]
-
- # TODO: get_resolvconf_ns
- @mock.patch('functest.utils.functest_utils.dns.resolver.Resolver')
- def test_get_resolvconf_ns_default(self, mock_dns_resolve):
- attrs = {'query.return_value': ["test"]}
- mock_dns_resolve.configure_mock(**attrs)
-
- m = mock.Mock()
- attrs = {'readline.side_effect': self.readline_side}
- m.configure_mock(**attrs)
-
- with mock.patch("six.moves.builtins.open") as mo:
- mo.return_value = m
- self.assertEqual(functest_utils.get_resolvconf_ns(),
- self.test_ip[1:])
-
- def _get_environ(self, var, *args): # pylint: disable=unused-argument
- if var == 'INSTALLER_TYPE':
- return self.installer
- elif var == 'DEPLOY_SCENARIO':
- return self.scenario
- return var
-
- def test_get_ci_envvars_default(self):
- with mock.patch('os.environ.get',
- side_effect=self._get_environ):
- dic = {"installer": self.installer,
- "scenario": self.scenario}
- self.assertDictEqual(functest_utils.get_ci_envvars(), dic)
-
- def cmd_readline(self):
- return 'test_value\n'
-
- @mock.patch('functest.utils.functest_utils.LOGGER.error')
- @mock.patch('functest.utils.functest_utils.LOGGER.info')
- def test_execute_command_args_present_with_error(self, mock_logger_info,
- mock_logger_error):
- with mock.patch('functest.utils.functest_utils.subprocess.Popen') \
- as mock_subproc_open, \
- mock.patch('six.moves.builtins.open',
- mock.mock_open()) as mopen:
-
- FunctestUtilsTesting.readline = 0
-
- mock_obj = mock.Mock()
- attrs = {'readline.side_effect': self.cmd_readline()}
- mock_obj.configure_mock(**attrs)
-
- mock_obj2 = mock.Mock()
- attrs = {'stdout': mock_obj, 'wait.return_value': 1}
- mock_obj2.configure_mock(**attrs)
-
- mock_subproc_open.return_value = mock_obj2
-
- resp = functest_utils.execute_command(self.cmd, info=True,
- error_msg=self.error_msg,
- verbose=True,
- output_file=self.output_file)
- self.assertEqual(resp, 1)
- msg_exec = ("Executing command: '%s'" % self.cmd)
- mock_logger_info.assert_called_once_with(msg_exec)
- mopen.assert_called_once_with(self.output_file, "w")
- mock_logger_error.assert_called_once_with(self.error_msg)
-
- @mock.patch('functest.utils.functest_utils.LOGGER.info')
- def test_execute_command_args_present_with_success(self, mock_logger_info,
- ):
- with mock.patch('functest.utils.functest_utils.subprocess.Popen') \
- as mock_subproc_open, \
- mock.patch('six.moves.builtins.open',
- mock.mock_open()) as mopen:
-
- FunctestUtilsTesting.readline = 0
-
- mock_obj = mock.Mock()
- attrs = {'readline.side_effect': self.cmd_readline()}
- mock_obj.configure_mock(**attrs)
-
- mock_obj2 = mock.Mock()
- attrs = {'stdout': mock_obj, 'wait.return_value': 0}
- mock_obj2.configure_mock(**attrs)
-
- mock_subproc_open.return_value = mock_obj2
-
- resp = functest_utils.execute_command(self.cmd, info=True,
- error_msg=self.error_msg,
- verbose=True,
- output_file=self.output_file)
- self.assertEqual(resp, 0)
- msg_exec = ("Executing command: '%s'" % self.cmd)
- mock_logger_info.assert_called_once_with(msg_exec)
- mopen.assert_called_once_with(self.output_file, "w")
-
- @mock.patch('sys.stdout')
- def test_execute_command_args_missing_with_success(self, stdout=None):
- with mock.patch('functest.utils.functest_utils.subprocess.Popen') \
- as mock_subproc_open:
-
- FunctestUtilsTesting.readline = 2
-
- mock_obj = mock.Mock()
- attrs = {'readline.side_effect': self.cmd_readline()}
- mock_obj.configure_mock(**attrs)
-
- mock_obj2 = mock.Mock()
- attrs = {'stdout': mock_obj, 'wait.return_value': 0}
- mock_obj2.configure_mock(**attrs)
-
- mock_subproc_open.return_value = mock_obj2
-
- resp = functest_utils.execute_command(self.cmd, info=False,
- error_msg="",
- verbose=False,
- output_file=None)
- self.assertEqual(resp, 0)
-
- @mock.patch('sys.stdout')
- def test_execute_command_args_missing_with_error(self, stdout=None):
- with mock.patch('functest.utils.functest_utils.subprocess.Popen') \
- as mock_subproc_open:
-
- FunctestUtilsTesting.readline = 2
- mock_obj = mock.Mock()
- attrs = {'readline.side_effect': self.cmd_readline()}
- mock_obj.configure_mock(**attrs)
-
- mock_obj2 = mock.Mock()
- attrs = {'stdout': mock_obj, 'wait.return_value': 1}
- mock_obj2.configure_mock(**attrs)
-
- mock_subproc_open.return_value = mock_obj2
-
- resp = functest_utils.execute_command(self.cmd, info=False,
- error_msg="",
- verbose=False,
- output_file=None)
- self.assertEqual(resp, 1)
-
- def _get_functest_config(self, var):
- return var
-
- def test_get_parameter_from_yaml_failed(self):
- self.file_yaml['general'] = None
- with mock.patch('six.moves.builtins.open', mock.mock_open()), \
- mock.patch('functest.utils.functest_utils.yaml.safe_load') \
- as mock_yaml, \
- self.assertRaises(ValueError) as excep:
- mock_yaml.return_value = self.file_yaml
- functest_utils.get_parameter_from_yaml(self.parameter,
- self.test_file)
- self.assertTrue(("The parameter %s is not"
- " defined in config_functest.yaml" %
- self.parameter) in excep.exception)
-
- def test_get_parameter_from_yaml_default(self):
- with mock.patch('six.moves.builtins.open', mock.mock_open()), \
- mock.patch('functest.utils.functest_utils.yaml.safe_load') \
- as mock_yaml:
- mock_yaml.return_value = self.file_yaml
- self.assertEqual(functest_utils.
- get_parameter_from_yaml(self.parameter,
- self.test_file),
- 'test_image_name')
-
- @mock.patch('functest.utils.functest_utils.get_parameter_from_yaml')
- def test_get_functest_config_default(self, mock_get_parameter_from_yaml):
- with mock.patch.dict(os.environ,
- {'CONFIG_FUNCTEST_YAML': self.config_yaml}):
- functest_utils.get_functest_config(self.parameter)
- mock_get_parameter_from_yaml. \
- assert_called_once_with(self.parameter,
- self.config_yaml)
-
- def test_get_functest_yaml(self):
- with mock.patch('six.moves.builtins.open', mock.mock_open()), \
- mock.patch('functest.utils.functest_utils.yaml.safe_load') \
- as mock_yaml:
- mock_yaml.return_value = self.file_yaml
- resp = functest_utils.get_functest_yaml()
- self.assertEqual(resp, self.file_yaml)
-
- @mock.patch('functest.utils.functest_utils.LOGGER.info')
- def test_print_separator(self, mock_logger_info):
- functest_utils.print_separator()
- mock_logger_info.assert_called_once_with("======================="
- "=======================")
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/__init__.py b/functest/tests/unit/vnf/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/vnf/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/vnf/epc/__init__.py b/functest/tests/unit/vnf/epc/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/vnf/epc/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/vnf/epc/test_juju_epc.py b/functest/tests/unit/vnf/epc/test_juju_epc.py
deleted file mode 100644
index 6b413706..00000000
--- a/functest/tests/unit/vnf/epc/test_juju_epc.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Rebaca and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-""" Unit test testcase for JuJu EPC Implementation"""
-
-import logging
-import unittest
-
-import mock
-
-from functest.opnfv_tests.vnf.epc import juju_epc
-
-
-class JujuEpcTesting(unittest.TestCase):
- # pylint: disable=missing-docstring
- """Unittest for ABoT EPC with juju orchestrator"""
-
- def setUp(self):
-
- self.tenant = 'juju_epc'
- self.creds = {'username': 'user',
- 'password': 'pwd'}
- self.orchestrator = {'name': 'juju',
- 'version': '2.0',
- 'object': 'foo',
- 'requirements': {'flavor': {'name': 'm1.small',
- 'ram_min': 2048},
- 'pip': 'python3-pip',
- 'repo_link': 'ppa:juju/stable',
- 'dep_package': 'software-'
- 'properties'
- '-common',
- 'pip3_packages': 'juju-wait'}}
- self.vnf = {'name': 'juju_epc',
- 'descriptor': {'version': '1',
- 'file_name': '/src/epc-test/'
- 'abot_charm/'
- 'functest-abot-'
- 'epc-bundle/bundle.yaml',
- 'name': 'abot-oai-epc',
- 'requirements': {'flavor':
- {'name': 'm1.medium',
- 'ram_min': 4096}}}}
- with mock.patch('functest.opnfv_tests.vnf.epc.juju_epc.os.makedirs'), \
- mock.patch('functest.opnfv_tests.vnf.epc.juju_epc.get_config',
- return_value={'tenant_images': 'foo',
- 'orchestrator': self.orchestrator,
- 'vnf': self.vnf, 'vnf_test_suite': '',
- 'version': 'whatever'}):
- self.epc_vnf = juju_epc.JujuEpc()
-
- self.images = {'image1': 'url1',
- 'image2': 'url2'}
- self.details = {'orchestrator': {'status': 'PASS', 'duration': 120},
- 'vnf': {},
- 'test_vnf': {}}
-
- @unittest.skip("It must be fixed. Please see JIRA FUNCTEST-915")
- @mock.patch('snaps.openstack.create_image.OpenStackImage.create')
- @mock.patch('os.system')
- def test_prepare_default(self, *args):
- """ Unittest for Prepare testcase """
- self.epc_vnf.orchestrator = self.orchestrator
- self.assertIsNone(self.epc_vnf.prepare())
- args[4].assert_called_once_with('test',
- 'debayan',
- 'OAI EPC deployed '
- 'with Juju')
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/ims/__init__.py b/functest/tests/unit/vnf/ims/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/vnf/ims/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/vnf/ims/test_cloudify_ims.py b/functest/tests/unit/vnf/ims/test_cloudify_ims.py
deleted file mode 100644
index 79069a5d..00000000
--- a/functest/tests/unit/vnf/ims/test_cloudify_ims.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from functest.core import vnf
-from functest.opnfv_tests.vnf.ims import cloudify_ims
-
-
-class CloudifyImsTesting(unittest.TestCase):
-
- def setUp(self):
-
- self.tenant = 'cloudify_ims'
- self.creds = {'username': 'user',
- 'password': 'pwd'}
- self.orchestrator = {'name': 'cloudify',
- 'version': '4.0',
- 'object': 'foo',
- 'requirements': {'flavor': {'name': 'm1.medium',
- 'ram_min': 4096},
- 'os_image': 'manager_4.0'}}
-
- self.vnf = {'name': 'clearwater',
- 'descriptor': {'version': '108',
- 'file_name': 'openstack-blueprint.yaml',
- 'name': 'clearwater-opnfv',
- 'url': 'https://foo',
- 'requirements': {'flavor':
- {'name': 'm1.medium',
- 'ram_min': 2048}}}}
-
- with mock.patch('functest.opnfv_tests.vnf.ims.cloudify_ims.'
- 'os.makedirs'), \
- mock.patch('functest.opnfv_tests.vnf.ims.cloudify_ims.'
- 'get_config', return_value={
- 'tenant_images': 'foo',
- 'orchestrator': self.orchestrator,
- 'vnf': self.vnf,
- 'vnf_test_suite': '',
- 'version': 'whatever'}):
-
- self.ims_vnf = cloudify_ims.CloudifyIms()
-
- self.images = {'image1': 'url1',
- 'image2': 'url2'}
- self.details = {'orchestrator': {'status': 'PASS', 'duration': 120},
- 'vnf': {},
- 'test_vnf': {}}
-
- def test_prepare_missing_param(self):
- with self.assertRaises(vnf.VnfPreparationException):
- self.ims_vnf.prepare()
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/ims/test_ims_base.py b/functest/tests/unit/vnf/ims/test_ims_base.py
deleted file mode 100644
index 97654748..00000000
--- a/functest/tests/unit/vnf/ims/test_ims_base.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from functest.opnfv_tests.vnf.ims import clearwater_ims_base as ims_base
-
-
-class ClearwaterOnBoardingBaseTesting(unittest.TestCase):
-
- def setUp(self):
- with mock.patch('functest.opnfv_tests.vnf.ims.cloudify_ims.'
- 'os.makedirs'):
- self.ims_vnf = ims_base.ClearwaterOnBoardingBase()
-
- self.mock_post = mock.Mock()
- attrs = {'status_code': 201,
- 'cookies': ""}
- self.mock_post.configure_mock(**attrs)
-
- self.mock_post_200 = mock.Mock()
- attrs = {'status_code': 200,
- 'cookies': ""}
- self.mock_post_200.configure_mock(**attrs)
-
- self.mock_post_500 = mock.Mock()
- attrs = {'status_code': 500,
- 'cookies': ""}
- self.mock_post_200.configure_mock(**attrs)
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py b/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py
deleted file mode 100644
index 2e83f30a..00000000
--- a/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Test module for orchestra_clearwaterims"""
-
-import logging
-import unittest
-
-import mock
-
-from functest.core import vnf
-from functest.opnfv_tests.vnf.ims import orchestra_clearwaterims
-
-
-class OrchestraClearwaterImsTesting(unittest.TestCase):
- """Test class for orchestra_clearwaterims"""
- def setUp(self):
-
- self.tenant = 'orchestra_clearwaterims'
- self.creds = {'username': 'mocked_username',
- 'password': 'mocked_password'}
- self.tenant_images = {
- 'image1': 'mocked_image_url_1',
- 'image2': 'mocked_image_url_2'
- }
- self.mano = {
- 'name': 'openbaton',
- 'version': '3.2.0',
- 'object': 'foo',
- 'requirements': {
- 'flavor': {
- 'name': 'mocked_flavor',
- 'ram_min': 4096,
- 'disk': 5,
- 'vcpus': 2
- },
- 'os_image': 'mocked_image'
- },
- 'bootstrap': {
- 'url': 'mocked_bootstrap_url',
- 'config': {
- 'url': 'mocked_config_url'}
- },
- 'gvnfm': {
- 'userdata': {
- 'url': 'mocked_userdata_url'
- }
- },
- 'credentials': {
- 'username': 'mocked_username',
- 'password': 'mocked_password'
- }
- }
- self.vnf = {
- 'name': 'openims',
- 'descriptor': {
- 'url': 'mocked_descriptor_url'
- },
- 'requirements': {
- 'flavor': {
- 'name': 'mocked_flavor',
- 'ram_min': 2048,
- 'disk': 5,
- 'vcpus': 2}
- }
- }
- self.clearwaterims = {
- 'scscf': {
- 'ports': [3870, 6060]
- },
- 'pcscf': {
- 'ports': [4060]
- },
- 'icscf': {
- 'ports': [3869, 5060]
- },
- 'fhoss': {
- 'ports': [3868]
- },
- 'bind9': {
- 'ports': []
- }
- }
- with mock.patch('functest.opnfv_tests.vnf.ims.orchestra_clearwaterims.'
- 'os.makedirs'),\
- mock.patch('functest.opnfv_tests.vnf.ims.orchestra_clearwaterims.'
- 'get_config', return_value={
- 'orchestrator': self.mano,
- 'name': self.mano['name'],
- 'version': self.mano['version'],
- 'requirements': self.mano['requirements'],
- 'credentials': self.mano['credentials'],
- 'bootstrap': self.mano['bootstrap'],
- 'gvnfm': self.mano['gvnfm'],
- 'os_image': self.mano['requirements']['os_image'],
- 'flavor': self.mano['requirements']['flavor'],
- 'url': self.mano['bootstrap']['url'],
- 'config': self.mano['bootstrap']['config'],
- 'tenant_images': self.tenant_images,
- 'vnf': self.vnf,
- 'orchestra_clearwaterims': self.clearwaterims}):
- self.ims_vnf = orchestra_clearwaterims.ClearwaterImsVnf()
-
- self.details = {'orchestrator': {'status': 'PASS', 'duration': 120},
- 'vnf': {},
- 'test_vnf': {}}
-
- def test_prepare_missing_param(self):
- """Testing prepare function with missing param"""
- with self.assertRaises(vnf.VnfPreparationException):
- self.ims_vnf.prepare()
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/ims/test_orchestra_openims.py b/functest/tests/unit/vnf/ims/test_orchestra_openims.py
deleted file mode 100644
index 47a8d033..00000000
--- a/functest/tests/unit/vnf/ims/test_orchestra_openims.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Test module for orchestra_openims"""
-
-import logging
-import unittest
-
-import mock
-
-from functest.core import vnf
-from functest.opnfv_tests.vnf.ims import orchestra_openims
-
-
-class OrchestraOpenImsTesting(unittest.TestCase):
- """Test class for orchestra_openims"""
- def setUp(self):
-
- self.tenant = 'orchestra_openims'
- self.creds = {'username': 'mocked_username',
- 'password': 'mocked_password'}
- self.tenant_images = {
- 'image1': 'mocked_image_url_1',
- 'image2': 'mocked_image_url_2'
- }
- self.mano = {
- 'name': 'openbaton',
- 'version': '3.2.0',
- 'object': 'foo',
- 'requirements': {
- 'flavor': {
- 'name': 'mocked_flavor',
- 'ram_min': 4096,
- 'disk': 5,
- 'vcpus': 2
- },
- 'os_image': 'mocked_image'
- },
- 'bootstrap': {
- 'url': 'mocked_bootstrap_url',
- 'config': {
- 'url': 'mocked_config_url'}
- },
- 'gvnfm': {
- 'userdata': {
- 'url': 'mocked_userdata_url'
- }
- },
- 'credentials': {
- 'username': 'mocked_username',
- 'password': 'mocked_password'
- }
- }
- self.vnf = {
- 'name': 'openims',
- 'descriptor': {
- 'url': 'mocked_descriptor_url'
- },
- 'requirements': {
- 'flavor': {
- 'name': 'mocked_flavor',
- 'ram_min': 2048,
- 'disk': 5,
- 'vcpus': 2}
- }
- }
- self.openims = {
- 'scscf': {
- 'ports': [3870, 6060]
- },
- 'pcscf': {
- 'ports': [4060]
- },
- 'icscf': {
- 'ports': [3869, 5060]
- },
- 'fhoss': {
- 'ports': [3868]
- },
- 'bind9': {
- 'ports': []
- }
- }
- with mock.patch('functest.opnfv_tests.vnf.ims.orchestra_openims.'
- 'os.makedirs'),\
- mock.patch('functest.opnfv_tests.vnf.ims.orchestra_openims.'
- 'get_config', return_value={
- 'orchestrator': self.mano,
- 'name': self.mano['name'],
- 'version': self.mano['version'],
- 'requirements': self.mano['requirements'],
- 'credentials': self.mano['credentials'],
- 'bootstrap': self.mano['bootstrap'],
- 'gvnfm': self.mano['gvnfm'],
- 'os_image':
- self.mano['requirements']['os_image'],
- 'flavor':
- self.mano['requirements']['flavor'],
- 'url': self.mano['bootstrap']['url'],
- 'config': self.mano['bootstrap']['config'],
- 'tenant_images': self.tenant_images,
- 'vnf': self.vnf,
- 'orchestra_openims': self.openims}):
- self.ims_vnf = orchestra_openims.OpenImsVnf()
-
- self.details = {'orchestrator': {'status': 'PASS', 'duration': 120},
- 'vnf': {},
- 'test_vnf': {}}
-
- def test_prepare_missing_param(self):
- """Testing prepare function with missing param"""
- with self.assertRaises(vnf.VnfPreparationException):
- self.ims_vnf.prepare()
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/router/__init__.py b/functest/tests/unit/vnf/router/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/tests/unit/vnf/router/__init__.py
+++ /dev/null
diff --git a/functest/tests/unit/vnf/router/test_cloudify_vrouter.py b/functest/tests/unit/vnf/router/test_cloudify_vrouter.py
deleted file mode 100644
index db03d716..00000000
--- a/functest/tests/unit/vnf/router/test_cloudify_vrouter.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from functest.core import vnf
-from functest.opnfv_tests.vnf.router import cloudify_vrouter
-
-
-class CloudifyVrouterTesting(unittest.TestCase):
-
- def setUp(self):
-
- self.tenant = 'cloudify_vrouter'
- self.creds = {'username': 'user',
- 'password': 'pwd'}
- self.orchestrator = {'name': 'cloudify',
- 'version': '4.0',
- 'object': 'foo',
- 'requirements': {'flavor': {'name': 'm1.medium',
- 'ram_min': 4096},
- 'os_image': 'manager_4.0'}}
-
- self.vnf = {'name': 'vrouter',
- 'descriptor': {'version': '100',
- 'file_name': 'function-test-' +
- 'openstack-blueprint.yaml',
- 'name': 'vrouter-opnfv',
- 'url': 'https://foo',
- 'requirements': {'flavor':
- {'name': 'm1.medium',
- 'ram_min': 2048}}}}
-
- # pylint: disable=bad-continuation
- with mock.patch(
- 'functest.opnfv_tests.vnf.router.cloudify_vrouter.Utilvnf'), \
- mock.patch('functest.opnfv_tests.vnf.router.'
- 'cloudify_vrouter.vrouter_base.Utilvnf'), \
- mock.patch('os.makedirs'), \
- mock.patch(
- 'functest.utils.functest_utils.get_parameter_from_yaml',
- return_value={
- 'tenant_images': 'foo',
- 'orchestrator': self.orchestrator,
- 'vnf': self.vnf, 'vnf_test_suite': '',
- 'version': 'whatever'}):
-
- self.router_vnf = cloudify_vrouter.CloudifyVrouter()
-
- self.images = {'image1': 'url1',
- 'image2': 'url2'}
- self.details = {'orchestrator': {'status': 'PASS', 'duration': 120},
- 'vnf': {},
- 'test_vnf': {}}
-
- def test_prepare_missing_param(self):
- with self.assertRaises(vnf.VnfPreparationException):
- self.router_vnf.prepare()
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/tests/unit/vnf/router/test_vrouter_base.py b/functest/tests/unit/vnf/router/test_vrouter_base.py
deleted file mode 100644
index 1851b201..00000000
--- a/functest/tests/unit/vnf/router/test_vrouter_base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Okinawa Open Laboratory and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import logging
-import unittest
-
-import mock
-
-from functest.opnfv_tests.vnf.router import vrouter_base
-
-
-class VrouterOnBoardingBaseTesting(unittest.TestCase):
-
- def setUp(self):
- with mock.patch('functest.opnfv_tests.vnf.router.cloudify_vrouter.'
- 'os.makedirs'):
- self.vrouter_vnf = vrouter_base.VrouterOnBoardingBase()
-
-
-if __name__ == "__main__":
- logging.disable(logging.CRITICAL)
- unittest.main(verbosity=2)
diff --git a/functest/utils/config.py b/functest/utils/config.py
deleted file mode 100644
index 61d8401c..00000000
--- a/functest/utils/config.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-# pylint: disable=missing-docstring
-
-import pkg_resources
-import yaml
-
-import six
-
-from functest.utils import env
-
-
-class Config(object):
- def __init__(self):
- try:
- # pylint: disable=bad-continuation
- with open(pkg_resources.resource_filename(
- 'functest', 'ci/config_functest.yaml')) as yfile:
- self.functest_yaml = yaml.safe_load(yfile)
- except Exception as error:
- raise Exception('Parse config failed: {}'.format(str(error)))
-
- @staticmethod
- def _merge_dicts(dict1, dict2):
- for k in set(dict1.keys()).union(dict2.keys()):
- if k in dict1 and k in dict2:
- if isinstance(dict1[k], dict) and isinstance(dict2[k], dict):
- yield (k, dict(Config._merge_dicts(dict1[k], dict2[k])))
- else:
- yield (k, dict2[k])
- elif k in dict1:
- yield (k, dict1[k])
- else:
- yield (k, dict2[k])
-
- def patch_file(self, patch_file_path):
- with open(patch_file_path) as yfile:
- patch_file = yaml.safe_load(yfile)
-
- for key in patch_file:
- if key in env.get('DEPLOY_SCENARIO'):
- self.functest_yaml = dict(Config._merge_dicts(
- self.functest_yaml, patch_file[key]))
-
- def _parse(self, attr_now, left_parametes):
- for param_n, param_v in six.iteritems(left_parametes):
- attr_further = self._get_attr_further(attr_now, param_n)
- if attr_further:
- setattr(self, attr_further, param_v)
- if isinstance(param_v, dict):
- self._parse(attr_further, param_v)
-
- @staticmethod
- def _get_attr_further(attr_now, next): # pylint: disable=redefined-builtin
- return attr_now if next == 'general' else (
- '{}_{}'.format(attr_now, next) if attr_now else next)
-
- def fill(self):
- try:
- self._parse(None, self.functest_yaml)
- except Exception as error:
- raise Exception('Parse config failed: {}'.format(str(error)))
-
-
-CONF = Config()
-CONF.patch_file(pkg_resources.resource_filename(
- 'functest', 'ci/config_patch.yaml'))
-if env.get("POD_ARCH") in ['aarch64']:
- CONF.patch_file(pkg_resources.resource_filename(
- 'functest', 'ci/config_aarch64_patch.yaml'))
-CONF.fill()
diff --git a/functest/utils/functest_utils.py b/functest/utils/functest_utils.py
deleted file mode 100644
index 38a60d49..00000000
--- a/functest/utils/functest_utils.py
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env python
-#
-# jose.lausuch@ericsson.com
-# valentin.boucher@orange.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-from __future__ import print_function
-import logging
-import re
-import shutil
-import subprocess
-import sys
-
-import dns.resolver
-from six.moves import urllib
-import yaml
-
-from functest.utils import constants
-from functest.utils import env
-
-LOGGER = logging.getLogger(__name__)
-
-
-# ----------------------------------------------------------
-#
-# INTERNET UTILS
-#
-# -----------------------------------------------------------
-def check_internet_connectivity(url='http://www.opnfv.org/'):
- """
- Check if there is access to the internet
- """
- try:
- urllib.request.urlopen(url, timeout=5)
- return True
- except urllib.error.URLError:
- return False
-
-
-def download_url(url, dest_path):
- """
- Download a file to a destination path given a URL
- """
- name = url.rsplit('/')[-1]
- dest = dest_path + "/" + name
- try:
- response = urllib.request.urlopen(url)
- except (urllib.error.HTTPError, urllib.error.URLError):
- return False
-
- with open(dest, 'wb') as lfile:
- shutil.copyfileobj(response, lfile)
- return True
-
-
-# ----------------------------------------------------------
-#
-# CI UTILS
-#
-# -----------------------------------------------------------
-def get_resolvconf_ns():
- """
- Get nameservers from current resolv.conf
- """
- nameservers = []
- rconf = open("/etc/resolv.conf", "r")
- line = rconf.readline()
- resolver = dns.resolver.Resolver()
- while line:
- addr_ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", line)
- if addr_ip:
- resolver.nameservers = [addr_ip.group(0)]
- try:
- result = resolver.query('opnfv.org')[0]
- if result != "":
- nameservers.append(addr_ip.group())
- except dns.exception.Timeout:
- pass
- line = rconf.readline()
- return nameservers
-
-
-def get_ci_envvars():
- """
- Get the CI env variables
- """
- ci_env_var = {
- "installer": env.get('INSTALLER_TYPE'),
- "scenario": env.get('DEPLOY_SCENARIO')}
- return ci_env_var
-
-
-def execute_command_raise(cmd, info=False, error_msg="",
- verbose=True, output_file=None):
- ret = execute_command(cmd, info, error_msg, verbose, output_file)
- if ret != 0:
- raise Exception(error_msg)
-
-
-def execute_command(cmd, info=False, error_msg="",
- verbose=True, output_file=None):
- if not error_msg:
- error_msg = ("The command '%s' failed." % cmd)
- msg_exec = ("Executing command: '%s'" % cmd)
- if verbose:
- if info:
- LOGGER.info(msg_exec)
- else:
- LOGGER.debug(msg_exec)
- popen = subprocess.Popen(
- cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- if output_file:
- ofd = open(output_file, "w")
- for line in iter(popen.stdout.readline, b''):
- if output_file:
- ofd.write(line)
- else:
- line = line.replace('\n', '')
- print (line)
- sys.stdout.flush()
- if output_file:
- ofd.close()
- popen.stdout.close()
- returncode = popen.wait()
- if returncode != 0:
- if verbose:
- LOGGER.error(error_msg)
-
- return returncode
-
-
-# ----------------------------------------------------------
-#
-# YAML UTILS
-#
-# -----------------------------------------------------------
-def get_parameter_from_yaml(parameter, yfile):
- """
- Returns the value of a given parameter in file.yaml
- parameter must be given in string format with dots
- Example: general.openstack.image_name
- """
- with open(yfile) as yfd:
- file_yaml = yaml.safe_load(yfd)
- value = file_yaml
- for element in parameter.split("."):
- value = value.get(element)
- if value is None:
- raise ValueError("The parameter %s is not defined in"
- " %s" % (parameter, yfile))
- return value
-
-
-def get_functest_config(parameter):
- yaml_ = constants.CONFIG_FUNCTEST_YAML
- return get_parameter_from_yaml(parameter, yaml_)
-
-
-def get_functest_yaml():
- # pylint: disable=bad-continuation
- with open(constants.CONFIG_FUNCTEST_YAML) as yaml_fd:
- functest_yaml = yaml.safe_load(yaml_fd)
- return functest_yaml
-
-
-def print_separator():
- LOGGER.info("==============================================")
diff --git a/setup.cfg b/setup.cfg
index 4b03d4e5..1a8b00ee 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -5,17 +5,10 @@ home-page = https://wiki.opnfv.org/display/functest
[files]
packages = functest
-scripts =
- functest/ci/download_images.sh
[entry_points]
console_scripts =
- functest = functest.cli.cli_base:cli
- functest_odl = functest.opnfv_tests.sdn.odl.odl:main
- functest_refstack_client = functest.opnfv_tests.openstack.refstack_client.refstack_client:main
run_tests = functest.ci.run_tests:main
- check_deployment = functest.ci.check_deployment:main
- functest_restapi = functest.api.server:main
[build_sphinx]
all_files = 1
diff --git a/tox.ini b/tox.ini
index d2c94342..f01d3d05 100644
--- a/tox.ini
+++ b/tox.ini
@@ -28,60 +28,21 @@ commands = flake8
[testenv:pylint]
basepython = python2.7
whitelist_externals = bash
-modules =
- functest.api
- functest.ci
- functest.cli
- functest.core
- functest.energy
- functest.opnfv_tests.openstack.rally
- functest.opnfv_tests.openstack.refstack_client
- functest.opnfv_tests.openstack.snaps
- functest.opnfv_tests.openstack.tempest
- functest.opnfv_tests.openstack.vping
- functest.opnfv_tests.sdn.odl
- functest.opnfv_tests.vnf.router
- functest.tests.unit.ci
- functest.tests.unit.cli
- functest.tests.unit.core
- functest.tests.unit.energy
- functest.tests.unit.odl
- functest.tests.unit.openstack.rally
- functest.tests.unit.openstack.refstack_client
- functest.tests.unit.openstack.snaps
- functest.tests.unit.openstack.tempest
- functest.tests.unit.openstack.vping
- functest.tests.unit.vnf.router
- functest.tests.unit.utils.test_decorators
- functest.utils.config
- functest.utils.decorators
- functest.utils.constants
- functest.utils.env
- functest.utils.functest_utils
commands =
- bash -c "\
- pylint -f parseable --disable=locally-disabled functest | \
- tee pylint.out | sed -ne '/Raw metrics/,//p'"
- pylint --reports=n --errors-only functest
- pylint --disable=locally-disabled --ignore-imports=y --reports=n {[testenv:pylint]modules}
+ pylint --disable=locally-disabled --ignore-imports=y --reports=n functest
[testenv:yamllint]
basepython = python2.7
files =
- docker
- functest/api
functest/ci
- functest/opnfv_tests/vnf
commands =
yamllint -s {[testenv:yamllint]files}
[testenv:py35]
dirs =
functest/tests/unit/ci
- functest/tests/unit/cli
functest/tests/unit/core
functest/tests/unit/energy
- functest/tests/unit/odl
functest/tests/unit/utils
commands = nosetests {[testenv:py35]dirs}
@@ -91,15 +52,12 @@ dirs =
functest/tests/unit/ci
functest/tests/unit/core
functest/tests/unit/energy
- functest/tests/unit/odl
functest/tests/unit/utils/test_decorators.py
commands = nosetests --with-coverage --cover-tests \
- --cover-package functest.ci.check_deployment \
--cover-package functest.ci.tier_builder \
--cover-package functest.ci.tier_handler \
--cover-package functest.core \
--cover-package functest.energy \
- --cover-package functest.opnfv_tests.sdn.odl \
--cover-package functest.tests.unit \
--cover-package functest.utils.decorators \
--cover-min-percentage 100 {[testenv:cover]dirs}