Skip to content

Commit 6e1ad73

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "validate non-ascii values for swift properties"
2 parents c39708b + cfd2bf5 commit 6e1ad73

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

openstackclient/api/object_store_v1.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"""Object Store v1 API Library"""
1515

1616
import io
17+
import logging
1718
import os
1819

1920
import six
@@ -25,6 +26,7 @@
2526
from urlparse import urlparse # noqa
2627

2728
from openstackclient.api import api
29+
from openstackclient.common import utils
2830

2931

3032
class APIv1(api.BaseAPI):
@@ -551,8 +553,14 @@ def _set_properties(self, properties, header_tag):
551553
# property we use: "X-Add-Container-Meta-Book: MobyDick", and the same
552554
# logic applies for Object properties
553555

556+
log = logging.getLogger(__name__ + '._set_properties')
557+
554558
headers = {}
555559
for k, v in properties.iteritems():
560+
if not utils.is_ascii(k) or not utils.is_ascii(v):
561+
log.error('Cannot set property %s to non-ascii value', k)
562+
continue
563+
556564
header_name = header_tag % k
557565
headers[header_name] = v
558566
return headers

openstackclient/common/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,3 +419,11 @@ def build_kwargs_dict(arg_name, value):
419419
if value:
420420
kwargs[arg_name] = value
421421
return kwargs
422+
423+
424+
def is_ascii(string):
425+
try:
426+
string.decode('ascii')
427+
return True
428+
except UnicodeDecodeError:
429+
return False

0 commit comments

Comments
 (0)