Merge "Change the format of memory field"
This commit is contained in:
commit
5e243d8ba7
@ -222,7 +222,7 @@ class CapsuleController(base.Controller):
|
|||||||
container_dict['cpu'] = allocation.get('cpu')
|
container_dict['cpu'] = allocation.get('cpu')
|
||||||
if allocation.get('memory'):
|
if allocation.get('memory'):
|
||||||
capsule_need_memory += allocation.get('memory')
|
capsule_need_memory += allocation.get('memory')
|
||||||
container_dict['memory'] = str(allocation['memory']) + 'M'
|
container_dict['memory'] = str(allocation['memory'])
|
||||||
container_dict.pop('resources')
|
container_dict.pop('resources')
|
||||||
|
|
||||||
container_dict['restart_policy'] = container_restart_policy
|
container_dict['restart_policy'] = container_restart_policy
|
||||||
@ -247,7 +247,7 @@ class CapsuleController(base.Controller):
|
|||||||
container_volume_requests,
|
container_volume_requests,
|
||||||
new_capsule)
|
new_capsule)
|
||||||
new_capsule.cpu = capsule_need_cpu
|
new_capsule.cpu = capsule_need_cpu
|
||||||
new_capsule.memory = str(capsule_need_memory) + 'M'
|
new_capsule.memory = str(capsule_need_memory)
|
||||||
new_capsule.save(context)
|
new_capsule.save(context)
|
||||||
compute_api.capsule_create(context, new_capsule, requested_networks,
|
compute_api.capsule_create(context, new_capsule, requested_networks,
|
||||||
requested_volumes, extra_spec)
|
requested_volumes, extra_spec)
|
||||||
|
@ -367,7 +367,7 @@ class ContainersController(base.Controller):
|
|||||||
container_dict['disk'] = container_dict.get('disk')
|
container_dict['disk'] = container_dict.get('disk')
|
||||||
container_dict['memory'] = container_dict.get(
|
container_dict['memory'] = container_dict.get(
|
||||||
'memory', CONF.default_memory)
|
'memory', CONF.default_memory)
|
||||||
container_dict['memory'] = str(container_dict['memory']) + 'M'
|
container_dict['memory'] = str(container_dict['memory'])
|
||||||
container_dict['cpu'] = container_dict.get(
|
container_dict['cpu'] = container_dict.get(
|
||||||
'cpu', CONF.default_cpu)
|
'cpu', CONF.default_cpu)
|
||||||
|
|
||||||
@ -553,7 +553,7 @@ class ContainersController(base.Controller):
|
|||||||
check_policy_on_container(container.as_dict(), "container:update")
|
check_policy_on_container(container.as_dict(), "container:update")
|
||||||
utils.validate_container_state(container, 'update')
|
utils.validate_container_state(container, 'update')
|
||||||
if 'memory' in patch:
|
if 'memory' in patch:
|
||||||
patch['memory'] = str(patch['memory']) + 'M'
|
patch['memory'] = str(patch['memory'])
|
||||||
if 'cpu' in patch:
|
if 'cpu' in patch:
|
||||||
patch['cpu'] = float(patch['cpu'])
|
patch['cpu'] = float(patch['cpu'])
|
||||||
if 'name' in patch:
|
if 'name' in patch:
|
||||||
|
@ -88,10 +88,7 @@ class Claim(NopClaim):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def memory(self):
|
def memory(self):
|
||||||
mem_str = "0"
|
return int(self.container.memory or "0")
|
||||||
if self.container.memory:
|
|
||||||
mem_str = self.container.memory[:-1]
|
|
||||||
return int(mem_str)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cpu(self):
|
def cpu(self):
|
||||||
@ -224,12 +221,8 @@ class UpdateClaim(Claim):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def memory(self):
|
def memory(self):
|
||||||
new_mem_str = "0"
|
new_mem_str = self.new_container.memory or "0"
|
||||||
if self.new_container.memory:
|
old_mem_str = self.old_container.memory or "0"
|
||||||
new_mem_str = self.new_container.memory[:-1]
|
|
||||||
old_mem_str = "0"
|
|
||||||
if self.old_container.memory:
|
|
||||||
old_mem_str = self.old_container.memory[:-1]
|
|
||||||
return int(new_mem_str) - int(old_mem_str)
|
return int(new_mem_str) - int(old_mem_str)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -297,7 +297,7 @@ class ComputeNodeTracker(object):
|
|||||||
# (Fixme): The Container.memory is string.
|
# (Fixme): The Container.memory is string.
|
||||||
memory = 0
|
memory = 0
|
||||||
if container.memory:
|
if container.memory:
|
||||||
memory = int(container.memory[:-1])
|
memory = int(container.memory)
|
||||||
usage = {'memory': memory,
|
usage = {'memory': memory,
|
||||||
'cpu': container.cpu or 0,
|
'cpu': container.cpu or 0,
|
||||||
'disk': container.disk or 0}
|
'disk': container.disk or 0}
|
||||||
|
@ -245,7 +245,7 @@ class DockerDriver(driver.ContainerDriver):
|
|||||||
if container.auto_remove:
|
if container.auto_remove:
|
||||||
host_config['auto_remove'] = container.auto_remove
|
host_config['auto_remove'] = container.auto_remove
|
||||||
if container.memory is not None:
|
if container.memory is not None:
|
||||||
host_config['mem_limit'] = container.memory
|
host_config['mem_limit'] = str(container.memory) + 'M'
|
||||||
if container.cpu is not None:
|
if container.cpu is not None:
|
||||||
host_config['cpu_quota'] = int(100000 * container.cpu)
|
host_config['cpu_quota'] = int(100000 * container.cpu)
|
||||||
host_config['cpu_period'] = 100000
|
host_config['cpu_period'] = 100000
|
||||||
@ -784,7 +784,7 @@ class DockerDriver(driver.ContainerDriver):
|
|||||||
args = {}
|
args = {}
|
||||||
memory = patch.get('memory')
|
memory = patch.get('memory')
|
||||||
if memory is not None:
|
if memory is not None:
|
||||||
args['mem_limit'] = memory
|
args['mem_limit'] = str(memory) + 'M'
|
||||||
args['memswap_limit'] = CONF.default_memory_swap
|
args['memswap_limit'] = CONF.default_memory_swap
|
||||||
cpu = patch.get('cpu')
|
cpu = patch.get('cpu')
|
||||||
if cpu is not None:
|
if cpu is not None:
|
||||||
|
@ -29,7 +29,7 @@ class RamFilter(filters.BaseHostFilter):
|
|||||||
if not container.memory:
|
if not container.memory:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
request_ram = int(container.memory[:-1])
|
request_ram = int(container.memory)
|
||||||
usable_ram = host_state.mem_total - host_state.mem_used
|
usable_ram = host_state.mem_total - host_state.mem_used
|
||||||
if usable_ram < request_ram:
|
if usable_ram < request_ram:
|
||||||
LOG.debug("%(host_state)s does not have %(request_ram)d "
|
LOG.debug("%(host_state)s does not have %(request_ram)d "
|
||||||
|
@ -48,7 +48,7 @@ class TestCapsuleController(api_base.FunctionalTest):
|
|||||||
return_value = response.json
|
return_value = response.json
|
||||||
expected_meta_name = "capsule-example"
|
expected_meta_name = "capsule-example"
|
||||||
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
||||||
expected_memory = '1024M'
|
expected_memory = '1024'
|
||||||
expected_cpu = 1.0
|
expected_cpu = 1.0
|
||||||
expected_container_num = 2
|
expected_container_num = 2
|
||||||
self.assertEqual(len(return_value["containers_uuids"]),
|
self.assertEqual(len(return_value["containers_uuids"]),
|
||||||
@ -85,7 +85,7 @@ class TestCapsuleController(api_base.FunctionalTest):
|
|||||||
return_value = response.json
|
return_value = response.json
|
||||||
expected_meta_name = "capsule-example"
|
expected_meta_name = "capsule-example"
|
||||||
expected_meta_labels = {"foo0": "bar0"}
|
expected_meta_labels = {"foo0": "bar0"}
|
||||||
expected_memory = '2048M'
|
expected_memory = '2048'
|
||||||
expected_cpu = 2.0
|
expected_cpu = 2.0
|
||||||
expected_container_num = 3
|
expected_container_num = 3
|
||||||
self.assertEqual(len(return_value["containers_uuids"]),
|
self.assertEqual(len(return_value["containers_uuids"]),
|
||||||
@ -199,7 +199,7 @@ class TestCapsuleController(api_base.FunctionalTest):
|
|||||||
return_value = response.json
|
return_value = response.json
|
||||||
expected_meta_name = "capsule-example"
|
expected_meta_name = "capsule-example"
|
||||||
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
||||||
expected_memory = '1024M'
|
expected_memory = '1024'
|
||||||
expected_cpu = 1.0
|
expected_cpu = 1.0
|
||||||
expected_container_num = 2
|
expected_container_num = 2
|
||||||
self.assertEqual(len(return_value["containers_uuids"]),
|
self.assertEqual(len(return_value["containers_uuids"]),
|
||||||
@ -253,7 +253,7 @@ class TestCapsuleController(api_base.FunctionalTest):
|
|||||||
return_value = response.json
|
return_value = response.json
|
||||||
expected_meta_name = "capsule-example"
|
expected_meta_name = "capsule-example"
|
||||||
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
||||||
expected_memory = '1024M'
|
expected_memory = '1024'
|
||||||
expected_cpu = 1.0
|
expected_cpu = 1.0
|
||||||
expected_container_num = 2
|
expected_container_num = 2
|
||||||
self.assertEqual(len(return_value["containers_uuids"]),
|
self.assertEqual(len(return_value["containers_uuids"]),
|
||||||
@ -316,7 +316,7 @@ class TestCapsuleController(api_base.FunctionalTest):
|
|||||||
return_value = response.json
|
return_value = response.json
|
||||||
expected_meta_name = "capsule-example"
|
expected_meta_name = "capsule-example"
|
||||||
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
expected_meta_labels = {"foo0": "bar0", "foo1": "bar1"}
|
||||||
expected_memory = '1024M'
|
expected_memory = '1024'
|
||||||
expected_cpu = 1.0
|
expected_cpu = 1.0
|
||||||
expected_container_num = 2
|
expected_container_num = 2
|
||||||
self.assertEqual(len(return_value["containers_uuids"]),
|
self.assertEqual(len(return_value["containers_uuids"]),
|
||||||
|
@ -261,7 +261,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual({"key1": "val1", "key2": "val2"},
|
self.assertEqual({"key1": "val1", "key2": "val2"},
|
||||||
c.get('environment'))
|
c.get('environment'))
|
||||||
self.assertEqual('runc', c.get('runtime'))
|
self.assertEqual('runc', c.get('runtime'))
|
||||||
@ -318,7 +318,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertIsNotNone(c.get('name'))
|
self.assertIsNotNone(c.get('name'))
|
||||||
self.assertIsNone(c.get('command'))
|
self.assertIsNone(c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual(1.0, c.get('cpu'))
|
self.assertEqual(1.0, c.get('cpu'))
|
||||||
# TODO(kiennt): Uncomment it when bug [1] be resolved.
|
# TODO(kiennt): Uncomment it when bug [1] be resolved.
|
||||||
# At this time, limit disk size feature will be ready.
|
# At this time, limit disk size feature will be ready.
|
||||||
@ -358,7 +358,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual(1.0, c.get('cpu'))
|
self.assertEqual(1.0, c.get('cpu'))
|
||||||
# TODO(kiennt): Uncomment it when bug [1] be resolved.
|
# TODO(kiennt): Uncomment it when bug [1] be resolved.
|
||||||
# At this time, limit disk size feature will be ready.
|
# At this time, limit disk size feature will be ready.
|
||||||
@ -397,7 +397,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual({"Name": "no", "MaximumRetryCount": "0"},
|
self.assertEqual({"Name": "no", "MaximumRetryCount": "0"},
|
||||||
c.get('restart_policy'))
|
c.get('restart_policy'))
|
||||||
mock_neutron_get_network.assert_called_once()
|
mock_neutron_get_network.assert_called_once()
|
||||||
@ -433,7 +433,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual({"Name": "no", "MaximumRetryCount": "0"},
|
self.assertEqual({"Name": "no", "MaximumRetryCount": "0"},
|
||||||
c.get('restart_policy'))
|
c.get('restart_policy'))
|
||||||
mock_neutron_get_network.assert_called_once()
|
mock_neutron_get_network.assert_called_once()
|
||||||
@ -469,7 +469,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual({"Name": "unless-stopped", "MaximumRetryCount": "0"},
|
self.assertEqual({"Name": "unless-stopped", "MaximumRetryCount": "0"},
|
||||||
c.get('restart_policy'))
|
c.get('restart_policy'))
|
||||||
mock_neutron_get_network.assert_called_once()
|
mock_neutron_get_network.assert_called_once()
|
||||||
@ -513,7 +513,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertIsNotNone(c.get('uuid'))
|
self.assertIsNotNone(c.get('uuid'))
|
||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
self.assertEqual({"key1": "val1", "key2": "val2"},
|
self.assertEqual({"key1": "val1", "key2": "val2"},
|
||||||
c.get('environment'))
|
c.get('environment'))
|
||||||
requested_networks = \
|
requested_networks = \
|
||||||
@ -637,7 +637,7 @@ class TestContainerController(api_base.FunctionalTest):
|
|||||||
self.assertEqual('MyDocker', c.get('name'))
|
self.assertEqual('MyDocker', c.get('name'))
|
||||||
self.assertEqual('env', c.get('command'))
|
self.assertEqual('env', c.get('command'))
|
||||||
self.assertEqual('Creating', c.get('status'))
|
self.assertEqual('Creating', c.get('status'))
|
||||||
self.assertEqual('512M', c.get('memory'))
|
self.assertEqual('512', c.get('memory'))
|
||||||
requested_networks = \
|
requested_networks = \
|
||||||
mock_container_create.call_args[1]['requested_networks']
|
mock_container_create.call_args[1]['requested_networks']
|
||||||
self.assertEqual(1, len(requested_networks))
|
self.assertEqual(1, len(requested_networks))
|
||||||
|
@ -124,7 +124,7 @@ class TestDockerDriver(base.DriverTestCase):
|
|||||||
result_container = self.driver.create(self.context, mock_container,
|
result_container = self.driver.create(self.context, mock_container,
|
||||||
image, networks, volumes)
|
image, networks, volumes)
|
||||||
host_config = {}
|
host_config = {}
|
||||||
host_config['mem_limit'] = '512m'
|
host_config['mem_limit'] = '512M'
|
||||||
host_config['cpu_quota'] = 100000
|
host_config['cpu_quota'] = 100000
|
||||||
host_config['cpu_period'] = 100000
|
host_config['cpu_period'] = 100000
|
||||||
host_config['restart_policy'] = {'Name': 'no', 'MaximumRetryCount': 0}
|
host_config['restart_policy'] = {'Name': 'no', 'MaximumRetryCount': 0}
|
||||||
@ -190,7 +190,7 @@ class TestDockerDriver(base.DriverTestCase):
|
|||||||
result_container = self.driver.create(self.context, mock_container,
|
result_container = self.driver.create(self.context, mock_container,
|
||||||
image, networks, volumes)
|
image, networks, volumes)
|
||||||
host_config = {}
|
host_config = {}
|
||||||
host_config['mem_limit'] = '512m'
|
host_config['mem_limit'] = '512M'
|
||||||
host_config['cpu_quota'] = 100000
|
host_config['cpu_quota'] = 100000
|
||||||
host_config['cpu_period'] = 100000
|
host_config['cpu_period'] = 100000
|
||||||
host_config['restart_policy'] = {'Name': 'no', 'MaximumRetryCount': 0}
|
host_config['restart_policy'] = {'Name': 'no', 'MaximumRetryCount': 0}
|
||||||
|
@ -61,7 +61,7 @@ def get_test_container(**kwargs):
|
|||||||
'environment': kwargs.get('environment', {'key1': 'val1',
|
'environment': kwargs.get('environment', {'key1': 'val1',
|
||||||
'key2': 'val2'}),
|
'key2': 'val2'}),
|
||||||
'cpu': kwargs.get('cpu', 1.0),
|
'cpu': kwargs.get('cpu', 1.0),
|
||||||
'memory': kwargs.get('memory', '512m'),
|
'memory': kwargs.get('memory', '512'),
|
||||||
'workdir': kwargs.get('workdir', '/home/ubuntu'),
|
'workdir': kwargs.get('workdir', '/home/ubuntu'),
|
||||||
'ports': kwargs.get('ports', [80, 443]),
|
'ports': kwargs.get('ports', [80, 443]),
|
||||||
'hostname': kwargs.get('hostname', 'testhost'),
|
'hostname': kwargs.get('hostname', 'testhost'),
|
||||||
@ -395,7 +395,7 @@ def get_test_capsule(**kwargs):
|
|||||||
'status': kwargs.get('status', 'Running'),
|
'status': kwargs.get('status', 'Running'),
|
||||||
'status_reason': kwargs.get('status_reason', 'Created Successfully'),
|
'status_reason': kwargs.get('status_reason', 'Created Successfully'),
|
||||||
'cpu': kwargs.get('cpu', 1.0),
|
'cpu': kwargs.get('cpu', 1.0),
|
||||||
'memory': kwargs.get('memory', '512m'),
|
'memory': kwargs.get('memory', '512'),
|
||||||
'spec': kwargs.get('spec', CAPSULE_SPEC),
|
'spec': kwargs.get('spec', CAPSULE_SPEC),
|
||||||
'meta_name': kwargs.get('meta_name', "fake-meta-name"),
|
'meta_name': kwargs.get('meta_name', "fake-meta-name"),
|
||||||
'meta_labels': kwargs.get('meta_labels', {'key1': 'val1',
|
'meta_labels': kwargs.get('meta_labels', {'key1': 'val1',
|
||||||
|
@ -26,7 +26,7 @@ class TestRamFilter(base.TestCase):
|
|||||||
def test_ram_filter_pass(self):
|
def test_ram_filter_pass(self):
|
||||||
self.filt_cls = ram_filter.RamFilter()
|
self.filt_cls = ram_filter.RamFilter()
|
||||||
container = objects.Container(self.context)
|
container = objects.Container(self.context)
|
||||||
container.memory = '1024M'
|
container.memory = '1024'
|
||||||
host = fakes.FakeHostState('testhost')
|
host = fakes.FakeHostState('testhost')
|
||||||
host.mem_total = 1024 * 128
|
host.mem_total = 1024 * 128
|
||||||
host.mem_used = 1024
|
host.mem_used = 1024
|
||||||
@ -36,7 +36,7 @@ class TestRamFilter(base.TestCase):
|
|||||||
def test_ram_filter_fail(self):
|
def test_ram_filter_fail(self):
|
||||||
self.filt_cls = ram_filter.RamFilter()
|
self.filt_cls = ram_filter.RamFilter()
|
||||||
container = objects.Container(self.context)
|
container = objects.Container(self.context)
|
||||||
container.memory = '4096M'
|
container.memory = '4096'
|
||||||
host = fakes.FakeHostState('testhost')
|
host = fakes.FakeHostState('testhost')
|
||||||
host.mem_total = 1024 * 128
|
host.mem_total = 1024 * 128
|
||||||
host.mem_used = 1024 * 127
|
host.mem_used = 1024 * 127
|
||||||
|
Loading…
Reference in New Issue
Block a user