mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-29 21:54:13 +01:00
67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
#!/usr/bin/python2
|
|
|
|
import os, subprocess
|
|
import time
|
|
import sys
|
|
|
|
from subprocess import call
|
|
import json
|
|
|
|
import nlogging
|
|
logger = nlogging.create_logger(__name__)
|
|
|
|
# Needs have docker installed.
|
|
def execute(harbor_endpoints, vm_names, harbor_root_pwd, test_suite, auth_mode ,vc_host, vc_user, vc_password, harbor_pwd='Harbor12345') :
|
|
cmd = ''
|
|
exe_result = -1
|
|
cmd_base = "docker run -i --privileged -v %s:/drone -w /drone vmware/harbor-e2e-engine:1.38 " % os.getcwd()
|
|
|
|
if len(harbor_endpoints) == 1:
|
|
cmd_pybot = "pybot -v ip:%s -v vm_name:%s -v ip1: -v HARBOR_PASSWORD:%s -v SSH_PWD:%s -v vc_host:%s -v vc_user:%s -v vc_password:%s " % (harbor_endpoints[0], vm_names[0], harbor_pwd, harbor_root_pwd, vc_host, vc_user, vc_password)
|
|
|
|
if len(harbor_endpoints) == 2:
|
|
cmd_pybot = "pybot -v ip:%s -v vm_name:%s -v ip1:%s -v vm_name1:%s -v HARBOR_PASSWORD:%s -v SSH_PWD:%s -v vc_host:%s -v vc_user:%s -v vc_password:%s " % (harbor_endpoints[0], vm_names[0], harbor_endpoints[1], vm_names[1], harbor_pwd, harbor_root_pwd, vc_host, vc_user, vc_password)
|
|
|
|
cmd = cmd_base + cmd_pybot
|
|
if test_suite == 'Nightly':
|
|
if auth_mode == 'ldap_auth':
|
|
cmd = cmd + "/drone/tests/robot-cases/Group11-Nightly/LDAP.robot"
|
|
else:
|
|
cmd = cmd + "/drone/tests/robot-cases/Group11-Nightly/Nightly.robot"
|
|
|
|
logger.info(cmd)
|
|
p = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE)
|
|
while True:
|
|
out = p.stderr.read(1)
|
|
if out == '' and p.poll() != None:
|
|
break
|
|
if out != '':
|
|
sys.stdout.write(out)
|
|
sys.stdout.flush()
|
|
exe_result = p.returncode
|
|
|
|
if test_suite == 'Replication':
|
|
cmd = cmd + "/drone/tests/robot-cases/Group11-Nightly/Replication.robot"
|
|
|
|
logger.info(cmd)
|
|
p = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE)
|
|
while True:
|
|
out = p.stderr.read(1)
|
|
if out == '' and p.poll() != None:
|
|
break
|
|
if out != '':
|
|
sys.stdout.write(out)
|
|
sys.stdout.flush()
|
|
exe_result = p.returncode
|
|
|
|
if test_suite == 'Longevity':
|
|
cmd = cmd + "/drone/tests/robot-cases/Group12-Longevity/Longevity.robot > /dev/null 2>&1"
|
|
logger.info(cmd)
|
|
exe_result = subprocess.call(cmd, shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
|
|
|
|
collect_log()
|
|
return exe_result == 0
|
|
|
|
# Needs to move log.html to another path it will be overwrite by any pybot run.
|
|
def collect_log():
|
|
pass |