Skip to content

Conversation

nidzrai
Copy link
Contributor

@nidzrai nidzrai commented Jul 29, 2025

https://rackspace.atlassian.net/browse/PUC-1104
This update enhances the NetApp dynamic driver to support real FlexVol discovery and accurate pool capacity reporting, enabling more reliable volume scheduling and placement in OpenStack Cinder.

Real FlexVol Discovery -Retrieves actual FlexVol names and capacity details directly from the NetApp backend using the REST API.
Pool Name Extraction -Maps FlexVols to Cinder pool names correctly, ensuring volumes are routed to the right pool selected by the scheduler.
Enhanced Logging -Adds detailed logs during pool discovery and update operations to aid in debugging and traceability.
Scheduler Integration-Exposes real-time capacity and pool stats to the scheduler for accurate volume placement decisions.

Namespace - map namespace after volume
WIP: subsystem
WIP : self.client here is temporary . (we have to think of solution to replace it ) [done] used caching via dic {}
Added namespace table to fix add after volume

@nidzrai nidzrai marked this pull request as draft July 29, 2025 13:58
@nidzrai nidzrai marked this pull request as ready for review July 29, 2025 14:02
@nidzrai nidzrai requested a review from a team July 29, 2025 14:56
@nidzrai nidzrai force-pushed the PUC-1104 branch 2 times, most recently from fa2642f to cd33355 Compare July 30, 2025 15:42
@nidzrai nidzrai requested a review from cardoe July 30, 2025 15:43
Copy link
Contributor

@cardoe cardoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So looking at this and looking how the cinder driver for NetApp is implemented I think we need to do a little bit of refactoring here to follow it more closely.

Another major thing that's missing is any tests. We've gotta add some tests here.

CONF.register_opts(options.netapp_provisioning_opts, group="netapp_nvme")
CONF.register_opts(options.netapp_cluster_opts, group="netapp_nvme")
CONF.register_opts(options.netapp_san_opts, group="netapp_nvme")
CONF.register_opts(volume_driver.volume_opts, group="netapp_nvme")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I understand this registration but if you look at the cinder contributor docs and how other drivers are implemented they abstract this using the cinder.volume.configuration module. This is fine to keep for now but as a follow on we should switch to using that.

# Everything else from cinder.conf
hostname = self.configuration.netapp_server_hostname
username = self.configuration.netapp_login
password = self.configuration.netapp_password
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause you're fiddling with the configuration pieces here.

Copy link
Contributor

@cardoe cardoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can merge this to iterate on this against an actual device but we've gotta go back and work on tests before we extend anything any further.

@cardoe cardoe added this pull request to the merge queue Jul 31, 2025
Merged via the queue into main with commit f2919fe Jul 31, 2025
38 checks passed
@cardoe cardoe deleted the PUC-1104 branch July 31, 2025 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants