Commit Graph

78 Commits

Author SHA1 Message Date
agireesh dfbf51bafd Implement the share backup for NetApp driver
Implement the share backup feature for NetApp driver.
NetApp SnapVault technology is used to create and restore
the backup for NetApp ONTAP share. backup delete workflow
just delete the transferred snapshot from destination
backup volume.

Depends-On: Ifb88ec096674ea8bc010c1c3f6dea1b51be3beaa
Change-Id: I5a4edbf547e7886fb4fa9c1bed90110a33f9bf3b
2024-03-12 10:12:25 +05:30
Zuul 357f62cf97 Merge "NetApp Derive vserver name from share server identifier" 2023-12-13 20:14:14 +00:00
Kiran Pawar 8615ce2549 NetApp Derive vserver name from share server identifier
Instead of using the identifier the migration methods are deriving
the vserver name from the share server id. This causes failure for
migrate a share server that had been migrated before.

Closes-bug: #2037109
Change-Id: Ida13bacab960761bb7cd0708017d864db0d7358f
2023-10-03 12:17:51 +00:00
LuizSantos 1f9d51fdba NetApp API failed. Reason - 18177:Relationship is in use by SnapMirror in local cluster
Changed the client method 'get_snapmirror_destinations' instead of 'get_snapmirrors'

Closes-Bug: #1996907
Change-Id: Ie857caf8a439ca6b252baa3c1fbfb3f0e62d7562
2023-09-30 19:12:39 +05:30
Zuul 7eef91446b Merge "[NetApp] Fix ipspace naming is confusing" 2023-09-21 20:37:53 +00:00
Helena Dantas ce13de0044 [NetApp] Fix ipspace naming is confusing
This patch resolves the NetApp ipspace naming to use
neutron_net_id rather than neutron_subnet_id manila driver.

Closes-Bug: #2007560

Change-Id: Id5f2d35dac755aa9ae47a4e42af5d6c3fc5e6f2e
2023-09-21 14:07:12 +00:00
Zuul 0cbc6439e4 Merge "[NetApp] Recreate security cert during vserver create." 2023-08-28 12:58:53 +00:00
Zuul 4ddccaf390 Merge "[RFE] NetApp share server migration get progress" 2023-08-22 10:47:28 +00:00
MelloCaique bb7a06bf32 [RFE] NetApp share server migration get progress
Implement method share_server_migration_get_progress to get the
share server migration percent based in the total size of shares
(GB) tranfered from source to destination.

Depends-On: I9eae95ff3f66a3497b00ca582491afec58ae6dc3

Closes-bug: #2030969

Change-Id: If4bf3378388cc0d9ea03f58b0ab5abd9a268bfdd
2023-08-14 12:39:14 +00:00
MatheusAndrade777 a934499834 [NetApp] Fix share server migration
SVM Migration was failing using NetApp driver after changes on share server structure,
since now the share server can have more than one subnet.

This patch fix all the errors related to this change.

Closes-bug: #2018300
Change-Id: I9eae95ff3f66a3497b00ca582491afec58ae6dc3
2023-08-01 14:01:31 +00:00
Kiran Pawar 0553eb78be [NetApp] Recreate security cert during vserver create.
The certificate is automatically created on NetApp with 1 year i.e. 365
days of expiration time, and admin needs to manually extend it. It would
be nice Manila can take care to create certs with admin configuable
expiration time. Manila should first create the new cert with given
expiration time and if successful, delete the old cert.

Closes-bug: #2011693
Change-Id: I37e52b94dc492e91fe9e673b3619e6716737d39a
2023-08-01 08:04:47 +00:00
Zuul f03e84ae62 Merge "[NetApp] Fix DHSS mode fails to create share on a new pool" 2023-03-02 12:44:15 +00:00
andrebeltrami 7e08ed4ce5 [NetApp] Fix DHSS mode fails to create share on a new pool
This patch fixes #1928241 checking if the share pool name
is in vserver aggregates list, if it is not, the share server
cannot be reused and a new one is created. This fix also
includes NetApp Flexgroup and Flexvol.

