Esempio n. 1
0
def runServerScript(script_id,username,jobNotify,devices,scriptArgs,twist,timeout=10):
	jobStarted = False
	time_offset = 5
	while not jobStarted:
		ssref = ServerScriptRef(script_id)
		ssService = twist.script.ServerScriptService
		ssJobArgs = ServerScriptJobArgs()
		ssJobArgs.targets = map(lambda x: ServerRef(x),devices)
		ssJobArgs.timeOut = timeout
		ssJobArgs.parameters = scriptArgs
		jobSchedule = JobSchedule()
		jobSchedule.startDate = int(time.time() + time_offset)
		try:
			jobId = ssService.startServerScript(	ssref,
								ssJobArgs,
								username,
								jobNotify,
								jobSchedule).id
			jobStarted = True
		except PastScheduledDateException:
			print "Server Script (%s) is being rescheduled" % \
				ssService.getServerScriptVO(ssref).name 
			jobStarted = False 
			time_offset = time_offset + 5
	return jobId
Esempio n. 2
0
def runServerScript(script_id,
                    username,
                    jobNotify,
                    devices,
                    scriptArgs,
                    twist,
                    timeout=10):
    jobStarted = False
    time_offset = 5
    while not jobStarted:
        ssref = ServerScriptRef(script_id)
        ssService = twist.script.ServerScriptService
        ssJobArgs = ServerScriptJobArgs()
        ssJobArgs.targets = map(lambda x: ServerRef(x), devices)
        ssJobArgs.timeOut = timeout
        ssJobArgs.parameters = scriptArgs
        jobSchedule = JobSchedule()
        jobSchedule.startDate = int(time.time() + time_offset)
        try:
            jobId = ssService.startServerScript(ssref, ssJobArgs, username,
                                                jobNotify, jobSchedule).id
            jobStarted = True
        except PastScheduledDateException:
            print "Server Script (%s) is being rescheduled" % \
             ssService.getServerScriptVO(ssref).name
            jobStarted = False
            time_offset = time_offset + 5
    return jobId
    else:
        platform_filter="device_platform_name NOT_CONTAINS Win"


    server_filter = Filter()
    print opts.filter
    server_filter.expression="(%s)&(%s)" % (opts.filter,platform_filter)
    print server_filter.expression
    server_refs=server_service.findServerRefs(server_filter)


    server_array=[]
    for srv in server_refs:
        server_array.append(srv)
    filtered_refs=auth_service.filterSingleTypeResourceList(OperationConstants.EXECUTE_SERVER_SCRIPT, server_array)
    ssja=ServerScriptJobArgs()
    ssja.targets=filtered_refs
    ssja.timeOut=3600
    if opts.args:
        ssja.parameters=opts.args
    if opts.runas_user and opts.runas_pwd and opts.runas_domain:
        ssja.username=opts.runas_user
        ssja.password=opts.runas_pwd
        ssja.loginDomain=opts.runas_domain
    if int(opts.debug)!=1:
        job_ref=server_script_service.startServerScript(script_ref,ssja,'Script from pytwist',default_notify(opts.email),None)
        print job_ref
    else:
        print filtered_refs

    if int(opts.debug)!=1:
    server_tuple = []
    for row in input_file:
        server_filter = Filter()
        server_filter.expression = "ServerVO.hostName BEGINS_WITH %s" % row[
            "hostname"].split(".")[0]
        server_refs = server_service.findServerRefs(server_filter)

        if (len(server_refs) == 1):
            print "Success: %s" % server_refs[0].name
            one_ref = [server_refs[0]]
            server_tuple.append(server_refs[0])
        else:
            print "Could not find 1 entries for: %s" % row["hostname"]

    filtered_refs = auth_service.filterSingleTypeResourceList(
        OperationConstants.EXECUTE_SERVER_SCRIPT, server_tuple)
    script_ref = ServerScriptRef(long(opts.script))
    current_time = long(time.time())
    five_minutes_from_now = current_time + 300
    print five_minutes_from_now
    js = JobSchedule()
    js.setStartDate(five_minutes_from_now)
    ssja = ServerScriptJobArgs()
    print server_tuple
    ssja.targets = filtered_refs
    ssja.timeout = 360
    job_ref = server_script_service.startServerScript(
        script_ref, ssja, 'Script from pytwist', default_notify(opts.email),
        js)
    print job_ref
    elif MODE_DUMP:
        vo = serverservice.getServerVO(server)
        pprint.pprint(inspect.getmembers(vo))
    else:
        print "server %d = %s" % (server.id, server.name)

