Skip to content

Commit

Permalink
Simplifying horizon:status implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
dbpolito committed Mar 7, 2019
1 parent 39573c0 commit 3dc26eb
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 29 deletions.
23 changes: 20 additions & 3 deletions src/Console/StatusCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,28 @@ class StatusCommand extends Command
/**
* Execute the console command.
*
* @param \Laravel\Horizon\Contracts\MasterSupervisorRepository $masters
* @param \Laravel\Horizon\Contracts\MasterSupervisorRepository $masterSupervisorRepository
* @return void
*/
public function handle(MasterSupervisorRepository $masters)
public function handle(MasterSupervisorRepository $masterSupervisorRepository)
{
$this->line($masters->currentStatus());
$this->line($this->currentStatus($masterSupervisorRepository));
}

/**
* Get the current status of Horizon.
*
* @param \Laravel\Horizon\Contracts\MasterSupervisorRepository $masterSupervisorRepository
* @return string
*/
protected function currentStatus(MasterSupervisorRepository $masterSupervisorRepository)
{
if (! $masters = $masterSupervisorRepository->all()) {
return 'inactive';
}

return collect($masters)->contains(function ($master) {
return $master->status === 'paused';
}) ? 'paused' : 'running';
}
}
7 changes: 0 additions & 7 deletions src/Contracts/MasterSupervisorRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,4 @@ public function forget($name);
* @return void
*/
public function flushExpired();

/**
* Get the current status of Horizon.
*
* @return string
*/
public function currentStatus();
}
8 changes: 7 additions & 1 deletion src/Http/Controllers/DashboardStatsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@ protected function totalProcessCount()
*/
protected function currentStatus()
{
return app(MasterSupervisorRepository::class)->currentStatus();
if (! $masters = app(MasterSupervisorRepository::class)->all()) {
return 'inactive';
}

return collect($masters)->contains(function ($master) {
return $master->status === 'paused';
}) ? 'paused' : 'running';
}
}
16 changes: 0 additions & 16 deletions src/Repositories/RedisMasterSupervisorRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,22 +149,6 @@ public function flushExpired()
);
}

/**
* Get the current status of Horizon.
*
* @return string
*/
public function currentStatus()
{
if (! $masters = $this->all()) {
return 'inactive';
}

return collect($masters)->contains(function ($master) {
return $master->status === 'paused';
}) ? 'paused' : 'running';
}

/**
* Get the Redis connection instance.
*
Expand Down
3 changes: 1 addition & 2 deletions tests/Controller/DashboardStatsControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
use Laravel\Horizon\Contracts\MetricsRepository;
use Laravel\Horizon\Contracts\SupervisorRepository;
use Laravel\Horizon\Contracts\MasterSupervisorRepository;
use Laravel\Horizon\Repositories\RedisMasterSupervisorRepository;

class DashboardStatsControllerTest extends AbstractControllerTest
{
Expand Down Expand Up @@ -72,7 +71,7 @@ public function test_all_stats_are_correctly_returned()

public function test_paused_status_is_reflected_if_all_master_supervisors_are_paused()
{
$masters = Mockery::mock(RedisMasterSupervisorRepository::class)->makePartial();
$masters = Mockery::mock(MasterSupervisorRepository::class);
$masters->shouldReceive('all')->andReturn([
(object) [
'status' => 'running',
Expand Down

0 comments on commit 3dc26eb

Please sign in to comment.