Created
January 20, 2015 15:00
-
-
Save petrblaho/fc69d2f5551776390035 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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