Closes-Bug: #1928241
Change-Id: I24bf98f6d7c962ff9430748ff0bc88c647b9946c
2023-03-01 15:09:56 -03:00
Zuul f075b1bd7d Merge "[NetApp] catch errors on getting vserver when reusing share server" 2023-02-28 00:59:41 +00:00
Zuul 4befddacae Merge "[NetApp] Configure VLAN/MTU through subnet metadata" 2023-02-24 08:00:58 +00:00
Felipe Rodrigues e2729946fc [NetApp] Configure VLAN/MTU through subnet metadata
The NetApp driver can setup a share server VLAN segmentation
and MTU based on the subnet metadata. If the subnet metadata has
`set_vlan`, the driver will configure the segmentation
following the metadata fields. If the subnet metadata has the
`set_mtu` field, the MTU is configured according its value.

If share network subnet does not have those metadata fields,
the segmentation configuration keeps working as before, that's it,
it is set according to the values provided by Manila network plugin.

Change-Id: I69731b187527d8d443893dcc94c604688d73e696
2023-02-23 22:26:30 -03:00
Kiran Pawar 0a66bd095c NetApp: Use default_ad_site in active directory
From version 2.76, 'default_ad_site' which if provided set domain
controller discovery mode to 'site'.

Related-bug: #1988146

Depends-On: I8e21e9170eace134a51efed84de1ccc58eb7eaaa
Change-Id: I251e4f94ef04e9ad2fe24844fb8ce1947f42d752
2023-02-21 11:09:30 +00:00
Maurice Escher 0ac8d1cc89
[NetApp] catch errors on getting vserver when reusing share server
fixes e.g. 'Vserver name is absent in backend details'

Closes-Bug: #1993829
Change-Id: I94b2576d808967517733bdcbb81444290e31b518
2022-11-23 10:34:01 +01:00
Fernando Ferraz e3c12b49f5 NetApp ONTAP: Add support to multiple subnets per AZ
This patch adds support to multiple subnets in a same network
segment (and AZ). All subnets assigned to a share must have the
same VLAN id, otherwise the ONTAP driver will fail on share server
creation.

Depends-On: I7de9de4ae509182e9494bba604979cce03acceec
Implements: blueprint ontap-multiple-subnets-same-segment-id
Change-Id: If5db09627a2a9a98951a972e15b8af0857598d1e
2022-03-03 16:14:59 +00:00
Felipe Rodrigues 2b57d15c64 Add multiple subnets per AZ support
Manila can now configure a share network with multiple subnets
in an availability zone. Also, it can add a new subnet for an
availability that has share servers, which will triger an update
share server allocations.

Changes:
- API:
  - Bump version to 2.70.
  - setup share network with multiple subents per az.
  - Block manage server with multiple subnets.
  - Allow add subnet for in-use share servers.
  - `share_network_subnet_id` is dropped from ShareServer view
  - `share_network_subnet_ids` is added in ShareServer view
  - `network_allocation_update_support` is added to ShareServer and
    ShareNetwork views.
  - Add a check operation for share network subnet create.

- DB:
  - Remove `share_network_subnet_id` from share_servers.
  - Create mapping table `share_server_share_network_subnet_mappings`.
  - Fix queries with new db design.
  - Add migration downgrade and upgrade alembic.
  - Add `share_network_subnet_id` to the NetworkAllocations.

- Scheduler:
  - Change `AvailabilityZoneFilter` to take in account if the
    host supports the allocation required by the setup request.

- Manager:
  - Bump RPC API version.
  - `_setup_server` allocating multiple subnets.
  - Modify signature of driver `_setup_server` interface, passing a
    list of `network_info` for each subnet.
  - Share server DB creation to inform a list of subnets and
    create with `network_allocation_update_support`.
  - Implement `check_update_share_server_network_allocations` and
    `update_share_server_network_allocations`.

- Drivers:
  - For legacy compatibility, all drivers implementing `_setup_server`
    consume the first element of the `network_ino`.
  - Dummy Driver:
    - Implement `_setup_server` with new signature as multiple subnet.
    - Modify the `backend_details` to save allocations for all subnets.
    - Report update allocation and share server multiple subnet support.
    - Implement `check_update_share_server_network_allocations` and
      `update_share_server_network_allocations` interfaces.

Signed-off-by: Felipe Rodrigues <felipefuty01@gmail.com>
Co-Authored-By: Andre Beltrami <debeltrami@gmail.com>
Co-Authored-By: Fábio Oliveira <fabioaurelio1269@gmail.com>
Co-Authored-By: Nahim Alves de Souza <nahimsouza@outlook.com>
Co-Authored-By: Caique Mello <caique_mellosbo@hotmail.com>

