queueable actions
This commit is contained in:
30
app/Actions/FirewallRules/InstallFirewallRule.php
Normal file
30
app/Actions/FirewallRules/InstallFirewallRule.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\FirewallRules;
|
||||
|
||||
use App\Enums\FirewallRuleStatus;
|
||||
use App\Models\FirewallRule;
|
||||
use Spatie\QueueableAction\QueueableAction;
|
||||
|
||||
class InstallFirewallRule
|
||||
{
|
||||
use QueueableAction;
|
||||
|
||||
public function execute(
|
||||
FirewallRule $firewallRule,
|
||||
) {
|
||||
$ssh = $firewallRule->server->sshClient();
|
||||
$result = $ssh->execute($firewallRule->command());
|
||||
|
||||
if (! $result->isSuccessful()) {
|
||||
$firewallRule->update([
|
||||
'status' => FirewallRuleStatus::FAILED,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
$firewallRule->update([
|
||||
'status' => FirewallRuleStatus::INSTALLED,
|
||||
]);
|
||||
}
|
||||
}
|
||||
30
app/Actions/FirewallRules/UninstallFirewallRule.php
Normal file
30
app/Actions/FirewallRules/UninstallFirewallRule.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\FirewallRules;
|
||||
|
||||
use App\Enums\FirewallRuleStatus;
|
||||
use App\Models\FirewallRule;
|
||||
use Spatie\QueueableAction\QueueableAction;
|
||||
|
||||
class UninstallFirewallRule
|
||||
{
|
||||
use QueueableAction;
|
||||
|
||||
public function execute(
|
||||
FirewallRule $firewallRule,
|
||||
) {
|
||||
$ssh = $firewallRule->server->sshClient();
|
||||
$result = $ssh->execute($firewallRule->command(true));
|
||||
|
||||
if (! $result->isSuccessful()) {
|
||||
$firewallRule->update([
|
||||
'status' => FirewallRuleStatus::FAILED,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
$firewallRule->update([
|
||||
'status' => FirewallRuleStatus::UNINSTALLED,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user