diff options
| author | Steve Martinelli <stevemar@ca.ibm.com> | 2015-09-10 01:45:33 -0500 |
|---|---|---|
| committer | lin-hua-cheng <os.lcheng@gmail.com> | 2015-10-01 18:18:36 -0700 |
| commit | a4483a05137bbd3ed416b6a61687315095ccced7 (patch) | |
| tree | ab7fb0cc99feb811972d726088f53cb1122e72c8 /openstackclient/api | |
| parent | 0daa0969392dce50266d8dcac31a68d2ba02602f (diff) | |
| download | python-openstackclient-a4483a05137bbd3ed416b6a61687315095ccced7.tar.gz | |
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
Diffstat (limited to 'openstackclient/api')
| -rw-r--r-- | openstackclient/api/object_store_v1.py | 47 |
1 files changed, 47 insertions, 0 deletions
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) |
