summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/api/object_store_v1.py8
-rw-r--r--openstackclient/common/utils.py8
2 files changed, 16 insertions, 0 deletions
diff --git a/openstackclient/api/object_store_v1.py b/openstackclient/api/object_store_v1.py
index b1c78d99..ab75a78c 100644
--- a/openstackclient/api/object_store_v1.py
+++ b/openstackclient/api/object_store_v1.py
@@ -14,6 +14,7 @@
"""Object Store v1 API Library"""
import io
+import logging
import os
import six
@@ -25,6 +26,7 @@ except ImportError:
from urlparse import urlparse # noqa
from openstackclient.api import api
+from openstackclient.common import utils
class APIv1(api.BaseAPI):
@@ -551,8 +553,14 @@ class APIv1(api.BaseAPI):
# property we use: "X-Add-Container-Meta-Book: MobyDick", and the same
# logic applies for Object properties
+ log = logging.getLogger(__name__ + '._set_properties')
+
headers = {}
for k, v in properties.iteritems():
+ if not utils.is_ascii(k) or not utils.is_ascii(v):
+ log.error('Cannot set property %s to non-ascii value', k)
+ continue
+
header_name = header_tag % k
headers[header_name] = v
return headers
diff --git a/openstackclient/common/utils.py b/openstackclient/common/utils.py
index 51e2a2f9..8db4f35b 100644
--- a/openstackclient/common/utils.py
+++ b/openstackclient/common/utils.py
@@ -419,3 +419,11 @@ def build_kwargs_dict(arg_name, value):
if value:
kwargs[arg_name] = value
return kwargs
+
+
+def is_ascii(string):
+ try:
+ string.decode('ascii')
+ return True
+ except UnicodeDecodeError:
+ return False