Cleaned up some code, now making more use of exceptions in container reinstall code, rather than if statements

feature/node-rewrite
Sven Slootweg 13 years ago
parent 389ad1bab4
commit dc69fb722f

@ -232,6 +232,22 @@ class Container extends CPHPDatabaseRecordClass
);
}
function CheckAllowed()
{
if($this->sStatus == CVM_STATUS_SUSPENDED)
{
throw new ContainerSuspendedException("No operations can be performed on this container beacuse it is suspended.", 1, $this->sInternalId);
}
elseif($this->sStatus == CVM_STATUS_TERMINATED)
{
throw new ContainerSuspendedException("No operations can be performed on this container beacuse it is terminated.", 1, $this->sInternalId);
}
else
{
return true;
}
}
public function RunCommand($command, $throw_exception = false)
{
return $this->sNode->ssh->RunCommand("vzctl exec {$this->sInternalId} $command", $throw_exception);
@ -598,5 +614,3 @@ class Container extends CPHPDatabaseRecordClass
$command = "vzctl set {$this->sInternalId} --devnodes net/tun:rw --save";
}
}
?>

@ -17,5 +17,3 @@ class Controller extends CPHPBaseClass
{
public $connection = null;
}
?>

@ -137,5 +137,3 @@ class Node extends CPHPDatabaseRecordClass
);
}
}
?>

@ -21,14 +21,11 @@ if(isset($_POST['submit']))
{
try
{
$sContainer->CheckAllowed();
$sTemplate = new Template($_POST['template']);
$sTemplate->CheckAvailable();
if(isset($_POST['confirm']))
{
if($sContainer->sStatus != CVM_STATUS_SUSPENDED)
{
try
{
$sContainer->uTemplateId = $sTemplate->sId;
$sContainer->InsertIntoDatabase();
@ -38,37 +35,40 @@ if(isset($_POST['submit']))
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_SUCCESS, "Reinstallation succeeded!", "Your VPS was successfully reinstalled.");
$sPageContents .= $err->Render();
}
catch (ContainerReinstallException $e)
else
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation failed", "Something went wrong during the reinstallation of your VPS. Please try again. If the reinstallation fails again, please contact support.");
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "You did not tick the checkbox at the bottom of the page. Please carefully read the warning, tick the checkbox, and try again.");
$sPageContents .= $err->Render();
}
catch (ContainerStartException $e)
}
catch (NotFoundException $e)
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_WARNING, "Failed to start", "The VPS was successfully reinstalled, but it could not be started. If the issue persists, please contact support.");
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "The template you selected does not exist (anymore). Please select a different template.");
$sPageContents .= $err->Render();
}
}
else
catch (TemplateUnavailableException $e)
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "You can not reinstall this VPS, because it is suspended. If you believe this is in error, please contact support.");
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "The template you selected is not available. Please select a different template.");
$sPageContents .= $err->Render();
}
}
else
catch (ContainerReinstallException $e)
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "You did not tick the checkbox at the bottom of the page. Please carefully read the warning, tick the checkbox, and try again.");
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation failed", "Something went wrong during the reinstallation of your VPS. Please try again. If the reinstallation fails again, please contact support.");
$sPageContents .= $err->Render();
}
catch (ContainerStartException $e)
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_WARNING, "Failed to start", "The VPS was successfully reinstalled, but it could not be started. If the issue persists, please contact support.");
$sPageContents .= $err->Render();
}
catch (NotFoundException $e)
catch (ContainerSuspendedException $e)
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "The template you selected does not exist (anymore). Please select a different template.");
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "You can not reinstall this VPS, because it is suspended. If you believe this is in error, please contact support.");
$sPageContents .= $err->Render();
}
catch (TemplateUnavailableException $e)
catch (ContainerTerminatedException $e)
{
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "The template you selected is not available. Please select a different template.");
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_ERROR, "Reinstallation aborted", "You can not reinstall this VPS, because it is suspended. If you believe this is in error, please contact support.");
$sPageContents .= $err->Render();
}
}

Loading…
Cancel
Save