Worked perfect. Thank you!

Stephen Barrett

From: Brandon Whaley [mailto:[email protected]]
Sent: Thursday, November 09, 2017 4:21 PM
To: Stephen Barrett <[email protected]>
Cc: [email protected]
Subject: Re: [Fab-user] running parallel executions with different env.user

Hi Stephen,

I'd probably take advantage of the fact that host strings in fabric can include 
the username using @ syntax: user@host

def deploy(release):
    deployables = init_deployables(release)
    # API kill first
    hosts = set(
        '{}+autobot@{}'.format(
            options['host'].upper(),
            options['host']
        ) for options in deployables.values()
    )
    kill_results = execute(apikill_apps, hosts=hosts)
    api_killed = any(kill_results.values())

    if api_killed:
        print "Sleeping 20 seconds to let apps shutdown before attempting to 
task kill remainders"
        sleep(20)

    # Cleanup everything remaining with taskkill
    execute(taskkill_apps, hosts=hosts)



On Thu, Nov 9, 2017 at 5:50 PM Stephen Barrett 
<[email protected]<mailto:[email protected]>> wrote:
Hello,

I’m looking to update a package that uses fabric to interact with a bunch of 
windows slaves (Cygwin sshd) to do things in parallel. Unfortunately I can’t 
work out how to have fabric use a different env.user for each host, because 
sadly the hosts require <machinename>+<username> as their login credentials.

For example how would I update this code to run things in parallel for each 
host?

deployables = init_deployables(release)
    # API kill first
    hosts = set([options['host'] for options in deployables.values()])
    api_killed = False
    for host in hosts:
        env.user = "{}+autobot".format(host.upper())
        api_killed = execute(apikill_apps, host=host)[host] or api_killed

    if api_killed:
        print "Sleeping 20 seconds to let apps shutdown before attempting to 
task kill remainders"
        sleep(20)

    # Cleanup everything remaining with taskkill
    for host in hosts:
        env.user = "{}+autobot".format(host.upper())
        execute(taskkill_apps, host=host)

Thanks!

Stephen Barrett

_______________________________________________
Fab-user mailing list
[email protected]<mailto:[email protected]>
https://lists.nongnu.org/mailman/listinfo/fab-user
_______________________________________________
Fab-user mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/fab-user

Reply via email to