Improve parse_bytes util method

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2016-02-01 14:22:29 -08:00
parent 03279ff9a3
commit 7440603d98
2 changed files with 36 additions and 40 deletions

View File

@ -518,9 +518,11 @@ def longint(n):
def parse_bytes(s):
if isinstance(s, six.integer_types + (float,)):
return s
if len(s) == 0:
s = 0
else:
return 0
if s[-2:-1].isalpha() and s[-1].isalpha():
if s[-1] == "b" or s[-1] == "B":
s = s[:-1]
@ -594,16 +596,10 @@ def create_host_config(binds=None, port_bindings=None, lxc_conf=None,
version = constants.DEFAULT_DOCKER_API_VERSION
if mem_limit is not None:
if isinstance(mem_limit, six.string_types):
mem_limit = parse_bytes(mem_limit)
host_config['Memory'] = mem_limit
host_config['Memory'] = parse_bytes(mem_limit)
if memswap_limit is not None:
if isinstance(memswap_limit, six.string_types):
memswap_limit = parse_bytes(memswap_limit)
host_config['MemorySwap'] = memswap_limit
host_config['MemorySwap'] = parse_bytes(memswap_limit)
if mem_swappiness is not None:
if version_lt(version, '1.20'):
@ -873,9 +869,9 @@ def create_container_config(
if isinstance(labels, list):
labels = dict((lbl, six.text_type('')) for lbl in labels)
if isinstance(mem_limit, six.string_types):
if mem_limit is not None:
mem_limit = parse_bytes(mem_limit)
if isinstance(memswap_limit, six.string_types):
if memswap_limit is not None:
memswap_limit = parse_bytes(memswap_limit)
if isinstance(ports, list):

View File

@ -1045,7 +1045,7 @@ class ContainerUpdateTest(helpers.BaseTestCase):
)
self.tmp_containers.append(container)
self.client.start(container)
print(self.client.update_container(container, mem_limit=new_mem_limit))
self.client.update_container(container, mem_limit=new_mem_limit)
inspect_data = self.client.inspect_container(container)
self.assertEqual(inspect_data['HostConfig']['Memory'], new_mem_limit)
self.assertEqual(inspect_data['HostConfig']['CpuShares'], 102)