7.4 KiB
title | author | revision_date | rc | ||||
---|---|---|---|---|---|---|---|
openQA - openqa-clone-job Examples | Trevor Cooper | 2023-04-22 |
|
openqa-clone-job Examples
This page will provide a brief overview of basic and advanced job cloning using the openqa-clone-job
command.
System / Access Requirements
To complete any of the examples please complete the API POST
Access steps outlined in the openQA - Access document.
Basic openqa-clone-job
Querying openQA for a specific test or job
First you might want to query the {{ rc.prod }} openQA system for the latest job ID for a specific job or test. The openQA client, hereafter refered to as openqa-cli
will allow you to quickly do that via the API. Here is an example...
$ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 distri=rocky version=9.1 test=install_default_upload latest=1 | jq '.'
[
{
"id": 22735,
"name": "rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"
}
]
This basically says "give me the job id and name of the most recent install_default_upload
test for {{ rc.prod }} 9.1".
Cloning a job "as-is"
With that job id in hand you can now clone that job directly to your local openQA development system with...
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735
Cloning children of rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit
Created job #23: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t23
Basic job overview
Now you should have the same job running in your local instance...
$ openqa-cli api jobs/overview
[{"id":23,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
Basic job details
$ openqa-cli api jobs/23 | jq '.'
{
"job": {
"assets": {
"iso": [
"Rocky-9.1-20221214.1-x86_64-dvd.iso"
]
},
"assigned_worker_id": 2,
"blocked_by_id": null,
"children": {
"Chained": [],
"Directly chained": [],
"Parallel": []
},
"clone_id": null,
"group": "Rocky",
"group_id": 2,
"has_parents": 0,
"id": 23,
"name": "rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit",
"parents": {
"Chained": [],
"Directly chained": [],
"Parallel": []
},
"parents_ok": 1,
"priority": 50,
"result": "none",
"settings": {
"ARCH": "x86_64",
"ARCH_BASE_MACHINE": "64bit",
"BACKEND": "qemu",
"BUILD": "20230423-Rocky-9.1-x86_64.0",
"CLONED_FROM": "https://openqa.rockylinux.org/tests/22735",
"CURRREL": "9",
"DEPLOY_UPLOAD_TEST": "install_default_upload",
"DESKTOP": "gnome",
"DISTRI": "rocky",
"FLAVOR": "dvd-iso",
"HDDSIZEGB": "15",
"ISO": "Rocky-9.1-20221214.1-x86_64-dvd.iso",
"LOCATION": "https://download.rockylinux.org/pub/rocky/9.1/BaseOS",
"MACHINE": "64bit",
"NAME": "00000023-rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit",
"NICTYPE_USER_OPTIONS": "net=172.16.2.0/24",
"PACKAGE_SET": "default",
"PART_TABLE_TYPE": "mbr",
"POSTINSTALL": "_collect_data",
"QEMUCPU": "Nehalem",
"QEMUCPUS": "2",
"QEMURAM": "2048",
"QEMU_HOST_IP": "172.16.2.2",
"QEMU_VIDEO_DEVICE": "virtio-vga",
"QEMU_VIRTIO_RNG": "1",
"STORE_HDD_1": "disk_dvd-iso_64bit.qcow2",
"TEST": "install_default_upload",
"TEST_SUITE_NAME": "install_default_upload",
"TEST_TARGET": "ISO",
"VERSION": "9.1",
"WORKER_CLASS": "qemu_x86_64",
"XRES": "1024",
"YRES": "768"
},
"state": "running",
"t_finished": null,
"t_started": "2023-04-23T03:02:06",
"test": "install_default_upload"
}
}
***NOTE: In the above job information you can clearly see the job was cloned from https://openqa.rockylinux.org/tests/22735
.
Advanced openqa-clone-job
You can, of course, perform more elaborate operations while cloneing a job either from your local instance or from the production instance. Typically, this might be done to modify some of the job POST variables in the cloned job while keeping all other variables unchanged.
Changing variable during clone
Here is an example where the ISO is changed in the cloned job...
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735 ISO=Rocky-9.1-x86_64-dvd.iso
Cloning children of rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit
Created job #24: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t24
Job overview
$ openqa-cli api jobs/overview
[{"id":24,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
Job details
$ openqa-cli api jobs/24 | jq '.'
{
"job": {
"assets": {
"iso": [
"Rocky-9.1-x86_64-dvd.iso"
]
},
"assigned_worker_id": 1,
"blocked_by_id": null,
"children": {
"Chained": [],
"Directly chained": [],
"Parallel": []
},
"clone_id": null,
"group": "Rocky",
"group_id": 2,
"has_parents": 0,
"id": 24,
"name": "rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit",
"parents": {
"Chained": [],
"Directly chained": [],
"Parallel": []
},
"parents_ok": 1,
"priority": 50,
"result": "none",
"settings": {
"ARCH": "x86_64",
"ARCH_BASE_MACHINE": "64bit",
"BACKEND": "qemu",
"BUILD": "20230423-Rocky-9.1-x86_64.0",
"CLONED_FROM": "https://openqa.rockylinux.org/tests/22735",
"CURRREL": "9",
"DEPLOY_UPLOAD_TEST": "install_default_upload",
"DESKTOP": "gnome",
"DISTRI": "rocky",
"FLAVOR": "dvd-iso",
"HDDSIZEGB": "15",
"ISO": "Rocky-9.1-x86_64-dvd.iso",
"LOCATION": "https://download.rockylinux.org/pub/rocky/9.1/BaseOS",
"MACHINE": "64bit",
"NAME": "00000024-rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit",
"NICTYPE_USER_OPTIONS": "net=172.16.2.0/24",
"PACKAGE_SET": "default",
"PART_TABLE_TYPE": "mbr",
"POSTINSTALL": "_collect_data",
"QEMUCPU": "Nehalem",
"QEMUCPUS": "2",
"QEMURAM": "2048",
"QEMU_HOST_IP": "172.16.2.2",
"QEMU_VIDEO_DEVICE": "virtio-vga",
"QEMU_VIRTIO_RNG": "1",
"STORE_HDD_1": "disk_dvd-iso_64bit.qcow2",
"TEST": "install_default_upload",
"TEST_SUITE_NAME": "install_default_upload",
"TEST_TARGET": "ISO",
"VERSION": "9.1",
"WORKER_CLASS": "qemu_x86_64",
"XRES": "1024",
"YRES": "768"
},
"state": "running",
"t_finished": null,
"t_started": "2023-04-23T03:08:03",
"test": "install_default_upload"
}
}
Difference between Basic and Advanced openqa-clone-job
You should notice that the only substantive difference between the two cloned jobs is the ISO that is used to run the install_default_upload
test...
$ openqa-cli api jobs/23 | jq '.job.settings.ISO'
"Rocky-9.1-20221214.1-x86_64-dvd.iso"
$ openqa-cli api jobs/24 | jq '.job.settings.ISO'
"Rocky-9.1-x86_64-dvd.iso"
References
{% include 'content_bottom.md' %}