blob: b040c12733aeb30d318c91245b7c3ff6461a5172 [file] [log] [blame]
from twisted.internet import defer, reactor
from slavealloc import client, exceptions
def setup_argparse(subparsers):
subparser = subparsers.add_parser(
'gettac', help='get a tac file for a slave')
subparser.add_argument('slave', nargs='*',
help="slave hostnames to allocate for (no domain)")
subparser.add_argument('-n', '--noop', dest='noop',
default=False, action='store_true',
help="don't actually allocate")
return subparser
def process_args(subparser, args):
if not args.slave:
subparser.error("at least one slave name is required")
if '.' in ''.join(args.slave):
subparser.error(
"slave name must not contain '.'; give the unqualified hostname")
@defer.inlineCallbacks
def main(args):
agent = client.RestAgent(reactor, args.apiurl)
for slave in args.slave:
path = 'gettac/%s' % slave
res = yield agent.restRequest('GET', path, {})
if not res.get('success'):
raise exceptions.CmdlineError(
"could not generate TAC for %s" % slave)
print res['tac']