We currently use a legacy devstack-gate script
to create the bgp speaker, and peer required
to communicate to and from the tenant private
IPv6 networks.
Move this logic to the devstack plugin so that
we can invoke it automatically with the existing
devstack variable MANILA_SETUP_IPV6.
Change-Id: Iea90e3f04ae05e5783c3163bbf2d2dabd128c7b5
To set up some first party backends such as
ZFSOnLinux, CephFS via NFS gateway, Container
(where the NAS server is containerized) and LVM,
manila's devstack plugin creates a NAS server
on the devstack host.
On test machines, access to this NAS server is
firewalled from networks outside of the host's
internal network namespace (including from private
project networks that are in different network
namespaces, on the same devstack host).
We currently use a legacy devstack-gate script
to disable firewall on NFS ports; however,
anyone that installs devstack with LVM, Container,
ZFSOnLinux, CephFS-NFS drivers will need these
firewall ports to be opened to be able to mount
shares exported off their devstack host machines.
Move these firewall commands to the devstack plugin.
These commands can be invoked by setting the localrc
variable MANILA_ALLOW_NAS_SERVER_PORTS_ON_HOST to True.
The value of this variable is False by default,
to preserve existing behavior.
Change-Id: Ic9cad47662f1edf2e5c710dbe64d580bc5f01d44
This patch improves the operation of create share from snapshot
to support different backends/hosts for the zfsonlinux driver
Partially-implements: bp create-share-from-snapshot-in-another-pool-or-backend
Depends-On: Iab13a0961eb4a387a502246e5d4b79bc9046e04b
Change-Id: I124803734c81d3630c5147f5f3bb75724489c929
This patch enables the replication test to run on Dummy driver
when configured with DHSS True. This change depends on subnets
implementation to properly work.
Change-Id: Ib6a44d8f0d8c56acd149b8d80549079f771ffbe0
Depends-On: Icb93fc346b71edc7bb3ac989e9751899bb80fbe5
manila-tempest-plugin can be installed with its
devstack plugin; Installing it via manila's plugin
is unnecessary. So, deprecate its installation
in the DevStack plugin.
Change-Id: I21c08069ff82b3bfb52ef7ac960183ddc866c2ee
Restoring the default IPv6 route is not needed in CI and
fails when there are multiple defaults, but it is useful
in local devstacks where multiple default routes are not
typical.
Add a variable in settings and use it to make this behavior
conditional and set it to False for the lvm job.
Closes-bug: #1836788
Change-Id: Id73de8100509ec5935641f5f35f93f482d108bcd
The pre test hook for gate tests has a faulty test
for whether the PYTHON3_VERSION variable is set and
as a result puts a blank value for this variable in
local.conf when it is not set instead of leaving it
out of local.conf altogether. This causes jobs
running with USE_PYTHON3=True and no explict version
setting to actually run manila under python 2.7 because
that is what devstack itself defaults for pip installs
if the version is not set (or auto-detected in devstack
when local.conf does not contain the PYTHON3_VERSION
variable at all).
So correct the condition in our pre-test hook so that
it only inserts a PYTHON3_VERSION in local.conf if
that version has been supplied.
Closes-bug: #1822178
Change-Id: Ie37595bde17d18770d82fb7fd6475dcfab74a543
Switch manila to use devstack common functions
for deploying a wsgi app under uwsgi and apache.
This change aims to fulfill the community requirement
for all projects on OpenStack to switch devstack jobs
to deploy control-plane API services under uwsgi with
Apache acting as a front end proxy.
More details in https://governance.openstack.org/tc/goals/pike/deploy-api-in-wsgi.html
We used to deploy with mod_wsgi, but mod_wsgi has many
issues when being used in devstack for development or testing.
Now we leave mod_wsgi as optional and we default to uwsgi.
Implements: bp wsgi-web-servers-support
Depends-On: https://review.openstack.org/#/c/643188/
Change-Id: I12d4c864f2ceb0f3555e32d2dc893e00dbef0d96
This patch adds Manage/Unmanage of share servers in
Manila. It also updates the Manage Share API to accept
a "share_server_id" parameter, and updates Unmanage
of Share and Snapshots API to allow unmanaging of
shares and snapshots in DHSS=True.
Managed share servers are not deleted automatically
by manila, and if a single share is unmanaged in
DHSS=True, the respective share server will not be
deleted automatically as well.
Managing share servers require that the driver
implements 2 functions:
- get_share_server_network_info: obtain IPs from
share server.
- manage_server: perform required operations to
manage and return dict of backend_details.
Unmanaging share servers require that the driver
overrides unmanage_server function.
The IPs obtained from the backend are validated
by the Network plugin, so ports with the exact
IPs must exist in the subnet and admin subnet
associated with the share network specified
when managing the share server (unless
StandaloneNetworkPlugin is used).
It is recommended to rename the backend resource
if possible when managing the share server, to
prevent issues with re-managing a share server
that has already been managed.
This patch bumps the API microversion to 2.49.
APIImpact
DocImpact
Depends-On: I17c74b2aa242918188eeff368232c762a4b31093
Partially-implements: bp manage-unmanage-with-share-servers
Change-Id: I108961e7436ba13550ef2b8f02079c6e599a6166
This patch implements managing and unmanaging of share
servers and shares functionality to the Container driver.
Depends-On: I452c2a99b186f53d737cb7fbd7eabfcfd9b249d6
Implements: bp container-driver-manage-unmanage-with-share-servers
Change-Id: I623c88dd1155740f0a444d2063236d91efd3bd1e
Every enabled backend gets assigned to its own AZ.
Test cases in manila-tempest-plugin already exercise
creating shares (and replicas) across AZs when
multiple AZs are available.
This is done for all back-end drivers that are not
the Generic driver. Configuring backend AZ for each
Generic driver based back end will require configuring
Nova and Cinder in a similar fashion.
Partially-implements: bp per-backend-availability-zones
Depends-On: https://review.openstack.org/#/c/630886/
Depends-On: https://review.openstack.org/#/c/629958/
Change-Id: I1b6ff535a22f10e70d379377767c8ffac3ef5286
And use a 'file://' url for the custom manila image.
See also https://review.openstack.org/#/c/623330. These
are interdependent patches but no harm is done by merging
this one first and having 623330 depend on it since retrieval
of the image name is not working correctly anyways.
Partial-Bug: #1807969
Change-Id: Ib3a74d170f159dfbc38b5302f00800f3530f4921
Pre-create config and log directories and
update Quagga service configuration.
This patch does not add Bionic support to the gate
jobs. https://review.openstack.org/#/c/608761/ does
the job configuration changes to run with Bionic.
Needed-By: https://review.openstack.org/#/c/608761/
Change-Id: I146ab5a41c06df2b2615ebdb38aaeb972db4c1d2
Make default share type and group type
creation optional in
manila-tempest-minimal-dsvm-dummy job.
Depends-On: https://review.openstack.org/#/c/540070/
Change-Id: I585c15d9eb4eefb843df62f7aad08838c83611e2
If the version's being bumped on manila,
the newer API changes cause test failures with
manila-tempest-plugin.
We could carefully craft a
manila-tempest-plugin changeset that fixes
any incongruous test assumptions and make the
manila change depend on the tempest changeset.
However, that may make developing the API harder
than it is today.
Change-Id: Ie97fb49b38b565dcc57332db8b42605216372aa8
Related-Bug: #1781671
Add MANILA_TEMPEST_MIN_API_MICROVERSION and
MANILA_TEMPEST_MAX_API_MICROVERSION to the ci
post_test_hook. These options default to
the values specified in the api_version_request.py
file.
Also add the API Version History to the api-ref.
Change-Id: I21b3a705986216afb0ce73ca1f92571dda757408
Closes-Bug: #1781671
Manila's post_test_hook runs tempest after
populating tempest.conf with the requisite
options, the results from tempest are saved
prior to performing some post tasks, including
deciding to run tests again with a different
configuration if necessary
(Ex: manila-tempest-minimal-dsvm-dummy). The
result is then replayed at the end of the gate
job so it can be reported to gerrit as a
SUCCESS or a FAILURE.
Fix the mis-aligned command that saves the
test execution status to replay later.
Change-Id: I1578760697aeae6e20bf567c60fbcdee0a642bee
Closes-Bug: 1770183
'standalone_network_plugin_ip_version' option has been
deprecated. This option has been replaced by
'network_plugin_ipv4_enabled' and
'network_plugin_ipv6_enabled' options.
Change-Id: I0251fecddac74578698bcda5d46e44ca16bd8a76
And don't enlist manila-tempest-plugin for installation in venv-tempest.
Change-Id: I0844cdb48b9d415bd341c4687620412178be871b
Signed-off-by: Rishabh Dave <ridave@redhat.com>
TEMPEST_SERVICES global variable is not supported by devstack since long back.
- I380dd20e5ed716a0bdf92aa02c3730359b8136e4
- I9c24705e494689f09a885eb0a640efd50db33fcf
Service availability of tempest known services will be set by devstack with
local check.
- I02be777bf93143d946ccbb8e9eff637bfd1928d4
This commit removes the unused TEMPEST_SERVICES setting
Change-Id: I2c6f3cd67094002c415ce9d1018c0f08d9a2a22f
Related-Bug: #1743688
This change complements the work of preceding IPv6 scenario
test changes [1,2] by enabling the settings that allow the tests
to be run in the Upstream CI.
[1] I4ca727f92618998242af18908bbbda6bb5f86303
[2] Id8b005cdd429d53a75624885fe7ca795746c3ede
Change-Id: I705b7d9cbc14d4bbc4d89b4c343205908758a5cb
Depends-on: Id8b005cdd429d53a75624885fe7ca795746c3ede
Depends-on: I4ca727f92618998242af18908bbbda6bb5f86303
This patch makes necessary changes to devstack manila
plugin in order to be able to run IPv6 scenario tests.
Part of the changes included the dependency of
neutron-dynamic-routing plugin and the installation
of quagga, so routes in devstack host can be created
automatically for each router and private network
created by tempest during the tests.
Also, added a new config option "override_ip_for_nfs_access"
for manila tempest plugin that overrides the access rules used
for NFS scenario tests. This option can be set by exporting the
environment variable "OVERRIDE_IP_FOR_NFS_ACCESS" with the
intended value before running devstack.
This change is enabled by a following change and
tested alongside a change on manila-tempest-plugin
project.
Please note that we are temporarily disabling IPv6
functionality in Host-assisted Share Migration, as
the Data Service is not able to handle IPv4 + IPv6
scenarios.
Change-Id: I4ca727f92618998242af18908bbbda6bb5f86303
Needed-By: Id8b005cdd429d53a75624885fe7ca795746c3ede
Tempest is migrating their dynamic credentials interface to tempest
lib as part of the effort to create stable interfaces. [0] We will
need to update its location in our code to conform with it.
[0] http://lists.openstack.org/pipermail/openstack-dev/2017-July/119934.html
Depends-On: Id8d60e4d7c22bc72c3e48bc768509ff0cc0c89d5
Change-Id: Iaa6bf908ff5d63cbbfddc7060594818c66ce607c
Manila pins the version of tempest it tests on the gate.
Update the pin to tempest verstion to date.
TrivialFix
Change-Id: I7bd51c1c5365ffd4247e46565fe7d3f74b5ef701
That will be used for scheduling share groups based on their possibility
to create consistent snapshots.
Also apply following tempest plugin changes:
- Add new 'capability_sg_consistent_snapshot_support' tempest config
option, that will be used for creation of new share group types and used
to prove that scheduling works as expected.
- Fix some share group test attributes from 'only API involved' to
'API and Backend are involved', because it is so indeed.
Change-Id: I05553c308ae40c4ddc2c6469ff1c1a3da36a87da
Partially-Implements BP manila-share-groups
Manila pins the version of tempest it tests on the gate.
This is antithetical to the tempest plugin mechanism. So,
our gate breaks when some plugin relies on code from tempest
that is not part of the commit manila pins in the CI.
While we are working towards a permanent fix to this problem,
let's update our pin as a workaround.
Closes-Bug: #1693832
Change-Id: Ide131229efdea5a48dc389449602f2b0abb699f7
One of the goals for Pike [1] is to make each API service be able to
run under web servers that support WSGI applications,
such as Apache (+mod-wsgi) and Nginx (+uWSGI).
Do following to address governance requirements:
- Split existing manila/wsgi.py module into 3 modules:
First (manila/wsgi/eventlet_server.py) is used by
eventlet-based WSGI application approach.
Second (manila/wsgi/wsgi.py) is used for WSGI web servers.
And third (manila/wsgi/common.py) is common code for both.
All three are made in cinder-like way to have alike-approach.
- Reuse common code from "oslo_service/wsgi.py" module that
allows us to remove code duplication.
- Delete config opts that are defined by newly reused common code.
- Register new entry point that will be manila wsgi app: "manila-wsgi".
- Fix "manila/api/openstack/wsgi.py" module to be compatible
with str/bytes handling approach used by Apache mod-wsgi plugin using
different python versions (2/3).
- Add web server config template "devstack/apache-manila.template"
- Add devstack support where usage of this feature can be
enabled or disabled using "MANILA_USE_MOD_WSGI" env var.
It is set to "True" by default, because it is requirement for Pike
release - to have it running in all CI jobs.
Disable it only for one CI job that uses dummy driver and tests
various manila core features that are not covered by other CI jobs.
[1] https://governance.openstack.org/tc/goals/pike/deploy-api-in-wsgi.html
Partially-Implements BluePrint wsgi-web-servers-support
DocImpact
Change-Id: Ibdef3c6810b65a5d6f3611e2d0079c635ee523ab
Manila project uses special images for some of its share drivers.
So, add possibility to configure manila and run tempest tests using
custom image that was built with proposed changes to
'manila-image-elements' project.
Supported share drivers are 'generic' and 'container'.
Change-Id: I005d1b204ea25ced8913351d19eac282ca465fb6
This feature was disabled by default in Ocata.
Now, enable it back to ease further work and updates of this feaure.
Change-Id: Ib57b55ce77df1b8e6481057014f2e9f6d743e34d
Commit [1] fixed approach for setting devstack config according to
changes [2] in devstack. But it started updating only 1 of 2 possible
devstack directories that are 'old' and 'new'. Where 'old' is the one
that is used only in 'grenade' job as base installation for performing
project migration. 'new' is used in all other single-devstack
installations. So, with [1] everything started working except
'grenade' job.
Fix grenade job by copying devstack config to 'old' dir if it exists.
[1] Idfa8e0cb3f446361daa1449e0854d95cfb379f46
[2] http://lists.openstack.org/pipermail/openstack-dev/2017-February/112872.html
Change-Id: Ic00a1fe296fa68a65672fa680ebd8a9336ed7cef
This option is used to control how revert-to-snapshot
extra-spec is used when creating a share type for several tests,
but for the same tests, it is more appropriate to either not
create a share-type (thus use the default or "don't care"
behavior) or do so based on the value of
run_revert_to_snapshot_tests.
TrivialFix
Change-Id: Ie8a0030a896634eb8deaff17ea72371419eecdea
as of Ocata because feature has not been completed.
Revert this change back in Pike.
Change-Id: Ibe2f7fba436e298b720a492594579d64b2e81a47
Closes-Bug: #1661639
- Added tests to validate the migration functionality
for a replicated share.
- Added tests to validate the extend and shrink
functionality on migrated share.
- Added tests to cover the preserve snapshot
functionality on migrated share.
- Current waiter logic in migration_progress
method of dummy driver causes every migration
test to take over 4 minutes to complete.
Therefore, updated the method to cut the
overall time in half and avoid the possible timeout.
Partially-Implements: bp ocata-migration-improvements
Change-Id: Ia7c7eb7b48b464aa670073e8c0795369bd972678