openqa-clone-job(1)
π openqa-clone-job(1) π
okay so bestie, welcome to the openQA Documentation page for openqa-clone-job(1) β¨ β the little script that lets you copy a whole openQA job (and, like, its entire friend group) into a brand new job. it's giving ctrl+c ctrl+v but make it infrastructure. π
πΈ NAME πΈ
openqa-clone-job β creates a new job based on an existing job π«Ά
β¨ SYNOPSIS β¨
Clones a job from the local or a remote openQA instance. Downloads all assets associated with the job (unless --skip-download is specified). Optionally settings can be modified. π
openqa-clone-job [OPTIONS] JOBREF [KEY=[VALUE] ...]
# clones job 42 (and any existing parents) from "openqa.opensuse.org" to the local openQA instance
# note: If job 42 is a parallel parent (e.g. a "server" job), its parallel children (e.g. "client"
# jobs) will be cloned as well.
openqa-clone-job https://openqa.opensuse.org/t42
openqa-clone-job --from https://openqa.opensuse.org/tests/42
openqa-clone-job --from https://openqa.opensuse.org 42
# clones job 42 (and any existing parents) from "openqa.opensuse.org" to the openQA instance "openqa.example.com"
openqa-clone-job --skip-download --from https://openqa.opensuse.org --host openqa.example.com 42
# clones job 42 (and any existing parents) within "openqa.opensuse.org" modifying some job settings
openqa-clone-job --within-instance https://openqa.opensuse.org/t42 MAKETESTSNAPSHOTS=1 TEST+=:PR-123 FOOBAR=
# clones job 42 including all of its direct children but excluding its chained parents
openqa-clone-job --skip-chained-deps --clone-children https://openqa.opensuse.org/tests/42
# clones the cluster attached to job 42 modifying job-specific settings to
# test without interfering with production jobs
openqa-clone-job --skip-chained-deps --within-instance https://openqa.opensuse.org/tests/42 _GROUP=0 WORKER_CLASS:client=,worker2 {TEST,BUILD}+=-my-test-boo123
π¦ DESCRIPTION π¦
Call with either a full URL pointing to a test job to clone from or one of both parameters --from or --within-instance. The job ID can be specified as part of the URL or as its own parameter. π
API key and secret are read from client.conf if not specified via CLI arguments or environment variables OPENQA_API_KEY and OPENQA_API_SECRET. The config file is checked for under $OPENQA_CONFIG, ~/.config/openqa and /etc/openqa in this order. It must look like this:
[openqa.opensuse.org]
key = 45ABCEB4562ACB04
secret = 4BA0003086C4CB95
[another.host]
key = D7345DA7B9D86B3B
secret = A98CDBA9C8DB87BD
Any parent jobs (chained or parallel) are also cloned unless --skip-deps or --skip-chained-deps is specified. If --skip-chained-deps is specified published assets generated by parent jobs are downloaded to be directly used instead of generated. π
Keep in mind that by default any additionally specified job settings are NOT added to the also cloned parent jobs. Specify --parental-inheritance if this is wanted. It is also possible to specify the job a setting should be added to explicitly, e.g. WORKER_CLASS:create_hpc=special-worker. In this example the setting WORKER_CLASS will only be set to the specified value for jobs where the setting TEST equals create_hpc. For this keep in mind that the parameter parsing is executed in the order specified so changing the setting TEST should come after job-specific settings. π§ β¨
note note note: the child job is the one which has theSTART_AFTER_TESTorPARALLEL_WITHsetting, and the parent job is the one mentioned by that setting. iykyk π
BIG warning bestie: cloning directly chained dependencies (START_DIRECTLY_AFTER_TEST) is NOT supported. like, at all. don't try it. π
π OPTIONS π
--host HOSTβ Specifies the hostname of the target openQA instance (defaults tolocalhost).
Assets are still always downloaded to the local machine. When specifying a remote host make sure the assets are already there and use --skip-download. π«Ά
--from HOSTβ Specifies the hostname of the openQA instance to clone the job from (deduced from JOBREF if it is a URL).--dir DIRβ Specifies the directory to store test assets (defaults to$OPENQA_SHAREDIR/factory).--skip-checksβ Deprecated option. The logic was inverted, so currently the check is skipped by default. If you were using it, just remove it and the behavior will remain the same. π (fr, just delete it from your script)--check-reposβ Enables additional checks for availability of maintenance update repositories (SUSE specific check).--skip-depsβ Do NOT clone parent jobs (which is done by default).--skip-chained-depsβ Do NOT clone chained parent jobs (jobs specified viaSTART_AFTER_TEST).
This makes the job use the downloaded HDD image instead of running the generator job again which is of course only possible if --host is the local machine. π₯οΈ
--skip-downloadβ Do NOT download assets. You need to ensure all required assets are provided yourself. (you got this, bestie π«‘)--ignore-missing-assetsβ Cloning a job will not fail if an asset is missing.--clone-childrenβ Clone all direct child jobs as well. By default, only parallel child jobs are cloned. πΆ--max-depthβ Specifies the max depth for cloning children. By default, only direct children are cloned. Use0to denote infinity. βΎοΈ--within-instance HOSTβ A shortcut for--skip-download --from HOST --host HOSTto clone a job within a local or remote instance.--repeat Nβ Do the same clone operation N times; this can be useful for Statistical investigation. Example:
openqa-clone-job --skip-chained-deps --repeat=50 --within-instance \
https://openqa.opensuse.org 123456
Will create 50 clones of the same job. π
--retry Nβ Retries up to N times with exponential backoff on transient download errors. The default number of retries is 5. Can be set to 0 to disable retrying.--show-progressβ Displays a progress bar when downloading assets. π (the little bar goes brrr, we love to see it)--parental-inheritanceβ Provides parental job with settings specified via command line (they go to child job by default).--export-commandβ Prints anopenqa-clicommand to create the jobs instead of creating them directly. This is useful to customize the API call or to review it before submitting. β¨--badgeβ Instead of the normal plain text scenario name and URL outputs a markdown list entry of labeled badges and links. π--reproduceβ Ensure the cloned jobs use the same version of the test code and needles as the original jobs.--apikey <value>β Specifies the public key needed for API authentication. Overrides config file setting and environment variableOPENQA_API_KEY. Use is discouraged due to risk of leaking credentials. π--apisecret <value>β Specifies the secret key needed for API authentication. Overrides config file setting and environment variableOPENQA_API_SECRET. Use is discouraged due to risk of leaking credentials. π--verbose,-vβ Increases verbosity. π£οΈ--help,-hβ Prints help. π
and that's the whole page, bestie!! you now officially know how to clone jobs like a main character. β¨π
this masterpiece of documentation was delivered to you by openqa-clone-job(1) from the openQA gang β via perl v5.42.3 dated 2026-09-10. stay slaying, stay cloning, and remember: skip your downloads responsibly. πππ¦
π¦ where this page comes from
- ubuntu stonking: openqa-client 5.1782486535.1bf71ec48-9 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms