EMC Unity arrays are capable of support manila.
Add a new Unity plugin in manila which allows user to create NFS/CIFS
share with a Unity backend.
The plugin should support following APIs:
* connect: Connect to the Unity Storage.
* check_for_setup_error: No implementation.
* create_share: Create a share and export it based on the protocol used
(NFS or CIFS).
* create_share_from_snapshot: Create a share from a snapshot - clone a
snapshot.
* delete_share: Delete a share.
* extend_share: Extend the maximum size of a share.
* create_snapshot: Create a snapshot for the specified share.
* delete_snapshot: Delete the snapshot of the share.
* allow_access: Allow access of a user/host to a share.
* deny_access: Remove the access of a user/host to the share.
* ensure_share: Check whether share exists or not.
* update_share_stats: Retrieve share related statistics from Unity.
* get_network_allocatins_number: Returns number of network allocations
for creating VIFs.
* setup_server: Set up and configures share server with given network
parameters.
* teardown_server: Tear down the share server.
DocImpact
Co-Authored-By: Cedric Zhuang <cedric.zhuang@emc.com>
Change-Id: Ic520539341fa19ec5c6c6b85c3c1dcecf70e5141
Implements: blueprint emc-unity-manila-support
Implement 'manage snapshot' feature in ZFSonLinux share driver.
Prerequisites:
- snapshot being managed should exist.
Details:
- snapshot being managed will be renamed by share driver based on
taken ID.
- size for managed snapshot will be taken either from
REST API (--driver_options size=5) or
from its "used" attribute.
Implements BP zfsonlinux-manage-snapshot
DocImpact
Change-Id: If240ecde5676c334d39faaccd5703e93544aaa06
Depends-On: Ifc762a882a78159adacfe168a4edbe824178301a
NetApp cDOT controllers can mix SSDs and spinning disks
in the same aggregate, where the SSDs are used for a
cache. This commit reports the hybrid aggregate attribute
as well as the aggregate name to the scheduler for each
pool for use in extra specs matching.
Implements: blueprint netapp-report-cdot-hybrid-aggrs-manila
Change-Id: Iaa0bcd79789449f977b48f1de2adf997c936db61
Adding support for reporting disk type of pool in huawei manila
driver. When creating share we can specify the disk type of the
pool we want to use ssd/sas/nl_sas/mix, manila driver will report
the disk type of the pools.
Implements: blueprint huawei-pool-disktype-support
Change-Id: I1f694e8c93f79851f838d226830d9ab5344cf35a
Fix to ensure that an attempt to delete a manila share will not
fail because the 3PAR filestore does not exist. When the filestore
does not exist, that means the share is already gone (or never was
created). Avoid the delete and all filestore use in this case to
prevent failures during delete.
Also catch and log exceptions during the post-delete cleanup.
Change-Id: I0e477d3dae5706547354bd029b40e3308349fabb
Closes-Bug: #1597940
This patch ports cinder's DriverFilter and GoodnessWeigher to manila.
These can use two new properties provided by backends,
'filter_function' and 'goodness_function', which can be used to filter
and weigh qualified backends, respectively.
Reference for cinder spec: I59b607a88953a346aa35e67e785a0417a7ce8cc9
Reference for cinder commit: I38408ab49b6ed869c1faae746ee64a3bae86be58
DocImpact
Change-Id: I873f4152e16efdeb30ceae26335a7974dc9b4b69
Implements: blueprint driver-filter-goodness-weigher
Add a new list option 'emc_interface_ports' to configure the network
devices that can be used by share servers. And refined managed pools
selection method to use a new utility method.
DocImpact
Change-Id: Id44ca5e3e64b5a540c91119698e5191366cabfc5
Closes-Bug: #1600117
Data in the file system consists of fixed-length disk blocks.
The size of the blocks (also known as file system sector size)
affects disk space usage and performance.
The value of blocks can be 4 KB, 8 KB, 16 KB, 32 KB, or 64 KB.
Change-Id: I95a9aa7e071c470c21dc0fa009ba96a7c7439ce6
Implements: blueprint huawei-driver-block-size-config
In access-allow and access-deny, change 0.0.0.0/0 to asterisk(*)
to represent IP addresses of all clients.
Change-Id: I7b79cf5fde88ba8eb273d71d6eb40bea5b744673
Closes-Bug: #1576557
- Manage share: ask Manila to take control of an existing ZFSSA share
not managed by Manila driver. Current share size will be rounded up
to the nearest whole GB value.
- Unmanage share: ask Manila to release control of a ZFSSA share
managed by the driver.
Change-Id: I0d4a46211dfd15cb7a261eddfa8c14be26adcfc3
Implements: blueprint oracle-zfssa-share-manage
Implement 'manage share' feature in ZFSonLinux share driver.
Prerequisites:
- share being managed should exist.
- share being managed should not be part of any replication relations.
- share being managed should not have redefined mountpoint.
Details:
- share being managed will be renamed by share driver based on taken ID.
- share being managed will get "quota" attribute set based on provided
value in API (--driver_options size=5) or it will set quota
to nearest bigger rounded integer of already
used space (2,4 -> 3, 3.6 -> 4).
Implements blueprint zfsonlinux-manage-share
DocImpact
Change-Id: I03eab5e02835fe660dde0020601c02c0136bddeb
With snapshot manage / unmanage in Manila core, we can
support that in the NetApp single-SVM driver.
Implements: blueprint netapp-cdot-snapshot-manage-unmanage
Change-Id: I7c6c005fb3fd8613da9e9ac04b9dd832781e35ca
Get gateway information from network plugin and put it into network_info.
It is required by EMC Unity storage to create a interface.
APIImpact
DocImpact
Change-Id: I8614b8686af7fa5764b49e8e3cb4a4855dc3a5f4
Implements: blueprint add-gateway-info
In case keystone is used with LDAP the user_id/project_id can be more
than 60 characters. This will cause the issue that users cannot create
any share-network or security_service.
Change-Id: I2e2ccce32bf31850c9ffd74d9612cf5237d782fe
Closes-bug: #1594824
In a cloud with multi-tenancy, administrators
would like to see the project_id of the tenant
while listing snapshots of all tenants.
Likewise, we also should expose the user_id field
as it would help in cases where tenants have multiple
users.
DocImpact
User and administrator references need to capture
this information.
APIImpact
API changes are micro-versioned.
Change-Id: I3ad655dc9ab7440f205b0e153fccaa99abb79bbd
Closes-Bug: #1587161
Manage share snapshot on the array,
before managing the snapshot, make sure that the
source share is managed by OpenStack.
Implements: blueprint huawei-driver-manage-snapshot
Change-Id: I085106dccec5d371771fa112898e980bae182d11
Currently when DHSS=true with a Netapp cmode backend
during vserver creation, lifs and VLANs get created.
But on cleanup everything gets removed except the VLANs.
This patch removes the vlans at the end of vserver deletion.
Netapp prevents deleting VLANs with existing lifs on it.
Change-Id: Id0b56bbce8e5e9b8707f22d401d99c7867372a50
Closes-Bug: #1580163
During deny access, the driver evicts client based on its auth ID
and the share its accessing. It does not make the correct use of
ceph_volume_client library to do this. So fix the evict method call.
Closes-Bug: #1567298
Change-Id: I707d1f2d455106f45c35aa28ca2a30fb0460f9e8
When attempting to allow_access on a managed share, it fails
because the proper share ID is not retrieved from private storage
prior to attempting to validate that the share exists in the
backend. The same happens when trying to create a share from a
snapshot created from a managed share, the proper share ID is
not retrieved from private storage. While we are dealing with
two possible different IDs it is important to properly display
the API share ID in log messages so it can be matched to the
share instances ID, and not all log messages are accurately doing
so.
This change addresses this by retrieving the ID from
private storage first for update_access and
create_share_from_snapshot operations. The proper unit test changes
included in this patch required a refactor of several IDs to ensure
this problem is addressed in unit tests, thus it made sense to
address several bugs caused by the same problem, having the same fix
and requiring modifications to the same lines of code.
Closes-bug: #1581541
Closes-bug: #1584179
Closes-bug: #1583785
Change-Id: I8cdb1a8a72a4ac7e710f57e3c288d48cd2adf0dd
When share is deleted in the backend, user is unable to delete
share because of error thrown in update_access(). Make backend raise
ShareResourceNotFound exception in case share not found during
"update_access" operation, because share manager expects it for
proper handling of share deletion, thus allowing share to be
deleted in this case, without having to use force-delete.
After add ShareResourceNotFound exception, it will need a parameter
named share id(share['id']), so add share id to share info in
create_share_from_snapshot function.
Change-Id: I9756ff882e6960b07f5f0abac94057c687830ad0
Closes-Bug: #1585035
Add "user_id" detail when we run command
"manila show/create/manage ...". Make the operator know
which user created this share.
APIImpact
Closes-Bug: #1562846
Change-Id: I2858c7f63182288f354b96448f0970d3642d4bf7
In kilo, the manila functionality for limiting request body size was
was moved to oslo.middleware library [1] and compatibility shims and
deprecation log messages were added for the manila
RequestBodySizeLimiter, whose function had been superceded by the
equivalent oslo library object.
It has now been more than two releases since the deprecation so
this commit removes the compatibility shims and log messages.
[1] I10c3cbeb9d43b504f14375df4dac87b323fab5bf
Change-Id: I01cc6585c15af9b13b178e26d4b469825dbd562c
Currently when a POST request is made to /consistency-groups
with a source cg-snapshot, the API does not register the share
network information (share_server_id and share_network_id) in
the database row newly created for the CG being created.
This information is essential to any shares that are being created
along with the consistency group.
- Disallow providing a share_network_id when using a source cg_snapshot_id
- Copy share network information from the parent CG
- Fix the share_server_id that was incorrect in the API response
APIImpact
Closes-Bug: #1571594
Closes-Bug: #1572742
Change-Id: I1c3581c81e0b845f46eef3cd0acddb55850447a5
This fix sets the snapshot status correctly to 'error_deleting',
when snapshot reported to be busy by backend driver.
Change-Id: Iecfd32b8265ce9f7cdfcba6d89397f269024b75d
Closes-Bug: #1564623
Unconfined filesystems created through CLI in HNAS caused driver's
parser to break. It was found that the command breaking could be
replaced by another, already used command, which also retrieves
filesystem information, and it is preferred, so previous command
has been replaced.
Additionally, administrator may not want to automatically mount
an unmounted filesystem in DHSS=False mode, which may be unmounted
for maintenance, so changed behavior to not mount automatically.
Change-Id: I69e7a51ed4485783868c44e58b93bc69b58c8ac2
Closes-bug: #1571000