2014-04-23 08:07 PM
The Netapp NFS openstack plugin (havana and icehouse) checks before cloning an image whether the source and destination images are on the same filer. This is done via API call "net-ifconfig-get", which is then used to determine if the IP addresses of source and destination match:
The problem I'm having is that the account I'm using for API access only exists on a vfiler for security and separation reasons. According to the API/SDK docs, "net-ifconfig-get" is not supported on vfiler. A trace of the HTTP conversation between openstack cinder and vfiler shows:
<!DOCTYPE netapp SYSTEM '/na_admin/netapp_filer.dtd'>
<netapp version='1.1' xmlns='http://www.netapp.com/filer/admin'>
<results status="failed" reason="Unable to find API: net-ifconfig-get" errno="13005"/></netapp>
This prevents openstack from making a direct netapp clone of the file, since it cannot be sure the images are on the same filer.
Why is the current openstack plugin not support vfilers? Should this be documented somewhere?
I think there must be a better way to check whether the filers are the same, how about checking the serial number? "system-get-info" would work on a vfiler.
2014-04-24 11:23 AM
The issue you describe above is not a failure of our driver to support vfilers; but rather (as you point out) is a limitation due to the permissions assigned to your account. The clone will fail - but the tenant facing operation that drove the clone attempt should succeed because we will fallback to a suboptimal solution that involves a direct download and copy of the image versus doing a clone.
Regarding continued innovation of our OpenStack support for 7-mode - we are explicitly prioritizing CDOT functionality as that aligns with the strategic direction of Data ONTAP. The existing 7-mode function in our drivers should be functional, but will not be enhanced for emerging/advanced scenarios.
Hope this helps,
2014-04-24 07:24 PM
thanks for your reply. I have to disagree with your assessment though. As far as I understand it, "net-ifconfig-get" is not supported in vfiler context. This is not a lack of permissions of my account, but instead it is simply not implemented by the NetApp OS in the vfiler context. Even if I give all permissions to a vfiler user, I still cannot call this API. This is clearly marked in the API documentation.
I've modified your Openstack driver to support vfilers, so it is indeed a failure of your driver that vfilers are not supported in the current release. When can we expect vfiler support in the official Netapp cinder driver?