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.
129
130
131
132
|
# File 'lib/wakame/monitor/service.rb', line 129
def initialize
@status = Wakame::Service::STATUS_ONLINE
@checkers = {}
end
|
Instance Attribute Details
#checkers ⇒ Object
Returns the value of attribute checkers.
127
128
129
|
# File 'lib/wakame/monitor/service.rb', line 127
def checkers
@checkers
end
|
Instance Method Details
#check_status(svc_id) ⇒ Object
187
188
189
190
191
192
193
194
|
# File 'lib/wakame/monitor/service.rb', line 187
def check_status(svc_id)
chk = @checkers[svc_id]
if chk
chk.status
else
raise RuntimeError, "#{self.class}: Specified service id was not found: #{svc_id}"
end
end
|
#dump_attrs ⇒ Object
152
153
154
|
# File 'lib/wakame/monitor/service.rb', line 152
def dump_attrs
end
|
#find_checker(svc_id) ⇒ Object
156
157
158
|
# File 'lib/wakame/monitor/service.rb', line 156
def find_checker(svc_id)
@checkers[svc_id]
end
|
#handle_request(request) ⇒ Object
137
138
139
140
141
142
143
144
145
|
# File 'lib/wakame/monitor/service.rb', line 137
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
# File 'lib/wakame/monitor/service.rb', line 160
def register(svc_id, checker_type, *args)
chk = @checkers[svc_id]
if chk
unregister(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
147
148
149
150
|
# File 'lib/wakame/monitor/service.rb', line 147
def send_event(a)
Wakame.log.debug("Sending back the event: #{a.class}")
publish_to('agent_event', a.marshal)
end
|
#setup(path) ⇒ Object
134
135
|
# File 'lib/wakame/monitor/service.rb', line 134
def setup(path)
end
|
#unregister(svc_id) ⇒ Object
178
179
180
181
182
183
184
185
|
# File 'lib/wakame/monitor/service.rb', line 178
def unregister(svc_id)
chk = @checkers[svc_id]
if chk
chk.stop
@checkers.delete(svc_id)
Wakame.log.info("#{self.class}: Unregistered service checker for #{svc_id}")
end
end
|