Added support for manage/unmanage in GPFS NFS driver.
This patch added functions that allow share on Spectrum Scale
node to be managed by OpenStack if existing fileset is an
independent fileset and doesn't have any NFS export
over the fileset path. Also, share can be unmanaged from
OpenStack but still left in Spectrum Scale cluster.
Implements: blueprint gpfs-manage-support
Change-Id: I9134408b59c30ac4bc593f287294741f6e996136
Use looser error code checking and add a verify
after deny access so that the call will succeed
whenever it can be confirmed that the access no
longer exists.
This fixes a variety of situations where previously
a return code of 1 while attempting to remove access
would cause the manila access rule to get stuck while
the actual client access export was removed or never
existed.
Change-Id: Ie058a6185e3f5d91fb1cf232301eb0ac6ddcea7e
Closes-Bug: #1651587
Fix GPFS KNFS allow/deny access so that it does not reuse
the ssh prefix when looping through NFS server commands for
allow and deny access.
This fixes GPFS KNFS allow/deny access incorrect behavior
when multiple NFS servers are configured (gpfs_nfs_server_list)
and any of the servers are remote (except the last one).
Change-Id: I8c182eed386e8325b087c3192d363502bb848633
Closes-Bug: #1651578
The snapshot_support extra spec has always meant two
things: a driver can take snapshots and create shares
from snapshots. As we add alternate snapshot semantics,
it is likely that some drivers will want to support
snapshots and some of the new semantics while being
unable to create new shares from snapshots.
This work adds a new extra spec,
create_share_from_snapshot_support, that removes the
overloading on snapshot_support. It also makes the
existing snapshot_support extra spec optional,
allowing admins to create types without setting
snapshot_support; shares created with such types
will not support snapshots.
APIImpact
DocImpact
Co-Authored-By: Goutham Pacha Ravi <gouthamr@netapp.com>
Implements: blueprint add-create-share-from-snapshot-extra-spec
Change-Id: Ib0ad5fbfdf6297665c208149b08c8d21b3c232be
The minimum file system on Unity is 3 GB. This patch changes
driver to create 3 GB underlying file system for shares
smaller than 3 GB.
DocImpact
Change-Id: Ida6ad9ad7e752c25b53390f0fee327c594e03f9f
Closes-Bug: 1648316
Several bugs are caused by an error code and
exception raised when a path has no NFS exports.
Use the machine-readable mmnfs export list command
(the -Y option) which does not cause an exception
when checking for exports.
Co-Authored-By: digvijay2016 <digvijay.ukirde@in.ibm.com>
Change-Id: I770756e0a36c5b61386878164b651fadf9730b7f
Closes-Bug: #1650043
Closes-Bug: #1650044
Closes-Bug: #1650045
Reportedly [1], the kernel-nfs-server has a bug where we have overlap of
filesystem identifiers using LVM volumes and their snapshots.
We face this bug in manila LVM driver and Generic driver when we use
cinder LVM driver. So, fix it generating unique UUID for all
snapshots (only for LVM, because we cannot do it in Generic driver
while we do not have "mount-snapshot" feature support there) and
child volumes that will be exported as child shares.
[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1071733
Change-Id: Ib93bfb0d4184da1e70ecece6fde6931e44d05a30
Closes-Bug: #1645751
Administrators intend to get the pool's information filtered
by share type(actually filtered by share_type's *extra_spec*)
more directly.
The blueprint is to add a filter key 'share_type' to cover
this situation.
APIImpact
Implements: blueprint pool-list-by-share-type
Change-Id: Ifd64bb84d03a02aa0a118cc42e1d1b373c439884
Adding support for manage/unmanage snapshots in Hitachi HNAS
driver. In order to manage a snapshot, the admin should provide the
snapshot size in "--driver-options" parameter.
Also, updating tempest tests for manage/unmanage snapshots to include
the required driver option.
DocImpact
Implements: blueprint hnas-manage-unmanage-snapshot-support
Change-Id: I93e56dda5cbe8d3dbe142d773f93d03a0c126d2f
Because, it leads to inheritance of access rules too. That is a bug.
All other expected options are generated on-fly already.
Change-Id: Ibe744c9fd001156a8184aa8f955c424cebfb8664
Closes-Bug: #1645746
For drivers that implement update_access always through recovery
mode, access rules previously set to read-only were being reset
to read-write when the Data Service was adding/removing its access
rule.
Fixed it by integrating the logic that casts DB rules to read-only
into access helper class.
Change-Id: Ife35dcdb99dffa2f266b5c2f6a68fe163da7edd3
Closes-bug: #1626523
Adding Admin Network support to more easily integrate HNAS
EVS networks into the admin network to perform share migrations.
DocImpact
Implements: blueprint hnas-admin-network
Change-Id: I797595aec580e9ec2dcfdf88e965ae29988b1dee
If a share is shrank from 10G to 5G, the volume is still 10G.
This share`s size display is 5G, but the share extend newsize
must be > 10G in the old code. So, I think only need to perform
resize_filesystem when the share extend newsize <= volume size.
The volume extension is performed only when new size larger than
volume size.
Change-Id: I7e49b446445b8005e2eb23e1d439354eb24915e0
Close-Bug: #1639188
Check that ceph connection really works when setting up
the driver instead of doing real connect later in init_host
phase. This mitigates the risk that the service crashes/respawns
in an infinite loop because of a connection error.
Change-Id: Ia71b55dab1535ce351310108aaf53304b15ab757
Closes-Bug: 1640169
This patch moves EMC drivers under dell_emc folder and
changes vendor name to "Dell EMC".
The base driver remains as EMCShareDriver.
DocImpact
UpgradeImpact
Implements-blueprint: move-emc-driver-to-dell-emc-folder
Change-Id: I799c7fcb59fbe887045fe81beb1e257586ba2f0e
Generic share driver has fake support of consistency groups. It was
implemented only for testing purpose. Now, it is redundant, because
we have 'dummy' share driver that already used to test this behavior.
So, drop fake CG support from Generic share driver and disable
appropriate tempest tests.
Change-Id: I6ce07fd3a11cd62a3a01ba4ee7c424b839a62757
Closes-Bug: #1638994
For driver-assisted migration, 'migration_completing' task state
was not being set when accepting migration-complete requests.
APIImpact
Change-Id: Ie0ccd587232a4a8007c45d855f0f575a30b881b2
Closes-bug: #1638896
The NetApp cDOT driver now explicitly filters root aggregates
from the pools reported to the manila scheduler if the driver
is operating with cluster credentials.
Change-Id: I659edada559e50d2332790025c65fae265a27c3d
Closes-Bug: #1624526
Releasenote translation publishing is being prepared. 'locale_dirs'
needs to be defined in conf.py to generate translated version of the
release notes.
Note that this repository might not get translated release notes - or
no translations at all - but we add the entry here nevertheless to
prepare for it.
Change-Id: I6d9eac9c512935a728f3d3919b1ac2f560efe403
Currently, there are 3 statuses for qos:
- 'active', 'inactivated' and 'idle'
If qos status is 'idle', the qos deletion will fail because
huawei driver doesn't deactivate it before deleting.
This change fixes this bug by deactivating qos first if qos
status is not 'inactivated'.
Change-Id: I40f937c22d77d8e07fba176bdc09ca461f01733a
Closes-Bug: #1625424
In case create_port is called with host_id it's better to fail if
port_binding_extension is not available. Otherwise there won't
be any binding and no logging that the port will be inactive.
Change-Id: I65595308bc71ae78c992fd97e3f26fd718b249ec
Closes-bug: #1602525
With 3PAR, share server(VFS) can have up to 4 IP addresses.
During bootup, driver queries 3PAR to get list of all IP addresses
and validates it against IP addresses provided in manila.conf. If
there is a mismatch, driver throws exception.
The bug was with 3PAR file client which always returns only one IP
address. To make driver backward compatible with 3PAR client,
mediator.py formats the value retured by client and passes it to
driver.py. This patch now correctly accepts all the IP addresses
as obtained from 3PAR and validates configured IPs against it.
Also removing unused function.
Updated and added new unit tests
Added release notes
Closes-Bug: #1621016
Change-Id: I1eeb18cc9905a71cd38c383bc0ab49e0a560ffc9
Adding a cleanup to method create_from_snapshot in case
of a failure.
Also, raising the correct exception on backend layer in
case of a failure when exporting shares.
Change-Id: I86d2c3c5ff5a790868f8362e065df1eb2be8a3ad
Closes-Bug: #1613721
A share managed in HSP could have some access rules that
are not in Manila. Trying to add a rule that already exists
in backend results in an error. Also, rules in backend that
names are not "share_id + ip" can't be deleted.
Additionally, if this share has a rule only in backend and not in
Manila, trying to delete it would fail, because HSP doesn't allow
delete share when it still has rules.
Fix it by adding a check in update access when rules already
exist in backend. Check for access rule name in backend when
denying access. And cleaning all rules from backend before
deleting a share to ensure that it has no children in HSP.
Change-Id: I0c8ee5c47efe22f004692022dd952f301d669b06
Closes-Bug: #1620756
Share migration code [1] merged in newton intending to allow admins
to mount the share between phase1 and phase2, but API code for
allow_access and deny_access was set incorrectly, blocking it.
After discussing this feature's purpose further, we decided we do
not want this feature at this moment, so we are just fixing the
allow_access and deny_access error messages.
Also, addressed a small case of concurrency that was happening
once in a while in CI. Update_access was being invoked while
other rules were being applied, thus setting the access_rule_state
to "UPDATING_MULTIPLE", ignoring the migration access rule change
RPC request completely, failing migration. By refreshing the
model we are able to assign the proper access_rule_state at the
time the function is invoked, setting the access_rule_state
correctly.
[1] If4bfaf7e9d963b83c13a6fea241c2eda14f7f409
APIImpact
Closes-bug: #1623051
Closes-bug: #1623052
Change-Id: I76a7d8c3bdd597b951e700350f8f3f82bfb21e03
Docker containers were previously started with insufficient
privileges to successfully mount a LV created on host.
This change fixes this problem.
Closes-Bug: 1613675
Change-Id: I63f3480ace3be70100a245570d7f3579b333e972
Big part of share migration feature in ZFSonLinux share driver
is not covered with unit tests. So add it.
Also, add reno releasenote saying that driver now supports share
migration.
Change-Id: I558d4c6a0802b6a0156416b3c9b481181a55298c
Closes-Bug: #1621068
The autosupport functionality of the NetApp cDOT driver is not working
with Python 2.7.12, the default in Xenial. Root cause is a deep copy
of the controller connection context, which includes some SSL context
stuff that doesn't play well with copy.deepcopy. So we can do a shallow
copy instead.
Change-Id: Ia2adc4ce27834e384e6d994fcb012ebf1d97c85c
Closes-Bug: #1621260
Currently, huawei driver will use the "AllocType" configuration
or default "thick" type to create share, if "thin-provisioning"
not specified in share_type, but scheduler default uses thin
type in this situation, so huawei driver isn't consistent with
scheduler.
This patch removes the "AllocType" configuration from huawei
driver configuration file and default use "thin" type if
"thin-provisioning" not given.
Depend on change I238a7962425ea35c356c5ed2e31b8f68462b3769.
DocImpact
Change-Id: I5b7128657e089113da44bc862e9c864de2ec59b2
Closes-Bug: #1609718