summaryrefslogtreecommitdiffstats
path: root/tools/pharos-validator/src/validation_tool/src/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/pharos-validator/src/validation_tool/src/server.py')
-rw-r--r--tools/pharos-validator/src/validation_tool/src/server.py111
1 files changed, 0 insertions, 111 deletions
diff --git a/tools/pharos-validator/src/validation_tool/src/server.py b/tools/pharos-validator/src/validation_tool/src/server.py
deleted file mode 100644
index 91c9a4f2..00000000
--- a/tools/pharos-validator/src/validation_tool/src/server.py
+++ /dev/null
@@ -1,111 +0,0 @@
-##############################################################################
-# Copyright (c) 2015 Todd Gaunt and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-import logging
-import os
-import subprocess
-import time
-
-# Constant definitions
-from pharosvalidator.const import *
-
-def ssh_thread(remoteaddr, returnaddr, port, passes):
- """
- ssh_thread: the main loop of a thread the server spawns to connect to a node
- over ssh.
-
- input: remoteaddr, returnaddr, and port to forward to run_remote_test;
- passes to specify how many attempts should be made
- """
- for i in range(passes):
- status = run_remote_test(remoteaddr, returnaddr, port)
- time.sleep(1)
-
-def run_remote_test(remoteaddr, returnaddr, port):
- """
- run_remote_tests: ssh to a give remote address, and run a test program
- on the remote machine specifying the address and port of where the results
- should be sent (usually back to the machine this program was run on)
-
- input: ip address of the ssh target; Adress of the test results target;
- Port of the test results target
-
- output: 0 if the test ran over ssh perfectly, non-zero if the test faild
- """
- #TODO add way to keep attempting to ssh until service is up and running aka ping part 2
- logger = logging.getLogger(__name__)
-
- cmd = ["ssh", "root@"+remoteaddr, HARDWARE_TEST, \
- "-p", port, "-H", returnaddr, "hardware"]
-
- logger.debug("Running: {}".format(" ".join(cmd)))
- try:
- with open(os.devnull, 'w') as fn:
- status = subprocess.check_call(" ".join(cmd), stdout=fn, stderr=fn, shell=True)
- except subprocess.CalledProcessError as e:
- status = e.returncode
- logger.error("ssh attempt to '{}' failed".format(remoteaddr))
-
- return status
-
-def ping_network(ip_range_list, ipcnt, passes):
- """
- ping_network: Ping a range of ips until the amount of successful pings
- reaches a number n
-
- input: List of ip addresses to be pinged; Counter for threshold
- of successful pings; Number of iterations to pass
-
- output: List of ip addresses that were found to be up
- """
- logger = logging.getLogger("pharosvalidator")
- assert isinstance(ip_range_list, list)
- ips_found = 0
- alive_ips = []
- for t in range(passes):
- for addr in list(ip_range_list):
- cmd = [ \
- "ping", \
- "-c", "1", \
- "-w", "1", \
- addr]
- logger.debug("Running: \"{}\"".format(' '.join(cmd)))
- try:
- with open(os.devnull, 'w') as fn:
- status = subprocess.check_call(" ".join(cmd), \
- stdout=fn, stderr=fn, shell=True)
- except subprocess.CalledProcessError as e:
- status = e.returncode
- logger.error("Ping at '{}' failed".format(addr))
- # If the ip address was pinged successfully, then remove it from future attempts
- if status == 0:
- ips_found += 1
- logger.info("{} is up, {} total nodes up".format(addr, ips_found))
-
- # Remove the ip that was successfully pinged from being tested again
- ip_range_list.remove(addr)
-
- # Add the successfully pinged node to a list of successful pings
- alive_ips.append(addr)
-
- if ips_found >= ipcnt:
- break
-
- if ips_found >= ipcnt:
- break
-
- return alive_ips
-
-def bring_up_admin_ip(ipaddr):
- """
- Assign the machine this test is running on an address according to the
- configuration file
- """
- cmd = [""]
- subprocess.Popen(cmd)