mirror of
https://github.com/fluent/fluentd-ui.git
synced 2026-05-05 19:06:12 +02:00
Move installing/uninstalling plugins to Plugin model
This commit is contained in:
parent
371989a642
commit
6d29dbc873
@ -8,7 +8,9 @@ module ApplicationHelper
|
||||
end
|
||||
|
||||
def installing_gems
|
||||
GemInstaller::WORKING || []
|
||||
Plugin::WORKING.find_all do |data|
|
||||
data[:type] == :install && data[:state] == :running
|
||||
end.map{|data| data[:plugin]} || []
|
||||
end
|
||||
|
||||
def uninstalling_gem?
|
||||
@ -16,7 +18,9 @@ module ApplicationHelper
|
||||
end
|
||||
|
||||
def uninstalling_gems
|
||||
GemUninstaller::WORKING || []
|
||||
Plugin::WORKING.find_all do |data|
|
||||
data[:type] == :uninstall && data[:state] == :running
|
||||
end.map{|data| data[:plugin]} || []
|
||||
end
|
||||
|
||||
def has_alert?
|
||||
|
||||
@ -5,6 +5,8 @@ require "httpclient"
|
||||
class Plugin
|
||||
class GemError < StandardError; end
|
||||
|
||||
WORKING = []
|
||||
|
||||
include ActiveModel::Model
|
||||
|
||||
attr_accessor :gem_name, :version
|
||||
|
||||
@ -1,25 +1,26 @@
|
||||
- page_title t('.page_title', label: @fluentd.label)
|
||||
|
||||
%h4
|
||||
- if @fluentd.agent.running?
|
||||
%span.text.text-success= icon("fa-check")
|
||||
= t("fluentd.common.running")
|
||||
- else
|
||||
%span.text.text-info= icon("fa-circle-o")
|
||||
= t("fluentd.common.stopped")
|
||||
|
||||
- if flash[:error]
|
||||
%div.alert.alert-danger= flash[:error]
|
||||
|
||||
%p.operations
|
||||
= link_to icon("fa-play") << t("fluentd.common.start"), start_fluentd_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "disabled btn-default" : "btn-primary"}"
|
||||
= link_to icon("fa-pause") << t("fluentd.common.stop"), stop_fluentd_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "btn-danger" : "disabled btn-default"}"
|
||||
= link_to icon("fa-refresh") << t("fluentd.common.restart"), restart_fluentd_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "btn-warning" : "disabled btn-default"}"
|
||||
|
||||
%p
|
||||
= link_to t("fluentd.common.log"), log_fluentd_agent_path(@fluentd)
|
||||
= link_to t("fluentd.common.config_file"), fluentd_setting_path(@fluentd)
|
||||
|
||||
%div.row
|
||||
%div.col-lg-3
|
||||
%div{class: "panel panel-#{@fluentd.agent.running? ? "success":"default"}"}
|
||||
%div.panel-heading
|
||||
%h4
|
||||
- if @fluentd.agent.running?
|
||||
= icon("fa-play")
|
||||
= t("fluentd.common.running")
|
||||
- else
|
||||
= icon("fa-pause")
|
||||
= t("fluentd.common.stopped")
|
||||
%div.panel-body
|
||||
- if flash[:error]
|
||||
%div.alert.alert-danger= flash[:error]
|
||||
= link_to icon("fa-play") << t("fluentd.common.start"), start_fluentd_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "disabled btn-default" : "btn-primary"}"
|
||||
= link_to icon("fa-pause") << t("fluentd.common.stop"), stop_fluentd_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "btn-danger" : "disabled btn-default"}"
|
||||
= link_to icon("fa-refresh") << t("fluentd.common.restart"), restart_fluentd_agent_path(@fluentd), method: :put, class: "btn #{@fluentd.agent.running? ? "btn-warning" : "disabled btn-default"}"
|
||||
|
||||
- if @errors.present?
|
||||
|
||||
@ -35,4 +36,3 @@
|
||||
%ul
|
||||
- errors.each do |stack|
|
||||
%li= stack
|
||||
|
||||
|
||||
@ -3,12 +3,13 @@
|
||||
%p= link_to icon('fa-plus') << " " << t(".new"), new_fluentd_path
|
||||
|
||||
- @fluentds.each do |d|
|
||||
%div.col-lg-6
|
||||
%div.panel.panel-default
|
||||
%div.col-lg-3
|
||||
%div{class: "panel panel-#{d.agent.running? ? "success":"default"}"}
|
||||
%div.panel-heading
|
||||
%h4
|
||||
= "fluentd ##{d.id}"
|
||||
= link_to t(".edit"), edit_fluentd_path(d)
|
||||
= link_to t(".destroy"), fluentd_path(d), method: :delete
|
||||
- unless d.agent.running?
|
||||
= link_to t(".edit"), edit_fluentd_path(d)
|
||||
= link_to t(".destroy"), fluentd_path(d), method: :delete
|
||||
%div.panel-body
|
||||
= link_to t(".operation"), fluentd_agent_path(d) # TODO
|
||||
|
||||
@ -2,18 +2,17 @@ class GemInstaller
|
||||
include SuckerPunch::Job
|
||||
workers 16
|
||||
|
||||
WORKING = []
|
||||
|
||||
def perform(gem_name, version = nil)
|
||||
SuckerPunch.logger.info "install #{gem_name} #{version}"
|
||||
pl = Plugin.new(gem_name: gem_name, version: version)
|
||||
unless WORKING.find{|p| p.gem_name == pl.gem_name}
|
||||
WORKING.push(pl)
|
||||
data = { plugin: pl, type: :install, state: :running }
|
||||
if Plugin::WORKING.grep(data).blank?
|
||||
Plugin::WORKING.push(data)
|
||||
begin
|
||||
pl.uninstall! if pl.installed?
|
||||
pl.install!
|
||||
ensure
|
||||
WORKING.delete(pl)
|
||||
Plugin::WORKING.delete(data)
|
||||
end
|
||||
end
|
||||
SuckerPunch.logger.info "installed #{gem_name} #{version}"
|
||||
|
||||
@ -2,17 +2,16 @@ class GemUninstaller
|
||||
include SuckerPunch::Job
|
||||
workers 16
|
||||
|
||||
WORKING = []
|
||||
|
||||
def perform(gem_name)
|
||||
SuckerPunch.logger.info "uninstall #{gem_name}"
|
||||
pl = Plugin.new(gem_name: gem_name)
|
||||
unless WORKING.find{|p| p.gem_name == pl.gem_name}
|
||||
WORKING.push(pl)
|
||||
data = { plugin: pl, type: :uninstall, state: :running }
|
||||
if Plugin::WORKING.grep(data).blank?
|
||||
Plugin::WORKING.push(data)
|
||||
begin
|
||||
pl.uninstall!
|
||||
ensure
|
||||
WORKING.delete(pl)
|
||||
Plugin::WORKING.delete(data)
|
||||
end
|
||||
end
|
||||
SuckerPunch.logger.info "uninstalled #{gem_name}"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user