Commit Graph

27 Commits

Author SHA1 Message Date
Rishabh Dave
72f79e5c57 Fetch and install manila-tempest-plugin system-wide
And don't enlist manila-tempest-plugin for installation in venv-tempest.

Change-Id: I0844cdb48b9d415bd341c4687620412178be871b
Signed-off-by: Rishabh Dave <ridave@redhat.com>
2018-03-08 17:35:30 +05:30
Rodrigo Barbieri
dc93ae534c Update manila plugin to support IPv6
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
2018-01-24 17:11:22 -02:00
Raissa Sarmento
797048c5ce Remove in-tree tempest plugin
Remove in-tree tempest plugin in favor of newly
created manila-tempest-plugin repository.

Change-Id: I1fb124598f38067fee469df124ee684f748c6f57
2017-12-22 11:11:38 +00:00
Ben Swartzlander
3755978ef7 Allow 2 or more export IPs for LVM driver
Supporting dual IPv4/IPv6 backends will eventually require
multi-IP support in the first party backends. This change
enables multi-IP support (IPv4-only currently) in the LVM
driver.

Change-Id: Ib3594aa5d7751c829820fce830d87f6ceea6b049
Partial-Implements: blueprint support-ipv6-access
2017-07-18 16:05:27 -04:00
Valeriy Ponomaryov
16bfc82962 Add possibility to run 'manila-api' with wsgi web servers
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
2017-04-10 12:49:20 +03:00
vponomaryov
e79cf7bf33 Fix 3 CI breakages
1) Increase default RAM value in manila flavor to be able
   to use manila service image with new 64bit architecture.
2) Fix test requirement on "hacking" lib to avoid pep8 breakage.
3) Fix unstable maprfs driver unit test that depends on local hostnames
   and IPs.

Change-Id: Ib36113e33e3616984be5864fbaf73c1fc5d7a315
Closes-Bug: #1669412
Closes-Bug: #1659162
2017-03-02 18:22:40 +02:00
Ben Swartzlander
436d9aa687 Make LVM export IP configurable
Change-Id: I0d67c9c2a774f19a20db8e4b3b8745e55d796148
2017-01-25 23:26:42 -05:00
Andrew Kerr
1002642674 [Tempest] Add functional tests for share groups feature
Add functional tempest tests to new 'share group' feature [1].

[1] I79a80a62ae4e0015d6161edc2b93fd1f9ba69537

Co-Authored-By: Andrew Kerr <andrew.kerr@netapp.com>
Co-Authored-By: Valeriy Ponomaryov <vponomaryov@mirantis.com>
Partially-implements-blueprint: manila-share-groups
Depends-On: I8e29baed62355fc31caeec9c7a66eaebfcbdf184
Change-Id: I820eb959082995d961b1be992e4b2d1d1a985c1c
2017-01-23 19:30:33 +00:00
Alexey Ovchinnikov
c19dbbd2e6 Enable scenario tests for LVM and ZFSonLinux drivers
In addition to functional tests.

Also, make some corrections to scenario tests code to make it work
with shares located on localhost.

Co-Authored-By: Alexey Ovchinnikov <aovchinnikov@mirantis.com>
Co-Authored-By: Valeriy Ponomaryov <vponomaryov@mirantis.com>
Change-Id: Ice61a7593f5e4e443cffbe78ecd71d683a9c274e
2016-12-13 12:53:03 +00:00
Victoria Martinez de la Cruz
4d36064cba Decouple Manila UI from Manila Devstack plugin
Whereas the bug report associated to this fix is about
Manila UI not working, this fix addresses more than this.

On the first place, it decouples Manila UI from Manila Devstack
plugin. This is a desired change since not every Manila user
needs to work with the UI, and it doesn't make sense to have
Manila UI bits on the Manila code if we can place all Manila UI
related code on the Manila UI repo and, in this case,
Manila UI Devstack plugin. This patch-set removes all the traces
of Manila UI setup from the Manila Devstack plugin.
Manila UI Devstack plugin was added in 457249be7ab3849b3479b96077a411ca37c37a95.

And, secondly, it fixes Manila UI deploy with Devstack. Enabling
manila-ui plugin on Devstack properly sets the UI component for
Manila.

Change-Id: I7a3372371e25c69d3df6d395c703a6412750effd
Closes-Bug: #1570033
2016-12-12 12:43:14 -03:00
Valeriy Ponomaryov
e77cf5bdaf [Devstack] Create additional custom share types by default
They are useful for case we install several back ends with different
drivers, their modes and capabilities.

New share types have fixed names based on driver modes:
- dhss_true
- dhss_false

It is possible to define their extra specs using following env vars:
- MANILA_DHSS_TRUE_SHARE_TYPE_EXTRA_SPECS
- MANILA_DHSS_FALSE_SHARE_TYPE_EXTRA_SPECS

