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) public function RunCommand($command, $throw_exception = false)
{ {
return $this->sNode->ssh->RunCommand("vzctl exec {$this->sInternalId} $command", $throw_exception); 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"; $command = "vzctl set {$this->sInternalId} --devnodes net/tun:rw --save";
} }
} }
?>

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

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

@ -21,39 +21,19 @@ if(isset($_POST['submit']))
{ {
try try
{ {
$sContainer->CheckAllowed();
$sTemplate = new Template($_POST['template']); $sTemplate = new Template($_POST['template']);
$sTemplate->CheckAvailable(); $sTemplate->CheckAvailable();
if(isset($_POST['confirm'])) if(isset($_POST['confirm']))
{ {
if($sContainer->sStatus != CVM_STATUS_SUSPENDED) $sContainer->uTemplateId = $sTemplate->sId;
{ $sContainer->InsertIntoDatabase();
try $sContainer->Reinstall();
{ $sContainer->Start();
$sContainer->uTemplateId = $sTemplate->sId;
$sContainer->InsertIntoDatabase(); $err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_SUCCESS, "Reinstallation succeeded!", "Your VPS was successfully reinstalled.");
$sContainer->Reinstall(); $sPageContents .= $err->Render();
$sContainer->Start();
$err = new CPHPErrorHandler(CPHP_ERRORHANDLER_TYPE_SUCCESS, "Reinstallation succeeded!", "Your VPS was successfully reinstalled.");
$sPageContents .= $err->Render();
}
catch (ContainerReinstallException $e)
{
$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();
}
}
else
{
$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();
}
} }
else else
{ {
@ -71,6 +51,26 @@ if(isset($_POST['submit']))
$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", "The template you selected is not available. Please select a different template.");
$sPageContents .= $err->Render(); $sPageContents .= $err->Render();
} }
catch (ContainerReinstallException $e)
{
$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 (ContainerSuspendedException $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.");
$sPageContents .= $err->Render();
}
catch (ContainerTerminatedException $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.");
$sPageContents .= $err->Render();
}
} }
else else
{ {

Loading…
Cancel
Save