def _handle_sdp_target_state_updated(sdp_state: SDPState):
    """Respond to an SDP target state change event.

    This function sets the current state of SDP to the target state if that is
    possible.

    TODO(BMo) This cant be done as a blocking function as it is here!
    """
    LOG.info('Handling SDP target state updated event...')
    LOG.info('SDP target state: %s', sdp_state.target_state)

    # Map between the SDP target state and the service target state?
    if sdp_state.target_state == 'off':
        _update_services_target_state('off')

    # TODO: Work out if the state of SDP has reached the target state.

    # If yes, update the current state.
    sdp_state.update_current_state(sdp_state.target_state)
Respond to an SDP target state change event.

    This function sets the current state of SDP to the target state if that is
    possible.

    TODO(BMo) This cant be done as a blocking function as it is here!