class ServiceControler
Attributes
listv[RW]
restart_bt[RW]
service[RW]
start_bt[RW]
status_bt[RW]
stop_bt[RW]
txtv[RW]
Public Class Methods
new(txtv, listv)
click to toggle source
# File lib/yasysdui/service_controler.rb, line 17 def initialize(txtv, listv) @txtv = txtv self.init_textv @listv = listv @start_bt = CommandButton.new("Start", self) @stop_bt = CommandButton.new("Stop",self) @status_bt = CommandButton.new("Status", self) @restart_bt = CommandButton.new("Restart", self) connect_list_sel_to_textv end
Public Instance Methods
connect_list_sel_to_textv()
click to toggle source
# File lib/yasysdui/service_controler.rb, line 30 def connect_list_sel_to_textv @listv.signal_connect_sel_changed(self) end
execute(action)
click to toggle source
# File lib/yasysdui/service_controler.rb, line 33 def execute(action) if @service then @action_output, @action_call_status = Open3.capture2e("#@@cmd #{action.downcase} #@service" ) self.ui_update(action) end end
init_textv()
click to toggle source
# File lib/yasysdui/service_controler.rb, line 27 def init_textv @txtv.text = "No service selected" end
ui_update(action)
click to toggle source
# File lib/yasysdui/service_controler.rb, line 39 def ui_update(action) # (always) update textView buffer text result_text = "#{action}: #{@service.descr} " result_text << "\n Result: #{@action_call_status}" result_text << "\n" + @action_output @txtv.text = result_text # update status info in the result list if action.downcase == 'status' @status_output = @action_output else # not sure if this makes senses in case systemctl call would be non-blocking # but otherwise it makes @status_output, status_call_status = Open3.capture2e("#@@cmd status #@service" ) end @service.set_status_info_from_output( @status_output ) @listv.update_selected_row end