diff --git a/zun/compute/manager.py b/zun/compute/manager.py index 694863c47..b6a0faa50 100644 --- a/zun/compute/manager.py +++ b/zun/compute/manager.py @@ -72,7 +72,7 @@ class Manager(object): self._fail_container(container) return except Exception as e: - LOG.exception(_LE("Unexpected exception: %s"), str(e)) + LOG.exception(_LE("Unexpected exception: %s"), six.text_type(e)) self._fail_container(container) return @@ -83,10 +83,10 @@ class Manager(object): except exception.DockerError as e: LOG.error(_LE("Error occured while calling docker API: %s"), six.text_type(e)) - container.status = fields.ContainerStatus.ERROR + self._fail_container(container) except Exception as e: - LOG.exception(_LE("Unexpected exception: %s"), str(e)) - container.status = fields.ContainerStatus.ERROR + LOG.exception(_LE("Unexpected exception: %s"), six.text_type(e)) + self._fail_container(container) finally: container.task_state = None container.save() diff --git a/zun/container/docker/driver.py b/zun/container/docker/driver.py index 7b42d91ef..ea7bc65b2 100644 --- a/zun/container/docker/driver.py +++ b/zun/container/docker/driver.py @@ -45,33 +45,29 @@ class DockerDriver(driver.ContainerDriver): image = container.image LOG.debug('Creating container with image %s name %s' % (image, name)) - try: - kwargs = { - 'hostname': container.hostname, - 'command': container.command, - 'environment': container.environment, - 'working_dir': container.workdir, - 'ports': container.ports, - 'labels': container.labels, - } - host_config = {} - host_config['publish_all_ports'] = True - if container.memory is not None: - host_config['mem_limit'] = container.memory - if container.cpu is not None: - host_config['cpu_quota'] = int(100000 * container.cpu) - host_config['cpu_period'] = 100000 - kwargs['host_config'] = \ - docker.create_host_config(**host_config) + kwargs = { + 'hostname': container.hostname, + 'command': container.command, + 'environment': container.environment, + 'working_dir': container.workdir, + 'ports': container.ports, + 'labels': container.labels, + } - response = docker.create_container(image, **kwargs) - container.container_id = response['Id'] - container.status = fields.ContainerStatus.STOPPED - except errors.APIError as e: - container.status = fields.ContainerStatus.ERROR - container.status_reason = six.text_type(e) + host_config = {} + host_config['publish_all_ports'] = True + if container.memory is not None: + host_config['mem_limit'] = container.memory + if container.cpu is not None: + host_config['cpu_quota'] = int(100000 * container.cpu) + host_config['cpu_period'] = 100000 + kwargs['host_config'] = \ + docker.create_host_config(**host_config) + response = docker.create_container(image, **kwargs) + container.container_id = response['Id'] + container.status = fields.ContainerStatus.STOPPED container.save() return container