summaryrefslogtreecommitdiffstats
path: root/func
diff options
context:
space:
mode:
authorSteve Salevan <ssalevan@marillion.rdu.redhat.com>2008-07-01 12:40:50 -0400
committerSteve Salevan <ssalevan@marillion.rdu.redhat.com>2008-07-01 12:40:50 -0400
commit498ee363f87317ec3649e3ab704933e93e8d4216 (patch)
tree1f49a929017717fb833902d2e4ea086bde764af4 /func
parent76d705aca2d8366cd9e920a2cb1431ca19951b1d (diff)
downloadfunc-498ee363f87317ec3649e3ab704933e93e8d4216.tar.gz
func-498ee363f87317ec3649e3ab704933e93e8d4216.tar.xz
func-498ee363f87317ec3649e3ab704933e93e8d4216.zip
Adding in arguments for calling func with delegation
Diffstat (limited to 'func')
-rw-r--r--func/overlord/base_command.py6
-rwxr-xr-xfunc/overlord/client.py14
2 files changed, 18 insertions, 2 deletions
diff --git a/func/overlord/base_command.py b/func/overlord/base_command.py
index f7c33c0..ff0f167 100644
--- a/func/overlord/base_command.py
+++ b/func/overlord/base_command.py
@@ -25,6 +25,8 @@ class BaseCommand(command.Command):
port=DEFAULT_PORT
async=False
forks=1
+ delegate=False
+ mapfile=""
def getOverlord(self):
self.overlord_obj = client.Overlord(self.server_spec,
port=self.port,
@@ -32,4 +34,6 @@ class BaseCommand(command.Command):
verbose=self.verbose,
config=self.config,
async=self.async,
- nforks=self.forks)
+ nforks=self.forks,
+ delegate=self.delegate,
+ mapfile=self.mapfile)
diff --git a/func/overlord/client.py b/func/overlord/client.py
index fb436ed..d3e7546 100755
--- a/func/overlord/client.py
+++ b/func/overlord/client.py
@@ -16,6 +16,7 @@
import sys
import glob
import os
+import yaml
from certmaster.commonconfig import CMConfig
from func.config import read_config, CONFIG_FILE
@@ -158,7 +159,8 @@ def is_minion(minion_string):
class Overlord(object):
def __init__(self, server_spec, port=DEFAULT_PORT, interactive=False,
- verbose=False, noglobs=False, nforks=1, config=None, async=False, init_ssl=True):
+ verbose=False, noglobs=False, nforks=1, config=None, async=False, init_ssl=True,
+ delegate=False, mapfile=""):
"""
Constructor.
@server_spec -- something like "*.example.org" or "foosball"
@@ -179,9 +181,19 @@ class Overlord(object):
self.noglobs = noglobs
self.nforks = nforks
self.async = async
+ self.delegate = delegate
+ self.mapfile = mapfile
self.minions_class = Minions(self.server_spec, port=self.port, noglobs=self.noglobs,verbose=self.verbose)
self.minions = self.minions_class.get_urls()
+
+ if self.delegate:
+ try:
+ mapstream = file(self.mapfile, 'r')
+ self.minionmap = yaml.load(mapstream)
+ except e:
+ sys.stderr.write("mapfile load failed, switching delegation off")
+ self.delegate = False
if init_ssl:
self.setup_ssl()