Sha256: d03ced856589eacf5731670fc4aad4eabdb3a5d2d9a8ae18545a375056c7b162

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

module Eye::Process::Data

  # logger tag
  def full_name
    @full_name ||= [self[:application], (self[:group] == '__default__') ? nil : self[:group], self[:name]].compact.join(':')
  end

  def status_data(debug = false)
    p_st = self_status_data(debug)

    if childs.present?
      p_st.merge(:subtree => Eye::Utils::AliveArray.new(childs.values).map{|c| c.status_data(debug) } )
    elsif self[:monitor_children] && self.up?
      p_st.merge(:subtree => [{name: '=loading childs='}])
    else
      # common state
      p_st
    end
  end

  def self_status_data(debug = false)
    h = { name: name, state: state, 
          type: (self.class == Eye::ChildProcess ? :child_process : :process), 
          resources: Eye::SystemResources.resources(pid) }

    if @states_history
      h.merge!( state_changed_at: @states_history.last_state_changed_at,
                state_reason: @states_history.last_reason )
    end

    h.merge!(debug: debug_data) if debug
    h.merge!(current_command: current_scheduled_command) if current_scheduled_command

    h    
  end

  def debug_data
    { queue: scheduler_actions_list, watchers: @watchers.keys }
  end

  def sub_object?(obj)
    return false if self.class == Eye::ChildProcess
    self.childs.each { |_, child| return true if child == obj }
    false
  end

end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
reel-eye-0.3.2 lib/eye/process/data.rb
eye-0.3.2 lib/eye/process/data.rb
reel-eye-0.3.1 lib/eye/process/data.rb
eye-0.3.1 lib/eye/process/data.rb
eye-0.3 lib/eye/process/data.rb
eye-0.2.4 lib/eye/process/data.rb