summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Hinds <lukehinds@gmail.com>2016-08-16 10:13:44 +0100
committerLuke Hinds <lukehinds@gmail.com>2016-08-16 10:13:44 +0100
commit28ef229584b4fd1a358298984f0d07cff2170c21 (patch)
tree61776703ad034c788bc055eb95e668c6107f2b5b
parent7f2ce17bb7bbd7a7d88450de84699ad71d20103c (diff)
Merging Internet Connection check
Issues were found with FDIO repo in Apex, so to prevent other connectivity issues from having an adverse effect on functest run times, this patch adds a check to insure the connection works correctly, but creating a socket connection to port 80 on google.com Change-Id: If6841ee81e19996d3640a4551b1fac2770401da8 Signed-off-by: Luke Hinds <lukehinds@gmail.com>
-rw-r--r--scripts/internet_check.py25
-rw-r--r--security_scan.py52
2 files changed, 62 insertions, 15 deletions
diff --git a/scripts/internet_check.py b/scripts/internet_check.py
new file mode 100644
index 0000000..1bed50a
--- /dev/null
+++ b/scripts/internet_check.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2016 Red Hat
+# Luke Hinds (lhinds@redhat.com)
+# 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
+#
+# Performs simple connection check, falls to default timeout of 10 seconds
+
+import socket
+
+TEST_HOST = "google.com"
+
+
+def is_connected():
+ try:
+ host = socket.gethostbyname(TEST_HOST)
+ socket.create_connection((host, 80), 2)
+ return True
+ except:
+ return False
+print is_connected()
diff --git a/security_scan.py b/security_scan.py
index d39c290..36b7954 100644
--- a/security_scan.py
+++ b/security_scan.py
@@ -73,21 +73,27 @@ def run_tests(host, nodetype):
port = cfgparse.get(nodetype, 'port')
connect.logger.info("Host: {0} Selected Profile: {1}".format(host,
nodetype))
- connect.logger.info("Creating temp file structure..")
- createfiles(host, port, user, localkey)
- connect.logger.info("Installing OpenSCAP...")
- install_pkg(host, port, user, localkey)
- connect.logger.info("Running scan...")
- run_scanner(host, port, user, localkey, nodetype)
- clean = cfgparse.get(nodetype, 'clean')
- connect.logger.info("Post installation tasks....")
- post_tasks(host, port, user, localkey, nodetype)
- if clean:
- connect.logger.info("Cleaning down environment....")
- connect.logger.info("Removing OpenSCAP....")
- removepkg(host, port, user, localkey, nodetype)
- connect.logger.info("Deleting tmp file and reports (remote)...")
- cleandir(host, port, user, localkey, nodetype)
+ connect.logger.info("Checking internet for package installation...")
+ if internet_check(host, nodetype):
+ connect.logger.info("Internet Connection OK.")
+ connect.logger.info("Creating temp file structure..")
+ createfiles(host, port, user, localkey)
+ connect.logger.info("Installing OpenSCAP...")
+ install_pkg(host, port, user, localkey)
+ connect.logger.info("Running scan...")
+ run_scanner(host, port, user, localkey, nodetype)
+ clean = cfgparse.get(nodetype, 'clean')
+ connect.logger.info("Post installation tasks....")
+ post_tasks(host, port, user, localkey, nodetype)
+ if clean:
+ connect.logger.info("Cleaning down environment....")
+ connect.logger.info("Removing OpenSCAP....")
+ removepkg(host, port, user, localkey, nodetype)
+ connect.logger.info("Deleting tmp file and reports (remote)...")
+ cleandir(host, port, user, localkey, nodetype)
+ else:
+ connect.logger.error("Internet timeout. Moving on to next node..")
+ pass
def nova_iterate():
@@ -106,6 +112,22 @@ def nova_iterate():
run_tests(host, nodetype)
+def internet_check(host, nodetype):
+ import connect
+ user = cfgparse.get(nodetype, 'user')
+ port = cfgparse.get(nodetype, 'port')
+ localpath = functest_dir + 'scripts/internet_check.py'
+ remotepath = '/tmp/internet_check.py'
+ com = 'python /tmp/internet_check.py'
+ testconnect = connect.ConnectionManager(host, port, user, localkey,
+ localpath, remotepath, com)
+ connectionresult = testconnect.remotescript()
+ if connectionresult.rstrip() == 'True':
+ return True
+ else:
+ return False
+
+
def createfiles(host, port, user, localkey):
import connect
global tmpdir