Verifies that the specified incron job is present for the specified user.
    For more advanced information about what exactly can be set in the cron
    timing parameters, check your incron system's documentation. Most Unix-like
    systems' incron documentation can be found via the incrontab man page:
    ``man 5 incrontab``.

    name
        Unique comment describing the entry

    path
        The path that should be watched

    user
        The name of the user who's crontab needs to be modified, defaults to
        the root user

    mask
        The mask of events that should be monitored for

    cmd
        The cmd that should be executed

def present(name,
            path,
            mask,
            cmd,
            user='root'):
    '''
    Verifies that the specified incron job is present for the specified user.
    For more advanced information about what exactly can be set in the cron
    timing parameters, check your incron system's documentation. Most Unix-like
    systems' incron documentation can be found via the incrontab man page:
    ``man 5 incrontab``.

    name
        Unique comment describing the entry

    path
        The path that should be watched

    user
        The name of the user who's crontab needs to be modified, defaults to
        the root user

    mask
        The mask of events that should be monitored for

    cmd
        The cmd that should be executed

    '''
    mask = ',' . join(mask)

    ret = {'changes': {},
           'comment': '',
           'name': name,
           'result': True}
    if __opts__['test']:
        status = _check_cron(user,
                             path,
                             mask,
                             cmd)
        ret['result'] = None
        if status == 'absent':
            ret['comment'] = 'Incron {0} is set to be added'.format(name)
        elif status == 'present':
            ret['result'] = True
            ret['comment'] = 'Incron {0} already present'.format(name)
        elif status == 'update':
            ret['comment'] = 'Incron {0} is set to be updated'.format(name)
        return ret

    data = __salt__['incron.set_job'](user=user,
                                    path=path,
                                    mask=mask,
                                    cmd=cmd)
    if data == 'present':
        ret['comment'] = 'Incron {0} already present'.format(name)
        return ret

    if data == 'new':
        ret['comment'] = 'Incron {0} added to {1}\'s incrontab'.format(name, user)
        ret['changes'] = {user: name}
        return ret

    if data == 'updated':
        ret['comment'] = 'Incron {0} updated'.format(name)
        ret['changes'] = {user: name}
        return ret
    ret['comment'] = ('Incron {0} for user {1} failed to commit with error \n{2}'
                      .format(name, user, data))
    ret['result'] = False
    return ret