We are happy to announce the release of: tacker 6.0.0: OpenStack NFV Orchestration This release is part of the xena 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. 6.0.0 ^^^^^ New Features * Support multi-version of RESTfulAPI. The client can use both VNF LCM API "1.3.0" and "2.0.0" defined by ETSI NFV. * Add new RESTful APIs of List VNF LCM API versions and Show VNF LCM API versions based on ETSI NFV specifications. They enable the client to retrieve supported versions of VNF LCM API. * Add the following new version of RESTful APIs based on ETSI NFV specifications. Version "2.0.0" API of Create VNF, Delete VNF, Instantiate VNF, Terminate VNF, List VNF, Show VNF, List VNF LCM operation occurrence, Show VNF LCM operation occurrence, Create subscription, List subscription, and Show subscription are added. * VNF LCM API "2.0.0" provides a new type of userdata script and utility functions to describe it. They enable the user to freely operate HEAT to meet the unique requirements of VNF. * Functions to enable the use of Docker private registry images in a Kubernetes Cluster environment. We provide the sample of MgmtDriver which can deploy Docker private registry VNF for Kubernetes cluster before deploying Kubernetes cluster VNF, and deploy Kubernetes cluster VNF that can support both the Docker private registry created above and any others created outside of Tacker. Instantiate operation for Kubernetes cluster with MgmtDriver: MgmtDriver configures connections with Docker private registries on newly created all Master/Worker VMs. Scale-out operation for Kubernetes cluster Worker-nodes with MgmtDriver: MgmtDriver configures connections with Docker private registries on newly created Worker VMs. Heal operation for the entire Kubernetes cluster with MgmtDriver: MgmtDriver configures connections with Docker private registries on the created all Master/Worker VMs. Heal operation for a single node in Kubernetes cluster with MgmtDriver: MgmtDriver configures connections with Docker private registries on the created Master/Worker VM. * Add new interface for Kubernetes VIM to handle Helm chart. It enables Users to include Helm chart files as MCIOP in their VNF Packages, to instantiate and to terminate CNF with them. And update sample of MgmtDriver to install and configure Helm package for using Helm cli command in the deployed Kubernetes cluster VNF, and to restore the registered helm repositories and charts after the master node is healed. * MgmtDriver function configures applications provided by VNF vendors. VNF vendors can customize configuration methods for applications via MgmtDriver. These customizations are specified by "interface" definition in ETSI NFV-SOL001 v2.6.1. We provide the sample of MgmtDriver and scripts which can deploy a Kubernetes cluster. It can use kubespray as Ansible playbooks to install Kubernetes cluster VNF, and also install and configure HAproxy load balancer for the Kubernetes cluster. We also provide a user guide to help users understand how to use this feature. Instantiate kubernetes cluster: The Kubernetes cluster can be instantiated with VNF Lifecycle Management Interface in ETSI NFV-SOL 003 v2.6.1. Scale kubernetes worker node: Scaling operations on the Worker-nodes for the VNF including Kubernetes cluster is supported with MgmtDriver. Heal kubernetes worker node: Healing operations on the Worker-nodes for the VNF including Kubernetes cluster is supported with MgmtDriver. * Support deploying Kubernetes cluster VNF which has a storage server with Cinder volume. This feature enables users to deploy CNF which has PersistentVolume on it. The following changes are added for MgmtDriver. * Create a storage server VM with Cinder volume. * Expose Cinder volume as NFS shared directories in the storage server. * Register NFS shared directories as Kubernetes PersistentVolumes. * Install NFS client on newly created Master/Worker VMs in all LCM operations. Changes in tacker 5.0.0.0rc1..6.0.0 ----------------------------------- 43b19f63 Support PVs for k8s cluster with MgmtDriver c94228a1 Update instructions of installing k8s VIM 1474cfe7 Private registry for deploying Kubernetes cluster 0e10c540 Add groups under topology_template in vnf_dict 17fed565 Sample script for healing k8s with kubespray 143c04ab Sample script for scaling k8s with kubespray 9c9e8827 Sample script for deploying k8s with kubespray e48234f9 Sample script of pod-affinity in kubernetes cluster 34eaab61 Add documents for multi-version API support fa73e438 Modify processing of _heal_grant and _scale_grant d8b2ddbd Multi version API support fa5f63d5 Object definitions of multi version API support 6205b4d5 Fix zuul settings to use latest kuryr-kubernetes f77ae4a9 Support Helm chart as interface for Kubernetes VIM 9037608c Modify Placement Processing to Aspect definition 487ee151 Fix for Anti Affinity verification Exception 0133a35c Fix occasional multinode-sol job FT error 993169b2 Fix status code for invalid filter conditions 3eefc875 Add missing [oslo_reports] options 0df88fb2 Fix cnf rollback after instantiation failure c40c14af Add missing options about periodic tasks d66ecd14 Update zuul environment to support helm chart 292e05dc Fix get information about multiple VNF instances 8e97bf23 Support TOSCA route for ChgExternalConnectivity 23f3cca4 Drop test for lower constraints b22db3d8 Update TOX_CONSTRAINTS_FILE for stable/xena fc724184 Update .gitreview for stable/xena 5d23bf31 Remove the restriction of scaling group name 35f93e9b Remove tmp fix for heat-translator/tosca-parser 5eced54d Skip some FTs failed due to heat bug ea1bc9bd Replace deprecated import of ABCs from collections 68b23730 Add ETSI getting started ddf28104 Update version of cirros image to 0.5.2 26a2b5fc Fix missing required parameter when k8s_obj init 70bfbe43 Doc:Fix misspelled word in Legacy User Guide ecbc80c0 Add hardware requirements 64655407 Fix required attributes when error happened 9a9c8dbf Update releasenotes from Xena cycle 33cb3ba5 Fix Healing so image is updated after Healing 385c4b44 Drop block storage v2 API 05bce744 Add LCM op figures to User Guide 401a12de Update references to sys.version_info 00ec6a5b Incomplete URLs in api-ref 89b3b65c Retaining permission of VNF package files a9cb3854 Fix Patch Individual VNF instance f4774e86 Fix MgmtDriver can not be called when scale CNF 55f3a221 Update examples of local.conf for OVN 96a9292f Use skipTest() instead of skip() method 3ca7b32f Zuul FT environment change to use OVN 2d2ea313 Update User Guide e0c09499 Fix migration for SQLAlchemy 1.4 987f60ed Fix old link in Gerrit Dashboards 36e666cb Improvement of Processing Logic for Healing 3b1bd13e Avoid FT errors caused by other projects change 982af3a3 Update hyperlinks of ETSI NFV types definitions b43edf8b [Doc] Update Freenode to OFTC as our IRC server cf515057 Wrong subscription notification URL 828a34d4 DevStack job with heat-translator/tosca-parser master 915afe3d setup.cfg: Replace dashes with underscores 2c68a0a8 Updated vnflcm api output with host-path c1b2c362 Fix two-stage process launcher in tacker-server c137b0dd Add endpoint information in interfaceInfo d4713777 Fix display bugs of vnflcm show command 206cc80e Fix exception not raised while install script failed 5100e318 Fix missing None judgement in rollback 44bf8f59 Add new inherited methods for kubernetes_mgmt f731f885 Improvement of FT cases for Retry LCM Operation 5a9ae0c8 Addition of location header field in response d987f619 Fix parameters passing in kubernetes_mgmt 19594e09 Add Python3 xena unit tests 3859ade8 Support Placement Constraints for Grant 12ff2919 Fix warnings for duplicated policy rules e6a7ff59 Fix UT and FT VNFD yaml because lack of properties 667377b8 Fix some bugs related legacy cnf operations ae3ad13f Update master for stable/wallaby Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + .zuul.yaml | 115 +- api-ref/source/index.rst | 17 +- api-ref/source/v1/{index.rst => legacy.rst} | 8 +- api-ref/source/v1/parameters_vnflcm.yaml | 2 +- api-ref/source/v1/parameters_vnflcm_versions.yaml | 44 + .../vnf_packages/vnf-packages-list-response.json | 8 +- .../vnf_packages/vnf-packages-show-response.json | 8 +- .../v1/samples/vnfds/vnfds-create-request.json | 2 +- .../v1/samples/vnfds/vnfds-create-response.json | 2 +- .../v1/samples/vnfds/vnfds-list-response.json | 2 +- .../v1/samples/vnfds/vnfds-show-response.json | 2 +- .../v1/samples/vnfds/vnfds-update-response.json | 2 +- .../vnflcm/create-vnf-instance-response.json | 4 +- .../samples/vnflcm/fail-vnf-instance-response.json | 2 +- .../samples/vnflcm/list-vnf-instance-response.json | 8 +- .../samples/vnflcm/show-vnf-instance-response.json | 6 +- .../show-vnflcm-operation-occurrence-response.json | 6 +- .../list-vnflcm-version-response.json | 13 + .../show-vnflcm-version-response.json | 9 + .../samples/vnfs/vnfs-inline-create-request.json | 2 +- api-ref/source/v1/status.yaml | 2 +- api-ref/source/v1/vnflcm.inc | 2 +- api-ref/source/v1/vnflcm.rst | 9 + api-ref/source/v1/vnflcm_versions.inc | 97 ++ api-ref/source/v1/vnflcm_versions.rst | 9 + api-ref/source/v1/vnfpkgm.rst | 9 + api-ref/source/v2/parameters_vnflcm.yaml | 1426 ++++++++++++++++++ .../vnflcm/create-subscription-request.json | 3 + .../vnflcm/create-subscription-response.json | 10 + .../vnflcm/create-vnf-instance-request.json | 5 + .../vnflcm/create-vnf-instance-response.json | 22 + .../vnflcm/instantiate-vnf-instance-request.json | 128 ++ .../samples/vnflcm/list-subscription-response.json | 12 + .../samples/vnflcm/list-vnf-instance-response.json | 473 ++++++ .../list-vnflcm-operation-occurrence-response.json | 232 +++ .../samples/vnflcm/show-subscription-response.json | 10 + .../samples/vnflcm/show-vnf-instance-response.json | 471 ++++++ .../show-vnflcm-operation-occurrence-response.json | 229 +++ .../vnflcm/terminate-vnf-instance-request.json | 4 + api-ref/source/v2/status.yaml | 88 ++ api-ref/source/v2/vnflcm.inc | 939 ++++++++++++ api-ref/source/v2/vnflcm.rst | 9 + contrib/tacker-config/ns-config.sh | 4 +- contrib/tacker-config/vnffg-config.sh | 4 +- devstack/lib/download_upper_consts | 18 - devstack/lib/tacker | 25 +- devstack/local.conf.example | 3 +- devstack/local.conf.kubernetes | 7 +- devstack/local.conf.standalone | 1 + devstack/plugin.sh | 16 +- devstack/settings | 22 +- .../_images/etsi-getting-started-sample-vnf.png | Bin 0 -> 8604 bytes .../_images/etsi-getting-started-sample-vnf.pu | 9 + .../_images/etsi_containerized_vnf_usage_guide.png | Bin 0 -> 43617 bytes .../_images/etsi_containerized_vnf_usage_guide.pu | 38 + .../etsi_vnf_deployment_as_vm_with_tosca.png | Bin 0 -> 36778 bytes .../etsi_vnf_deployment_as_vm_with_tosca.pu | 35 + .../etsi_vnf_deployment_as_vm_with_user_data.png | Bin 0 -> 40438 bytes .../etsi_vnf_deployment_as_vm_with_user_data.pu | 38 + .../contributor/vnfd_template_description.rst | 26 +- .../contributor/vnfd_template_parameterization.rst | 16 +- .../contributor/vnffgd_template_description.rst | 12 +- ...ting_started.rst => legacy_getting_started.rst} | 32 +- .../reference/mistral_workflows_usage_guide.rst | 4 +- .../reference/reservation_policy_usage_guide.rst | 4 +- .../user/etsi_containerized_vnf_usage_guide.rst | 57 +- .../etsi_vnf_change_external_vnf_connectivity.rst | 2 +- .../user/etsi_vnf_deployment_as_vm_with_tosca.rst | 34 +- .../etsi_vnf_deployment_as_vm_with_user_data.rst | 36 +- .../user/mgmt_driver_deploy_k8s_usage_guide.rst | 725 +++++++++- etc/config-generator.conf | 2 + etc/tacker/api-paste.ini | 18 + lower-constraints.txt | 164 --- playbooks/devstack/pre.yaml | 1 + ...multi-version-api-support-0653df1edb67162e.yaml | 24 + .../bp-placement-constraints-e3256cfc2d1b2b9f.yaml | 5 + .../bug-1923360-link-vnflcm-486fbbffb2636b50.yaml | 7 + ...1923425-add-endpoint-info-77c3f975d0f876c9.yaml | 6 + ...1923478-wrong-opocc-notif-523c33da2d9a0e04.yaml | 7 + ...-1923528-too-many-workers-919ad36e0c0ea9b0.yaml | 11 + ...23540-unzipped-permission-4f34dce4a73a9342.yaml | 8 + ...g-1924214-unexpected-heal-e59f6dcf0f03bc6a.yaml | 8 + ...-missing-vnf-config-props-c3bc122d70041da1.yaml | 7 + .../notes/cirros-0.5.2-51990bfb9ec72fc9.yaml | 4 + .../drop-sqlalchemy-filters-7ba7a03a309654bc.yaml | 8 + .../notes/ovs-to-ovn-2f14dcaaa7b186b5.yaml | 5 + .../revise-doc-user-guide-cbd7b20ef04d373e.yaml | 18 + .../support-cir-k8s-cluster-d2596de8fed78f6c.yaml | 27 + ...support-helmchart-k8s-vim-3604f0070cca6b63.yaml | 10 + ...-k8s-mgmtdriver-kubespray-b0ecbaaefb755b11.yaml | 24 + .../support-pv-k8s-cluster-2893a5619ea9e91c.yaml | 12 + releasenotes/source/index.rst | 1 + releasenotes/source/wallaby.rst | 6 + requirements-extra.txt | 8 - requirements.txt | 20 +- .../files/create_admin_token.yaml | 23 + roles/setup-default-vim/tasks/main.yaml | 45 + roles/setup-helm/defaults/main.yaml | 4 + roles/setup-helm/files/50_helm_sh | 1 + roles/setup-helm/tasks/main.yaml | 106 ++ .../lcm_instantiate_request/sample_param_file.json | 3 + .../Definitions/etsi_nfv_sol001_common_types.yaml | 202 +++ .../Definitions/etsi_nfv_sol001_vnfd_types.yaml | 1465 +++++++++++++++++++ .../Definitions/sample_vnfd_df_simple.yaml | 136 ++ .../Definitions/sample_vnfd_top.yaml | 31 + .../Definitions/sample_vnfd_types.yaml | 63 + .../sample_vnf_package_csar/Files/images/.gitkeep | 0 .../TOSCA-Metadata/TOSCA.meta | 4 + .../etsi_getting_started/tosca/vim/vim_config.yaml | 7 + .../lcm_instantiate_request/sample_param_file.json | 43 + .../simple/sample_lcm_with_user_data_hot.yaml | 32 + .../userdata/sample_vnf_package_csar/Definitions | 1 + .../userdata/sample_vnf_package_csar/Files | 1 + .../sample_vnf_package_csar/TOSCA-Metadata | 1 + .../sample_vnf_package_csar/UserData/__init__.py | 0 .../UserData/lcm_user_data.py | 39 + samples/etsi_getting_started/userdata/vim | 1 + samples/mgmt_driver/install_helm.sh | 49 + samples/mgmt_driver/install_k8s_cluster.sh | 19 +- samples/mgmt_driver/kubernetes_mgmt.py | 1245 +++++++++++++++- .../BaseHOT/complex/complex_hot_top.yaml | 14 +- .../nested/podaffinity_nested_master.yaml | 34 + .../nested/podaffinity_nested_worker.yaml | 30 + .../BaseHOT/podaffinity/podaffinity_hot_top.yaml | 95 ++ .../BaseHOT/simple/simple_hot_top.yaml | 14 +- .../sample_kubernetes_df_podaffinity.yaml | 254 ++++ .../Definitions/sample_kubernetes_top.vnfd.yaml | 1 + .../Definitions/sample_kubernetes_types.yaml | 2 +- .../TOSCA-Metadata/TOSCA.meta | 9 +- .../cnf_nodeport_setting/cnf_nodeport_mgmt.py | 363 +++++ .../Definitions/helloworld3_df_simple.yaml | 124 ++ .../Definitions/helloworld3_top.vnfd.yaml | 31 + .../Definitions/helloworld3_types.yaml | 53 + .../Files/kubernetes/deployment.yaml | 28 + .../Files/kubernetes/service_with_nodeport.yaml | 16 + .../Files/kubernetes/service_without_nodeport.yaml | 11 + .../TOSCA-Metadata/TOSCA.meta | 29 + .../kubespray/cnf_nodeport_setting/configure_lb.sh | 128 ++ .../mgmt_driver/kubespray/install_external_lb.sh | 278 ++++ samples/mgmt_driver/kubespray/kubespray_mgmt.py | 1530 ++++++++++++++++++++ .../BaseHOT/simple/base_hot_top.yaml | 87 ++ .../simple/nested/base_hot_nested_master.yaml | 33 + .../simple/nested/base_hot_nested_worker.yaml | 33 + .../Definitions/sample_kubernetes_df_simple.yaml | 288 ++++ .../Definitions/sample_kubernetes_top.vnfd.yaml | 31 + .../Definitions/sample_kubernetes_types.yaml | 63 + .../TOSCA-Metadata/TOSCA.meta | 14 + .../kubespray_vnf_package/UserData/__init__.py | 0 .../UserData/lcm_user_data.py | 35 + samples/mgmt_driver/private_registry_mgmt.py | 467 ++++++ .../Definitions/etsi_nfv_sol001_common_types.yaml | 202 +++ .../Definitions/etsi_nfv_sol001_vnfd_types.yaml | 1465 +++++++++++++++++++ .../Definitions/sample_vnfd_df_simple.yaml | 101 ++ .../Definitions/sample_vnfd_top.yaml | 31 + .../Definitions/sample_vnfd_types.yaml | 63 + .../TOSCA-Metadata/TOSCA.meta | 12 + samples/mistral/workflows/input/create_vnfd.json | 2 +- .../tosca-templates/nsd/sample-tosca-vnfd1.yaml | 4 +- .../tosca-templates/nsd/sample-tosca-vnfd2.yaml | 4 +- .../tosca-templates/nsd/sample2-tosca-vnfd1.yaml | 4 +- .../tosca-templates/nsd/sample2-tosca-vnfd2.yaml | 4 +- .../vnfd/tosca-placement-policy-anti-affinity.yaml | 4 +- .../vnfd/tosca-vnfd-alarm-multi-actions.yaml | 2 +- .../vnfd/tosca-vnfd-alarm-respawn.yaml | 2 +- .../vnfd/tosca-vnfd-alarm-scale.yaml | 4 +- .../vnfd/tosca-vnfd-block-attach.yaml | 4 +- .../tosca-vnfd-containerized-two-containers.yaml | 4 +- .../vnfd/tosca-vnfd-containerized.yaml | 2 + .../vnfd/tosca-vnfd-cpu-dedicate.yaml | 2 +- .../vnfd/tosca-vnfd-hello-world.yaml | 2 +- .../vnfd/tosca-vnfd-host-reservation.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-hugepages.yaml | 2 +- samples/tosca-templates/vnfd/tosca-vnfd-image.yaml | 2 +- .../vnfd/tosca-vnfd-instance-reservation.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-keyname.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-mac-ip.yaml | 2 +- .../vnfd/tosca-vnfd-monitor-multi-vdu.yaml | 6 +- .../tosca-templates/vnfd/tosca-vnfd-monitor.yaml | 2 +- .../vnfd/tosca-vnfd-monitoring-vdu-autoheal.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-multi-vdu.yaml | 6 +- .../tosca-templates/vnfd/tosca-vnfd-network.yaml | 2 +- .../vnfd/tosca-vnfd-nova-flavor.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-numacount.yaml | 2 +- .../vnfd/tosca-vnfd-numadefine.yaml | 2 +- .../vnfd/tosca-vnfd-param-values.yaml | 4 +- samples/tosca-templates/vnfd/tosca-vnfd-scale.yaml | 6 +- .../tosca-templates/vnfd/tosca-vnfd-secgroups.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-userdata.yaml | 2 +- .../vnfd/tosca-vnfd-vcpu-topology.yaml | 2 +- .../tosca-templates/vnfd/tosca-vnfd-vdu-name.yaml | 2 +- samples/tosca-templates/vnfd/tosca-vnfd-vip.yaml | 4 +- ...vnfd_assign_fip_to_vdu_floating_ip_address.yaml | 2 +- ...ca_vnfd_assign_fip_to_vdu_floating_network.yaml | 2 +- .../vnffg-nsd/tosca-vnfd1-sample.yaml | 2 +- .../vnffg-nsd/tosca-vnfd2-sample.yaml | 2 +- .../tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml | 2 +- .../tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml | 2 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../Files/images/cirros-0.4.0-x86_64-disk.img | 1 - .../Files/images/cirros-0.5.2-x86_64-disk.img | 1 + samples/vnf_packages/TOSCA-Metadata/TOSCA.meta | 2 +- setup.cfg | 8 +- tacker/api/api_common.py | 25 + tacker/api/common/_filters.py | 22 +- tacker/api/validation/validators.py | 12 + tacker/api/views/vnf_lcm.py | 76 +- tacker/api/views/vnf_lcm_op_occs.py | 43 +- tacker/api/vnflcm/v1/controller.py | 57 +- tacker/api/vnflcm/v1/router.py | 4 + tacker/cmd/eventlet/tacker_server.py | 2 + tacker/common/csar_utils.py | 26 +- tacker/common/exceptions.py | 4 + tacker/common/rpc.py | 5 +- tacker/conductor/conductor_server.py | 360 +++-- tacker/context.py | 9 + tacker/db/db_base.py | 5 +- .../6dc60a5760e5_add_extra_field_to_vims_db.py | 36 + .../db/migration/alembic_migrations/versions/HEAD | 2 +- ...a23ebee909a8_introduce_sol_refactored_models.py | 97 ++ tacker/db/migration/models/head.py | 7 +- tacker/db/nfvo/nfvo_db.py | 1 + tacker/db/nfvo/nfvo_db_plugin.py | 10 +- tacker/db/nfvo/ns_db.py | 2 +- tacker/db/nfvo/vnffg_db.py | 8 +- tacker/db/vnfm/vnfm_db.py | 4 +- tacker/extensions/vnfm.py | 12 + tacker/objects/common.py | 65 + tacker/objects/heal_vnf_request.py | 6 +- tacker/objects/scale_vnf_request.py | 2 +- tacker/objects/terminate_vnf_req.py | 2 +- tacker/objects/vim_connection.py | 9 +- tacker/objects/vnf_instance.py | 10 +- tacker/objects/vnf_instantiated_info.py | 2 +- tacker/objects/vnf_lcm_op_occs.py | 59 +- tacker/objects/vnf_lcm_subscriptions.py | 6 +- tacker/objects/vnf_package.py | 16 +- tacker/objects/vnf_software_image.py | 2 +- tacker/policies/__init__.py | 2 + tacker/policies/vnf_lcm.py | 11 + tacker/policy.py | 4 +- tacker/service.py | 3 +- tacker/sol_refactored/api/api_version.py | 115 ++ tacker/sol_refactored/api/policies/vnflcm_v2.py | 170 +++ tacker/sol_refactored/api/router.py | 54 + tacker/sol_refactored/api/schemas/__init__.py | 0 tacker/sol_refactored/api/schemas/common_types.py | 244 ++++ tacker/sol_refactored/api/schemas/vnflcm_v2.py | 252 ++++ tacker/sol_refactored/api/validator.py | 49 + tacker/sol_refactored/api/wsgi.py | 180 +++ tacker/sol_refactored/common/config.py | 79 + tacker/sol_refactored/common/coordinate.py | 69 + tacker/sol_refactored/common/exceptions.py | 212 +++ tacker/sol_refactored/common/http_client.py | 237 +++ tacker/sol_refactored/common/lcm_op_occ_utils.py | 181 +++ tacker/sol_refactored/common/subscription_utils.py | 269 ++++ tacker/sol_refactored/common/vim_utils.py | 79 + tacker/sol_refactored/common/vnf_instance_utils.py | 77 + tacker/sol_refactored/common/vnfd_utils.py | 353 +++++ tacker/sol_refactored/conductor/__init__.py | 0 .../sol_refactored/conductor/conductor_rpc_v2.py | 40 + tacker/sol_refactored/conductor/conductor_v2.py | 131 ++ tacker/sol_refactored/conductor/v2_hook.py | 29 + .../sol_refactored/conductor/vnflcm_driver_v2.py | 379 +++++ tacker/sol_refactored/controller/__init__.py | 0 tacker/sol_refactored/controller/vnflcm_v2.py | 338 +++++ .../sol_refactored/controller/vnflcm_versions.py | 27 + tacker/sol_refactored/controller/vnflcm_view.py | 366 +++++ tacker/sol_refactored/db/__init__.py | 0 tacker/sol_refactored/db/api.py | 24 + tacker/sol_refactored/db/sqlalchemy/__init__.py | 0 tacker/sol_refactored/db/sqlalchemy/models.py | 100 ++ .../infra_drivers/openstack/heat_utils.py | 130 ++ .../infra_drivers/openstack/openstack.py | 535 +++++++ .../infra_drivers/openstack/userdata_default.py | 86 ++ .../infra_drivers/openstack/userdata_main.py | 59 + .../infra_drivers/openstack/userdata_utils.py | 216 +++ .../sol_refactored/mgmt_drivers/sample_script.py | 67 + tacker/sol_refactored/nfvo/glance_utils.py | 58 + tacker/sol_refactored/nfvo/local_nfvo.py | 305 ++++ tacker/sol_refactored/nfvo/nfvo_client.py | 143 ++ tacker/sol_refactored/objects/__init__.py | 125 ++ tacker/sol_refactored/objects/base.py | 440 ++++++ .../objects/common/cp_protocol_data.py | 33 + .../objects/common/ext_link_port_data.py | 32 + .../common/ext_managed_virtual_link_data.py | 40 + .../objects/common/ext_virtual_link_data.py | 37 + tacker/sol_refactored/objects/common/fields.py | 111 ++ .../common/ip_over_ethernet_address_data.py | 67 + tacker/sol_refactored/objects/common/link.py | 30 + .../objects/common/notification_link.py | 30 + .../objects/common/problem_details.py | 34 + .../objects/common/resource_handle.py | 33 + .../objects/common/subscription_authentication.py | 72 + .../objects/common/vim_connection_info.py | 34 + .../objects/common/vnf_ext_cp_config.py | 33 + .../objects/common/vnf_ext_cp_data.py | 32 + .../common/vnf_instance_subscription_filter.py | 80 + .../objects/v1/constraint_resource_ref.py | 37 + tacker/sol_refactored/objects/v1/fields.py | 43 + tacker/sol_refactored/objects/v1/grant.py | 85 ++ tacker/sol_refactored/objects/v1/grant_info.py | 38 + tacker/sol_refactored/objects/v1/grant_request.py | 64 + .../objects/v1/placement_constraint.py | 51 + .../objects/v1/resource_definition.py | 46 + .../objects/v1/snapshot_resource_definition.py | 35 + .../objects/v1/vim_compute_resource_flavour.py | 37 + tacker/sol_refactored/objects/v1/vim_constraint.py | 35 + .../objects/v1/vim_snapshot_resource.py | 35 + .../objects/v1/vim_software_image.py | 36 + .../sol_refactored/objects/v1/zone_group_info.py | 33 + tacker/sol_refactored/objects/v1/zone_info.py | 36 + .../objects/v2/affected_ext_link_port.py | 41 + .../objects/v2/affected_virtual_link.py | 49 + .../objects/v2/affected_virtual_storage.py | 46 + tacker/sol_refactored/objects/v2/affected_vnfc.py | 49 + tacker/sol_refactored/objects/v2/cancel_mode.py | 30 + .../objects/v2/change_current_vnf_pkg_request.py | 40 + .../v2/change_ext_vnf_connectivity_request.py | 35 + .../objects/v2/change_vnf_flavour_request.py | 40 + .../sol_refactored/objects/v2/cp_protocol_info.py | 34 + .../objects/v2/create_vnf_pkg_info_request.py | 31 + .../objects/v2/create_vnf_request.py | 33 + .../objects/v2/create_vnf_snapshot_info_request.py | 32 + .../objects/v2/create_vnf_snapshot_request.py | 35 + .../objects/v2/ext_link_port_info.py | 33 + .../objects/v2/ext_managed_virtual_link_info.py | 39 + .../objects/v2/ext_virtual_link_info.py | 36 + .../objects/v2/external_artifacts_access_config.py | 73 + tacker/sol_refactored/objects/v2/fields.py | 175 +++ .../sol_refactored/objects/v2/heal_vnf_request.py | 34 + .../objects/v2/instantiate_vnf_request.py | 41 + .../objects/v2/ip_over_ethernet_address_info.py | 66 + tacker/sol_refactored/objects/v2/lccn_links.py | 35 + .../sol_refactored/objects/v2/lccn_subscription.py | 55 + .../objects/v2/lccn_subscription_request.py | 38 + .../v2/lifecycle_change_notifications_filter.py | 45 + .../modifications_triggered_by_vnf_pkg_change.py | 39 + .../objects/v2/monitoring_parameter.py | 34 + .../objects/v2/operate_vnf_request.py | 36 + tacker/sol_refactored/objects/v2/pkgm_links.py | 33 + .../objects/v2/pkgm_notification_filter.py | 91 ++ .../objects/v2/pkgm_subscription_request.py | 35 + .../objects/v2/revert_to_vnf_snapshot_request.py | 35 + tacker/sol_refactored/objects/v2/scale_info.py | 32 + .../sol_refactored/objects/v2/scale_vnf_request.py | 34 + .../objects/v2/scale_vnf_to_level_request.py | 32 + .../objects/v2/terminate_vnf_request.py | 33 + .../v2/upload_vnf_package_from_uri_request.py | 58 + .../objects/v2/virtual_storage_resource_info.py | 38 + .../sol_refactored/objects/v2/vnf_ext_cp_info.py | 39 + .../v2/vnf_identifier_creation_notification.py | 36 + .../v2/vnf_identifier_deletion_notification.py | 36 + .../objects/v2/vnf_info_modification_request.py | 44 + .../objects/v2/vnf_info_modifications.py | 45 + tacker/sol_refactored/objects/v2/vnf_instance.py | 109 ++ tacker/sol_refactored/objects/v2/vnf_lcm_op_occ.py | 136 ++ .../vnf_lcm_operation_occurrence_notification.py | 61 + .../objects/v2/vnf_link_port_data.py | 32 + .../objects/v2/vnf_link_port_info.py | 36 + .../objects/v2/vnf_package_artifact_info.py | 43 + .../objects/v2/vnf_package_change_notification.py | 41 + .../v2/vnf_package_onboarding_notification.py | 39 + .../objects/v2/vnf_package_software_image_info.py | 70 + tacker/sol_refactored/objects/v2/vnf_pkg_info.py | 74 + .../objects/v2/vnf_pkg_info_modifications.py | 34 + tacker/sol_refactored/objects/v2/vnf_snapshot.py | 54 + .../sol_refactored/objects/v2/vnf_snapshot_info.py | 47 + .../v2/vnf_snapshot_info_modification_request.py | 33 + .../objects/v2/vnf_snapshot_info_modifications.py | 33 + .../objects/v2/vnf_state_snapshot_info.py | 32 + .../objects/v2/vnf_virtual_link_resource_info.py | 40 + tacker/sol_refactored/objects/v2/vnfc_info.py | 35 + .../objects/v2/vnfc_info_modifications.py | 32 + .../objects/v2/vnfc_resource_info.py | 59 + .../objects/v2/vnfc_snapshot_info.py | 52 + tacker/sol_refactored/test-tools/cli.py | 171 +++ .../test-tools/notif_endpoint_app.py | 111 ++ ...86_64-disk.img => cirros-0.5.2-x86_64-disk.img} | Bin 12716032 -> 16300544 bytes .../Definitions/helloworld3_df_simple.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 8 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../Definitions/helloworld3_df_simple.yaml | 2 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../Definitions/helloworld3_df_simple.yaml | 6 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../functional3/BaseHOT/simple/helloworld3.yaml | 14 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../functional4/BaseHOT/simple/helloworld3.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../functional5/BaseHOT/simple/helloworld3.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../functional6/BaseHOT/simple/helloworld3.yaml | 31 +- .../functional6/BaseHOT/simple/nested/VDU1.yaml | 4 + .../functional6/BaseHOT/simple/nested/VDU2.yaml | 10 +- .../Definitions/helloworld3_df_simple.yaml | 38 +- .../functional7/BaseHOT/simple/helloworld3.yaml | 100 ++ .../functional7/BaseHOT/simple/nested/VDU1.yaml | 65 + .../functional7/BaseHOT/simple/nested/VDU2.yaml | 65 + .../Definitions/helloworld3_df_simple.yaml | 413 ++++++ .../Definitions/helloworld3_top.vnfd.yaml | 31 + .../functional7/Definitions/helloworld3_types.yaml | 55 + .../etsi/nfv/functional7/TOSCA-Metadata/TOSCA.meta | 4 + .../etsi/nfv/functional7/UserData/__init__.py | 0 .../etsi/nfv/functional7/UserData/lcm_user_data.py | 35 + .../Definitions/helloworld3_df_simple.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../manifest.mf | 6 +- .../manifest.mf | 6 +- .../manifest.mf | 6 +- .../VNF.yaml | 12 +- .../nfv/sample_vnf_package_csar_manifest/VNF.mf | 6 +- .../nfv/sample_vnf_package_csar_manifest/VNF.yaml | 12 +- .../manifest.mf | 6 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../vnfd_helloworld_single.yaml | 12 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../Definitions/sample_vnfd_df_helmchart.yaml | 151 ++ .../Definitions/sample_vnfd_top.yaml | 31 + .../Definitions/sample_vnfd_types.yaml | 53 + .../Files/kubernetes/localhelm-0.1.0.tgz | Bin 0 -> 3603 bytes .../test_cnf_helmchart/TOSCA-Metadata/TOSCA.meta | 9 + .../Files/kubernetes/statefulset_fail.yaml | 36 + .../TOSCA-Metadata/TOSCA.meta | 7 +- .../Definitions/main_tosca.yaml | 2 +- .../Definitions/tosca_with_vdus.yaml | 8 +- .../Definitions/helloworld3_df_simple.yaml | 6 +- .../Definitions/tosca_with_vdus.yaml | 2 +- .../Definitions/tosca_with_vdus.yaml | 12 +- ...86_64-disk.img => cirros-0.5.2-x86_64-disk.img} | 0 .../vnfd_helloworld_single.yaml | 12 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../test_heal_grant_unit/helloworld3_types.yaml | 59 + .../etsi/nfv/test_heal_grant_unit/sample_vnfd.yaml | 144 ++ .../Definitions/helloworld3_df_simple.yaml | 6 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../sample_lcm_with_user_data_df_simple.yaml | 6 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../BaseHOT/simple/helloworld3.yaml | 101 ++ .../BaseHOT/simple/nested/VDU1.yaml | 76 + .../BaseHOT/simple/nested/VDU2.yaml | 68 + .../Definitions/helloworld3_df_simple.yaml | 403 ++++++ .../Definitions/helloworld3_top.vnfd.yaml | 31 + .../Definitions/helloworld3_types.yaml | 55 + .../TOSCA-Metadata/TOSCA.meta | 4 + .../UserData/__init__.py | 0 .../UserData/lcm_user_data.py | 39 + .../TOSCA-Metadata/TOSCA.meta | 2 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../TOSCA-Metadata/TOSCA.meta | 2 +- .../vnflcm1/Definitions/helloworld3_df_simple.yaml | 6 +- .../etsi/nfv/vnflcm1/TOSCA-Metadata/TOSCA.meta | 2 +- .../vnflcm2/Definitions/helloworld3_df_simple.yaml | 6 +- .../etsi/nfv/vnflcm2/TOSCA-Metadata/TOSCA.meta | 2 +- .../Definitions/helloworld3simple.vnfd.tosca.yaml | 6 +- .../etsi/nfv/vnflcm3/TOSCA-Metadata/TOSCA.meta | 2 +- .../vnflcm4/Definitions/helloworld3_df_simple.yaml | 12 +- .../etsi/nfv/vnflcm4/TOSCA-Metadata/TOSCA.meta | 2 +- .../etsi/nfv/vnfpkgm1/TOSCA-Metadata/TOSCA.meta | 2 +- .../Definitions/helloworld3_df_simple.yaml | 12 +- .../etsi/nfv/vnfpkgm2/TOSCA-Metadata/TOSCA.meta | 2 +- .../etc/samples/etsi/nfv/vnfpkgm2/manifest.mf | 6 +- .../etsi/nfv/vnfpkgm3/vnfd_helloworld_single.mf | 6 +- .../etsi/nfv/vnfpkgm3/vnfd_helloworld_single.yaml | 12 +- .../etc/samples/hot_lcm_user_data_with_scale.yaml | 81 ++ .../etc/samples/sample-tosca-alarm-respawn.yaml | 2 +- .../etc/samples/sample-tosca-alarm-scale.yaml | 4 +- .../sample-tosca-vnf-artifacts-image-values.yaml | 2 +- .../sample-tosca-vnfd-anti-affinity-multi-vdu.yaml | 6 +- .../samples/sample-tosca-vnfd-block-storage.yaml | 4 +- .../sample-tosca-vnfd-existing-block-storage.yaml | 2 +- .../etc/samples/sample-tosca-vnfd-flavor.yaml | 2 +- .../sample-tosca-vnfd-instance-reservation.yaml | 4 +- .../samples/sample-tosca-vnfd-large-template.yaml | 4 +- .../etc/samples/sample-tosca-vnfd-maintenance.yaml | 6 +- .../etc/samples/sample-tosca-vnfd-monitor.yaml | 2 +- ...sca-vnfd-multi-vdu-monitoring-vdu-autoheal.yaml | 4 +- .../sample-tosca-vnfd-multi-vdu-monitoring.yaml | 6 +- .../etc/samples/sample-tosca-vnfd-multi-vdu.yaml | 6 +- .../etc/samples/sample-tosca-vnfd-no-monitor.yaml | 2 +- ...ample-tosca-vnfd-placement-policy-affinity.yaml | 4 +- ...-tosca-vnfd-placement-policy-anti-affinity.yaml | 4 +- ...sample-tosca-vnfd-placement-policy-invalid.yaml | 6 +- ...ca-vnfd-single-vdu-monitoring-vdu-autoheal.yaml | 2 +- .../etc/samples/sample-tosca-vnfd-static-ip.yaml | 2 +- .../sample_tosca_assign_floatingip_to_vdu.yaml | 2 +- .../Definitions/sample_vnfd_df_complex_int.yaml | 12 +- .../Definitions/sample_vnfd_df_simple_int.yaml | 12 +- ...86_64-disk.img => cirros-0.5.2-x86_64-disk.img} | 0 .../manifest.mf | 4 +- .../etc/samples/tosca-ns-vnffg-vnfd1-sample.yaml | 2 +- .../etc/samples/tosca-ns-vnffg-vnfd2-sample.yaml | 2 +- .../legacy/vnfm/test_vnf_placement_policy.py | 7 + .../functional/sol/vnflcm/test_vnf_instance.py | 303 +++- .../sol/vnflcm/test_vnf_instance_with_user_data.py | 72 +- .../functional/sol/vnflcm/test_vnflcm_noop.py | 26 +- .../functional/sol/vnfpkgm/test_vnf_package.py | 13 +- .../sol_kubernetes/vnflcm/test_kubernetes.py | 101 +- .../sol_kubernetes/vnflcm/test_kubernetes_helm.py | 447 ++++++ .../sol_separated_nfvo/vnflcm/fake_grant.py | 9 +- .../sol_separated_nfvo/vnflcm/fake_vnfpkgm.py | 8 +- ...st_vnf_instance_with_user_data_nfvo_separate.py | 217 ++- .../contents/BaseHOT/simple/nested/VDU1.yaml | 87 ++ .../sample1/contents/BaseHOT/simple/sample1.yaml | 125 ++ .../Definitions/etsi_nfv_sol001_common_types.yaml | 202 +++ .../Definitions/etsi_nfv_sol001_vnfd_types.yaml | 1463 +++++++++++++++++++ .../contents/Definitions/v2_sample1_df_simple.yaml | 406 ++++++ .../contents/Definitions/v2_sample1_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample1_types.yaml | 55 + .../sample1/contents/TOSCA-Metadata/TOSCA.meta | 4 + .../functional/sol_v2/samples/sample1/pkggen.py | 58 + .../contents/BaseHOT/simple/nested/VDU1.yaml | 89 ++ .../sample2/contents/BaseHOT/simple/sample2.yaml | 136 ++ .../Definitions/etsi_nfv_sol001_common_types.yaml | 202 +++ .../Definitions/etsi_nfv_sol001_vnfd_types.yaml | 1463 +++++++++++++++++++ .../contents/Definitions/v2_sample2_df_simple.yaml | 406 ++++++ .../contents/Definitions/v2_sample2_top.vnfd.yaml | 31 + .../contents/Definitions/v2_sample2_types.yaml | 55 + .../sample2/contents/Scripts/sample_script.py | 67 + .../sample2/contents/TOSCA-Metadata/TOSCA.meta | 4 + .../sample2/contents/UserData/userdata_default.py | 86 ++ .../functional/sol_v2/samples/sample2/pkggen.py | 51 + .../test_extension_extended_attribute.py | 2 +- .../unit/sol_refactored/api/test_api_version.py | 62 + .../unit/sol_refactored/api/test_validator.py | 80 + .../unit/sol_refactored/common/test_coordinate.py | 80 + .../common/test_vnf_instance_utils.py | 67 + .../unit/sol_refactored/common/test_vnfd_utils.py | 151 ++ .../unit/sol_refactored/controller/__init__.py | 0 .../sol_refactored/controller/test_vnflcm_v2.py | 94 ++ .../sol_refactored/controller/test_vnflcm_view.py | 153 ++ .../unit/sol_refactored/infra_drivers/__init__.py | 0 .../infra_drivers/openstack/__init__.py | 0 .../infra_drivers/openstack/test_userdata_utils.py | 218 +++ .../sample1/BaseHOT/simple/nested/VDU1.yaml | 87 ++ .../samples/sample1/BaseHOT/simple/ut_sample1.yaml | 133 ++ .../sample1/Definitions/ut_sample1_df_simple.yaml | 411 ++++++ .../samples/sample1/Scripts/sample_script.py | 67 + .../samples/sample1/TOSCA-Metadata/TOSCA.meta | 4 + .../samples/sample1/UserData/userdata_default.py | 86 ++ .../unit/vnfm/infra_drivers/kubernetes/fakes.py | 167 ++- .../kubernetes_api_resource/api-service.yaml | 4 +- .../kubernetes_api_resource/daemon-set.yaml | 8 + .../kubernetes_api_resource/deployment.yaml | 7 + .../horizontal-pod-autoscaler.yaml | 3 + .../kubernetes/kubernetes_api_resource/job.yaml | 5 +- .../kubernetes_api_resource/limit-range.yaml | 3 +- .../kubernetes_api_resource/namespace.yaml | 6 +- .../kubernetes_api_resource/network-policy.yaml | 9 +- .../kubernetes/kubernetes_api_resource/node.yaml | 35 + .../persistent-volume-claim.yaml | 9 +- .../kubernetes_api_resource/persistent-volume.yaml | 42 +- .../kubernetes_api_resource/pod-template.yaml | 76 + .../kubernetes/kubernetes_api_resource/pod.yaml | 88 ++ .../kubernetes_api_resource/replica-set.yaml | 7 +- .../kubernetes_api_resource/resource-quota.yaml | 6 + .../self-subject-rule-review.yaml | 10 +- .../kubernetes_api_resource/stateful-set.yaml | 5 + .../kubernetes_api_resource/storage-class.yaml | 5 + .../subject-access-review.yaml | 4 +- .../kubernetes_api_resource/volume-attachment.yaml | 4 +- .../kubernetes/test_kubernetes_driver.py | 23 +- .../kubernetes/test_kubernetes_driver_helm.py | 509 +++++++ .../kubernetes/test_translate_outputs.py | 739 ++++++++-- .../etsi_nfv/tosca_generate_hot_from_tosca.yaml | 6 +- ...a_generate_hot_from_tosca_translator_error.yaml | 6 +- ..._generate_hot_from_tosca_with_params_error.yaml | 6 +- ...tosca_generate_hot_from_tosca_with_scaling.yaml | 6 +- ...t_from_tosca_with_scaling_invalid_inst_req.yaml | 6 +- ...rom_tosca_with_substitution_mappings_error.yaml | 6 +- .../openstack/data/etsi_nfv/tosca_vnfd.yaml | 6 +- .../data/etsi_nfv/tosca_vnfd_group_member.yaml | 103 ++ .../openstack/data/hot_alarm_scale_custom.yaml | 2 +- .../data/hot_image_before_processed_image.yaml | 2 +- .../infra_drivers/openstack/data/hot_openwrt.yaml | 2 +- .../openstack/data/hot_openwrt_ipparams.yaml | 2 +- .../openstack/data/hot_openwrt_params.yaml | 2 +- .../data/hot_placement_policy_affinity.yaml | 4 +- .../data/hot_placement_policy_anti_affinity.yaml | 4 +- .../hot_placement_policy_default_affinity.yaml | 4 +- .../hot_placement_policy_soft_anti_affinity.yaml | 4 +- .../openstack/data/hot_scale_custom.yaml | 2 +- .../openstack/data/hot_scale_grant.yaml | 4 +- .../openstack/data/hot_tosca_alarm_metadata.yaml | 2 +- .../openstack/data/hot_tosca_alarm_respawn.yaml | 2 +- .../hot_tosca_artifacts_image_vnfd_params.yaml | 2 +- .../data/hot_tosca_monitoring_multi_vdu.yaml | 4 +- .../test-tosca-vnfd-existing-block-storage.yaml | 2 +- .../data/test_tosca-vnfd-instance-reservation.yaml | 2 +- .../data/test_tosca_vnfd_alarm_multi_actions.yaml | 2 +- .../data/test_tosca_vnfd_alarm_respawn.yaml | 2 +- .../data/test_tosca_vnfd_alarm_scale.yaml | 4 +- .../openstack/data/tosca_alarm_metadata.yaml | 2 +- .../openstack/data/tosca_alarm_respawn.yaml | 2 +- .../openstack/data/tosca_alarm_scale.yaml | 4 +- .../openstack/data/tosca_block_storage.yaml | 4 +- .../openstack/data/tosca_monitoring_multi_vdu.yaml | 4 +- .../data/tosca_placement_policy_affinity.yaml | 4 +- .../data/tosca_placement_policy_anti_affinity.yaml | 4 +- .../tosca_placement_policy_default_affinity.yaml | 4 +- .../tosca_placement_policy_soft_anti_affinity.yaml | 4 +- .../infra_drivers/openstack/data/tosca_scale.yaml | 4 +- .../openstack/fixture_data/fixture_data_utils.py | 187 ++- .../vnfm/infra_drivers/openstack/test_openstack.py | 4 +- .../openstack/test_openstack_driver.py | 1255 ++++++++++++++-- .../openstack/test_update_template.py | 227 +++ .../unit/vnfm/infra_drivers/openstack/test_vdu.py | 4 +- .../vdu_autoheal/test_vdu_autoheal.py | 2 +- tacker/tosca/lib/tacker_defs.yaml | 6 + tacker/vnflcm/utils.py | 76 +- tacker/vnflcm/vnflcm_driver.py | 77 +- .../vnfm/infra_drivers/kubernetes/helm/__init__.py | 0 .../infra_drivers/kubernetes/helm/helm_client.py | 152 ++ .../kubernetes/k8s/translate_inputs.py | 7 +- .../kubernetes/k8s/translate_outputs.py | 135 +- .../infra_drivers/kubernetes/kubernetes_driver.py | 337 ++++- tacker/vnfm/infra_drivers/openstack/openstack.py | 564 ++++++-- .../infra_drivers/openstack/update_template.py | 98 ++ tacker/vnfm/infra_drivers/openstack/vdu.py | 3 +- tacker/vnfm/infra_drivers/scale_driver.py | 3 +- .../policy_actions/vdu_autoheal/vdu_autoheal.py | 3 +- tacker/vnfm/vim_client.py | 3 +- tacker/wsgi.py | 91 +- test-requirements.txt | 4 +- tools/install_venv_common.py | 6 +- tox.ini | 24 +- upper-constraints.txt | 575 -------- 723 files changed, 45165 insertions(+), 3289 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 7727198d..8352eaaa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4 +4 @@ -pbr!=2.1.0,>=2.0.0 # Apache-2.0 +pbr>=5.5.0 # Apache-2.0 @@ -12 +12 @@ eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT -requests>=2.20.0 # Apache-2.0 +requests>=2.25.1 # Apache-2.0 @@ -18 +17,0 @@ SQLAlchemy>=1.3.11 # MIT -sqlalchemy-filters>=0.10.0 @@ -23 +22 @@ alembic>=0.9.6 # MIT -stevedore>=1.20.0 # Apache-2.0 +stevedore>=3.3.0 # Apache-2.0 @@ -37 +36 @@ oslo.upgradecheck>=1.3.0 # Apache-2.0 -oslo.utils>=4.5.0 # Apache-2.0 +oslo.utils>=4.8.0 # Apache-2.0 @@ -49 +48 @@ castellan>=0.16.0 # Apache-2.0 -kubernetes>=11.0.0 # Apache-2.0 +kubernetes>=18.20.0 # Apache-2.0 @@ -52 +51 @@ tooz>=1.58.0 # Apache-2.0 -PyYAML>=5.1 # MIT +PyYAML>=5.4.1 # MIT @@ -58,6 +57 @@ glance-store>=2.4.0 # Apache-2.0 -# TODO(yasufum) Remove following comments after those two packages have devstack script. -# NOTE(yasufum) We don't install tosca-parser and heat-translator of stable, -# but the latest revision from git repo for development. -# If you install packages, comment out two lines of `install_package_gitrepo` in -# `devstack/plugin.sh` in addition to activate following lines. -heat-translator>=2.2.0 # Apache-2.0 +heat-translator>=2.3.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index fe0fc3db..6ae7245b 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +9 @@ ddt>=1.0.1 # MIT -doc8>=0.8.1 # Apache-2.0 +doc8>=0.9.0 # Apache-2.0 @@ -14 +14 @@ python-tackerclient>=0.8.0 # Apache-2.0 -python-cinderclient>=3.3.0 # Apache-2.0 +python-cinderclient>=8.0.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org