HOSTNAME = 'lava-master-02.internal.efficios.com'
OBJSTORE_URL = "https://obj.internal.efficios.com/lava/results/"
+def parse_stable_version(stable_version_string):
+ # Get the major and minor version numbers from the lttng version string.
+ version_match = re.search('stable-(\d).(\d\d)', stable_version_string)
+
+ if version_match is not None:
+ major_version = int(version_match.group(1))
+ minor_version = int(version_match.group(2))
+ else:
+ # Setting to zero to make the comparison below easier.
+ major_version = 0
+ minor_version = 0
+ return major_version, minor_version
+
class TestType:
""" Enum like for test type """
Return vlttng cmd to be used in the job template for setup.
"""
+ major_version, minor_version = parse_stable_version(lttng_version)
+
+ urcu_profile = ""
+ if lttng_version == 'master' or (major_version >= 2 and minor_version >= 11):
+ urcu_profile = "urcu-master"
+ else:
+ urcu_profile = "urcu-stable-0.12"
+
+ # Starting with 2.14, babeltrace2 is the reader for testing.
+ if lttng_version == 'master' or (major_version >= 2 and minor_version >= 14):
+ babeltrace_profile = " --profile babeltrace2-stable-2.0 --profile babeltrace2-python"
+ babeltrace_overrides = " --override projects.babeltrace2.build-env.PYTHON=python3 --override projects.babeltrace2.build-env.PYTHON_CONFIG=python3-config -o projects.babeltrace2.configure+=--disable-man-pages"
+ else:
+ babeltrace_profile = " --profile babeltrace-stable-1.5 --profile babeltrace-python"
+ babeltrace_overrides = " --override projects.babeltrace.build-env.PYTHON=python3 --override projects.babeltrace.build-env.PYTHON_CONFIG=python3-config"
+
+
vlttng_cmd = (
- 'vlttng --jobs=$(nproc) --profile urcu-master'
- ' --override projects.babeltrace.build-env.PYTHON=python3'
- ' --override projects.babeltrace.build-env.PYTHON_CONFIG=python3-config'
- ' --profile babeltrace-stable-1.4'
- ' --profile babeltrace-python'
- ' --profile lttng-tools-master'
+ 'vlttng --jobs=$(nproc) --profile ' + urcu_profile
+ + babeltrace_profile
+ + babeltrace_overrides
+ + ' --profile lttng-tools-master'
' --override projects.lttng-tools.source='
+ lttng_tools_url
+ ' --override projects.lttng-tools.checkout='
)
- # Get the major and minor version numbers from the lttng version string.
- version_match = re.search('stable-(\d).(\d\d)', lttng_version)
-
- if version_match is not None:
- major_version = int(version_match.group(1))
- minor_version = int(version_match.group(2))
- else:
- # Setting to zero to make the comparison below easier.
- major_version = 0
- minor_version = 0
-
if lttng_version == 'master' or (major_version >= 2 and minor_version >= 11):
vlttng_cmd += (
' --override projects.lttng-tools.configure+=--enable-test-sdt-uprobe'
def main():
+ send_retry_limit = 10
nfsrootfs = "https://obj.internal.efficios.com/lava/rootfs/rootfs_amd64_xenial_2018-12-05.tar.gz"
test_type = None
parser = argparse.ArgumentParser(description='Launch baremetal test using Lava')
args.lttng_version, args.tools_url, args.tools_commit, args.ust_url, args.ust_commit
)
+ if args.lttng_version == "master":
+ lttng_version_string = "master"
+ elif args.lttng_version == "canary":
+ lttng_version_string = "2.10"
+ else:
+ major, minor = parse_stable_version(args.lttng_version)
+ lttng_version_string = str(major) + "." + str(minor)
+
+
context = dict()
context['DeviceType'] = DeviceType
context['TestType'] = TestType
context['vlttng_cmd'] = vlttng_cmd
context['vlttng_path'] = vlttng_path
+ context['lttng_version_string'] = lttng_version_string
context['kernel_url'] = args.kernel
context['nfsrootfs_url'] = nfsrootfs
'http://%s:%s@%s/RPC2' % (USERNAME, lava_api_key, HOSTNAME)
)
- for attempt in range(10):
+ for attempt in range(1, send_retry_limit + 1):
try:
jobid = server.scheduler.submit_job(render)
except xmlrpc.client.ProtocolError as error:
continue
else:
break
+ # Early exit when the maximum number of retry is reached.
+ if attempt == send_retry_limit:
+ print(
+ 'Protocol error on submit, maximum number of retry reached ({})'.format(
+ attempt
+ )
+ )
+ return -1
print('Lava jobid:{}'.format(jobid))
print(