mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-05 16:02:34 +00:00
Merge (#127)
This commit is contained in:
@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\ServerProviders;
|
||||
|
||||
use App\Enums\OperatingSystem;
|
||||
use App\Exceptions\CouldNotConnectToProvider;
|
||||
use App\Facades\Notifier;
|
||||
use App\Notifications\FailedToDeleteServerFromProvider;
|
||||
@ -11,6 +10,7 @@
|
||||
use Exception;
|
||||
use Illuminate\Filesystem\FilesystemAdapter;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Throwable;
|
||||
|
||||
class AWS extends AbstractProvider
|
||||
@ -19,10 +19,13 @@ class AWS extends AbstractProvider
|
||||
|
||||
protected EC2InstanceConnectClient $ec2InstanceConnectClient;
|
||||
|
||||
public function createValidationRules(array $input): array
|
||||
public function createRules(array $input): array
|
||||
{
|
||||
$rules = [
|
||||
'os' => 'required|in:'.implode(',', OperatingSystem::getValues()),
|
||||
'os' => [
|
||||
'required',
|
||||
Rule::in(config('core.operating_systems')),
|
||||
],
|
||||
];
|
||||
// plans
|
||||
$plans = [];
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\ServerProviders;
|
||||
|
||||
use App\Contracts\ServerProvider;
|
||||
use App\Models\Server;
|
||||
use Illuminate\Filesystem\FilesystemAdapter;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
abstract class AbstractProvider implements ServerProvider
|
||||
@ -15,9 +15,9 @@ public function __construct(?Server $server = null)
|
||||
$this->server = $server;
|
||||
}
|
||||
|
||||
protected function generateKeyPair(): void
|
||||
public function generateKeyPair(): void
|
||||
{
|
||||
/** @var \Illuminate\Filesystem\FilesystemAdapter $storageDisk */
|
||||
/** @var FilesystemAdapter $storageDisk */
|
||||
$storageDisk = Storage::disk(config('core.key_pairs_disk'));
|
||||
generate_key_pair($storageDisk->path((string) $this->server->id));
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
class Custom extends AbstractProvider
|
||||
{
|
||||
public function createValidationRules(array $input): array
|
||||
public function createRules(array $input): array
|
||||
{
|
||||
return [
|
||||
'ip' => [
|
||||
|
@ -14,7 +14,7 @@ class DigitalOcean extends AbstractProvider
|
||||
{
|
||||
protected string $apiUrl = 'https://api.digitalocean.com/v2';
|
||||
|
||||
public function createValidationRules(array $input): array
|
||||
public function createRules(array $input): array
|
||||
{
|
||||
$rules = [
|
||||
'os' => 'required|in:'.implode(',', config('core.operating_systems')),
|
||||
|
@ -13,7 +13,7 @@ class Hetzner extends AbstractProvider
|
||||
{
|
||||
protected string $apiUrl = 'https://api.hetzner.cloud/v1';
|
||||
|
||||
public function createValidationRules(array $input): array
|
||||
public function createRules(array $input): array
|
||||
{
|
||||
return [
|
||||
'os' => 'required|in:'.implode(',', config('core.operating_systems')),
|
||||
|
@ -13,7 +13,7 @@ class Linode extends AbstractProvider
|
||||
{
|
||||
protected string $apiUrl = 'https://api.linode.com/v4';
|
||||
|
||||
public function createValidationRules($input): array
|
||||
public function createRules($input): array
|
||||
{
|
||||
$rules = [
|
||||
'os' => 'required|in:'.implode(',', config('core.operating_systems')),
|
||||
|
28
app/ServerProviders/ServerProvider.php
Executable file
28
app/ServerProviders/ServerProvider.php
Executable file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\ServerProviders;
|
||||
|
||||
interface ServerProvider
|
||||
{
|
||||
public function createRules(array $input): array;
|
||||
|
||||
public function credentialValidationRules(array $input): array;
|
||||
|
||||
public function credentialData(array $input): array;
|
||||
|
||||
public function data(array $input): array;
|
||||
|
||||
public function connect(?array $credentials = null): bool;
|
||||
|
||||
public function plans(): array;
|
||||
|
||||
public function regions(): array;
|
||||
|
||||
public function generateKeyPair(): void;
|
||||
|
||||
public function create(): void;
|
||||
|
||||
public function isRunning(): bool;
|
||||
|
||||
public function delete(): void;
|
||||
}
|
@ -15,7 +15,7 @@ class Vultr extends AbstractProvider
|
||||
{
|
||||
protected string $apiUrl = 'https://api.vultr.com/v2';
|
||||
|
||||
public function createValidationRules($input): array
|
||||
public function createRules($input): array
|
||||
{
|
||||
$rules = [
|
||||
'os' => 'required|in:'.implode(',', config('core.operating_systems')),
|
||||
|
Reference in New Issue
Block a user