We are thrilled to announce the release of: tacker 10.0.0: OpenStack NFV Orchestration This release is part of the bobcat release series. The source is available from: https://opendev.org/openstack/tacker Download the package from: https://tarballs.openstack.org/tacker/ Please report issues through: https://bugs.launchpad.net/tacker/+bugs For more details, please see below. Changes in tacker 9.0.0.0rc1..10.0.0 ------------------------------------ 5d59833b Terraform Infra-Driver f000b1bc Add doc of External OAuth2.0 Server Support 4a2cce57 External OAuth2.0 Authorization Server Support f2d4ae6b Support fault notification for error handling 9e73ea9c Fix the error caused by heal all failed 9ab46cf1 Developer guide for compliance test execution 7090af05 Support CNF update with MgmtDriver in v2 API 38345d80 Enhancement of Tacker API Policy for VNF tenant 7f42fa88 Improve nfv parameter setting by additionalParams 0cea1780 Update documents for change in change-vnfpkg 83a109f7 Add rollback option to create and update stacks 27d0a035 Support External Keymanager for auth credential 5dfe8281 Add timeout setting to VNF LCM Coordination IF 8e489dc3 Fix status check of k8s resources 4654af79 Support importing def from local instead of url 2455d3f7 Add certificateRef check in OAuth 2.0 mTLS ce1f68e0 Update k8s v1.26.8 and helm 3.11.3 78e95d58 Fix vnfdId format for VNF package 9129640d Drop Ubuntu 20.04 focal job e48a6924 Fix errors in tacker compliance tests 9c7918f0 Use tox 4.11.0 945f38a6 Fix Instantiate rollback not deleting glance image ab21ebdc Add docs of MgmtDriver's error handling 8138f2c3 Imported Translations from Zanata a76871f8 Fix broken gate jobs bd0cf9b3 Add doc for granting interface 9113c65f Fix error in HeatClient uses OAuth2.0 mTLS 5c20d34f Add neovim support in tacker installer b4d5eca4 Fixed assignment of `isAutomaticInvocation` in lcmocc 62a01ce2 Support Anti-Affinity rules in AZ reselection dc6d4a32 Update metadata in setup.cfg b57a1f16 Fix missing volume id in storageResourceIds 3416148c Fix cannot get namespace when executing DB Sync f5599a3e Fix missing modificationsTriggeredByVnfPkgChange 7eaf8415 Refactor duplicate methods in functional tests 94b25329 Fix delete PM threshold API not returning 404 80f4c898 Update v2 api reference 7b791365 Extend Functional tests for Individual Vnfc Mgmt 83e61aee Fix missing import for i18n 05fe9fa4 Enhancement of Tacker API resource access control 3fe7831d Support multiple conductors onboarding f7582761 Support CNF auto scale via PM Threshold interface 059ec0c6 Update k8s vim config generator 7ec1c7a6 Update master for stable/2023.1 dd14850b Remove Mistral eeafd667 Fix API pagination problem in multi servers Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 195 +- api-ref/source/v2/parameters_vnflcm.yaml | 170 ++ api-ref/source/v2/vnflcm.inc | 241 +- devstack/local.conf.example | 3 +- devstack/local.conf.kubernetes | 7 +- devstack/local.conf.standalone | 1 - .../reference/mistral_workflows_usage_guide.rst | 509 ----- ...ordinate_api_client_in_coordinatevnf_script.rst | 279 ++- .../user/enhanced_tacker_policy_usage_guide.rst | 1446 ++++++++++++ .../user/etsi_cnf_change_current_vnf_package.rst | 309 +-- .../user/etsi_containerized_vnf_usage_guide.rst | 4 + .../user/etsi_vnf_change_current_vnf_package.rst | 184 +- ...current_vnf_package_with_standard_user_data.rst | 37 +- .../user/fault_notification_use_case_guide.rst | 25 + .../user/mgmt_driver_for_container_update.rst | 76 +- etc/config-generator.conf | 1 + .../sol001/2.6.1/etsi_nfv_sol001_common_types.yaml | 202 ++ etc/tacker/api-paste.ini | 4 + etc/tacker/enhanced_tacker_policy.yaml.sample | 251 ++ playbooks/devstack/pre.yaml | 4 + .../bobcat-terraform-driver-08d528b8447ef3be.yaml | 6 + ...e-oauth2-interoperability-74eea5a851c31894.yaml | 6 + .../enhanced-tacker-policy-f477637776771294.yaml | 6 + .../notes/remove-mistral-5c97610e1a4140a6.yaml | 9 + .../support-cnf-pm-threshold-d982ece0ab57506b.yaml | 11 + ...port-cnf-update-with-mgmt-041b2e34b736f1bd.yaml | 7 + ...pport-external-keymanager-2db7f880ceb81ae2.yaml | 6 + ...lti-conductors-onboarding-29410991aceecf1d.yaml | 6 + ...ot-error-handling-of-mgmt-b71d8312ae7626f9.yaml | 9 + releasenotes/source/2023.1.rst | 6 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 26 +- requirements.txt | 2 +- roles/config-enhanced-policy/tasks/main.yaml | 12 + roles/setup-terraform/files/aws_config | 2 + roles/setup-terraform/files/aws_credentials | 3 + roles/setup-terraform/tasks/main.yaml | 61 + setup.cfg | 13 +- tacker/api/common/_filters.py | 1 + tacker/api/v1/resource.py | 1 + tacker/api/validation/__init__.py | 1 + tacker/api/validation/validators.py | 1 + tacker/api/views/vnf_lcm.py | 2 + tacker/api/views/vnf_subscriptions.py | 3 +- tacker/api/vnflcm/v1/controller.py | 320 ++- tacker/api/vnfpkgm/v1/controller.py | 164 +- tacker/common/clients.py | 1 - tacker/common/config.py | 7 + tacker/common/crypt_utils.py | 308 +++ tacker/common/csar_utils.py | 14 +- tacker/common/exceptions.py | 4 + tacker/common/ext_oauth2_auth.py | 370 +++ tacker/common/utils.py | 23 + tacker/conductor/conductor_server.py | 155 +- tacker/conf/__init__.py | 2 + tacker/conf/conductor.py | 2 + .../{mistral/mistral_client.py => conf/policy.py} | 27 +- tacker/conf/vnf_lcm.py | 6 +- tacker/conf/vnf_package.py | 6 +- tacker/context.py | 14 +- tacker/db/db_sqlalchemy/api.py | 1 + tacker/db/db_sqlalchemy/models.py | 5 +- .../2531c976c0f1_add_pm_threshold_table.py | 46 + .../34cfceb25a49_add_downloading_to_vnfpackage.py | 36 + .../versions/4c0e2e2c2e02_alter_vnfd_id_format.py | 64 + .../db/migration/alembic_migrations/versions/HEAD | 2 +- .../versions/ca2ad037c320_add_cryptkey_db.py | 45 + tacker/db/nfvo/ns_db.py | 52 +- tacker/db/vnfm/vnfm_db.py | 13 +- tacker/keymgr/__init__.py | 5 + tacker/keymgr/barbican_key_manager.py | 26 + tacker/locale/de/LC_MESSAGES/tacker.po | 16 +- tacker/locale/es/LC_MESSAGES/tacker.po | 1037 --------- tacker/mistral/workflow_generator.py | 36 - tacker/nfvo/drivers/vim/kubernetes_driver.py | 15 +- tacker/nfvo/drivers/vim/openstack_driver.py | 57 +- tacker/nfvo/drivers/workflow/workflow_generator.py | 277 --- tacker/nfvo/nfvo_plugin.py | 177 +- tacker/objects/vnf.py | 2 +- tacker/objects/vnf_deployment_flavour.py | 1 + tacker/objects/vnf_instance.py | 36 +- tacker/objects/vnf_lcm_op_occs.py | 27 + tacker/objects/vnf_lcm_subscriptions.py | 48 + tacker/objects/vnf_package.py | 59 +- tacker/objects/vnf_package_vnfd.py | 3 +- tacker/objects/vnf_software_image.py | 1 + tacker/objects/vnfd.py | 2 +- tacker/objects/vnfd_attribute.py | 2 +- tacker/plugins/fenix.py | 1 + tacker/policy.py | 157 +- tacker/sol_refactored/api/policies/vnflcm_v2.py | 14 + tacker/sol_refactored/api/policies/vnfpm_v2.py | 338 +-- .../sol_refactored/api/prometheus_plugin_router.py | 7 + tacker/sol_refactored/api/router.py | 5 + .../api/schemas/prometheus_plugin_schemas.py | 5 +- tacker/sol_refactored/api/schemas/vnfpm_v2.py | 68 + tacker/sol_refactored/api/wsgi.py | 6 +- .../sol_refactored/common/common_script_utils.py | 107 + tacker/sol_refactored/common/config.py | 44 +- tacker/sol_refactored/common/coord_client.py | 60 +- tacker/sol_refactored/common/exceptions.py | 17 +- .../sol_refactored/common/fm_subscription_utils.py | 84 - tacker/sol_refactored/common/http_client.py | 5 +- tacker/sol_refactored/common/lcm_op_occ_utils.py | 38 +- .../common/monitoring_plugin_base.py | 6 + tacker/sol_refactored/common/pm_job_utils.py | 79 - tacker/sol_refactored/common/pm_threshold_utils.py | 120 + tacker/sol_refactored/common/prometheus_plugin.py | 359 ++- tacker/sol_refactored/common/subscription_utils.py | 179 +- tacker/sol_refactored/common/vim_utils.py | 7 +- tacker/sol_refactored/common/vnf_instance_utils.py | 31 + tacker/sol_refactored/common/vnfd_utils.py | 4 +- tacker/sol_refactored/common/vnflcm_utils.py | 21 +- .../sol_refactored/conductor/conductor_rpc_v2.py | 4 + tacker/sol_refactored/conductor/conductor_v2.py | 55 +- .../conductor/prometheus_plugin_driver.py | 5 +- .../conductor/server_notification_driver.py | 3 +- .../sol_refactored/conductor/vnflcm_driver_v2.py | 143 +- tacker/sol_refactored/conductor/vnfpm_driver_v2.py | 30 + .../controller/prometheus_plugin_controller.py | 13 + tacker/sol_refactored/controller/vnffm_v1.py | 5 +- tacker/sol_refactored/controller/vnflcm_v2.py | 84 +- tacker/sol_refactored/controller/vnflcm_view.py | 44 +- tacker/sol_refactored/controller/vnfpm_v2.py | 189 +- tacker/sol_refactored/controller/vnfpm_view.py | 21 + tacker/sol_refactored/db/sqlalchemy/models.py | 37 + .../infra_drivers/kubernetes/kubernetes_common.py | 3 +- .../kubernetes/kubernetes_resource.py | 21 +- .../infra_drivers/openstack/heat_utils.py | 53 +- .../infra_drivers/openstack/openstack.py | 194 +- .../infra_drivers/openstack/userdata_standard.py | 230 +- .../infra_drivers/terraform/terraform.py | 289 +++ .../mgmt_drivers/container_update_mgmt_v2.py | 391 ++++ .../sol_refactored/mgmt_drivers/sample_script.py | 16 +- .../mgmt_drivers/server_notification.py | 134 +- tacker/sol_refactored/nfvo/local_nfvo.py | 9 + tacker/sol_refactored/nfvo/nfvo_client.py | 6 +- tacker/sol_refactored/objects/__init__.py | 6 + tacker/sol_refactored/objects/base.py | 7 +- tacker/sol_refactored/objects/common/crypt_key.py | 32 + tacker/sol_refactored/objects/common/fields.py | 2 + .../objects/common/problem_details.py | 3 + .../objects/common/subscription_authentication.py | 4 +- .../sol_refactored/objects/v1/fm_subscription.py | 32 + tacker/sol_refactored/objects/v1/grant.py | 31 + .../objects/v2/change_current_vnf_pkg_request.py | 4 - .../objects/v2/create_threshold_request.py | 36 + .../sol_refactored/objects/v2/lccn_subscription.py | 32 + tacker/sol_refactored/objects/v2/pm_job.py | 194 +- tacker/sol_refactored/objects/v2/threshold.py | 101 + .../objects/v2/threshold_criteria.py | 43 + .../objects/v2/threshold_crossed_notification.py | 62 + .../objects/v2/threshold_modifications.py | 31 + tacker/sol_refactored/objects/v2/vnf_instance.py | 36 + tacker/sol_refactored/objects/v2/vnf_lcm_op_occ.py | 122 + tacker/sol_refactored/test-tools/cli.py | 37 +- .../BaseHOT/simple/base_hot_top.yaml | 38 + .../BaseHOT/simple/nested/vdu1.yaml | 28 + .../Definitions/sample_vnfd_df_simple.yaml | 195 ++ .../Definitions/sample_vnfd_top.yaml | 31 + .../Definitions/sample_vnfd_types.yaml | 63 + .../test_enhanced_policy/TOSCA-Metadata/TOSCA.meta | 4 + .../nfv/test_enhanced_policy/UserData}/__init__.py | 0 .../test_enhanced_policy/UserData/lcm_user_data.py | 35 + .../UserData/lcm_user_data_invalid_script.py | 1 + .../legacy/vnfm/test_tosca_vnf_multiple_vdu.py | 3 +- .../functional/legacy/vnfm/test_tosca_vnfc.py | 3 +- .../functional/sol_encrypt_cred_v2}/__init__.py | 0 .../functional/sol_encrypt_cred_v2/paramgen.py | 360 +++ .../test_encrypt_credentials.py | 968 ++++++++ .../functional/sol_enhanced_policy}/__init__.py | 0 .../sol_enhanced_policy/sol}/__init__.py | 0 .../sol/test_policy_vim_apis_openstack.py | 25 + .../sol/test_policy_vnf_package_apis.py | 244 ++ .../sol/test_policy_vnflcm_apis_v1.py | 279 +++ .../sol/test_policy_vnflcm_apis_v2.py | 993 ++++++++ .../sol_enhanced_policy/sol_kubernetes/__init__.py | 0 .../sol_kubernetes/test_policy_cnflcm_apis_v1.py | 232 ++ .../sol_kubernetes/test_policy_cnflcm_apis_v2.py | 797 +++++++ .../test_policy_vim_apis_kubernetes.py | 25 + .../sol_https_v2/test_vnffm_https_basic.py | 83 +- .../sol_https_v2/test_vnflcm_https_basic.py | 57 +- .../sol_https_v2/test_vnfpm_https_basic.py | 88 +- .../vnflcm_v2/test_kubernetes_oidc_auth.py | 27 +- .../contents/Definitions/sample_df_simple.yaml | 213 ++ .../contents/Definitions/sample_top.vnfd.yaml | 31 + .../contents/Definitions/sample_types.yaml | 53 + .../contents/Files/kubernetes/configmap_2.yaml | 9 + .../contents/Files/kubernetes/configmap_3.yaml | 9 + .../contents/Files/kubernetes/daemonset.yaml | 38 + .../contents/Files/kubernetes/deployment.yaml | 39 + .../contents/Files/kubernetes/deployment_2.yaml | 39 + .../contents/Files/kubernetes/pod_env.yaml | 26 + .../contents/Files/kubernetes/pod_env_2.yaml | 26 + .../contents/Files/kubernetes/pod_volume.yaml | 28 + .../contents/Files/kubernetes/pod_volume_2.yaml | 28 + .../contents/Files/kubernetes/replicaset.yaml | 41 + .../contents/Files/kubernetes/secret_2.yaml | 9 + .../contents/Files/kubernetes/secret_3.yaml | 9 + .../contents/TOSCA-Metadata/TOSCA.meta | 64 + .../test_cnf_container_update_after/pkggen.py | 44 + .../contents/Definitions/sample_df_simple.yaml | 213 ++ .../contents/Definitions/sample_top.vnfd.yaml | 31 + .../contents/Definitions/sample_types.yaml | 53 + .../contents/Files/kubernetes/configmap_1.yaml | 9 + .../contents/Files/kubernetes/configmap_3.yaml | 9 + .../contents/Files/kubernetes/daemonset.yaml | 38 + .../contents/Files/kubernetes/deployment.yaml | 39 + .../contents/Files/kubernetes/deployment_2.yaml | 39 + .../contents/Files/kubernetes/pod_env.yaml | 26 + .../contents/Files/kubernetes/pod_env_2.yaml | 26 + .../contents/Files/kubernetes/pod_volume.yaml | 28 + .../contents/Files/kubernetes/pod_volume_2.yaml | 28 + .../contents/Files/kubernetes/replicaset.yaml | 41 + .../contents/Files/kubernetes/secret_1.yaml | 9 + .../contents/Files/kubernetes/secret_3.yaml | 9 + .../contents/TOSCA-Metadata/TOSCA.meta | 64 + .../test_cnf_container_update_before/pkggen.py | 53 + .../test_instantiate_cnf_resources/pkggen.py | 4 + .../sol_kubernetes_v2/test_change_vnfpkg.py | 51 +- .../functional/sol_kubernetes_v2/test_helm.py | 76 +- .../test_kubernetes_container_update.py | 134 ++ .../sol_kubernetes_v2/test_prom_auto_scale_heal.py | 43 +- .../test_threshold_prometheus_plugin.py | 768 +++++++ .../sol_kubernetes_v2/test_vnffm_basic.py | 60 +- .../sol_kubernetes_v2/test_vnflcm_basic.py | 58 +- .../sol_kubernetes_v2/test_vnfpm_basic.py | 73 +- .../test_vnfpm_threshold_basic.py | 322 +++ .../sol_separated_nfvo_v2/fake_grant_v2.py | 13 +- .../Definitions/etsi_nfv_sol001_common_types.yaml | 202 ++ .../Definitions/etsi_nfv_sol001_vnfd_types.yaml | 1463 ++++++++++++ .../contents/Definitions/sample_tf_df_simple.yaml | 177 ++ .../contents/Definitions/sample_tf_top.vnfd.yaml | 31 + .../contents/Definitions/sample_tf_types.yaml | 53 + .../contents/Files/terraform/main.tf | 8 + .../contents/Scripts/sample_script.py | 67 + .../contents/TOSCA-Metadata/TOSCA.meta | 9 + .../samples/test_terraform_basic/pkggen.py | 48 + .../functional/sol_terraform_v2/test_terraform.py | 153 ++ .../functional/sol_v2/test_individual_vnfc_mgmt.py | 270 ++- .../functional/sol_v2/test_prom_auto_scale_heal.py | 32 +- .../functional/sol_v2/test_server_notification.py | 1499 +++++++++++- .../sol_v2/test_vnflcm_error_handling.py | 88 +- .../functional/sol_v2_az_retry/test_az_retry.py | 23 +- .../contents/BaseHOT/simple/nested/VDU1.yaml | 86 + .../contents/BaseHOT/simple/nested/VDU2.yaml | 87 + .../contents/BaseHOT/simple/sample3.yaml | 86 + .../contents/Definitions/v2_sample3_df_simple.yaml | 442 ++++ .../contents/Definitions/v2_sample3_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample3_types.yaml | 55 + .../contents/Scripts/coordinate_vnf.py | 46 + .../contents/Scripts/sample_script.py | 68 + .../contents/TOSCA-Metadata/TOSCA.meta | 4 + .../basic_lcms_max_individual_vnfc/pkggen.py | 156 ++ .../samples/basic_lcms_max_individual_vnfc/post.py | 19 + .../samples/basic_lcms_max_individual_vnfc/pre.py | 22 + .../contents/BaseHOT/simple/nested/VDU1.yaml | 30 + .../contents/BaseHOT/simple/nested/VDU2.yaml | 30 + .../contents/BaseHOT/simple/sample4.yaml | 42 + .../contents/Definitions/v2_sample4_df_simple.yaml | 264 +++ .../contents/Definitions/v2_sample4_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample4_types.yaml | 55 + .../contents/Scripts/sample_script.py | 68 + .../contents/TOSCA-Metadata/TOSCA.meta | 4 + .../basic_lcms_min_individual_vnfc/pkggen.py | 91 + .../contents/BaseHOT/simple/nested/VDU1-after.yaml | 95 + .../contents/BaseHOT/simple/nested/VDU2-after.yaml | 96 + .../contents/BaseHOT/simple/sample3.yaml | 88 + .../contents/Definitions/v2_sample3_df_simple.yaml | 440 ++++ .../contents/Definitions/v2_sample3_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample3_types.yaml | 55 + .../contents/Scripts/coordinate_vnf.py | 46 + .../contents/Scripts/sample_script.py | 68 + .../contents/TOSCA-Metadata/TOSCA.meta | 4 + .../change_vnfpkg_max_individual_vnfc/pkggen.py | 60 + .../change_vnfpkg_max_individual_vnfc/post.py | 19 + .../change_vnfpkg_max_individual_vnfc/pre.py | 22 + .../contents/BaseHOT/simple/nested/VDU1.yaml | 30 + .../contents/BaseHOT/simple/nested/VDU2.yaml | 30 + .../contents/BaseHOT/simple/sample4.yaml | 42 + .../contents/Definitions/v2_sample4_df_simple.yaml | 266 +++ .../contents/Definitions/v2_sample4_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample4_types.yaml | 55 + .../contents/Scripts/coordinate_vnf.py | 46 + .../contents/Scripts/sample_script.py | 77 + .../contents/TOSCA-Metadata/TOSCA.meta | 4 + .../pkggen.py | 57 + .../contents/Definitions/v2_sample2_df_simple.yaml | 4 + .../contents/Definitions/v2_sample2_types.yaml | 30 +- .../contents/Scripts/sample_script.py | 158 +- .../contents/BaseHOT/simple/nested/VDU1.yaml | 86 + .../contents/BaseHOT/simple/nested/VDU2.yaml | 87 + .../contents/BaseHOT/simple/sample3.yaml | 86 + .../contents/Definitions/v2_sample3_df_simple.yaml | 442 ++++ .../contents/Definitions/v2_sample3_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample3_types.yaml | 55 + .../contents/Scripts/coordinate_vnf.py | 46 + .../contents/Scripts/sample_script.py | 68 + .../contents/TOSCA-Metadata/TOSCA.meta | 4 + .../update_vnf_max_individual_vnfc/pkggen.py | 58 + .../contents/BaseHOT/simple/nested/VDU1.yaml | 4 +- .../contents/BaseHOT/simple/sample3.yaml | 1 + .../contents/Scripts/coordinate_vnf.py | 11 +- .../contents/BaseHOT/simple/nested/VDU1.yaml | 17 +- .../contents/BaseHOT/simple/sample6.yaml | 2 +- .../contents/Definitions/v2_sample6_df_simple.yaml | 37 +- .../contents/BaseHOT/simple/nested/VDU1.yaml | 4 +- .../contents/BaseHOT/simple/sample4.yaml | 1 + .../contents/Scripts/coordinate_vnf.py | 11 +- .../contents/Scripts/sample_script.py | 69 + .../contents/Scripts/v2_sample4_df_simple.yaml | 363 +++ .../contents/BaseHOT/simple/nested/VDU1-ver2.yaml | 4 +- .../contents/BaseHOT/simple/sample5.yaml | 1 + .../contents/BaseHOT/simple/nested/VDU1.yaml | 65 + .../contents/BaseHOT/simple/sample7.yaml | 40 + .../contents/Definitions/v2_sample7_df_simple.yaml | 275 +++ .../contents/Definitions/v2_sample7_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample7_types.yaml | 55 + .../contents/Scripts/coordinate_vnf.py | 80 + .../contents/Scripts/sample_script.py | 68 + .../contents/TOSCA-Metadata/TOSCA.meta | 4 + .../pkggen.py | 76 + .../sol_v2_common/test_vnflcm_basic_common.py | 277 ++- .../sol_v2_individual_vnfc_mgmt/__init__.py | 0 .../test_individual_vnfc_mgmt_basic.py | 2406 ++++++++++++++++++++ .../nfvo/drivers/vim/test_kubernetes_driver.py | 74 + .../unit/nfvo/drivers/vim/test_openstack_driver.py | 78 +- .../drivers/workflow/test_workflow_generator.py | 403 ---- .../common/test_common_script_utils.py | 135 +- .../sol_refactored/common/test_coord_client.py | 170 +- .../common/test_fm_subscription_utils.py | 156 +- .../sol_refactored/common/test_lcm_op_occ_utils.py | 44 +- .../sol_refactored/common/test_pm_job_utils.py | 236 -- .../common/test_pm_threshold_utils.py | 122 + .../common/test_prometheus_plugin.py | 592 ++++- .../common/test_subscription_utils.py | 396 ++-- .../common/test_vnf_instance_utils.py | 30 + .../sol_refactored/conductor/test_conductor_v2.py | 8 + .../conductor/test_vnffm_driver_v1.py | 3 +- .../conductor/test_vnflcm_driver_v2.py | 204 +- .../conductor/test_vnfpm_driver_v2.py | 36 + .../controller/test_prometheus_plugin.py | 35 +- .../sol_refactored/controller/test_vnffm_v1.py | 30 +- .../sol_refactored/controller/test_vnflcm_v2.py | 1062 ++++++++- .../sol_refactored/controller/test_vnfpm_v2.py | 271 ++- .../sol_refactored/controller/test_vnfpm_view.py | 42 + .../infra_drivers/kubernetes/fakes.py | 1 + .../infra_drivers/openstack/test_openstack.py | 466 +++- .../infra_drivers/terraform/__init__.py | 0 .../infra_drivers/terraform/test_terraform.py | 236 ++ .../unit/sol_refactored/mgmt_drivers/__init__.py | 0 .../mgmt_drivers/fake_configmap.yaml | 19 + .../unit/sol_refactored/mgmt_drivers/fakes.py | 318 +++ .../mgmt_drivers/test_container_update_mgmt.py | 835 +++++++ .../mgmt_drivers/test_server_notification.py | 596 +++++ .../unit/sol_refactored/nfvo/test_local_nfvo.py | 32 +- .../unit/sol_refactored/nfvo/test_nfvo_client.py | 2 +- .../sol_refactored/objects/test_fm_subscription.py | 151 ++ .../unit/sol_refactored/objects/test_grant.py | 202 ++ .../objects/test_lccn_subscription_v2.py | 161 ++ .../unit/sol_refactored/objects/test_pm_job_v2.py | 229 ++ .../sol_refactored/objects/test_threshold_v2.py | 221 ++ .../sol_refactored/objects/test_vnf_instance_v2.py | 216 ++ .../objects/test_vnf_lcm_op_occ_v2.py | 448 ++++ .../sample_cert/notification_client_cert.pem | 32 + .../BaseHOT/simple/nested/VDU1.yaml | 13 + .../Definitions/v2_sample3_df_simple.yaml | 9 + .../tosca/test_tosca_templates_under_samples.py | 10 +- .../unit/vnfm/infra_drivers/kubernetes/fakes.py | 46 +- .../kubernetes/test_kubernetes_driver.py | 19 + .../kubernetes/test_kubernetes_driver_helm.py | 1 + .../openstack/test_openstack_driver.py | 5 + tacker/tosca/utils.py | 58 +- tacker/vnflcm/utils.py | 10 +- tacker/vnflcm/vnflcm_driver.py | 9 +- .../kubernetes/k8s/translate_inputs.py | 3 +- .../infra_drivers/kubernetes/kubernetes_driver.py | 32 +- tacker/vnfm/infra_drivers/kubernetes/utils.py | 1 + tacker/vnfm/infra_drivers/openstack/openstack.py | 5 + .../infra_drivers/openstack/translate_template.py | 7 +- tacker/vnfm/lcm_user_data/abstract_user_data.py | 1 + tacker/vnfm/plugin.py | 12 +- tacker/vnfm/vim_client.py | 7 +- test-requirements.txt | 1 + tools/gen_vim_config.sh | 30 +- tox.ini | 53 +- vagrant/devstack/README.md | 9 + vagrant/devstack/group_vars/all.yml | 7 +- .../ubuntu-focal/controller/tasks/basic_pkgs.yml | 14 +- .../roles/ubuntu-focal/controller/tasks/main.yml | 3 + .../roles/ubuntu-focal/controller/tasks/neovim.yml | 22 + .../ubuntu-jammy/controller/tasks/basic_pkgs.yml | 14 +- .../roles/ubuntu-jammy/controller/tasks/main.yml | 3 + .../roles/ubuntu-jammy/controller/tasks/neovim.yml | 22 + 452 files changed, 43403 insertions(+), 7306 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index ce41ba8e..182cef85 100644 --- a/requirements.txt +++ b/requirements.txt @@ -43 +42,0 @@ python-keystoneclient>=3.8.0 # Apache-2.0 -python-mistralclient>=4.2.0 # Apache-2.0 @@ -56,0 +56 @@ PyMySQL>=0.10.1 # MIT +PyJWT>=2.4.0 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index 8cbdd883..9942e35e 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -24,0 +25 @@ freezegun>=1.2.2 # Apache-2.0 +PyJWT>=2.4.0 # MIT
participants (1)
-
no-reply@openstack.org