We are glad to announce the release of: tacker 1.0.0: OpenStack NFV Orchestration This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/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. 1.0.0 ^^^^^ Bug Fixes ********* * Earlier when Tacker service restarted, it failed to resume monitoring for VNFs.This issue is fixed and Tacker will resume monitoring for VNFs. * Fixed conflicting networking issue, When tacker install with Kubernetes VIM option. * Improve returned message of nsd-create: When creating nsd with non- existent vnfd in tosca template, it will return with NotFound error message instead of internal error. Improve returned message of create_vnffg: When create a vnffg with a missing network_src_port_id in vnffgd, instead of giving internal error it will return with FlowClassifierPortNotFound error message. * Starting from Ocata tacker payloads only accept YAML dict for config and param payload values. Hence remove the deprecation warning when something other than YAML dict is received by the API. Other Notes *********** * Tacker start using kestone v3 api only. * Multiple Test case addition, cleanup unused tests, and enabled skipped test cases. We still have multiple test cases to refactor. Changes in tacker 0.10.0..1.0.0 ------------------------------- 2ee2affb Fix issue in 'post_process_heat_template' function 8052df1c Add Stein Reno for keystone v3 usages and test refactoring 985dd303 Add release note for the fixes in stein. 63dd4c6f Replace openstack.org git:// URLs with https:// 2dd9cb5b Migrate tacker legacy jobs to Ubuntu Bionic 9ae59eec Fix dict.keys() TypeError issue. d82541e5 Add template for vdu-autoheal in sample dir. c9fee0af Move to use only kestone v3 api 1d7cd6f6 Add functional test for reservation support 2595cc11 Add reservation support 59b0586d Update json module to jsonutils 9cfab81c Python3 support 675a3e91 Remove H903 error in source. ae8f8c7d vnffg-create failed abnormally due to invalid network_src_port_id b8c56149 Remove yaml string deprecation warning 48a5f80b Update functional tests for tosca dict 1a63c1e1 add python 3.7 unit test job e8b42ca4 Improve code coverage of plugin module 4b228aa9 Correct log message inside plugin module af30f952 nsd-create failed abnormally if import sesction missing in template 81035550 Update from OS::Glance::Image to OS::Glance::WebImage d89ebde2 Remove unreachable code be6ceb11 Improve the returned Message for nsd-create e9506c84 Improve code coverage of plugin module 5a1e4a1c Parameter changed from mgmt_url to mgmt_ip_address 3ed80640 Enable skipped test cases for context 90029de5 Kubernetes VIM installation error 2ef42f1f Improve code coverage of plugin module 0e7fffbc Add support SFC encapsulation from networking-sfc ba86db64 Improve code coverage of plugin module 7888c2fa Add missing ws seperator between words 5f1e48ff Add new policy action: vdu_autoheal 4b9bcfee Fix random failing of test_init_monitoring test f860185f Modify image name to cirros-0.4.0-x86_64-disk e6445ed0 Use template for lower-constraints 866ade35 Modify UT case for config in the common directory 5ae9dd03 Add VNF to monitor after restarting tacker service 5f9d2112 Add UT cases for policy action add cases for test_autoscaling, test_respawn Partially Implements: blueprint test-addition-refactoring 0e7b4d31 Device Refactor. 02b859b9 Refactor func get_vnf_db 1af79abe Fix wrong VNFD example in Guide of Volume attach eab8c1b7 Fix the warning when generate tacker.conf.sample 85d5a4d3 Remove deprecated note for tacker cli 7b5ca7ab Change openstack-dev to openstack-discuss 6812d2a2 Device Refactor d79ea548 Update unit test case for vim_client 9926685c Improve UT test_api_common 7e2c8e5d Add UT test_router 95ee71f3 Raise exception for None vnfd_yaml. 354815af Remove unused exception class. a80777ef fixed error tacker wiki url b178fb3b Refactor create ns 601446ed fixed zabbix url support ipv6 cd858013 fixed alarm_url support ipv6 3c78af7d fixed the domain using default value. ca12522d fixed http ping vnf support ipv6 576d0b09 fixed ping vim support ipv6 ee6969a7 fixed ping vnf support ipv6 ca437bd2 Improve UT test_wsgi, reduce code duplication 0311f7ce Add UT case for policy_action VNFActionLog af1da6d5 Correct 'placement_attr' and 'region_name' in Network Service functions c7855034 fix http links to https link b898f2a2 tosca.policies.tacker.Scaling of tacker_defs.yaml define incorrect 9170a263 Refactor func and add UT in attributes 5e5301b8 fixed numa node count defined error. 43cf012e Verify the validity of cpu_affinity e3a64a58 Add UT case for common_services_db_plugin in db 99b683ff Improve UT test_resource_helper c3a129ee Refactoring UT test_resource f9414c99 Fix error in resource_help and add UT bcf269ca Support UT for agent/linux/utils.py 929183a8 Enable UT test_auth.py 29ed7787 Remove i18n.enable_lazy() call from tacker.cmd 3d583d24 Improve UT test_alarm_receiver dabd18d3 Refactoring UT directories 2350cc74 the http response code is not accurate 9906b03f Optimize func and log 3b85a611 Fixed incorrect bin name dd66889c Add missing contants 9b43ecec Fix exception msg 4a7a068d Add cover job 0f0f0a62 Fixed incorrect auth_url in doc 1c455d4d Fix incorrect argument name in multisite_vim_usage_guide 5fec9293 Update min tox version to 2.0 bb3fabe4 Fix errors in vnfd_template_description bcd46a9e Fix image fit width in Tacker doc 9a7ce4f8 Update Keystone auth_url in vim_config.yaml fb06b7c9 Add framework for tacker-status upgrade check dca93331 Add notes about the path of tacker commands 908222d3 Fix missing 'region_name' parameter 2ea54619 Correct '/v3' suffix to auth_url 16253a85 Remove tacker command guide in docs f805cd77 spelling error e5f9d249 Imported Translations from Zanata 6e5c82b5 Fix typo for Getting Started session dbe024de Clean up unused VNF status fc1e3686 Add blueprints notes link to README 0d617832 python3 compatibility changes 0b60eb57 Update README by adding release notes URL 6b9d92c5 Handle exceptions while monitoring VNF 96e859bd add more details on tacker installation via devstack c93c9ebe Remove hard coding of policy_type value fe8ea462 add python 3.6 unit test job 50dd94b1 switch documentation job to new PTI bf4a63ee import zuul job settings from project-config 21bd3f13 Update reno for stable/rocky f1e8bdd5 Switch to oslo_messaging.ConfFixture.transport_url Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 70 +- CONTRIBUTING.rst | 2 +- README.rst | 13 +- api-ref/source/v1/nss.inc | 6 +- api-ref/source/v1/parameters.yaml | 8 +- .../source/v1/samples/nss/nss-create-response.json | 2 +- .../v1/samples/nss/nss-inline-create-response.json | 2 +- .../source/v1/samples/nss/nss-list-response.json | 2 +- .../source/v1/samples/nss/nss-show-response.json | 2 +- .../v1/samples/vnfs/vnfs-create-response.json | 2 +- .../source/v1/samples/vnfs/vnfs-list-response.json | 2 +- .../source/v1/samples/vnfs/vnfs-show-response.json | 2 +- .../v1/samples/vnfs/vnfs-update-response.json | 2 +- api-ref/source/v1/vnfs.inc | 8 +- contrib/tacker-config/vnffg-clean.sh | 56 + contrib/tacker-config/vnffg-config.sh | 64 ++ devstack/lib/kubernetes_vim | 41 - devstack/lib/tacker | 2 +- devstack/local.conf.example | 9 +- devstack/local.conf.kubernetes | 70 ++ devstack/local.conf.standalone | 2 +- devstack/plugin.sh | 7 - devstack/settings | 36 +- devstack/vim_config.yaml | 2 +- .../contributor/encrypt_vim_auth_with_barbican.rst | 2 +- .../contributor/vnfd_template_description.rst | 4 +- .../reference/mistral_workflows_usage_guide.rst | 4 +- .../reference/reservation_policy_usage_guide.rst | 513 +++++++++ etc/config-generator.conf | 2 +- lower-constraints.txt | 5 +- ...r-after-restarting-tacker-cf953f8b3bf2a6ba.yaml | 5 + ...eservation-policy-support-0a197cfc7659cddf.yaml | 4 + ...support-nsh-encapsulation-7587127e4201fa26.yaml | 6 + ...d-upgrade-check-framework-33d6e16e24a50207.yaml | 8 + .../add-vdu-autoheal-action-42dd5f23c5ba8d34.yaml | 11 + ...es-VIM-installation-error-cd7b5fb014518989.yaml | 5 + .../improve-turned-messages-9b72119497194be5.yaml | 10 + .../only-keystone-v3-api-34921ef963431613.yaml | 4 + ...ve-deprecated-YAML-string-856511b2f72ecb40.yaml | 6 + .../test-cases-refactoring-4e665160d8d90aef.yaml | 5 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 121 ++- releasenotes/source/rocky.rst | 6 + requirements.txt | 4 +- samples/mistral/workflows/create_vnf.yaml | 6 +- .../vnfd/tosca-placement-policy-anti-affinity.yaml | 4 +- .../tosca-vnfd-host-reservation-param-values.yaml | 5 + .../vnfd/tosca-vnfd-host-reservation.yaml | 103 ++ ...sca-vnfd-instance-reservation-param-values.yaml | 6 + .../vnfd/tosca-vnfd-instance-reservation.yaml | 107 ++ .../vnfd/tosca-vnfd-monitoring-vdu-autoheal.yaml | 55 + .../vnfd/tosca-vnfd-param-values.yaml | 1 + .../vnfd/tosca-vnfd-with-params.yaml | 55 +- .../tosca-templates/vnffgd/tosca-vnffg-vnfd1.yaml | 1 + .../tosca-templates/vnffgd/tosca-vnffg-vnfd2.yaml | 1 + .../vnffgd/tosca-vnffgd-correlation.yaml | 61 ++ samples/vim/vim_config.yaml | 2 +- setup.cfg | 10 +- tacker/_i18n.py | 4 - tacker/agent/linux/utils.py | 32 - tacker/alarm_receiver.py | 17 +- tacker/api/api_common.py | 19 +- tacker/api/v1/attributes.py | 11 +- tacker/api/v1/resource_helper.py | 7 +- tacker/auth.py | 33 +- tacker/cmd/eventlet/conductor.py | 2 + tacker/cmd/eventlet/tacker_server.py | 4 +- tacker/cmd/status.py | 53 + tacker/common/clients.py | 4 +- tacker/common/constants.py | 3 + tacker/common/exceptions.py | 7 +- tacker/common/utils.py | 15 +- tacker/conductor/conductor_server.py | 2 + tacker/context.py | 72 +- .../versions/6e56d4474b2a_blob_to_json_text.py | 6 +- .../db/migration/alembic_migrations/versions/HEAD | 2 +- .../cd04a8335c18_mgmt_url_to_mgmt_ip_address.py | 38 + tacker/db/nfvo/ns_db.py | 24 +- tacker/db/nfvo/vnffg_db.py | 17 +- tacker/db/types.py | 7 +- tacker/db/vnfm/vnfm_db.py | 85 +- tacker/extensions/common_services.py | 2 +- tacker/extensions/nfvo.py | 15 +- tacker/extensions/vnfm.py | 25 +- tacker/locale/de/LC_MESSAGES/tacker.po | 1125 ++++++++++++++++++++ tacker/locale/es/LC_MESSAGES/tacker.po | 13 +- tacker/nfvo/drivers/vim/openstack_driver.py | 118 +- tacker/nfvo/drivers/workflow/workflow_generator.py | 38 +- tacker/nfvo/nfvo_plugin.py | 48 +- .../workflows/vim_monitor/vim_monitor_utils.py | 2 +- .../nfvo/workflows/vim_monitor/vim_ping_action.py | 9 +- tacker/objects/__init__.py | 27 + tacker/objects/base.py | 48 + tacker/objects/fields.py | 22 + tacker/objects/heal_vnf_request.py | 42 + tacker/plugins/common/constants.py | 15 +- tacker/policy.py | 45 +- tacker/service.py | 2 +- .../sample-tosca-vnf-artifacts-image-values.yaml | 10 + .../sample-tosca-vnfd-anti-affinity-multi-vdu.yaml | 6 +- .../sample-tosca-vnfd-instance-reservation.yaml | 90 ++ ...sca-vnfd-multi-vdu-monitoring-vdu-autoheal.yaml | 88 ++ .../sample-tosca-vnfd-param-artifacts-image.yaml | 104 ++ ...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 | 55 + .../vnfm/test_tosca_vnf_block_storage.py | 24 +- .../functional/vnfm/test_tosca_vnf_floatingip.py | 2 +- .../functional/vnfm/test_tosca_vnf_multiple_vdu.py | 9 +- .../functional/vnfm/test_tosca_vnf_reservation.py | 244 +++++ .../functional/vnfm/test_vnf_placement_policy.py | 9 +- .../test_v2_extension.py} | 4 +- .../v1/test_resource.py} | 78 -- .../{test_common_log.py => common/test_log.py} | 0 .../{test_common_utils.py => common/test_utils.py} | 0 .../test_common_services_db_plugin.py | 159 +++ .../test_common_services.py} | 2 +- .../test_extension_extended_attribute.py | 2 +- .../nfvo/drivers/vim/test_kubernetes_driver.py | 2 +- .../unit/nfvo/drivers/vim/test_openstack_driver.py | 37 +- .../drivers/workflow/test_workflow_generator.py | 50 +- .../unit/nfvo/workflows/vim_monitor/__init__.py | 0 .../{test_tacker_context.py => test_context.py} | 13 +- .../test_tosca_templates_under_samples.py | 2 +- .../data/hot_image_after_processed_image.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 +- .../data/hot_tosca_allowed_address_pairs.yaml | 2 +- .../hot_tosca_artifacts_image_vnfd_params.yaml | 46 + .../openstack/data/hot_tosca_image.yaml | 2 +- .../openstack/data/hot_tosca_mac_ip.yaml | 2 +- .../openstack/data/hot_tosca_security_groups.yaml | 2 +- .../data/test_tosca-vnfd-instance-reservation.yaml | 90 ++ .../openstack/data/test_tosca_parser_failure.yaml | 27 + .../data/test_tosca_post_process_template.yaml | 75 ++ .../data/tosca_artifacts_image_vnfd_params.yaml | 84 ++ .../data/tosca_flavor_with_wrong_cpu.yaml | 36 + .../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 +- .../vnfm/infra_drivers/openstack/test_openstack.py | 146 ++- .../unit/vnfm/infra_drivers/openstack/test_vdu.py | 162 +++ .../monitor_drivers/http_ping/test_http_ping.py | 12 +- .../unit/vnfm/monitor_drivers/ping/test_ping.py | 12 +- .../policy_actions/autoscaling/test_autoscaling.py | 51 + .../vnfm/policy_actions/respawn/test_respawn.py | 73 ++ .../vnfm/policy_actions/vdu_autoheal/__init__.py | 0 .../vdu_autoheal/test_vdu_autoheal.py | 147 +++ tacker/tosca/lib/tacker_defs.yaml | 44 +- tacker/tosca/lib/tacker_nfv_defs.yaml | 22 + tacker/tosca/utils.py | 162 ++- tacker/vnfm/infra_drivers/abstract_driver.py | 8 +- .../infra_drivers/kubernetes/kubernetes_driver.py | 8 +- .../infra_drivers/kubernetes/translate_template.py | 5 +- tacker/vnfm/infra_drivers/noop.py | 7 +- tacker/vnfm/infra_drivers/openstack/constants.py | 23 + tacker/vnfm/infra_drivers/openstack/heat_client.py | 9 + tacker/vnfm/infra_drivers/openstack/openstack.py | 154 +-- .../infra_drivers/openstack/translate_template.py | 19 +- tacker/vnfm/infra_drivers/openstack/vdu.py | 91 ++ tacker/vnfm/keystone.py | 23 +- tacker/vnfm/mgmt_drivers/abstract_driver.py | 4 +- tacker/vnfm/mgmt_drivers/noop.py | 6 +- tacker/vnfm/mgmt_drivers/openwrt/openwrt.py | 14 +- tacker/vnfm/monitor.py | 180 +++- .../vnfm/monitor_drivers/ceilometer/ceilometer.py | 5 + tacker/vnfm/monitor_drivers/http_ping/http_ping.py | 5 + tacker/vnfm/monitor_drivers/ping/ping.py | 8 +- tacker/vnfm/monitor_drivers/zabbix/zabbix.py | 12 +- tacker/vnfm/plugin.py | 203 +++- .../vnfm/policy_actions/autoscaling/autoscaling.py | 19 +- tacker/vnfm/policy_actions/log/log.py | 25 +- tacker/vnfm/policy_actions/respawn/respawn.py | 17 +- .../vnfm/policy_actions/vdu_autoheal/__init__.py | 0 .../policy_actions/vdu_autoheal/vdu_autoheal.py | 70 ++ tacker/vnfm/utils.py | 34 + tacker/vnfm/vim_client.py | 12 +- tacker/wsgi.py | 4 +- test-requirements.txt | 1 + tox.ini | 4 +- 267 files changed, 8351 insertions(+), 1769 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 86e36814..5525b594 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,0 +35 @@ oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.upgradecheck>=0.1.0 # Apache-2.0 @@ -35,0 +37 @@ oslo.utils>=3.33.0 # Apache-2.0 +oslo.versionedobjects>=1.33.3 # Apache-2.0 @@ -40 +42 @@ tosca-parser>=0.8.1 # Apache-2.0 -heat-translator>=1.1.0 # Apache-2.0 +heat-translator>=1.3.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index c5513f25..442e5a46 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -20,0 +21 @@ python-barbicanclient>=4.5.2 # Apache-2.0 +python-blazarclient>=1.0.1 # Apache-2.0