that defaults to existing following env var:
- MANILA_DEFAULT_SHARE_TYPE_EXTRA_SPECS

Use case in CI: we are able to use more than one predefined share_type
in tempest and rally tests.

Change-Id: I7278a897bb89f0562e1eda449b725d965cb10566
2016-11-04 19:01:42 +03:00
Rodrigo Barbieri
053acc8db1 Improve Share Migration tempest tests
Improve coverage by adding tests that validate the share-type
change while also changing the driver mode.

Closes-bug: #1620800

Change-Id: I924c34aa69591754b437d75f43db91d77e73fb07
2016-09-13 13:17:07 -03:00
Rodrigo Barbieri
088747cb77 Fix connectivity problem in Scenario job
In Scenario job, tests consist of VMs mounting shares
provided by share servers.

Admin network is used by share migration tests and is
by default used in other tests as well. Previously it
used the same network address range as tenant networks
(used by VMs) and there was no conflict.

Recently some unknown change broke connectivity between
VMs and share server in scenario job. It seems as there
is now a conflict between those network addresses ranges.
This patch changes the admin network address range,
removing the existing conflict.

Closes-bug: #1616115

Change-Id: I5bdb70cae4eab2930f3f559a621643ad732909bb
2016-08-26 20:43:12 -04:00
Marc Koderer
78e10bc060 Add neutron driver for binding
Add new neutron plugin which enables port bind actions for network
fabrics. This driver waits until all ports are in state "active"
and sets the binding host flag. Default vNIC type is set to
"baremetal" in order to benefit from the code already in place for
Ironic. It's also possible to switch to 'normal' which assumes an
neutron agent in place.

The feature can be tested using the docker driver.

DocImpact

Co-Authored-By: Daniel Gonzalez <daniel@gonzalez-nothnagel.de>
Partially-Implements: bp manila-hpb-support

Change-Id: I3156d7468d48f84f1b46885780a2426f9b99a387
2016-08-17 15:20:11 +02:00
Alexey Ovchinnikov
ddf960a2d9 Container driver
This driver exploits a Docker container as a share server instead
of a virtual machine. The container acts as a CIFS server
and shares logical volume attached to it. The volume gets created
simultaneously to the container on a host in a volume group
specified by the user.

DocImpact
Change-Id: I711813a2022d765ab7a70ed670e34f68f9cf1399
Implements: blueprint manila-container-driver
2016-08-15 16:30:23 +03:00
Yogesh
7bf4f0262e Add tests to ensure snapshots across replicas
Related-Bug: #1546303
Depends-On: Ia4cd2a36e31418e7a3d1c218080caa632755fe16
Depends-On: Id318a4adc0faf64a4bef57252aa2f0d9083b82b1
Change-Id: I269225b976efe13b2cbb9e0648d541a063df70e5
2016-03-19 11:53:02 +00:00
Alexey Ovchinnikov
5dfbef4f95 Revert "LXC/LXD driver"
This reverts commit 466a19f18f.
Also this reverts commit 4f74b224fa.

Manila has decided to remove LXD from the Mitaka release.
http://lists.openstack.org/pipermail/openstack-dev/2016-March/089522.html

Change-Id: I3c4b15e8c9d92c874be754205b0b981151809cc1
2016-03-16 18:48:17 +04:00
Jenkins
7270c852da Merge "Run ZfsOnLinux gate tests with SSH enabled" 2016-03-09 23:32:52 +00:00
Ben Swartzlander
7d3fc0ed7f Run ZfsOnLinux gate tests with SSH enabled
SSH is required for replication to work in the ZfsOnLinux
driver, but the gate defaults to disabling it. Make it
configurable and make sure to preinstall host key.

Change-Id: Iece2ad2e966fafe3ab4d63c82d062830ac9f3170
Closes-Bug: 1552244
2016-03-08 10:50:05 -05:00
Ben Swartzlander
bfea3f42a8 Use official location for service image
Download manila service image from official tarballs site
instead of github.

Change-Id: I391119cf08949974efc469b8669d5e4120170c0d
Closes-Bug: 1553259
2016-03-05 01:30:44 -05:00
Igor Malinovskiy
4f74b224fa LXC/LXD driver
This driver exploits a container as a share server instead
of a virtual machine. The container acts as a NFS/CIFS server
and shares logical volume attached to it. The volume gets created
simultaneously to the container  on a host in a volume group
specified by the user. Currently NFS is limited to v3 since the
only userspace NFS server that works in a container out of the box
seems to be unfs3. Later it will be replaced with nfs-ganesha.

Co-Authored-By: Alexey Ovchinnikov <aovchinnikov@mirantis.com>

