-
Notifications
You must be signed in to change notification settings - Fork 7
feat: Add Proper Pool Discovery and FlexVol Integration #1112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fa2642f
to
cd33355
Compare
There was a problem hiding this 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") |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this 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.
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