Class: Wakame::Monitor::Service
- Inherits:
-
Object
- Object
- Wakame::Monitor::Service
show all
- Includes:
- Wakame::Monitor
- Defined in:
- lib/wakame/monitor/service.rb
Defined Under Namespace
Classes: CommandChecker, PidFileChecker, ServiceChecker
Constant Summary
STATUS_FAIL, STATUS_OFFLINE, STATUS_ONLINE
Instance Attribute Summary collapse
Instance Method Summary
collapse
#disable, #enable, included, #publish_to
Constructor Details
Returns a new instance of Service.
124
125
126
127
|
# File 'lib/wakame/monitor/service.rb', line 124
def initialize
@status = Wakame::Service::STATUS_ONLINE
@checkers = {}
end
|
Instance Attribute Details
#checkers ⇒ Object
Returns the value of attribute checkers.
122
123
124
|
# File 'lib/wakame/monitor/service.rb', line 122
def checkers
@checkers
end
|
Instance Method Details
#dump_attrs ⇒ Object
147
148
149
|
# File 'lib/wakame/monitor/service.rb', line 147
def dump_attrs
end
|
#find_checker(svc_id) ⇒ Object
151
152
153
|
# File 'lib/wakame/monitor/service.rb', line 151
def find_checker(svc_id)
@checkers[svc_id]
end
|
#handle_request(request) ⇒ Object
132
133
134
135
136
137
138
139
140
|
# File 'lib/wakame/monitor/service.rb', line 132
def handle_request(request)
svc_id = request[:svc_id]
case request[:command]
when :start
register(svc_id, request[:cmdstr])
when :stop
unregister(svc_id)
end
end
|
#register(svc_id, checker_type, *args) ⇒ Object
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/wakame/monitor/service.rb', line 155
def register(svc_id, checker_type, *args)
chk = @checkers[svc_id]
if chk
Wakame.log.error("#{self.class}: Service registory duplication. #{svc_id}")
raise "Service registory duplication. #{svc_id}"
end
case checker_type.to_sym
when :pidfile
chk = PidFileChecker.new(svc_id, self, args[0])
when :command
chk = CommandChecker.new(svc_id, self, args[0])
else
raise "Unsupported checker type: #{checker_type}"
end
chk.start
@checkers[svc_id]=chk
Wakame.log.info("#{self.class}: Registered service checker for #{svc_id}")
end
|
#send_event(a) ⇒ Object
142
143
144
145
|
# File 'lib/wakame/monitor/service.rb', line 142
def send_event(a)
Wakame.log.debug("Sending back a event: #{a.class}")
publish_to('agent_event', a.marshal)
end
|
#setup(path) ⇒ Object
129
130
|
# File 'lib/wakame/monitor/service.rb', line 129
def setup(path)
end
|
#unregister(svc_id) ⇒ Object
174
175
176
177
178
179
180
181
|
# File 'lib/wakame/monitor/service.rb', line 174
def unregister(svc_id)
chk = @checkers[svc_id]
if chk
chk.timer.stop
@checkers.delete(svc_id)
Wakame.log.info("#{self.class}: Unregistered service checker for #{svc_id}")
end
end
|