Poll imgadm and compare available images

def beacon(config):
    '''
    Poll imgadm and compare available images
    '''
    ret = []

    # NOTE: lookup current images
    current_images = __salt__['imgadm.list'](verbose=True)

    # NOTE: apply configuration
    if IMGADM_STATE['first_run']:
        log.info('Applying configuration for imgadm beacon')

        _config = {}
        list(map(_config.update, config))

        if 'startup_import_event' not in _config or not _config['startup_import_event']:
            IMGADM_STATE['images'] = current_images

    # NOTE: import events
    for uuid in current_images:
        event = {}
        if uuid not in IMGADM_STATE['images']:
            event['tag'] = "imported/{}".format(uuid)
            for label in current_images[uuid]:
                event[label] = current_images[uuid][label]

        if event:
            ret.append(event)

    # NOTE: delete events
    for uuid in IMGADM_STATE['images']:
        event = {}
        if uuid not in current_images:
            event['tag'] = "deleted/{}".format(uuid)
            for label in IMGADM_STATE['images'][uuid]:
                event[label] = IMGADM_STATE['images'][uuid][label]

        if event:
            ret.append(event)

    # NOTE: update stored state
    IMGADM_STATE['images'] = current_images

    # NOTE: disable first_run
    if IMGADM_STATE['first_run']:
        IMGADM_STATE['first_run'] = False

    return ret