if len(servers) > 1:
    sys.stderr.write("#- More than one Server found !\n")
    sys.exit(1)

####################################################################### }}} 1
## Executing a Script on a Server ##################################### {{{ 1

# preparing job details
jobservice = ts.job.JobService
JobArg = ServerScriptJobArgs()
JobArg.setTargets(servers)

# the job query
try:
    job = scriptservice.startServerScript(scripts[0], JobArg, "", None, None)
except:
    sys.stderr.write("#- Job has not been created !\n")
    sys.exit(1)

# displaying job details
if MODE_LIST:
    print "job    %d = %s" % (job.id, job.name)
elif MODE_DETAIL:
    print "Job OID ............... " + str(job.id)
    print "Job Long ID ........... " + str(job.idAsLong)
Esempio n. 6
0
        platform_filter = "device_platform_name CONTAINS Win"
    else:
        platform_filter = "device_platform_name NOT_CONTAINS Win"

    server_filter = Filter()
    print opts.filter
    server_filter.expression = "(%s)&(%s)" % (opts.filter, platform_filter)
    print server_filter.expression
    server_refs = server_service.findServerRefs(server_filter)

    server_array = []
    for srv in server_refs:
        server_array.append(srv)
    filtered_refs = auth_service.filterSingleTypeResourceList(
        OperationConstants.EXECUTE_SERVER_SCRIPT, server_array)
    ssja = ServerScriptJobArgs()
    ssja.targets = filtered_refs
    ssja.timeOut = 3600
    if opts.args:
        ssja.parameters = opts.args
    if opts.runas_user and opts.runas_pwd and opts.runas_domain:
        ssja.username = opts.runas_user
        ssja.password = opts.runas_pwd
        ssja.loginDomain = opts.runas_domain
    if int(opts.debug) != 1:
        job_ref = server_script_service.startServerScript(
            script_ref, ssja, 'Script from pytwist',
            default_notify(opts.email), None)
        print job_ref
    else:
        print filtered_refs
Esempio n. 7
0
	print "Authentication failed."
	sys.exit(2)

# Construct a search filter.
filter = Filter()
filter.expression = 'ServerVO.name *=* "%s"' % 'rhel55'
filter.objectType = 'device'

# Get a reference to ServerService.
serverservice = ts.server.ServerService
# Perform the search, returning server references.
serverRef = serverservice.findServerRefs(filter)
print "-------server %s" % serverRef

# Contruct a search filter.
filter.expression = 'ServerScriptVO.name *=* "%s"' % 'hello world'
filter.objectType = 'server_script'

# Get a reference to ScriptService.
scriptservice = ts.script.ServerScriptService
# Perform the search, returning server references.
scriptRef = scriptservice.findServerScriptRefs(filter)[0]
print "----------script %s" % scriptRef

#constuct the args
args = ServerScriptJobArgs()
args.setTargets(serverRef)

# Run script job
jobRef = scriptservice.startServerScript(scriptRef,args, None, None, None)
print "---------jobRef %s" % jobRef
    server_tuple=[]
    for row in input_file:
        server_filter = Filter()
        server_filter.expression="ServerVO.hostName BEGINS_WITH %s" % row["hostname"].split(".")[0]
        server_refs=server_service.findServerRefs(server_filter)

        if(len(server_refs)==1):
            print "Success: %s" % server_refs[0].name
            one_ref=[server_refs[0]]
            server_tuple.append(server_refs[0])
        else:
            print "Could not find 1 entries for: %s" % row["hostname"]

    filtered_refs=auth_service.filterSingleTypeResourceList(OperationConstants.EXECUTE_SERVER_SCRIPT, server_tuple)
    script_ref=ServerScriptRef(long(opts.script))
    current_time=long(time.time())
    five_minutes_from_now=current_time+300
    print five_minutes_from_now
    js=JobSchedule()
    js.setStartDate(five_minutes_from_now)
    ssja=ServerScriptJobArgs()
    print server_tuple
    ssja.targets=filtered_refs
    ssja.timeout=360
    job_ref=server_script_service.startServerScript(script_ref,ssja,'Script from pytwist',default_notify(opts.email),js)
    print job_ref