Image list function should normalize owner filter
The api.glance.image_list_detailed() function accepts a list of filters which it then translates into a form that is acceptable for Glance v1 or Glance v2. These translations included support for mapping 'is_public' to 'visibility', but did not include support for mapping 'property-owner_id' to 'owner'. This changes adds support for mapping 'property-owner_id' to 'owner' for Glance v2, and mapping 'owner' to 'property-owner_id' for Glance v1. Before this fix, "rebuild instance" from the instances page did not properly list project-specific images as options. After this fix, "rebuild instance" is working as expected. Change-Id: Ica750f8b36bdbadd02a81aed41fd250864a49a66 Closes-Bug: 1671693
This commit is contained in:
parent
e0b6936178
commit
445117eb1f
@ -161,20 +161,42 @@ def _normalize_is_public_filter(filters):
|
||||
if not filters:
|
||||
return
|
||||
|
||||
# Glance v1 uses filter 'is_public' (True, False).
|
||||
# Glance v2 uses filter 'visibility' ('public', 'private', ...).
|
||||
if VERSIONS.active >= 2:
|
||||
if 'is_public' in filters:
|
||||
# Glance v2: Replace 'is_public' with 'visibility'.
|
||||
visibility = PUBLIC_TO_VISIBILITY_MAP[filters['is_public']]
|
||||
del filters['is_public']
|
||||
if visibility is not None:
|
||||
filters['visibility'] = visibility
|
||||
elif 'visibility' in filters:
|
||||
# Glance v1: Replace 'visibility' with 'is_public'.
|
||||
filters['is_public'] = (
|
||||
getattr(filters, 'visibility', None) == "public")
|
||||
del filter['visibility']
|
||||
del filters['visibility']
|
||||
|
||||
|
||||
def _normalize_owner_id_filter(filters):
|
||||
if not filters:
|
||||
return
|
||||
|
||||
# Glance v1 uses filter 'property-owner_id' (Project ID).
|
||||
# Glance v2 uses filter 'owner' (Project ID).
|
||||
if VERSIONS.active >= 2:
|
||||
if 'property-owner_id' in filters:
|
||||
# Glance v2: Replace 'property-owner_id' with 'owner'.
|
||||
filters['owner'] = filters['property-owner_id']
|
||||
del filters['property-owner_id']
|
||||
elif 'owner' in filters:
|
||||
# Glance v1: Replace 'owner' with 'property-owner_id'.
|
||||
filters['property-owner_id'] = filters['owner']
|
||||
del filters['owner']
|
||||
|
||||
|
||||
def _normalize_list_input(filters, **kwargs):
|
||||
_normalize_is_public_filter(filters)
|
||||
_normalize_owner_id_filter(filters)
|
||||
|
||||
if VERSIONS.active < 2:
|
||||
# Glance v1 client processes some keywords specifically.
|
||||
|
Loading…
x
Reference in New Issue
Block a user