Fix all transaction try/catches, closes #57

This commit is contained in:
Dane Everitt 2016-02-27 10:30:59 -05:00
parent e7436aab2b
commit 84a7eec2e1
4 changed files with 265 additions and 262 deletions

View File

@ -122,6 +122,7 @@ class APIRepository
DB::beginTransaction();
try {
$secretKey = str_random(16) . '.' . str_random(15);
$key = new Models\APIKey;
$key->fill([
@ -142,7 +143,6 @@ class APIRepository
}
}
try {
DB::commit();
return $secretKey;
} catch (\Exception $ex) {
@ -164,11 +164,16 @@ class APIRepository
{
DB::beginTransaction();
try {
$model = Models\APIKey::where('public', $key)->firstOrFail();
$permissions = Models\APIPermission::where('key_id', $model->id)->delete();
$model->delete();
DB::commit();
} catch (\Exception $ex) {
DB::rollBack();
throw $ex;
}
}
}

View File

@ -151,6 +151,8 @@ class NodeRepository {
$node = Models\Node::findOrFail($id);
DB::beginTransaction();
try {
foreach($allocations as $rawIP => $ports) {
$parsedIP = Network::parse($rawIP);
foreach($parsedIP as $ip) {
@ -195,7 +197,6 @@ class NodeRepository {
}
}
try {
DB::commit();
return true;
} catch (\Exception $ex) {

View File

@ -194,6 +194,7 @@ class ServerRepository
DB::beginTransaction();
try {
$uuid = new UuidService;
// Add Server to the Database
@ -242,8 +243,6 @@ class ServerRepository
]);
}
try {
$client = Models\Node::guzzleRequest($node->id);
$client->request('POST', '/servers', [
'headers' => [
@ -317,6 +316,8 @@ class ServerRepository
}
DB::beginTransaction();
try {
$server = Models\Server::findOrFail($id);
$owner = Models\User::findOrFail($server->owner);
@ -348,8 +349,6 @@ class ServerRepository
}
// If we need to update do it here.
try {
$node = Models\Node::getByID($server->node);
$client = Models\Node::guzzleRequest($server->node);
@ -411,6 +410,8 @@ class ServerRepository
}
DB::beginTransaction();
try {
$server = Models\Server::findOrFail($id);
if (isset($data['default'])) {
@ -501,8 +502,6 @@ class ServerRepository
$server->io = $data['io'];
}
try {
$node = Models\Node::getByID($server->node);
$client = Models\Node::guzzleRequest($server->node);
@ -534,7 +533,6 @@ class ServerRepository
throw new DisplayException('An error occured while attempting to update the configuration: ' . $ex->getMessage());
} catch (\Exception $ex) {
DB::rollBack();
Log::error($ex);
throw $ex;
}
@ -547,6 +545,7 @@ class ServerRepository
DB::beginTransaction();
try {
// Check the startup
if (isset($data['startup'])) {
$server->startup = $data['startup'];
@ -561,8 +560,6 @@ class ServerRepository
->where('option_id', $server->option)
->get();
try {
$variableList = [];
if ($variables) {
foreach($variables as &$variable) {
@ -664,6 +661,7 @@ class ServerRepository
$node = Models\Node::findOrFail($server->node);
DB::beginTransaction();
try {
// Delete Allocations
Models\Allocation::where('assigned_to', $server->id)->update([
'assigned_to' => null
@ -681,7 +679,6 @@ class ServerRepository
// Remove Downloads
Models\Download::where('server', $server->uuid)->delete();
try {
$client = Models\Node::guzzleRequest($server->node);
$client->request('DELETE', '/servers', [
'headers' => [

View File

@ -69,11 +69,12 @@ class UserRepository
throw new DisplayValidationException($validator->errors());
}
DB::beginTransaction();
try {
$user = new Models\User;
$uuid = new UuidService;
DB::beginTransaction();
$user->uuid = $uuid->generate('users', 'uuid');
$user->email = $email;
$user->password = Hash::make($password);
@ -81,7 +82,6 @@ class UserRepository
$user->root_admin = ($admin) ? 1 : 0;
$user->save();
try {
Mail::queue('emails.new-account', [
'email' => $user->email,
'forgot' => route('auth.password'),