Fixed the problem that "vnflcm_mgmt_driver = vnflcm_noop" does not exist
in /etc/tacker/tacker.conf after installing the tacker.
In setup.cfg, change vnflcm_drivers to vnflcm_driver.
In etc/config-generator.conf, add "namespace = tacker.vnflcm.vnflcm_driver".
Closes-Bug: #1918232
Change-Id: I50ffb4c96837599dcb0d04dd673e0c4681ffedfa
In the following patch [1], FT error was solved by removing
"CELLSV2_SETUP: singleconductor" and setup as a superconductor, but
after merging the patch, other error is become to occur in the
anti-affinity test in the legacy FT.
[1] https://review.opendev.org/c/openstack/tacker/+/775958
Because, anti-affinity may not work well in a environment with nova
installed as multi-cell [2].
[2] https://opendev.org/openstack/tacker/commit/b20812678bdb5266f4483b2e55c582167a605e
And db dependency error that occurred when setting single cell before
have been resolved by merging the following patches of devstack [3].
[3] https://review.opendev.org/c/openstack/devstack/+/775940
Therefore, this patch revert `CELLSV2_SETUP: singleconductor` in
".zuul.yaml" to resolve error of legacy anti-affinity test.
Change-Id: Ia1bb10daf426820b44487c85fbffd3b7ff5c0f39
These translation sections are not needed anymore,
* extract_messages
* compile_catalog
* update_catalog
As Babel can generate translation files without them.
Change-Id: I2ec08d6b9c26795f77226e324d642662412fe0de
* Enable VNF vendors to customize configuration methods
for applications via MgmtDriver
* Load LCM interface from vnfd file
* Call LCM methods from vnflcm_driver
* Fix unitentional mgmt_calls in vnflcm_driver._scale_vnf_pre
Note:
* For UT, sqlalchemy is used, which calls functions in pymysql.py,
so the dependency module PyMySQL needs to be added.
* The previous implementation of ``cfg.CONF.tacker.infra_driver``
depends on the default config in legacy ``VNFMPlugin`` class in
tacker/vnfm/plugin.py, so we need to fix this here.
* Due to drop unitentional mgmt_calls, it makes compatibility breakage
for some scale actions calls and third party driver support. This
backward incompatibility was decided to keep since it is not long
time since last change(Victoria release)
Change-Id: Ib4ad3eb9e0a84d1a5e807d2e6004e6b2c02bf3cf
Latest devstack is supporting async (parallel) task.[1]
[1] https://review.opendev.org/c/openstack/devstack/+/771505
This patch change to use async task for the following effects:
* Resolve the `RETRY_LIMIT` error that is occurring on FT
* Reduce time of functional test in Zuul
Change points of .zuul.yaml:
* For async task, I added the `DEVSTACK_PARALLEL` parameter and set it
to True.
* Removed `CELLSV2_SETUP: singleconductor` to avoid FT error that is
caused by nova db dependency issues. (Changed to work with the
recommended default value `supperconductor`)
Change-Id: I7bb116f80d6327257257ec8e1eebc0bd95d109a0
In VNF LCM API document, there is a Notification API
where Tacker doesn't have an endpoint.
Therefore, the API definition is unnecessary and
should be removed.
Change-Id: If0272e3211da2c1372551fcb47f8bf99c10a468e
Closes-Bug: #1913665
python-mistralclient upgraded to v4.2.0 on 2021-01-26.
v4.2.0 include change of the patch [1], and this patch changed argument
of ExectutionManager.create() method.
[1] https://review.opendev.org/c/openstack/python-mistralclient/+/764897
Tacker uses above method for creating VIM monitoring task during user
will register VIM.
So, this patch fix argument of mistral_client.executions.create() method
in NfvoPlugin to adapt to python-mistralclient v4.2.0 and enable to set
up vim monitoring successfuly.
And updated the python-mistralclient version of `requirements.txt`,
`lower-constraints.txt` and `upper-constraints.txt`.
After merging this patch, the user must upgrade python-mistralclient to
v4.2.0 in order for the VIM registration state to REACHABLE.
Closes-Bug: #1914737
Change-Id: Ia02b917f0dabc715575ab7f4c93cba0ff68380b6
As some of tests are changed to use upper-constraints.txt in [1], we
need to update this file if [2] is updated.
[1] Commit: 500d2eb780 "Change tosca-parser and heat-translator install"
[2] https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt
Change-Id: If619e2e0790be96baf469c67d75151aeb656edd1
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
Sometimes tacker-functional-devstack-multinode-sol-separated-nfvo
fails because of timeout of heat stack creation.
This patch increases timeout value of heat stack creation.
Change-Id: I825a60ac2261c8d47ca4273318f51221be36bb9e
This patch add a kubernetes cluster for the kubernetes related
functional tests of the VNF LCM in the zuul environment.
There is no impact to the existing jobs because this patch only
add a new job, however we may need to watch the load on the Zuul
environment due to its parallel jobs.
A new node-set consists of four nodes;
* Controller: Keystone, Nova, Neutron, Glance, Cinder, Octavia,
MySQL, MQ, ETCD
* Controller-tacker: Tacker, Tacker-conductor
* Controller-k8s: kuryr-k8s, kuryr-CNI, k8s-api, kubelet
* Compute: Nova-compute
All kubernetes resources are created on the controller-k8s node.
This patch includes the following changes:
* Added a execution command for the functional test of related
k8s for the VNF LCM in tox.ini.
* Registered a vim of the `kubernetes` type by ansible. Also
added related materials.
* Moved the functional test files for k8s to other new directory.
* Fixed a minor invalid definition in the definition file used
for functional testing.
Change-Id: I1621b904450e94d6793b4c524de6785520f2e805
This patch is provisional workaround for bug [1].
I think possible ways to fix the bug are using the kubernetes
python client v11.0.0. However, as a other issue, the
ControllerRevision resources is not delete and remain. The
problem of resources remaining cannot be solved immediately.
Therefore, add a skip decorator to skip the Functional Test of
ControllerRevision as a workaround.
The added skip decorator will be removed after this issue
completely resolved.
[1] https://bugs.launchpad.net/tacker/+bug/1910327
Partial-Bug: #1910327
Change-Id: I6bedc5c8c712c9cf7d95ae5cb7384c4dea187108
CLI commands developed in Victoria
are added in CLI doc.
This patch adds the following CLI commands:
* Heal VNF
* Scale VNF
* Rollback VNF lifecycle management operation
In addition, this patch makes the following minor fixes:
* Fix the item numbers
* Use capital letters with underscores for parameters
For the second point, I referred to the following reference.
https://docs.openstack.org/doc-contrib-guide/writing-style/code-conventions.html
Change-Id: I5383d0cf54793dfba1c496ca738acdea3c28864e
Previously get_base_nest_hot_dict() was called by vnflcm_driver
and openstack infra_driver redundantly.
This patch remove calling get_base_nest_hot_dict() from
vnflcm_driver because HOT is openstack specific.
base_hot_dict parameter of infra_driver interface is removed
at the same time.
Note that vnf_package_path parameter is passed to infra_driver
always since it is used by both openstack and kubernetes.
Change-Id: I94fc914f58747ae75651480ec11b177140fa849a
In python 3, all strings are considered as unicode string.
This patch drops the explicit unicode literal (u'...')
or (u"..") appearances from the unicode strings.
Note: The scope of the patch is to drop unicode literal prefix
from python source code files, documentation and comment are overlook.
Change-Id: I66389d3f4b236a50bd3f193d4e67c2ac10e6ca24
Previously get_base_nest_hot_dict() used by tacker-conductor
opens and reads HOT template files but does not close them.
As a result, tacker-conductor will reach the limit of open
file descriptor while it is running long time.
This patch fixes to close HOT template files after read
them.
This patch makes some clean-ups too.
* use existing method to make path construction and make it easy to
understand.
* remove _get_base_hot_dict() because it was replaced to
get_base_nest_hot_dict() and is not used anywhere now.
And it is considerd that it will not be used any more.
* remove meaningless array to tupple translation.
* same bug fix and clean-ups are applied in the same file.
Closes-Bug: #1913978
Change-Id: I6ffdadc196cf2ddcec3625c6bd99b5133e37af4b
Parameter `plugin` is added while invoking kubernetes_driver.instantiate_vnf()
in vnflcm_driver.py, occurs a parameter unmatch error, also affects FT.
This patch adds `plugin` with default value `None` in instantaite_vnf()
Closes-Bug: 1905343
Change-Id: I5e253d71e7b0f0dcdb5698d68f9fd8ff06d1e5a7
The current tacker code base is using old doc8 version 0.6.0,
refer [1] for details.
This patch bumps the latest doc8 lib version, doc8 lib supports
python 3.6 starting from version 0.8.1.[2]
[1] https://pypi.org/project/doc8/0.6.0/
[2] https://pypi.org/project/doc8/
Change-Id: I7dc3fd9a9f0bc909d335ffdec771351c842a30c0
This patch attaches already created volume to vnf using volume id.
The existing volume id can be added to tosca.nodes.BlockStorage node,
in this case, no new volume will be created while vnf deployment.
Implementation:
* Set tosca.nodes.BlockStorage.Tacker "size" required as false,
this override property definition mention in
tosca.nodes.Storage.BlockStorage present in tosca parser.
Please refer [1] for tosca.nodes.Storage.BlockStorage details.
* Add a local dictionary to store volume id present in
tosca.nodes.BlockStorage.Tacker. This dictionary is use in
to determine cinder volume mapping.
Additionally update block_storage_usage_guide.rst with changes
required to attach existing volume.
Added cinderclient in test_requirement for functional test case.
Add release notes for feature.
[1]: http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/csprd01/TOSCA-Simple-Profile-YAML-v1.2-csprd01.html
Change-Id: If5d386a64f98603de843f96287c1e296ae6a2e1f
Implements: blueprint attach-existing-volume
Need to change data size of `instance_id` in the VNF table to
String(12800) from String(64).
We don't have an appropriate ID for instance_id for CNF case, so we use
the object information instead as a workaround.
If it leave the definition of String(64) as it is, a "Data too long for
column" error will occur during CNF operation, because instance_id
store kubernetes object information such as following:
----
'instance_id': "
{'namespace': 'default', 'name': 'vdu1',
'apiVersion': 'apps/v1', 'kind': 'Deployment'},
{'namespace': 'default', 'name': 'pv1',
'apiVersion': 'core/v1', 'kind': 'PersistentVolume'},
... (**Contains the deployed kubernetes resources)
{...}"
----
Reason of changing string size to 12800:
Resize to 12800 so that it can store approximately 100 resources when
it requires 128 characters per resource.
This 12800 characters is under the limit of 65535 bytes per entry,
even for the maximum length character set (4 bytes) [1].
(instance_id's size (12800 * 4) + other total size(3044) < 65535)
`other total size` means the capacity used other than instance_id in
the VNF table.
[1] https://dev.mysql.com/doc/refman/8.0/en/charset-charsets.html
Closes-Bug: 1909011
Change-Id: I50db6f86cd8c164efeab2f0ebbe8ec0258a5ef1d
As per the community goal of migrating the policy file
the format from JSON to YAML[1], we need to do two things:
1. Change the default value of '[oslo_policy] policy_file''
config option from 'policy.json' to 'policy.yaml' with
upgrade checks.
2. Deprecate the JSON formatted policy file on the project side
via warning in doc and releasenotes.
Also replace policy.json to policy.yaml ref from doc and tests.
[1]https://governance.openstack.org/tc/goals/selected/wallaby/migrate-policy-format-from-json-to-yaml.html
Change-Id: I6fc6f7d95e4efde6ea3bd0f1e4134aa54ce3889a
This patch adds new test with separated NFVO such as Grant API.
The test requires additinal config of Tacker, and we cannot use
Tacker with such config for other tests. So we add new FT set for
separated NFVO environment.
Change-Id: I9fb5ef027b9010becc088ca0b66138bcf52512c2
FT execution time in Zuul is about to exceed its timeout. This patch
make the existing dsvm-functional FT job to be separated to two jobs;
* dsvm-functional-legacy
* dsvm-functional-sol
This patch fixes the unstable FT results in zuul FT jobs:
* test_rollback_instantiate:
``depends_on`` in BaseHOT makes stable deletion of stacks, otherwise
Heat fails to delete subnets due to missing dependency with ports.
* test_vnf_alarm_scale_with_instance_reservation:
"--concurrency 1" enables to run test without any VMs on hosts,
otherwise Blazar fails to add hosts into the freepool.
Changes:
* Split the FT directory to legacy and sol
* Create new tox envs for FT of legacy and of SOL
* Relative path are changed due to the new directory structure
* Add ``depends_on` parameter in BaseHOT
* Set "--concurrency 1" for both of the new FT jobs
Change-Id: I4c66353eada16f7e51d7ed1c1999cf50635b9dce
As some of tests are changed to use upper-constraints.txt in [1], we
need to update this file if [2] is updated.
[1] Commit: 500d2eb780 "Change tosca-parser and heat-translator install"
[2] https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt
Change-Id: I4ea5b8c64800d5cc9c8446ec456ada4b42b255c7
Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>
This patch fixes the broken devstack plugin script and slightly changes
the way the var IS_ZUUL_FT is used. When the var is unset, a bash unary
operator expected error should've been emitted because of this part:
${IS_ZUUL_FT+yes}. Unset vs set was a bit confusing so this patch not
only fixes the part but forces the var into always being set and changes
it to "True" vs "False".
Change-Id: I25b418f7776d0d9a00fcf7846a406aba62d40190