summaryrefslogtreecommitdiff
path: root/executors.py
diff options
context:
space:
mode:
Diffstat (limited to 'executors.py')
-rw-r--r--executors.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/executors.py b/executors.py
index d5049a2..6723bb9 100644
--- a/executors.py
+++ b/executors.py
@@ -843,6 +843,7 @@ class DefaultExecutors(object):
self.remote_executor: Optional[RemoteExecutor] = None
def ping(self, host) -> bool:
+ logger.debug(f'RUN> ping -c 1 {host}')
command = ['ping', '-c', '1', host]
return subprocess.call(
command,
@@ -861,9 +862,11 @@ class DefaultExecutors(object):
return self.process_executor
def remote_pool(self) -> RemoteExecutor:
+ logger.info('Looking for some helper machines...')
if self.remote_executor is None:
pool: List[RemoteWorkerRecord] = []
if self.ping('cheetah.house'):
+ logger.info('Found cheetah.house')
pool.append(
RemoteWorkerRecord(
username = 'scott',
@@ -873,6 +876,7 @@ class DefaultExecutors(object):
),
)
if self.ping('video.house'):
+ logger.info('Found video.house')
pool.append(
RemoteWorkerRecord(
username = 'scott',
@@ -882,6 +886,7 @@ class DefaultExecutors(object):
),
)
if self.ping('wannabe.house'):
+ logger.info('Found wannabe.house')
pool.append(
RemoteWorkerRecord(
username = 'scott',
@@ -891,6 +896,7 @@ class DefaultExecutors(object):
),
)
if self.ping('meerkat.cabin'):
+ logger.info('Found meerkat.cabin')
pool.append(
RemoteWorkerRecord(
username = 'scott',
@@ -900,6 +906,7 @@ class DefaultExecutors(object):
),
)
if self.ping('backup.house'):
+ logger.info('Found backup.house')
pool.append(
RemoteWorkerRecord(
username = 'scott',
@@ -908,7 +915,18 @@ class DefaultExecutors(object):
count = 4,
),
)
+ if self.ping('kiosk.house'):
+ logger.info('Found kiosk.house')
+ pool.append(
+ RemoteWorkerRecord(
+ username = 'pi',
+ machine = 'kiosk.house',
+ weight = 1,
+ count = 2,
+ ),
+ )
if self.ping('puma.cabin'):
+ logger.info('Found puma.cabin')
pool.append(
RemoteWorkerRecord(
username = 'scott',
@@ -917,6 +935,13 @@ class DefaultExecutors(object):
count = 4,
),
)
+
+ # The controller machine has a lot to do; go easy on it.
+ for record in pool:
+ if record.machine == platform.node() and record.count > 1:
+ logger.info(f'Reducing workload for {record.machine}.')
+ record.count = 1
+
policy = WeightedRandomRemoteWorkerSelectionPolicy()
policy.register_worker_pool(pool)
self.remote_executor = RemoteExecutor(pool, policy)