Exemple #1
0
def reschedule_apex(un, pw, token, scheduled_jobs):
    client = ApexClient()
    client.login(un, pw, token, is_production=False)
    apex_str = "%s x = new %s(); String cron_exp = '%s'; system.schedule('%s', cron_exp, x); \n"
    exec_str = ''
    for sj in scheduled_jobs:
        exec_str = exec_str + apex_str % (sj.name, sj.name, sj.cron_exp, sj.name)

    resp = client.execute_anonymous(exec_str)
Exemple #2
0
def unschedule_apex(un, pw, token):
    client = ApexClient()
    client.login(un, pw, token, is_production=False)
    scheduled_jobs = []
    
    cjds = client.query('SELECT Id,Name,JobType FROM CronJobDetail WHERE JobType = \'7\'')
    try:
        cjd_ids = []
        cjd_names = {}
        for cjd in cjds.records:
            cjd_ids.append(cjd.Id[0])
            cjd_names[cjd.Id[0]] = cjd.Name

        scheduled_jobs = []
        #TODO:make a array to string for soql utility
        cjd_ids_filter = array_to_soql_string(cjd_ids)
        print cjd_ids_filter
        cts = client.query("SELECT CronExpression,CronJobDetailId,Id FROM CronTrigger WHERE CronJobDetailId IN %s" % cjd_ids_filter)
        for ct in cts.records:
            scheduled_jobs.append(ScheduledJob(cjd_names.get(ct.CronJobDetailId[0]), ct.CronExpression[0], ct.Id[0]))

        apex_str = "system.abortjob('%s'); \n"
        exec_str = ''
        #TODO: refactor to single api exec anon call
        for sj in scheduled_jobs:
            exec_str = exec_str + apex_str  % sj.id

        client.execute_anonymous(exec_str)
    finally:
        return scheduled_jobs
def test_multiple_connections(monkeypatch):
    c = ApexClient()
    monkeypatch.setattr('suds.client.SoapClient.invoke', _multiple_login_result)
    c.login('usernameA', 'password', name='conn_a')
    c.login('usernameB', 'password', name='conn_b')

    print c._connections
    assert c._location == None

    c.set_active_connection('conn_a')

    assert c._sessionHeader['sessionId'] == '123'
    assert c._location == "http://na1.salesforce.com/services/Soap/u/29.0/00Dx0000001T0zk"

    c.set_active_connection('conn_b')
    assert c._sessionHeader['sessionId'] == '321'