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:
|
||||
runtimes = ['runc']
|
||||
docker_root_dir = info['DockerRootDir']
|
||||
enable_cpu_pinning = CONF.compute.enable_cpu_pinning
|
||||
|
||||
return {'total_containers': total,
|
||||
'running_containers': running,
|
||||
@ -1116,8 +1115,7 @@ class DockerDriver(driver.ContainerDriver):
|
||||
'kernel_version': kernel_version,
|
||||
'labels': labels,
|
||||
'runtimes': runtimes,
|
||||
'docker_root_dir': docker_root_dir,
|
||||
'enable_cpu_pinning': enable_cpu_pinning}
|
||||
'docker_root_dir': docker_root_dir}
|
||||
|
||||
def get_total_disk_for_container(self):
|
||||
try:
|
||||
@ -1153,6 +1151,24 @@ class DockerDriver(driver.ContainerDriver):
|
||||
def get_available_nodes(self):
|
||||
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
|
||||
def network_detach(self, context, container, network):
|
||||
with docker_utils.docker_client() as docker:
|
||||
|
@ -248,23 +248,11 @@ class ContainerDriver(object):
|
||||
data['mem_free'] = mem_free // units.Ki
|
||||
data['mem_available'] = mem_ava // 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()
|
||||
data['disk_total'] = disk_total - disk_reserved
|
||||
disk_quota_supported = self.node_support_disk_quota()
|
||||
data['disk_quota_supported'] = disk_quota_supported
|
||||
data['runtimes'] = info['runtimes']
|
||||
data['enable_cpu_pinning'] = info['enable_cpu_pinning']
|
||||
data['enable_cpu_pinning'] = CONF.compute.enable_cpu_pinning
|
||||
|
||||
return data
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user