Merge "Better errors for execute() failures"
This commit is contained in:
commit
a4079e1075
@ -159,10 +159,11 @@ class ImageWriteError(RESTError):
|
||||
|
||||
message = 'Error writing image to device.'
|
||||
|
||||
def __init__(self, exit_code, device):
|
||||
def __init__(self, device, exit_code, stdout, stderr):
|
||||
super(ImageWriteError, self).__init__()
|
||||
self.details = 'Writing image to device {0} failed with exit code {1}.'
|
||||
self.details = self.details.format(device, exit_code)
|
||||
self.details = ('Writing image to device {0} failed with exit code '
|
||||
'{1}. stdout: {2}. stderr: {3}')
|
||||
self.details = self.details.format(device, exit_code, stdout, stderr)
|
||||
|
||||
|
||||
class ConfigDriveTooLargeError(RESTError):
|
||||
@ -183,10 +184,10 @@ class ConfigDriveWriteError(RESTError):
|
||||
|
||||
message = 'Error writing configdrive to device.'
|
||||
|
||||
def __init__(self, exit_code, device):
|
||||
details = 'Writing configdrive to device {0} failed with exit code ' \
|
||||
'{1}.'
|
||||
details = details.format(device, exit_code)
|
||||
def __init__(self, device, exit_code, stdout, stderr):
|
||||
details = ('Writing configdrive to device {0} failed with exit code '
|
||||
'{1}. stdout: {2}. stderr: {3}.')
|
||||
details = details.format(device, exit_code, stdout, stderr)
|
||||
super(ConfigDriveWriteError, self).__init__(details)
|
||||
self.details = details
|
||||
|
||||
@ -196,10 +197,11 @@ class SystemRebootError(RESTError):
|
||||
|
||||
message = 'Error rebooting system.'
|
||||
|
||||
def __init__(self, exit_code):
|
||||
def __init__(self, exit_code, stdout, stderr):
|
||||
super(SystemRebootError, self).__init__()
|
||||
self.details = 'Reboot script failed with exit code {0}.'
|
||||
self.details = self.details.format(exit_code)
|
||||
self.details = ('Reboot script failed with exit code {0}. stdout: '
|
||||
'{1}. stderr: {2}.')
|
||||
self.details = self.details.format(exit_code, stdout, stderr)
|
||||
|
||||
|
||||
class BlockDeviceEraseError(RESTError):
|
||||
|
@ -54,7 +54,7 @@ def _write_image(image_info, device):
|
||||
try:
|
||||
stdout, stderr = utils.execute(*command, check_exit_code=[0])
|
||||
except processutils.ProcessExecutionError as e:
|
||||
raise errors.ImageWriteError(e.exit_code, device)
|
||||
raise errors.ImageWriteError(device, e.exit_code, e.stdout, e.stderr)
|
||||
totaltime = time.time() - starttime
|
||||
LOG.info('Image {0} written to device {1} in {2} seconds'.format(
|
||||
image, device, totaltime))
|
||||
@ -88,7 +88,10 @@ def _write_configdrive_to_partition(configdrive, device):
|
||||
try:
|
||||
stdout, stderr = utils.execute(*command, check_exit_code=[0])
|
||||
except processutils.ProcessExecutionError as e:
|
||||
raise errors.ConfigDriveWriteError(e.exit_code, device)
|
||||
raise errors.ConfigDriveWriteError(device,
|
||||
e.exit_code,
|
||||
e.stdout,
|
||||
e.stderr)
|
||||
|
||||
totaltime = time.time() - starttime
|
||||
LOG.info('configdrive copied from {0} to {1} in {2} seconds'.format(
|
||||
@ -209,4 +212,4 @@ class StandbyExtension(base.BaseAgentExtension):
|
||||
try:
|
||||
stdout, stderr = utils.execute(*command, check_exit_code=[0])
|
||||
except processutils.ProcessExecutionError as e:
|
||||
raise errors.SystemRebootError(e.exit_code)
|
||||
raise errors.SystemRebootError(e.exit_code, e.stdout, e.stderr)
|
||||
|
Loading…
x
Reference in New Issue
Block a user