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