From a4483a05137bbd3ed416b6a61687315095ccced7 Mon Sep 17 00:00:00 2001 From: Steve Martinelli Date: Thu, 10 Sep 2015 01:45:33 -0500 Subject: Add support for updating swift account properties this patch adds support for creating/updating and removing properties (nee: metadata) for object store accounts. Partial-Bug: #1501943 Change-Id: I3ed70a5d8bd8920fedb79adc60cdc602261d5eef --- openstackclient/api/object_store_v1.py | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'openstackclient/api') diff --git a/openstackclient/api/object_store_v1.py b/openstackclient/api/object_store_v1.py index c52eeb3a..c817b650 100644 --- a/openstackclient/api/object_store_v1.py +++ b/openstackclient/api/object_store_v1.py @@ -386,3 +386,50 @@ class APIv1(api.BaseAPI): data[key.lower()] = value return data + + def account_set( + self, + properties, + ): + """Set account properties + + :param dict properties: + properties to add or update for the account + """ + + # NOTE(stevemar): As per the API, the headers have to be in the form + # of "X-Account-Meta-Book: MobyDick" + + headers = {} + for k, v in properties.iteritems(): + header_name = 'X-Account-Meta-%s' % k + headers[header_name] = v + + if headers: + # NOTE(stevemar): The URL (first argument) in this case is already + # set to the swift account endpoint, because that's how it's + # registered in the catalog + self.create("", headers=headers) + + def account_unset( + self, + properties, + ): + """Unset account properties + + :param dict properties: + properties to remove from the account + """ + + # NOTE(stevemar): As per the API, the headers have to be in the form + # of "X-Remove-Account-Meta-Book: x". In the case where metadata is + # removed, we can set the value of the header to anything, so it's + # set to 'x' + + headers = {} + for k in properties: + header_name = 'X-Remove-Account-Meta-%s' % k + headers[header_name] = "x" + + if headers: + self.create("", headers=headers) -- cgit v1.2.1