feat: gzip enabled & stipprefix setting

refactor: code
This commit is contained in:
Andras Bacsai
2024-03-04 10:46:13 +01:00
parent cee6b54033
commit 8385bbb0a0
32 changed files with 154 additions and 62 deletions

View File

@@ -71,7 +71,7 @@ class StartMariadb
if (!is_null($this->database->limits_cpuset)) {
data_set($docker_compose, "services.{$container_name}.cpuset", $this->database->limits_cpuset);
}
if ($this->database->destination->server->isLogDrainEnabled() && $this->database->isLogDrainEnabled()) {
if ($this->database->destination->server->is_log_drain_enabled() && $this->database->is_log_drain_enabled()) {
$docker_compose['services'][$container_name]['logging'] = [
'driver' => 'fluentd',
'options' => [

View File

@@ -78,7 +78,7 @@ class StartMongodb
if (!is_null($this->database->limits_cpuset)) {
data_set($docker_compose, "services.{$container_name}.cpuset", $this->database->limits_cpuset);
}
if ($this->database->destination->server->isLogDrainEnabled() && $this->database->isLogDrainEnabled()) {
if ($this->database->destination->server->is_log_drain_enabled() && $this->database->is_log_drain_enabled()) {
$docker_compose['services'][$container_name]['logging'] = [
'driver' => 'fluentd',
'options' => [

View File

@@ -71,7 +71,7 @@ class StartMysql
if (!is_null($this->database->limits_cpuset)) {
data_set($docker_compose, "services.{$container_name}.cpuset", $this->database->limits_cpuset);
}
if ($this->database->destination->server->isLogDrainEnabled() && $this->database->isLogDrainEnabled()) {
if ($this->database->destination->server->is_log_drain_enabled() && $this->database->is_log_drain_enabled()) {
$docker_compose['services'][$container_name]['logging'] = [
'driver' => 'fluentd',
'options' => [

View File

@@ -77,7 +77,7 @@ class StartPostgresql
if (!is_null($this->database->limits_cpuset)) {
data_set($docker_compose, "services.{$container_name}.cpuset", $this->database->limits_cpuset);
}
if ($this->database->destination->server->isLogDrainEnabled() && $this->database->isLogDrainEnabled()) {
if ($this->database->destination->server->is_log_drain_enabled() && $this->database->is_log_drain_enabled()) {
ray('Log Drain Enabled');
$docker_compose['services'][$container_name]['logging'] = [
'driver' => 'fluentd',

View File

@@ -81,7 +81,7 @@ class StartRedis
if (!is_null($this->database->limits_cpuset)) {
data_set($docker_compose, "services.{$container_name}.cpuset", $this->database->limits_cpuset);
}
if ($this->database->destination->server->isLogDrainEnabled() && $this->database->isLogDrainEnabled()) {
if ($this->database->destination->server->is_log_drain_enabled() && $this->database->is_log_drain_enabled()) {
$docker_compose['services'][$container_name]['logging'] = [
'driver' => 'fluentd',
'options' => [

View File

@@ -77,7 +77,7 @@ class Kernel extends ConsoleKernel
// ray('dispatching container status job in ' . $randomSeconds . ' seconds');
// dispatch($job);
// })->name('container-status-' . $server->id)->everyMinute()->onOneServer();
if ($server->isLogDrainEnabled()) {
if ($server->is_log_drain_enabled()) {
$schedule->job(new CheckLogDrainContainerJob($server))->everyMinute()->onOneServer();
// $schedule
// ->call(function () use ($server) {

View File

@@ -1185,7 +1185,7 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
} else {
$docker_compose['services'][$this->container_name]['labels'] = $labels;
}
if ($this->server->isLogDrainEnabled() && $this->application->isLogDrainEnabled()) {
if ($this->server->is_log_drain_enabled() && $this->application->is_log_drain_enabled()) {
$docker_compose['services'][$this->container_name]['logging'] = [
'driver' => 'fluentd',
'options' => [

View File

@@ -319,7 +319,7 @@ class DatabaseBackupJob implements ShouldQueue, ShouldBeEncrypted
private function backup_standalone_mongodb(string $databaseWithCollections): void
{
try {
$url = $this->database->getDbUrl(useInternal: true);
$url = $this->database->get_db_url(useInternal: true);
if ($databaseWithCollections === 'all') {
$commands[] = "mkdir -p " . $this->backup_dir;
$commands[] = "docker exec $this->container_name mongodump --authenticationDatabase=admin --uri=$url --gzip --archive > $this->backup_location";

View File

@@ -9,6 +9,8 @@ class Advanced extends Component
{
public Application $application;
public bool $is_force_https_enabled;
public bool $is_gzip_enabled;
public bool $is_stripprefix_enabled;
protected $rules = [
'application.settings.is_git_submodules_enabled' => 'boolean|required',
'application.settings.is_git_lfs_enabled' => 'boolean|required',
@@ -19,6 +21,8 @@ class Advanced extends Component
'application.settings.is_gpu_enabled' => 'boolean|required',
'application.settings.is_build_server_enabled' => 'boolean|required',
'application.settings.is_consistent_container_name_enabled' => 'boolean|required',
'application.settings.is_gzip_enabled' => 'boolean|required',
'application.settings.is_stripprefix_enabled' => 'boolean|required',
'application.settings.gpu_driver' => 'string|required',
'application.settings.gpu_count' => 'string|required',
'application.settings.gpu_device_ids' => 'string|required',
@@ -26,11 +30,13 @@ class Advanced extends Component
];
public function mount() {
$this->is_force_https_enabled = $this->application->settings->is_force_https_enabled;
$this->is_gzip_enabled = $this->application->settings->is_gzip_enabled;
$this->is_stripprefix_enabled = $this->application->settings->is_stripprefix_enabled;
}
public function instantSave()
{
if ($this->application->isLogDrainEnabled()) {
if (!$this->application->destination->server->isLogDrainEnabled()) {
if ($this->application->is_log_drain_enabled()) {
if (!$this->application->destination->server->is_log_drain_enabled()) {
$this->application->settings->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on this server.');
return;
@@ -40,6 +46,14 @@ class Advanced extends Component
$this->application->settings->is_force_https_enabled = $this->is_force_https_enabled;
$this->dispatch('resetDefaultLabels', false);
}
if ($this->application->settings->is_gzip_enabled !== $this->is_gzip_enabled) {
$this->application->settings->is_gzip_enabled = $this->is_gzip_enabled;
$this->dispatch('resetDefaultLabels', false);
}
if ($this->application->settings->is_stripprefix_enabled !== $this->is_stripprefix_enabled) {
$this->application->settings->is_stripprefix_enabled = $this->is_stripprefix_enabled;
$this->dispatch('resetDefaultLabels', false);
}
$this->application->settings->save();
$this->dispatch('success', 'Settings saved.');
}

View File

@@ -46,14 +46,14 @@ class General extends Component
public function mount()
{
$this->db_url = $this->database->getDbUrl(true);
$this->db_url = $this->database->get_db_url(true);
if ($this->database->is_public) {
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
}
}
public function instantSaveAdvanced() {
try {
if (!$this->database->destination->server->isLogDrainEnabled()) {
if (!$this->database->destination->server->is_log_drain_enabled()) {
$this->database->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;
@@ -93,7 +93,7 @@ class General extends Component
return;
}
StartDatabaseProxy::run($this->database);
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
$this->dispatch('success', 'Database is now publicly accessible.');
} else {
StopDatabaseProxy::run($this->database);

View File

@@ -44,15 +44,15 @@ class General extends Component
public function mount()
{
$this->db_url = $this->database->getDbUrl(true);
$this->db_url = $this->database->get_db_url(true);
if ($this->database->is_public) {
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
}
}
public function instantSaveAdvanced()
{
try {
if (!$this->database->destination->server->isLogDrainEnabled()) {
if (!$this->database->destination->server->is_log_drain_enabled()) {
$this->database->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;
@@ -95,7 +95,7 @@ class General extends Component
return;
}
StartDatabaseProxy::run($this->database);
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
$this->dispatch('success', 'Database is now publicly accessible.');
} else {
StopDatabaseProxy::run($this->database);

View File

@@ -46,15 +46,15 @@ class General extends Component
public function mount()
{
$this->db_url = $this->database->getDbUrl(true);
$this->db_url = $this->database->get_db_url(true);
if ($this->database->is_public) {
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
}
}
public function instantSaveAdvanced()
{
try {
if (!$this->database->destination->server->isLogDrainEnabled()) {
if (!$this->database->destination->server->is_log_drain_enabled()) {
$this->database->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;
@@ -94,7 +94,7 @@ class General extends Component
return;
}
StartDatabaseProxy::run($this->database);
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
$this->dispatch('success', 'Database is now publicly accessible.');
} else {
StopDatabaseProxy::run($this->database);

View File

@@ -53,14 +53,14 @@ class General extends Component
];
public function mount()
{
$this->db_url = $this->database->getDbUrl(true);
$this->db_url = $this->database->get_db_url(true);
if ($this->database->is_public) {
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
}
}
public function instantSaveAdvanced() {
try {
if (!$this->database->destination->server->isLogDrainEnabled()) {
if (!$this->database->destination->server->is_log_drain_enabled()) {
$this->database->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;
@@ -87,7 +87,7 @@ class General extends Component
return;
}
StartDatabaseProxy::run($this->database);
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
$this->dispatch('success', 'Database is now publicly accessible.');
} else {
StopDatabaseProxy::run($this->database);

View File

@@ -39,14 +39,14 @@ class General extends Component
];
public function mount()
{
$this->db_url = $this->database->getDbUrl(true);
$this->db_url = $this->database->get_db_url(true);
if ($this->database->is_public) {
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
}
}
public function instantSaveAdvanced() {
try {
if (!$this->database->destination->server->isLogDrainEnabled()) {
if (!$this->database->destination->server->is_log_drain_enabled()) {
$this->database->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;
@@ -86,7 +86,7 @@ class General extends Component
return;
}
StartDatabaseProxy::run($this->database);
$this->db_url_public = $this->database->getDbUrl();
$this->db_url_public = $this->database->get_db_url();
$this->dispatch('success', 'Database is now publicly accessible.');
} else {
StopDatabaseProxy::run($this->database);

View File

@@ -36,7 +36,7 @@ class Database extends Component
}
public function instantSaveAdvanced()
{
if (!$this->database->service->destination->server->isLogDrainEnabled()) {
if (!$this->database->service->destination->server->is_log_drain_enabled()) {
$this->database->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;

View File

@@ -18,6 +18,7 @@ class ServiceApplicationView extends Component
'application.required_fqdn' => 'required|boolean',
'application.is_log_drain_enabled' => 'nullable|boolean',
'application.is_gzip_enabled' => 'nullable|boolean',
'application.is_stripprefix_enabled' => 'nullable|boolean',
];
public function render()
{
@@ -29,7 +30,7 @@ class ServiceApplicationView extends Component
}
public function instantSaveAdvanced()
{
if (!$this->application->service->destination->server->isLogDrainEnabled()) {
if (!$this->application->service->destination->server->is_log_drain_enabled()) {
$this->application->is_log_drain_enabled = false;
$this->dispatch('error', 'Log drain is not enabled on the server. Please enable it first.');
return;

View File

@@ -54,7 +54,7 @@ class LogDrains extends Component
{
try {
InstallLogDrain::run($this->server);
if (!$this->server->isLogDrainEnabled()) {
if (!$this->server->is_log_drain_enabled()) {
$this->dispatch('serverRefresh');
$this->dispatch('success', 'Log drain service stopped.');
return;

View File

@@ -80,6 +80,18 @@ class Application extends BaseModel
}
return false;
}
public function is_force_https_enabled()
{
return data_get($this, 'settings.is_force_https_enabled', false);
}
public function is_stripprefix_enabled()
{
return data_get($this, 'settings.is_stripprefix_enabled', true);
}
public function is_gzip_enabled()
{
return data_get($this, 'settings.is_gzip_enabled', true);
}
public function link()
{
if (data_get($this, 'environment.project.uuid')) {
@@ -481,7 +493,7 @@ class Application extends BaseModel
{
return application_configuration_dir() . "/{$this->uuid}";
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'settings.is_log_drain_enabled', false);
}

View File

@@ -405,7 +405,7 @@ class Server extends BaseModel
{
return $this->settings->is_reachable && $this->settings->is_usable && !$this->settings->force_disabled;
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return $this->settings->is_logdrain_newrelic_enabled || $this->settings->is_logdrain_highlight_enabled || $this->settings->is_logdrain_axiom_enabled || $this->settings->is_logdrain_custom_enabled;
}

View File

@@ -19,11 +19,15 @@ class ServiceApplication extends BaseModel
$service->fileStorages()->delete();
});
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
public function isGzipEnabled()
public function is_stripprefix_enabled()
{
return data_get($this, 'is_stripprefix_enabled', true);
}
public function is_gzip_enabled()
{
return data_get($this, 'is_gzip_enabled', true);
}

View File

@@ -17,11 +17,11 @@ class ServiceDatabase extends BaseModel
$service->fileStorages()->delete();
});
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
public function isGzipEnabled()
public function is_gzip_enabled()
{
return true;
}

View File

@@ -100,7 +100,7 @@ class StandaloneMariadb extends BaseModel
}
return null;
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
@@ -126,7 +126,7 @@ class StandaloneMariadb extends BaseModel
);
}
public function getDbUrl(bool $useInternal = false): string
public function get_db_url(bool $useInternal = false): string
{
if ($this->is_public && !$useInternal) {
return "mysql://{$this->mariadb_user}:{$this->mariadb_password}@{$this->destination->server->getIp}:{$this->public_port}/{$this->mariadb_database}";

View File

@@ -92,7 +92,7 @@ class StandaloneMongodb extends BaseModel
{
return data_get($this, 'environment.project.team');
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
@@ -142,7 +142,7 @@ class StandaloneMongodb extends BaseModel
{
return 'standalone-mongodb';
}
public function getDbUrl(bool $useInternal = false)
public function get_db_url(bool $useInternal = false)
{
if ($this->is_public && !$useInternal) {
return "mongodb://{$this->mongo_initdb_root_username}:{$this->mongo_initdb_root_password}@{$this->destination->server->getIp}:{$this->public_port}/?directConnection=true";

View File

@@ -105,7 +105,7 @@ class StandaloneMysql extends BaseModel
return 'standalone-mysql';
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
@@ -127,7 +127,7 @@ class StandaloneMysql extends BaseModel
);
}
public function getDbUrl(bool $useInternal = false): string
public function get_db_url(bool $useInternal = false): string
{
if ($this->is_public && !$useInternal) {
return "mysql://{$this->mysql_user}:{$this->mysql_password}@{$this->destination->server->getIp}:{$this->public_port}/{$this->mysql_database}";

View File

@@ -97,7 +97,7 @@ class StandalonePostgresql extends BaseModel
}
return null;
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
@@ -126,7 +126,7 @@ class StandalonePostgresql extends BaseModel
{
return 'standalone-postgresql';
}
public function getDbUrl(bool $useInternal = false): string
public function get_db_url(bool $useInternal = false): string
{
if ($this->is_public && !$useInternal) {
return "postgres://{$this->postgres_user}:{$this->postgres_password}@{$this->destination->server->getIp}:{$this->public_port}/{$this->postgres_db}";

View File

@@ -96,7 +96,7 @@ class StandaloneRedis extends BaseModel
}
return null;
}
public function isLogDrainEnabled()
public function is_log_drain_enabled()
{
return data_get($this, 'is_log_drain_enabled', false);
}
@@ -122,7 +122,7 @@ class StandaloneRedis extends BaseModel
{
return 'standalone-redis';
}
public function getDbUrl(bool $useInternal = false): string
public function get_db_url(bool $useInternal = false): string
{
if ($this->is_public && !$useInternal) {
return "redis://:{$this->redis_password}@{$this->destination->server->getIp}:{$this->public_port}/0";