This commit is contained in:
Andras Bacsai
2023-05-08 09:16:50 +02:00
parent 117ba360ac
commit 5ed91c05bf
16 changed files with 54 additions and 22 deletions

View File

@@ -20,7 +20,7 @@ class CoolifyTaskArgs extends Data
public string $type,
public ?string $type_uuid = null,
public ?Model $model = null,
public string $status = ProcessStatus::HOLDING->value,
public string $status = ProcessStatus::QUEUED->value,
) {
}
}

View File

@@ -4,7 +4,7 @@ namespace App\Enums;
enum ProcessStatus: string
{
case HOLDING = 'holding';
case QUEUED = 'queued';
case IN_PROGRESS = 'in_progress';
case FINISHED = 'finished';
case ERROR = 'error';

View File

@@ -2,6 +2,7 @@
namespace App\Http\Livewire;
use App\Enums\ProcessStatus;
use Livewire\Component;
use Spatie\Activitylog\Models\Activity;
@@ -31,12 +32,24 @@ class ActivityMonitor extends Component
public function polling()
{
$this->hydrateActivity();
if (data_get($this->activity, 'properties.exitCode') !== null) {
$this->setStatus(ProcessStatus::IN_PROGRESS);
$exit_code = data_get($this->activity, 'properties.exitCode');
if ($exit_code !== null) {
if ($exit_code === 0) {
$this->setStatus(ProcessStatus::FINISHED);
} else {
$this->setStatus(ProcessStatus::ERROR);
}
$this->isPollingActive = false;
}
}
protected function setStatus($status)
{
$this->activity->properties = $this->activity->properties->merge([
'status' => $status,
]);
$this->activity->save();
}
public function render()
{
return view('livewire.activity-monitor');

View File

@@ -26,7 +26,7 @@ class StandaloneDocker extends Component
if (request()->query('server_id')) {
$this->server_id = request()->query('server_id');
} else {
$this->server_id = Server::first()->id;
$this->server_id = Server::validated()->first()->id;
}
$this->network = new Cuid2(7);
$this->name = generateRandomName();

View File

@@ -20,10 +20,11 @@ class Form extends Component
'server.ip' => 'required',
'server.user' => 'required',
'server.port' => 'required',
'server.settings.is_validated' => 'required'
];
public function mount()
{
$this->server = Server::find($this->server_id);
$this->server = Server::find($this->server_id)->load(['settings']);
}
public function installDocker()
{
@@ -38,6 +39,11 @@ class Form extends Component
if (!$this->uptime) {
$this->uptime = 'Server not reachable.';
throw new \Exception('Server not reachable.');
} else {
if (!$this->server->settings->is_validated) {
$this->server->settings->is_validated = true;
$this->server->settings->save();
}
}
$this->dockerVersion = instantRemoteProcess(['docker version|head -2|grep -i version'], $this->server, false);
if (!$this->dockerVersion) {

View File

@@ -52,4 +52,9 @@ class Server extends BaseModel
{
return $this->hasOne(ServerSetting::class);
}
static public function validated()
{
return Server::where('team_id', session('currentTeam')->id)->whereRelation('settings', 'is_validated', true)->get();
}
}