Example #1
0
def _submit_job(job_dict):
    """Call SMJobSubmit to submit a launchd job description.

    No return"""

    authref = __salt__['authorization.create'](kSMRightModifySystemDaemons)

    error = CFErrorRef()

    log.debug(job_dict)

    job_dict_p = NSDictionary(job_dict)

    domain = CFStringCreateWithCString(None, kSMDomainSystemLaunchd,
                                       kCFStringEncodingUTF8)

    ok = SMJobSubmit(domain, byref(job_dict_p), authref, byref(error))

    if not ok:
        error_desc = NSString()
        error_desc = CFErrorCopyDescription(error)
        log.error(error_desc)
        #raise DaemonInstallException("SMJobSubmit error (see above)")

    __salt__['authorization.free'](authref)

    return ok