diff --git a/hack/get_k8s_version.py b/hack/get_k8s_version.py
deleted file mode 100644
index 7739440607..0000000000
--- a/hack/get_k8s_version.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2016 The Kubernetes Authors All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"This package gets the LD flags used to set the version of kubernetes."
-
-import json
-import os
-import re
-import subprocess
-import sys
-import time
-from datetime import datetime
-
-K8S_PACKAGE = 'k8s.io/kubernetes/'
-X_ARGS = ['-X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.', '-X k8s.io/minikube/vendor/k8s.io/client-go/pkg/version.']
-
-def get_commit():
- return 'gitCommit=%s' % get_from_godep('Rev')
-
-def get_version():
- return 'gitVersion=%s' % get_from_godep('Comment')
-
-def get_major_and_minor():
- major = ''
- minor = ''
- version = get_from_godep('Comment')
- # [kubernetes/hack/lib/version.sh]:
- # Try to match the "git describe" output to a regex to try to extract
- # the "major" and "minor" versions and whether this is the exact tagged
- # version or whether the tree is between two tagged versions.
- m = re.match('^v([0-9]+)\.([0-9]+)(\.[0-9]+)?([-].*)?$', version)
- if m:
- major = m.group(1)
- minor = m.group(2)
- if m.group(4):
- minor += "+"
- return ('gitMajor=%s' % major, 'gitMinor=%s' % minor)
-
-def get_from_godep(key):
- with open('./Godeps/Godeps.json') as f:
- contents = json.load(f)
- for dep in contents['Deps']:
- if dep['ImportPath'].startswith(K8S_PACKAGE):
- return dep[key]
-
-def get_tree_state():
- git_status = subprocess.check_output(['git', 'status', '--porcelain'])
- if git_status:
- result = 'dirty'
- else :
- result = 'clean'
- return 'gitTreeState=%s' % result
-
-def get_build_date():
- build_date = datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
- return 'buildDate=%s' % build_date.strftime('%Y-%m-%dT%H:%M:%SZ')
-
-def main():
- if len(sys.argv) > 1 and sys.argv[1] == "--k8s-version-only":
- return get_from_godep('Comment')
- major, minor = get_major_and_minor()
- args = [get_commit(), get_tree_state(), get_version(),
- major, minor, get_build_date()]
- ret = ''
- for xarg in X_ARGS:
- for arg in args:
- ret += xarg + arg + " "
- return ret
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/hack/prow/run_tests.py b/hack/prow/run_tests.py
deleted file mode 100755
index 80711191bb..0000000000
--- a/hack/prow/run_tests.py
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2019 The Kubernetes Authors All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""This script will execute a set of named minikube tests,
- gather the results, logs, and artifacts into a named GCS
- bucket for presentation in k8s testgrid:
- https://k8s-testgrid.appspot.com
-"""
-
-from __future__ import print_function
-import os, sys, json, re, argparse, calendar, time, subprocess, shlex
-
-def get_classname(test_script):
- """ parse out the test classname from the full path of the test script"""
- classname = os.path.basename(test_script).split('.')[0]
- return classname
-
-def write_results(outdir, started, finished, test_results):
- """ write current results into artifacts/junit_runner.xml
- format:
-
-
-
- ...
-
-
- write the started.json and finish.json files
- format:
- started.json: {"timestamp":STARTTIMEINSECONDSINCEEPOCH}
- finished.json: {"timestamp":FINISHTIMEINSECONDSINCEEPOCH,
- "passed":FINALRESULT,
- "result":SUCCESS|FAIL,
- "metadata":{}
- }
- Args:
- outdir: a string containing the results storage directory
- started: a dict containing the starting data
- finished: a dict containing the finished data
- tests_results: a list of dicts containing test results
- """
- started_json = open(os.path.join(outdir, "started.json"), 'w')
- finished_json = open(os.path.join(outdir, "finished.json"), 'w')
- junit_xml = open(os.path.join(outdir, "artifacts", "junit_runner.xml"), 'w')
-
- failures = 0
- testxml = ""
- for test in test_results:
- testxml += '' % (test['classname'], test['name'], test['time'])
- if test['status'] == 'FAIL':
- failures += 1
- testxml += ''
- testxml += '\n'
- junit_xml.write('\n' % (failures, len(test_results)))
- junit_xml.write(testxml)
- junit_xml.write('')
- junit_xml.close()
-
- started_json.write(json.dumps(started))
- started_json.close()
- finished_json.write(json.dumps(finished))
- finished_json.close()
-
- return
-
-def upload_results(outdir, test_script, buildnum, bucket):
- """ push the contents of gcs_out/* into bucket/test/logs/buildnum
-
- Args:
- outdir: a string containing the results storage directory
- test_script: a string containing path to the test script
- buildnum: a string containing the buildnum
- bucket: a string containing the bucket to upload results to
- """
- classname = get_classname(test_script)
- args = shlex.split("gsutil cp -R gcs_out/ gs://%s/logs/%s/%s" % (bucket, classname, buildnum))
- p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- for line in str(p.stdout):
- print(line)
-
-def run_tests(test_script, log_path, exit_status, started, finished, test_results):
- """ execute the test script, grab the start time, finish time, build logs and exit status
- Pull test results and important information out of the build log
- test results format should be:
- === RUN TestFunctional/Mounting
- --- PASS: TestFunctional (42.87s)
- --- PASS: TestFunctional/Status (2.33s)
- --- FAIL: SOMETESTSUITE/TESTNAME (seconds)
-
- Args:
- test_script: a string containing path to the test script
- build_log: a string containing path to the build_log
- exit_status: a string that will contain the test script's exit_status
- started: a dict containing the starting data
- finished: a dict containing the finished data
- tests_results: a list of dicts containing test results
- """
- classname = get_classname(test_script)
- build_log_file = open(log_path, 'w')
- p = subprocess.Popen(['bash','-x',test_script], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- for line in str(p.stdout):
- build_log_file.write(line)
- print(line.rstrip())
- if '--- PASS' in line:
- match = re.match('.*--- PASS: ([^ ]+) \(([0-9.]+)s\)', line)
- (name, seconds) = match.group(1, 2)
- test_results.append({"name":name, "classname":classname, "time":seconds, "status":"PASS"})
- if '--- FAIL' in line:
- match = re.match('.*--- FAIL: ([^ ]+) \(([0-9.]+)s\)', line)
- (name, seconds) = match.group(1, 2)
- test_results.append({"name":name, "classname":classname, "time":seconds, "status":"FAIL"})
- build_log_file.close()
- return
-
-def main(argv):
-
- parser = argparse.ArgumentParser(description='Run tests and upload results to GCS bucket', usage='./run_tests.py --test path/to/test.sh')
- parser.add_argument('--test', required=True, help='full path to test script you want to run')
- parser.add_argument('--build-num', dest="buildnum", required=True, help='buildnumber for uploading to GCS')
- parser.add_argument('--bucket', default="k8s-minikube-prow", help='Name of the GCS bucket to upload to. Default: k8s-minkube-prow')
- parser.add_argument('--out-dir', dest="outdir", default="gcs_out", help='Path of the directory to store all results, artifacts, and logs')
- args = parser.parse_args()
-
- if not os.path.exists(args.outdir):
- os.makedirs(os.path.join(args.outdir, "artifacts"))
-
- build_log = os.path.join(args.outdir, "build_log.txt")
- exit_status = ""
- started = {"timestamp":calendar.timegm(time.gmtime())}
- finished = {}
- test_results = []
-
- run_tests(args.test, build_log, exit_status, started, finished, test_results)
-
- finished['timestamp'] = calendar.timegm(time.gmtime())
- #if the test script in run_tests exits with a non-zero status then mark the test run as FAILED
- if exit_status != "0":
- finished['passed'] = "false"
- finished['result'] = "FAIL"
- else:
- finished['passed'] = "true"
- finished['result'] = "SUCCESS"
-
- write_results(args.outdir, started, finished, test_results)
- upload_results(args.outdir, args.test, args.buildnum, args.bucket)
-
-if __name__ == '__main__':
- main(sys.argv)