Jeff Hair created CLOUDSTACK-6467:
-------------------------------------

             Summary: User VM state listener publishes to event bus incompletely
                 Key: CLOUDSTACK-6467
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6467
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: Management Server
    Affects Versions: 4.2.0, 4.3.0, 4.4.0, 4.5.0
         Environment: CentOS 6.5
            Reporter: Jeff Hair


The UserVMStateListener is responsible for publishing resource state transition 
events and usage events for virtual machines. It has an issue where, from the 
point of view of any listener bound on the event bus, it publishes resource 
state transition events for user VMs twice and only publishes events for system 
VMs (e.g. virtual routers) once, but before the state transition happens. Usage 
events are unaffected.

This is because of two issues:

1. The publishOnEventBusMethod receives a status parameter to determine whether 
the event is pre- or post-transition. It ignores this parameter when publishing.
2. Only pre-transition events are published for system VMs like routers. This 
means there is no reliable way to act on a state transition event for system 
VMs if we are interested in doing something AFTER they have changed the state.

The easiest solution to these issues is to move the the publishOnEventBus call 
in postStateTransitionEvent to before it returns for non-user VMs, and then 
also add the status string into the event description map when publishing to 
the event bus.

I've also submitted a patch for this change to review board.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to