[openstack-dev] Manila client (v1.1.0) region support
Valeriy Ponomaryov
vponomaryov at mirantis.com
Thu Apr 30 19:22:52 UTC 2015
Hello, Joe
It is bug, "region_name" is not used as should be. Feel free to file a bug
for it.
Kind Regards
Valeriy Ponomaryov
On Thu, Apr 30, 2015 at 8:23 PM, Joe Meadows <Joe.Meadows at hds.com> wrote:
> Hi,
>
> I work for Hitachi Data Systems (HDS) and am developing Manila support for
> our HNAS line of NAS server. The HNAS server has an internal REST server
> so I am implementing the Manila API natively on the server. For various
> reasons this is a better fit than the standard Python driver implementation.
>
> This implementation means that each HNAS server is its own endpoint so it
> gets added to Keystone as an endpoint using the Manila service Id. I am
> using regions to distinguish between multiple HNAS servers or other Manila
> endpoints. Therefore, when I add each HNAS endpoint I give that endpoint a
> unique region name.
>
> Initially this worked exactly as expected when using a Manila client that
> I installed from GitHub following the instructions at
> http://netapp.github.io/openstack/2014/08/15/manila-devstack/
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__netapp.github.io_openstack_2014_08_15_manila-2Ddevstack_&d=AwMGaQ&c=DZ-EF4pZfxGSU6MfABwx0g&r=zHvLuN-cA8dJrDKv-7gpbBCgBAKPaAzJfG6sccaIdHHNpjwlcFjsdjPhFr9XPGnV&m=V37u0qx0ILzWPG7XsUs5_D2uR6KRjHYV2vSQ20UQnEA&s=gagpiobFCwxAaoXUTt9lRA6-g4vNiC_VDR-TQDX8IR0&e=>.
>
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__netapp.github.io_openstack_2014_08_15_manila-2Ddevstack_&d=AwMGaQ&c=DZ-EF4pZfxGSU6MfABwx0g&r=zHvLuN-cA8dJrDKv-7gpbBCgBAKPaAzJfG6sccaIdHHNpjwlcFjsdjPhFr9XPGnV&m=V37u0qx0ILzWPG7XsUs5_D2uR6KRjHYV2vSQ20UQnEA&s=gagpiobFCwxAaoXUTt9lRA6-g4vNiC_VDR-TQDX8IR0&e=>For
> example, I could do 'manila --os-region-name HNAS1 list' and the request
> would route to the correct endpoint (i.e. HNAS server). This Manila client
> shows version 1.0.2.
>
> Recently I tried this setup on another developer's OpenStack installation
> and the region name was ignored, though this client also claimed to be
> version 1.0.2. Next I used pip to install python-manilaclient onto another
> machine, version 1.1.0, and again the region is ignored.
>
> I stepped through the client code and found that when
> v1/client.py::__init__() searches for an endpoint it always takes the first
> one, never checking the region.
>
> I made a small change which makes the client behave how I'd like it to.
> If region is not specified it retains the original behavior of returning
> the first endpoint. If a region is specified then it will return the first
> endpoint with a matching region. The patch is below, my changes are
> between the #JAMJAM comments.
>
> --- a/client.py 2015-04-22 16:05:10.000000000 -0700
> +++ b/client.py 2015-04-22 16:00:56.000000000 -0700
> @@ -142,10 +142,21 @@
> service_type)
>
> if service_type in catalog:
> - for e_type, endpoint in
> catalog.get(service_type)[0].items():
> - if str(e_type).lower() == str(endpoint_type).lower():
> - service_catalog_url = endpoint
> - break
> + # JAMJAM START
> + srvCat=catalog.get(service_type)
> + for catalogEntry in srvCat:
> + if region_name != "":
> + region=catalogEntry.get("region")
> + if region != region_name:
> + continue;
> + #for e_type, endpoint in
> catalog.get(service_type)[0].items():
> + # JAMJAM END
> + for e_type, endpoint in catalogEntry.items():
> + if str(e_type).lower() ==
> str(endpoint_type).lower():
> + service_catalog_url = endpoint
> + break
> + if service_catalog_url:
> + break
>
> if not service_catalog_url:
> raise RuntimeError("Could not find Manila endpoint in
> catalog")
>
> So now, the obvious questions are; Is there already a way to specify a
> region that the Manila client will honor? Is this patch fixing something?
> Is this not a valid use of regions for Manila?
>
> Many thanks in advance
> Joe Meadows
> HNAS Engineering
> Hitachi Data Systems
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150430/fd07293a/attachment.html>
More information about the OpenStack-dev
mailing list