@_translate_excp
    def process_event(self, event, target_state=None):
        super(FSM, self).process_event(event)
        if target_state:
            # NOTE(rloo): _post_process_event() was invoked at the end of
            #             the above super().process_event() call. At this
            #             point, the default target state is being used but
            #             we want to use the specified state instead.
            self._validate_target_state(target_state)
            self._target_state = target_state
process the event.
dataset/ETHPy150Open openstack/ironic/ironic/common/fsm.py/FSM.process_event