DocImpact
APIImpact
Partially-Implements: blueprint multiple-share-network-subnets

Change-Id: I7de9de4ae509182e9494bba604979cce03acceec
2022-03-03 02:31:11 +00:00
Zuul 7212aa2b76 Merge "[NetApp] Add FlexGroup volume support" 2021-09-09 19:21:13 +00:00
Zuul 65f3967efa Merge "[NetApp] Share server migration through SVM migrate" 2021-09-08 18:59:36 +00:00
Felipe Rodrigues 9f3c566a10 [NetApp] Add FlexGroup volume support
The NetApp driver has been working  with FlexVol ONTAP volumes.
The driver does not support scaling FlexVol volumes higher than
100 TiB, which was a theoretical limit for the large namespace that
these containers were meant to handle. ONTAP's Flexgroup volumes
eliminate such limitations. So, added the support for provisioning
share as FlexGroup in the NetApp driver.

The FlexGroup provision is enabled by new option
`netapp_enable_flexgroup`, which will make the driver report a single
pool represeting all aggregates. The selection on which aggregates the
FlexGroup share will reside is up to ONTAP. If the administrator desires
to control that selection through Manila scheduler, it must inform the set
of aggregates that formss FlexGroup pool in the new  option
`netapp_flexgroup_pool`.

Each NetApp pool will report now the capability: `netapp_flexgroup`
informing which type the pool is.

The following operations are allowed with FlexGroup shares (DHSS
True/False and NFS/CIFS):

- Create/Delete share;
- Shrink/Extend share;
- Create/Delete snapshot;
- Revert to snapshot;
- Manage/Unmanage snapshots;
- Create from snapshot;
- Replication[1]
- Manage/Unmanage shares;

The backend with one FlexGroup pool configured will drop the consistent
snapshot support for all pools.

The driver FlexGroup support requires ONTAP version 9.8 or greater.

[1] FlexGroup is limited to one single replica for ONTAP version
lower than 9.9.1.

DocImpact

Depends-On: If525e97a5d456d6ddebb4bf9bc8ff6190c95a555
Depends-On: I646f782c3e2be5ac799254f08a248a22cb9e0358
Implements: bp netapp-flexgroup-support
Change-Id: I4f68a9bb33be85f9a22e0be4ccf673647e713459
Signed-off-by: Felipe Rodrigues <felipefuty01@gmail.com>
2021-09-08 15:47:15 -03:00
silvacarloss 04a3db2f9a Share server migration enhancements
A series of enhancements can be performed in the share server
migration operation, and share backends might support
nondisruptive share server migrations, which was not covered
in the previous approach.

-  Skip the destination share server network allocation if the
driver is capable of reusing the source share server allocation.
Manila will switch the allocations in the migration complete phase.

- Allow share backends to reuse the share servers in case they
are able to do so in a share server migration scenario.

- Nondisruptive migration is now feasible depending on whether the
share driver supports it and if the share network parameters have
not changed.

- Share servers will be always deleted whe the share server
migration complete operation is finished.

Depends-On: I43bd3fdafea02eb8e853114a57bfb863a441f3ed
Co-Authored-By: Fabio Oliveira <fabioaurelio1269@gmail.com>
Change-Id: I48bafd92fe7a4d4ae0bafd5bf1961dace56b6005
2021-09-07 09:21:32 -03:00
silvacarloss 74d5a1b2cf [NetApp] Share server migration through SVM migrate
Implements share server migration using a proper mechanism
provided by ONTAP. In case the driver identifies that the ONTAP
version matches the version where this mechanism is available,
ONTAP will automatically chose to use this instead of SVM DR.

- Implemented new methods for migrating a share server using a
new mechanism provided by ONTAP, when both source and destination
clusters have versions >= 9.10. This new migration mechanism
supports nondisruptive migrations in case there aren't network
changes in the migration.

- The NetApp now does not need to create an actual share server in
the backend prior to the migration, in case SVM Migrate is being
used.

- The NetApp ONTAP driver can now reuse network allocations from
the source share server in case a share network change wasn't
identified.

Change-Id: Idf1581d933d11280287f6801fd4aa886a627f66f
Depends-On: I48bafd92fe7a4d4ae0bafd5bf1961dace56b6005
2021-09-07 09:03:32 -03:00
Douglas Viroel 7f0737b75e [NetApp] Follow up fixes for update security service
This patch is a follow up of [1] to address some comments
added in the review process. It also adds more unit tests to
validate the new code added.

[1] https://review.opendev.org/c/openstack/manila/+/775032

Change-Id: If7b8628fa05200363a129eb19d9dc80fb7e3bc36
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2021-03-25 17:50:24 -03:00
Douglas Viroel ff91db3ece [NetApp] Implement security service update
This patch implements support for security service updates
for in use share networks. It works with all three security
service types. For 'active_directory' and 'kerberos', the 'domain'
attribute update isn't supported, since it can might affect
user's access to all related shares.

Change-Id: I8556e4e2e05deb9b116eacbd5afe2f7c5d77b44b
Depends-On: I129a794dfd2d179fa2b9a2fed050459d6f00b0de
Depends-On: I5fef50a17bc72ba66a3a9d6f786742bcb5745d7b
Implements: bp netapp-security-service-update
Co-Authored-By: Carlos Eduardo <ces.eduardo98@gmail.com>
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2021-03-15 09:12:36 -03:00
Douglas Viroel 0b04d8d671 [NetApp] Add support for FPolicy native mode
This patch adds support for automated creation of FPolicy policies
and association to a share. The FPolicy configuration can be added using
 the extra-specs 'netapp:fpolicy_extensions_to_include',
'netapp:fpolicy_extensions_to_exclude' and 'netapp:fpolicy_file_operations'.

Change-Id: I661de95bfb6f8e68b3a8c58663bb6055e9b809f6
Implements: bp netapp-fpolicy-support
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2021-03-11 10:46:51 -03:00
Douglas Viroel 1269a8669d [NetApp] Fix deepcopy of sqlalchemy objects inside the driver
This patch fix a sqlalchemy object copy made in the driver
that can raise a 'DetachedInstanceError' exception, depending on
changes made in the DB model. A simple copy is being made instead, to
have a new share object with share server information inside it.

Change-Id: I5fef50a17bc72ba66a3a9d6f786742bcb5745d7b
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2021-02-24 12:03:00 -03:00
Douglas Viroel 39b6a89b1e [NetApp] Improve Adaptive QoS functionality
This patch is a follow up from the main change[1] that adds support
for Adaptive QoS policies that have been pre-created in the storage.
Improvements added in this patch:
- Fail earlier when using this configuration with DHSS=True mode
  and for shares that support replication.
- Fail earlier if no cluster credentials where provided to configure
  volumes with QoS.
- Add support for migration and manage share operations.

Closes-Bug: #1895361

[1] https://review.opendev.org/#/c/740532/

Change-Id: I210994b84548ed6857e338c8e1f41667fa844614
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2020-09-23 17:12:43 -03:00
Douglas Viroel bf058a043e [NetApp] Fix issues with share server migration
This patch is a follow up patch of the main change[1] that adds
support for share server migration in NetApp driver.
It fixes two issues:
- Data motion 'get_backend_configuration' now avoids sending vserver
  configuration, available only in DHSS=False mode, when driver is
  configured with DHSS=True.
- After migrating a share server, all volumes appears with different
  autosize configuration and need to be manually updated to the
  original values. Provisioning options are also being updated in the
  same method.

[1] https://review.opendev.org/#/c/747048/

Change-Id: I28a47417ec5dda0ed1f6c64fae37f5af6ca057e6
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2020-09-22 13:37:27 -03:00
Douglas Viroel 4bcf21eaf1 [NetApp] Add support for share server migration
This patch adds support for share server migration between NetApp
ONTAP drivers. This operation is now supported for migrating a share
server and all its resources between two different clusters.
Share server migration relies on ONTAP features available only in
versions equal and greater than ``9.4``. Also, in order to have share
server migration working across ONTAP clusters, they must be peered in
advance.
At this moment, share server migration doesn't support migrate a share
server without disrupting the access to shares, since the export locations
are updated at the migration complete phase.
The driver doesn't support changing security services while changing the
destination share network. This functionality can be added in the future.

Co-Authored-By: Andre Beltrami <debeltrami@gmail.com>

Implements: bp netapp-share-server-migration
Depends-On: Ic0751027d2c3f1ef7ab0f7836baff3070a230cfd
Change-Id: Idfac890c034cf8cbb65abf685ab6cab5ef13a4b1
Signed-off-by: Douglas Viroel <viroel@gmail.com>
2020-09-11 16:24:24 -03:00
Felipe Rodrigues 78ca06d6b8 [NetApp] Enables configuring NFS transfer limits
From this this change, shares and share groups can be created
upon share servers configured with specific NFS max transfer
limits. An administrator is now able to set the share type
extra-specs `netapp:udp_max_xfer_size` and
`netapp:tcp_max_xfer_size`. While creating a share server or
providing a share server to a share or a share group, the NetApp
driver will consider these extra-specs to decide whether to create
or reuse a share server.

Share server now contains the details:nfs_config field, which
stores the server NFS configuration dictionary. In case the server
does not have a NFS configuration requirement, it saves the
default NFS values, retrieved at the driver startup. A server
without details:nfs_config is considered as using the default one.

The share server manage operation was modified to also retrieve
its NFS max transfer configurations.

The share manage operation was modified to check whether the NFS
max transfer extra-specs are matching the share server configured
values.

It relies on ONTAP features available only in versions equal and
greater than ``9.4``.

Implements: bp netapp-share-server-nfs-modify
Change-Id: Iaddb771ae28ec59dd125af0bf638f591f5662bfc
Depends-On: I8daf919a764075998be95c5845807bec37104c78
2020-09-11 13:34:14 +00:00
Douglas Viroel dbe34c08e2 [NetApp] Fix default ipspace deletion issue
The NetApp driver is fixed to avoid the deletion of cluster
ipspaces when deleting a share server. Now the share server
deletion skip ipspace removal if the ipspace is one of the
following: Cluster or Default.

Change-Id: I24cda6be69ef9258c6c637be48be32b93d835e0a
Closes-Bug: #1880747
2020-05-27 12:01:46 -03:00
Douglas Viroel 00e548a60c [NetApp] Fix vserver peer accept on intra cluster replication
The NetApp driver is now fixed to not trigger vserver peer accept when
handling with share replica operations on 'driver_handle_share_servers'
mode enabled.

Closes-Bug: #1873963
Change-Id: I9df8b48bf2c127f266c1b950bafc710bc28f7632
2020-04-22 16:33:38 -03:00
Douglas Viroel 0d949ac485 [NetApp] Fix vserver peer creation with same vserver
The NetApp cDOT driver is now fixed to ignore vserver peering
when creating and promoting shares replicas within the same
vserver.

Closes-Bug: #1872243
Change-Id: I0b82c15aec7862ee3630330805ac3ac177aae127
2020-04-13 16:31:23 -03:00
Douglas Viroel 63867a3ba9 [NetApp] Improve create share from snapshot functionality
This patch improves the operation of creating share from snapshot
to accept new destinations that can be different pools or
back ends.

Change-Id: Id3b3d5860d6325f368cbebfe7f97c98d64554d72
2020-04-09 18:22:35 -03:00
Lucio Seki 15b085ede1 [NetApp] Adds support for replication with DHSS=True
This patch adds support for replication with DHSS=True on
NetApp driver. It now handles peering operations between
share servers and shares.

Change-Id: I93888bcc6a0ca672671cf2aa254ceb23c4cbf692
2019-09-11 19:18:43 -03:00
arthurnsantos 4fbf1a2d9d [NetApp] Fix race condition issues on vserver deletion
This patch updates the NetApp driver handling with an issue that
happens when the driver tries to delete the vserver, during a
rollback operation inside the vserver creation method.

Change-Id: I0c8468c72e15c1d27f5cdfa50cfc379a9207c5f1
Closes-bug: #1831092
2019-06-03 21:04:36 -03:00
Zuul 43028c6d60 Merge "NetApp cDOT store port IDs and addresses at share server backend details" 2019-03-08 21:39:42 +00:00
Zuul a69f5333c4 Merge "[NetApp] Add manage/unmanage of share servers" 2019-03-07 13:32:45 +00:00
Rodrigo Barbieri 5556bdb727 [NetApp] Add manage/unmanage of share servers
This patch implements the functionality of managing and
unmanaging of share servers to the NetApp driver,
allowing for shares and snapshots to be managed
and unmanaged in DHSS=True driver mode.

Implements: bp netapp-driver-manage-unmanage-with-share-servers
Change-Id: I6051cf038dcf9f175e0610fff0adf360230dc23c
Depends-On: I452c2a99b186f53d737cb7fbd7eabfcfd9b249d6
2019-03-05 19:18:01 +00:00
silvacarloss 96d6869dd6 [NetApp] Fix race condition issue in NetApp driver
This patch fixes the concurrency in the NetApp driver between the
method setup_server and teardown_server by doing the
teardown_server method lock the needed resources correctly.

Closes-bug: #1816640
Change-Id: I7d56384e77b7e18b3c95f182c0a01af82e5fa5a5
2019-02-22 11:45:36 -03:00
Maurice Schreiber 43771c2d31
NetApp cDOT store port IDs and addresses at share server backend details
Network allocation is made accessible to administrators. It is now easier to
find the port in neutron, if it has been changed or deleted.
Change-Id: I65911b6bf59a4d57fc39d67e6faa4f84422be806
Closes-Bug: #1804656
2018-12-21 11:41:40 +01:00
Lucio Seki 3e564e9252 NetApp ONTAP: Fix use of multiple subnets with DHSS=True
NetApp ONTAP Multi-SVM driver was raising an error while trying to
create shares on multiple subnets that belong to the same neutron
network, as it was trying to map multiple ipspaces to the same VLAN
port.

This fix allows the driver to use the same ipspace and VLAN port across
all subnets belonging to the same neutron network.

Change-Id: If9cbb34a890ee44806c404085e40cc924a1296a7
Closes-Bug: #1774159
2018-10-23 16:30:32 -02:00
Ben Swartzlander 42db1e34a7 Simplify the way drivers report support for ipv6
Driver shouldn't have to report support for ipv6 in two
places. Drivers that assert ipv6_implemented=True just
need to implement get_configured_ip_versions. Likewise
ipv4 support is computed by the same method.

Closes-bug: #1734127

Change-Id: I382767918a65b91e99ac1e604304ad01fac332e6
2017-12-06 15:21:53 +00:00
Ben Swartzlander ebeca4c035 Advertise IPv6 support in the NetApp driver
Escape IPv6 exports correctly and setup the default export
policy to allow both IPv4 and IPv6.

Partially implements: bp netapp-ontap-ipv6-support

Change-Id: I84437b140e2a9561cc4092683209800101f45815
2017-11-06 20:27:10 -05:00
junboli fb17422c86 Enable some off-by-default checks
Some of the available checks are disabled by default, like:
[H106] Don't put vim configuration in source files
[H203] Use assertIs(Not)None to check for None
[H904] Use ',' instead of '%', String interpolation should be
       delayed to be handled by the logging code, rather than
       being done at the point of the logging call.

Change-Id: Ie985fcf78997a86d41e40eacbb4a5ace8592a348
2017-08-03 16:13:32 +08:00
Goutham Pacha Ravi 10395c9aea NetApp cDOT: Add support for QoS/throughput ceilings
ONTAP supports assigning QoS policy groups to storage
objects and workloads. [1]

Expose this functionality through the ONTAP manila
drivers (DHSS=True/False, NFS, CIFS).

The drivers will set the capability "qos" to True if the
configured credentials have access to create qos policy
groups on the configured ONTAP backend. When 'qos'
extra-spec is set in share types, scoped extra-specs can
be used to specify QoS ceiling values in iops or bps.

The drivers support the following QoS specs:
'netapp:maxiops', 'netapp:maxiopspergib', 'netapp:maxbps',
'netapp:maxbpspergib'. Policies are created on-demand
and manipulated as and when shares are manipulated
through manila.

[1] http://docs.netapp.com/ontap-9/index.jsp?topic=%2Fcom.netapp.doc.pow-perf-mon%2FGUID-38357C43-FB36-419D-B31F-6FD75B47254D.html

Implements: blueprint netapp-cdot-qos
Change-Id: I6f82c012ea60cfb1e9f82a696e2346ee95c60df3
2017-07-23 16:44:08 -04:00
Goutham Pacha Ravi 194c1152ab TrivialFix: replace set(sorted(x)) with sorted(set(x))
This fixes the code committed in commit
abe3224774

set(x) is not expected to preserve ordering and
shouldn't be passed a sorted list to deduplicate.

Change-Id: I8f201657056c73f2ae0aabcc911a1fdca022d881
2017-07-06 15:06:32 -04:00