Class: Dcmgr::NodeModules::InstanceMonitor

Inherits:
Isono::NodeModules::Base
  • Object
show all
Includes:
Logger, Rpc::KvmHelper
Defined in:
lib/dcmgr/node_modules/instance_monitor.rb

Instance Method Summary collapse

Methods included from Logger

create, default_logdev, included

Methods included from Rpc::KvmHelper

#connect_monitor

Instance Method Details

#check_instanceObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/dcmgr/node_modules/instance_monitor.rb', line 23

def check_instance()
  instlst = rpc.request('hva-collector', 'get_alive_instances', manifest.node_id)
  instlst.find_all{|i| i[:state] == 'running' }.each { |i|
    begin
      check_kvm_process(i)
    rescue Exception => e
      if i[:status] == 'online'
        logger.error("#{e.class}, #{e.message}")

        rpc.request('hva-collector', 'update_instance', i[:uuid], {:status=>:offline}) { |req|
          req.oneshot = true
        }
        event.publish('hva/fault_instance', :args=>[i[:uuid]])
      end
      next
    end

    if i[:status] != 'online'
      rpc.request('hva-collector', 'update_instance', i[:uuid], {:status=>:online}) { |req|
        req.oneshot = true
      }
    end
  }
end