Skip to content

Instantly share code, notes, and snippets.

@petrblaho
Created January 20, 2015 15:00
Show Gist options
  • Save petrblaho/fc69d2f5551776390035 to your computer and use it in GitHub Desktop.
Save petrblaho/fc69d2f5551776390035 to your computer and use it in GitHub Desktop.
lib/workers/event_catcher_openstack.rb
- monitor_events method
- adds events into @queue
- then event is processed
- process_event method
- called EmsEvent.add_queue
app/models/ems_event.rb
- add_queue method
- call MiqQueue.put
app/models/miq_queue.rb
- put method
- call MiqQueue.create!
- returns created object
so there is MiqQueue record in db now
lib/workers/queue_worker_base.rb
- do_work method
- call deliver_message
- deliver_message method
- call deliver_queue_message
- deliver_queue_message method
- call MiqQueue#deliver
vmdb/app/models/miq_queue.rb
- deliver method
- set obj to EmsEvent or EmsEvent.find(instance_id)
- set data to marshalled msg_dat from record
- push this ^ data into args, which is serialized object - original event hash - in array
- call 'add_openstack' on obj (EmsEvent class or instance) depending on wether target_id is present - see **
- save value of ^ into result
- return triplet status, message, result
lib/workers/queue_worker_base.rb
- continue from ^^
- if status is not retry then call msg.delivered (will call destroy)
**
So important is EmsEvent.add_openstack(ems_id, event) call
- it in the end manages to create or find event to complete and calls EmsEvent.handle_event
- this calls EmsEventHelper.new(self).handle
lib/ems_event_helper.rb
- called handle
- before_handle
- logs
- handle_event
- it gets routine settings from VMDB::Config.new('event_handling').config[:event_handling] by event_type of EmsEvent instance
- handle_routine
- handle_step for each step
- handle_alert_event
- handle_alarm_event
- handle_automation_event
- after_handle
- logs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment