Class: Wakame::Service::AgentPool
Constant Summary
collapse
- ID =
self.to_s
AttributeHelper::CLASS_TYPE_KEY, AttributeHelper::CONVERT_CLASSES, AttributeHelper::PRIMITIVE_CLASSES
Class Method Summary
collapse
Instance Method Summary
collapse
#delete, #dirty?, inherited, #new_record?, #on_after_delete, #on_after_load, #on_before_delete, #on_before_load, #reload, #save
#dump_attrs, #retrieve_attr_attribute
Class Method Details
.instance ⇒ Object
113
114
115
116
117
118
119
120
|
# File 'lib/wakame/service.rb', line 113
def self.instance
a = self.find(ID)
if a.nil?
a = self.new
a.save
end
a
end
|
.reset ⇒ Object
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# File 'lib/wakame/service.rb', line 122
def self.reset
ap = self.instance
nil_cloud_host_id = lambda { |agent_id|
agent = Agent.find(agent_id)
agent.cloud_host_id = nil
agent.save
}
ap.group_observed.keys.each &nil_cloud_host_id
ap.group_active.keys.each &nil_cloud_host_id
ap.save
end
|
Instance Method Details
#create_or_find(agent_id) ⇒ Object
141
142
143
144
145
146
147
148
149
|
# File 'lib/wakame/service.rb', line 141
def create_or_find(agent_id)
agent = Service::Agent.find(agent_id)
if agent.nil?
agent = Service::Agent.new
agent.id = agent_id
Wakame.log.debug("#{self.class}: Created new agent object with Agent ID: #{agent_id}")
end
agent
end
|
#find_agent(agent_id) ⇒ Object
213
214
215
216
|
# File 'lib/wakame/service.rb', line 213
def find_agent(agent_id)
raise "The agent ID \"#{agent_id}\" is not registered in the pool" unless group_active.has_key? agent_id
Agent.find(agent_id) || raise("The agent ID #{agent_id} is registered. but not in the database.")
end
|
#id ⇒ Object
137
138
139
|
# File 'lib/wakame/service.rb', line 137
def id
ID
end
|
#register(agent) ⇒ Object
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
# File 'lib/wakame/service.rb', line 169
def register(agent)
raise ArgumentError unless agent.is_a?(Agent)
agent_id = agent.id
if group_active.has_key?(agent_id)
else
if group_observed.has_key?(agent_id)
group_observed.delete(agent_id)
group_active[agent_id]=1
else
group_active[agent_id]=1
end
self.save
Wakame.log.debug("#{self.class}: Register agent to active group: #{agent_id}")
ED.fire_event(Event::AgentMonitored.new(agent))
end
end
|
#register_as_observed(agent) ⇒ Object
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
# File 'lib/wakame/service.rb', line 151
def register_as_observed(agent)
agent_id = agent.id
if group_observed.has_key?(agent_id)
else
if group_active.has_key?(agent_id)
group_active.delete(agent_id)
group_observed[agent_id]=1
else
group_observed[agent_id]=1
end
self.save
Wakame.log.debug("#{self.class}: Register agent to observed group: #{agent_id}")
end
end
|
#unregister(agent) ⇒ Object
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
# File 'lib/wakame/service.rb', line 190
def unregister(agent)
raise ArgumentError unless agent.is_a?(Agent)
agent_id = agent.id
unregistered = false
if group_active.has_key?(agent_id)
group_active.delete(agent_id)
unregistered = true
end
if group_observed.has_key?(agent_id)
group_observed.delete(agent_id)
unregistered = true
end
if unregistered
self.save
Wakame.log.debug("#{self.class}: Unregister agent: #{agent.id}")
ED.fire_event(Event::AgentUnMonitored.new(agent))
end
end
|