Implements: blueprint lxc-driver

Depends-On: Ib1896997f2e7a505b5bf8ec0c9e5ee35942f79a6

Change-Id: Iea73bd34b94919d77ebe17cf054dde1f580384be
2016-03-02 18:55:22 +04:00
Rodrigo Barbieri
eaaa86f1f4 Introduced Data Service
Added a new service defined as data, whose purpose is to
receive requests, process data operations such as copying,
migration, backup, and send back the response after operation
has been completed.

In this patch the service has no methods, it is empty, the
operation it should perform will be added in subsequent patches.

Implements: blueprint data-copy-service
Change-Id: I31365c8ac4197541af175c82f8f18a3d11740a99
2016-03-01 17:13:51 -03:00
Valeriy Ponomaryov
312cd3321a Add ZFSonLinux share driver
Add support for ZFS (on Linux) filesystem.

Following features are supported:
- Create/delete share
- Create/delete snapshot
- Create share from snapshot
- Extend/shrink share
- Update NFS IP-based access rules using new interface.
(SMB support planned for future).
- create/delete/update/promote share replica

ZFS-related notes:
- Any amount of ZFS zpools can be used by share driver.
- Allowed to configure default options for ZFS datasets that are used
for share creation.
- Any amount of nested datasets is allowed to be used.
- All share replicas are read-only.
- All share replicas are synched periodically, not continuously.
So, status 'in_sync' means latest sync was successful.
Time range between syncs equals to value of
config global opt 'replica_state_update_interval'.

Driver-related notes:
- Able to use remote ZFSonLinux storage as well as local.

Other made changes:
- updated driver private data DB methods removing filtering by host
  as redundant operation. Replication requires some common metadata
  storage and filtering by host breaks it. It is safe to do so, because
  if driver gets some ID of entity then it is allowed to read its info
  too.

Implements bp zfsonlinux-driver
DocImpact
Change-Id: I3ddd3767184e4843037de0ac75ff18dce709b6dc
2016-03-01 13:34:18 +02:00
vponomaryov
8c3c73ada6 Fix Cinder's NoValidHostFound errors
Manila CI jobs create lots of shares and for Generic driver it means
lots of Cinder volumes. After merge of [1] to Cinder project, we started
having NoValidHostFound errors in Cinder logs, it changed default
oversubscription ratio to 1.0 from 20.0. But Manila CI requires it
be bigger than 1.0, so set it explicitly to Cinder's default value 20.0
that is used by all other driver but not LVM.

[1] I5a214462b573d00d26086512821b4f8cc1db4fc3

Change-Id: If0a6e535b92b1471572e1de98e3b44ab6a2c65c9
Closes-Bug: #1540947
2016-02-02 22:21:54 +02:00
Julia Varlamova
401c8d982e Add LVM driver
Reuse code of old LVM share driver.

LVM Driver is 1st party Manila driver with NFS and CIFS support
and no share server support.

LVM Driver doesn't rely on Neutron, Nova, or Cinder. As such, it
is ideal for testing purposes and, after a period of maturation,
it should be useful in production environments.

Move generic driver's helpers to manila/share/drivers/helpers.py
and reuse them in LVM driver.

Implement 'ro' access, user access, extend_share function for
LVM driver.

Implements bp lvm-driver

Change-Id: Ia46c51ed400dbb0f1d87a758fb165ca711ed3d7c
2016-01-20 17:15:30 -05:00
venkatamahesh
3ffb4979f3 Move the config environment variables into devstack/settings file
As per the plugin documentation, for reference
http://docs.openstack.org/developer/devstack/plugins.html
the config environment variables should be added to
"devstack/settings" file

Change-Id: I676fd091c22d2bef71cb988f1163a811bf4cd1de
2015-12-21 23:02:06 +05:30
Valeriy Ponomaryov
b5f0ccabfa Add devstack plugin
Start using devstack's feature 'Externally Hosted Plugins' [1], that allows
to install Manila using upstream Devstack without need to put some additional
files manually.

To enable Manila with Devstack just put following in local[rc] file:
enable_plugin manila https://github.com/openstack/manila

Above satisfies following template:
enable_plugin <NAME> <GITURL> [GITREF]
where
<NAME> is an arbitrary name. (ex: manila)
<GITURL> is a valid git url that can be cloned.
[GITREF] is an optional git ref (branch / ref / tag) that will be cloned. Defaults to master.

Plugin enables all Manila services by itself, no need to enable it manually anymore.

Implements BP add-devstack-plugin
[1] http://docs.openstack.org/developer/devstack/plugins.html#externally-hosted-plugins

Change-Id: I28eff33fc65aa741d9270d8bcb263a7fccd9baa4
2015-02-20 19:57:21 +02:00