Class: RocketJobMissionControl::ServersController

Inherits:
ApplicationController show all
Defined in:
app/controllers/rocket_job_mission_control/servers_controller.rb

Constant Summary collapse

VALID_ACTIONS =
%i[stop kill pause resume thread_dump].freeze

Instance Method Summary collapse

Instance Method Details

#destroyObject



86
87
88
89
90
91
92
93
94
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 86

def destroy
  authorize! :destroy, @server
  @server.destroy
  flash[:success] = t(:success, scope: %i[server destroy])

  respond_to do |format|
    format.html { redirect_to servers_path }
  end
end

#indexObject



19
20
21
22
23
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 19

def index
  @data_table_url = servers_url(format: "json")
  @actions        = %i[pause resume stop kill destroy_zombies]
  render_datatable(RocketJob::Server.all, "All")
end

#pauseObject



96
97
98
99
100
101
102
103
104
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 96

def pause
  authorize! :pause, @server
  RocketJob::Subscribers::Server.publish(:pause, server_id: @server.id)
  flash[:success] = t(:success, scope: %i[server update_one], action: "pause", name: @server.name)

  respond_to do |format|
    format.html { redirect_to servers_path }
  end
end

#pausedObject



37
38
39
40
41
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 37

def paused
  @data_table_url = paused_servers_url(format: "json")
  @actions        = %i[resume destroy_zombies]
  render_datatable(RocketJob::Server.paused, "Paused")
end

#resumeObject



106
107
108
109
110
111
112
113
114
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 106

def resume
  authorize! :resume, @server
  RocketJob::Subscribers::Server.publish(:resume, server_id: @server.id)
  flash[:success] = t(:success, scope: %i[server update_one], action: "resume", name: @server.name)

  respond_to do |format|
    format.html { redirect_to servers_path }
  end
end

#runningObject



31
32
33
34
35
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 31

def running
  @data_table_url = running_servers_url(format: "json")
  @actions        = %i[pause stop kill destroy_zombies]
  render_datatable(RocketJob::Server.running, "Running")
end

#startingObject



25
26
27
28
29
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 25

def starting
  @data_table_url = starting_servers_url(format: "json")
  @actions        = %i[pause stop kill]
  render_datatable(RocketJob::Server.starting, "Starting")
end

#stopObject



76
77
78
79
80
81
82
83
84
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 76

def stop
  authorize! :stop, @server
  RocketJob::Subscribers::Server.publish(:stop, server_id: @server.id)
  flash[:success] = t(:success, scope: %i[server update_one], action: "stop", name: @server.name)

  respond_to do |format|
    format.html { redirect_to servers_path }
  end
end

#stoppingObject



43
44
45
46
47
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 43

def stopping
  @data_table_url = stopping_servers_url(format: "json")
  @actions        = [:destroy_zombies]
  render_datatable(RocketJob::Server.stopping, "Stopping")
end

#update_allObject



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 57

def update_all
  server_action = params[:server_action].to_sym
  authorize! server_action, RocketJob::Server

  if server_action == :destroy_zombies
    RocketJob::Server.destroy_zombies
  elsif VALID_ACTIONS.include?(server_action)
    RocketJob::Subscribers::Server.publish(server_action)
    flash[:success] = t(:success, scope: %i[server update_all], action: server_action.to_s)
  else
    flash[:danger] = t(:invalid, scope: %i[server update_all])
  end

  # TODO: Refresh the same page it was on
  respond_to do |format|
    format.html { redirect_to servers_path }
  end
end

#zombieObject



49
50
51
52
53
# File 'app/controllers/rocket_job_mission_control/servers_controller.rb', line 49

def zombie
  @data_table_url = zombie_servers_url(format: "json")
  @actions        = [:destroy_zombies]
  render_datatable(RocketJob::Server.zombies, "Zombie")
end