|
1 | 1 | require "manageiq-messaging" |
2 | 2 | require "sd_notify" |
3 | 3 | require "rbvmomi" |
| 4 | +require "json" |
4 | 5 |
|
5 | 6 | class EventCatcher |
6 | | - def initialize(ems_id, default_endpoint, default_authentication, messaging_opts, page_size = 20) |
7 | | - @ems_id = ems_id |
8 | | - @hostname = default_endpoint["hostname"] |
9 | | - @username = default_authentication["userid"] |
10 | | - @password = default_authentication["password"] |
11 | | - @port = default_endpoint["port"] |
12 | | - @messaging_host = messaging_opts["host"] || "localhost" |
13 | | - @messaging_port = messaging_opts["port"] || 9092 |
14 | | - @page_size = page_size |
| 7 | + def initialize(ems_id, default_endpoint, default_authentication, messaging, page_size = 20) |
| 8 | + @ems_id = ems_id |
| 9 | + @default_endpoint = default_endpoint |
| 10 | + @default_authentication = default_authentication |
| 11 | + @messaging = messaging |
| 12 | + @page_size = page_size |
15 | 13 | end |
16 | 14 |
|
17 | 15 | def run! |
@@ -44,22 +42,22 @@ def stop! |
44 | 42 |
|
45 | 43 | private |
46 | 44 |
|
47 | | - attr_reader :ems_id, :hostname, :messaging_host, :messaging_port, :password, :port, :page_size, :username |
| 45 | + attr_reader :ems_id, :default_endpoint, :default_authentication, :messaging, :page_size |
48 | 46 |
|
49 | 47 | def connect |
50 | 48 | vim_opts = { |
51 | 49 | :ns => 'urn:vim25', |
52 | | - :host => hostname, |
| 50 | + :host => default_endpoint["hostname"], |
53 | 51 | :ssl => true, |
54 | | - :insecure => true, |
| 52 | + :insecure => default_endpoint["verify_ssl"] == OpenSSL::SSL::VERIFY_NONE, |
55 | 53 | :path => '/sdk', |
56 | | - :port => port, |
57 | | - :rev => '6.5', |
| 54 | + :port => default_endpoint["port"], |
| 55 | + :rev => '7.0', |
58 | 56 | } |
59 | 57 |
|
60 | 58 | RbVmomi::VIM.new(vim_opts).tap do |vim| |
61 | 59 | vim.rev = vim.serviceContent.about.apiVersion |
62 | | - vim.serviceContent.sessionManager.Login(:userName => username, :password => password) |
| 60 | + vim.serviceContent.sessionManager.Login(:userName => default_authentication["userid"], :password => default_authentication["password"]) |
63 | 61 | end |
64 | 62 | end |
65 | 63 |
|
@@ -217,8 +215,8 @@ def publish_events(events) |
217 | 215 |
|
218 | 216 | def messaging_client |
219 | 217 | @messaging_client ||= ManageIQ::Messaging::Client.open( |
220 | | - :host => messaging_host, |
221 | | - :port => messaging_port, |
| 218 | + :host => messaging["host"], |
| 219 | + :port => messaging["port"], |
222 | 220 | :protocol => :Kafka, |
223 | 221 | :encoding => "json", |
224 | 222 | :client_ref => "vmware-event-catcher-#{ems_id}" |
@@ -246,18 +244,17 @@ def setproctitle |
246 | 244 | def main(args) |
247 | 245 | setproctitle |
248 | 246 |
|
249 | | - ems = args["ems"].detect { |e| e["type"] == "ManageIQ::Providers::Vmware::InfraManager" } |
250 | | - |
| 247 | + ems = args["ems"].detect { |e| e["type"] == "ManageIQ::Providers::Vmware::InfraManager" } |
251 | 248 | default_endpoint = ems["endpoints"].detect { |ep| ep["role"] == "default" } |
252 | 249 | default_authentication = ems["authentications"].detect { |auth| auth["authtype"] == "default" } |
| 250 | + messaging = args["messaging"] |
253 | 251 |
|
254 | | - event_catcher = EventCatcher.new(ems["id"], default_endpoint, default_authentication, {}) # TODO: args["messaging_opts"]) |
| 252 | + event_catcher = EventCatcher.new(ems["id"], default_endpoint, default_authentication, messaging) |
255 | 253 |
|
256 | 254 | event_catcher.run! |
257 | 255 | end |
258 | 256 |
|
259 | 257 | def parse_args |
260 | | - require "json" |
261 | 258 | JSON.parse($stdin.read) |
262 | 259 | end |
263 | 260 |
|
|
0 commit comments