summaryrefslogtreecommitdiff
path: root/openstackclient/api
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2015-09-10 01:45:33 -0500
committerlin-hua-cheng <os.lcheng@gmail.com>2015-10-01 18:18:36 -0700
commita4483a05137bbd3ed416b6a61687315095ccced7 (patch)
treeab7fb0cc99feb811972d726088f53cb1122e72c8 /openstackclient/api
parent0daa0969392dce50266d8dcac31a68d2ba02602f (diff)
downloadpython-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.py47
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)