summaryrefslogtreecommitdiff
path: root/openstackclient/object
diff options
context:
space:
mode:
authorzheng yin <yin.zheng@easystack.cn>2016-09-23 19:42:40 +0800
committerzheng yin <yin.zheng@easystack.cn>2016-09-26 20:42:26 +0800
commit9912fdd7ff037462d295e77ac58aadc3d7f8f972 (patch)
tree7455dc62755e92628ead3686dcb5d78b9b84f549 /openstackclient/object
parent465a5d08e0b931b22c055fcbd5f530ee5547e7ab (diff)
downloadpython-openstackclient-9912fdd7ff037462d295e77ac58aadc3d7f8f972.tar.gz
Add default limit for container/object
Default container name length less than or equal to 256 in link[1], as the same time,default object name length less than or equal to 1024 in link[2]. Thereforce, I check the length of container and object in take_action. and if it's greater than 256/1024 I warn the user. [1] https://github.com/openstack/swift/blob/master/swift/common/constraints.py#L39 [2] https://github.com/openstack/swift/blob/master/swift/common/constraints.py#L35 Change-Id: I304b77cbc464eaba041321654cc29248cbe4b9a6
Diffstat (limited to 'openstackclient/object')
-rw-r--r--openstackclient/object/v1/container.py11
-rw-r--r--openstackclient/object/v1/object.py10
2 files changed, 21 insertions, 0 deletions
diff --git a/openstackclient/object/v1/container.py b/openstackclient/object/v1/container.py
index f00cc150..2f0d4ac2 100644
--- a/openstackclient/object/v1/container.py
+++ b/openstackclient/object/v1/container.py
@@ -15,11 +15,18 @@
"""Container v1 action implementations"""
+import logging
+
from osc_lib.cli import parseractions
from osc_lib.command import command
from osc_lib import utils
import six
+from openstackclient.i18n import _
+
+
+LOG = logging.getLogger(__name__)
+
class CreateContainer(command.Lister):
"""Create new container"""
@@ -38,6 +45,10 @@ class CreateContainer(command.Lister):
results = []
for container in parsed_args.containers:
+ if len(container) > 256:
+ LOG.warning(
+ _('Container name is %s characters long, the default limit'
+ ' is 256'), len(container))
data = self.app.client_manager.object_store.container_create(
container=container,
)
diff --git a/openstackclient/object/v1/object.py b/openstackclient/object/v1/object.py
index 39dba3d5..db61d638 100644
--- a/openstackclient/object/v1/object.py
+++ b/openstackclient/object/v1/object.py
@@ -15,12 +15,18 @@
"""Object v1 action implementations"""
+import logging
from osc_lib.cli import parseractions
from osc_lib.command import command
from osc_lib import utils
import six
+from openstackclient.i18n import _
+
+
+LOG = logging.getLogger(__name__)
+
class CreateObject(command.Lister):
"""Upload object to container"""
@@ -44,6 +50,10 @@ class CreateObject(command.Lister):
results = []
for obj in parsed_args.objects:
+ if len(obj) > 1024:
+ LOG.warning(
+ _('Object name is %s characters long, default limit'
+ ' is 1024'), len(obj))
data = self.app.client_manager.object_store.object_create(
container=parsed_args.container,
object=obj,