Refactor get_available_resources in container driver
Move docker-specific code to DockerDriver subclass. After the refactoring, generic code stays in base class and docker-specific code is moved to docker driver subclass. As a result, we can re-use the generic code in base class if we introduce a non-docker driver in the future. Change-Id: I4a68b58f46bc7eaac494909647b87ada7813a8eb
This commit is contained in:
parent
112c5a6cd6
commit
428f9f8375
@ -1103,7 +1103,6 @@ class DockerDriver(driver.ContainerDriver):
|
|||||||
else:
|
else:
|
||||||
runtimes = ['runc']
|
runtimes = ['runc']
|
||||||
docker_root_dir = info['DockerRootDir']
|
docker_root_dir = info['DockerRootDir']
|
||||||
enable_cpu_pinning = CONF.compute.enable_cpu_pinning
|
|
||||||
|
|
||||||
return {'total_containers': total,
|
return {'total_containers': total,
|
||||||
'running_containers': running,
|
'running_containers': running,
|
||||||
@ -1116,8 +1115,7 @@ class DockerDriver(driver.ContainerDriver):
|
|||||||
'kernel_version': kernel_version,
|
'kernel_version': kernel_version,
|
||||||
'labels': labels,
|
'labels': labels,
|
||||||
'runtimes': runtimes,
|
'runtimes': runtimes,
|
||||||
'docker_root_dir': docker_root_dir,
|
'docker_root_dir': docker_root_dir}
|
||||||
'enable_cpu_pinning': enable_cpu_pinning}
|
|
||||||
|
|
||||||
def get_total_disk_for_container(self):
|
def get_total_disk_for_container(self):
|
||||||
try:
|
try:
|
||||||
@ -1153,6 +1151,24 @@ class DockerDriver(driver.ContainerDriver):
|
|||||||
def get_available_nodes(self):
|
def get_available_nodes(self):
|
||||||
return [self._host.get_hostname()]
|
return [self._host.get_hostname()]
|
||||||
|
|
||||||
|
def get_available_resources(self):
|
||||||
|
data = super(DockerDriver, self).get_available_resources()
|
||||||
|
|
||||||
|
info = self.get_host_info()
|
||||||
|
data['total_containers'] = info['total_containers']
|
||||||
|
data['running_containers'] = info['running_containers']
|
||||||
|
data['paused_containers'] = info['paused_containers']
|
||||||
|
data['stopped_containers'] = info['stopped_containers']
|
||||||
|
data['cpus'] = info['cpus']
|
||||||
|
data['architecture'] = info['architecture']
|
||||||
|
data['os_type'] = info['os_type']
|
||||||
|
data['os'] = info['os']
|
||||||
|
data['kernel_version'] = info['kernel_version']
|
||||||
|
data['labels'] = info['labels']
|
||||||
|
data['runtimes'] = info['runtimes']
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
@wrap_docker_error
|
@wrap_docker_error
|
||||||
def network_detach(self, context, container, network):
|
def network_detach(self, context, container, network):
|
||||||
with docker_utils.docker_client() as docker:
|
with docker_utils.docker_client() as docker:
|
||||||
|
@ -248,23 +248,11 @@ class ContainerDriver(object):
|
|||||||
data['mem_free'] = mem_free // units.Ki
|
data['mem_free'] = mem_free // units.Ki
|
||||||
data['mem_available'] = mem_ava // units.Ki
|
data['mem_available'] = mem_ava // units.Ki
|
||||||
data['mem_used'] = mem_used // units.Ki
|
data['mem_used'] = mem_used // units.Ki
|
||||||
info = self.get_host_info()
|
|
||||||
data['total_containers'] = info['total_containers']
|
|
||||||
data['running_containers'] = info['running_containers']
|
|
||||||
data['paused_containers'] = info['paused_containers']
|
|
||||||
data['stopped_containers'] = info['stopped_containers']
|
|
||||||
data['cpus'] = info['cpus']
|
|
||||||
data['architecture'] = info['architecture']
|
|
||||||
data['os_type'] = info['os_type']
|
|
||||||
data['os'] = info['os']
|
|
||||||
data['kernel_version'] = info['kernel_version']
|
|
||||||
data['labels'] = info['labels']
|
|
||||||
disk_total, disk_reserved = self.get_total_disk_for_container()
|
disk_total, disk_reserved = self.get_total_disk_for_container()
|
||||||
data['disk_total'] = disk_total - disk_reserved
|
data['disk_total'] = disk_total - disk_reserved
|
||||||
disk_quota_supported = self.node_support_disk_quota()
|
disk_quota_supported = self.node_support_disk_quota()
|
||||||
data['disk_quota_supported'] = disk_quota_supported
|
data['disk_quota_supported'] = disk_quota_supported
|
||||||
data['runtimes'] = info['runtimes']
|
data['enable_cpu_pinning'] = CONF.compute.enable_cpu_pinning
|
||||||
data['enable_cpu_pinning'] = info['enable_cpu_pinning']
|
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user