migrate_to_testing_wiki #8

Merged
alangm merged 61 commits from tcooper/testing-wiki:migrate_to_testing_wiki into main 2024-04-26 01:34:01 +00:00
7 changed files with 61 additions and 59 deletions
Showing only changes of commit ce3fe043bd - Show all commits

View File

@ -23,7 +23,7 @@ This test case verifies that installations via both local and remote Kickstart c
1. Connect the USB stick to the test system 1. Connect the USB stick to the test system
{% include 'testing/qa_setup_boot_to_media.md' %} {% include 'testing/qa_setup_boot_to_media.md' %}
1. Hit the Tab key to edit the boot command 1. Hit the Tab key to edit the boot command
1. Provide a local Kickstart file by supplying the GRUB boot option `inst.ks=file:/path/to/local.ks` or a remote Kickstart file by supplying the GRUB boot option `inst.ks=https://dl.rockylinux.org/remote.ks`. 1. Provide a local Kickstart file by supplying the GRUB boot option `inst.ks=file:/path/to/local.ks` or a remote Kickstart file by supplying the GRUB boot option `inst.ks=https://git.resf.org/testing/createhdds/raw/branch/rocky/server.ks`.
## How to test ## How to test
1. Continue booting the installer as normal. 1. Continue booting the installer as normal.

View File

@ -18,18 +18,20 @@ This verifies that Rocky Linux ISO image can be written to USB media using `dd`
Any data on the USB stick used for this test is likely to be destroyed. Please do not use a stick whose contents you need to keep. Any data on the USB stick used for this test is likely to be destroyed. Please do not use a stick whose contents you need to keep.
## Setup ## Setup
1. Provide a USB media device that is larger than the ISO image you wish to test and that it can be completely erased. 1. Provide a USB media device that is larger than the ISO image you wish to test and that it can be completely erased.
2. Provide a Linux (or other *nix system) that has the `dd` command available and an unoccupied USB port. 2. Provide a Linux (or other *nix system) that has the `dd` command available and an unoccupied USB port.
3. Download the Rocky Linux ISO image you wish to test onto the test system. 3. Download the Rocky Linux ISO image you wish to test onto the test system.
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-boot.iso` - Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-x86_64-boot.iso`
4. Download the `CHECKSUM` file that goes with the Rocky Linux ISO image that you wish to test. 4. Download the `CHECKSUM` file that goes with the Rocky Linux ISO image that you wish to test.
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM` - Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM`
5. Download the `CHECKSUM.sig` file that does with the `CHECKSUM` file. 5. Download the `CHECKSUM.sig` file that does with the `CHECKSUM` file.
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM.sig` - Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/8/isos/x86_64/CHECKSUM.sig`
6. Download the Rocky Release Engineering GPG key. 6. Download the Rocky Release Engineering GPG key.
- Example command:<br>`curl -LOR http://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-rockyofficial` - Example command:<br>`curl -LOR https://dl.rockylinux.org/pub/rocky/RPM-GPG-KEY-rockyofficial`
## How to test ## How to test
1. Import the Rocky Release Engineering GPG key. 1. Import the Rocky Release Engineering GPG key.
- Example command:<br>`gpg --import RPM-GPG-KEY-rockyofficial` - Example command:<br>`gpg --import RPM-GPG-KEY-rockyofficial`
2. Verify the signature of the CHECKSUM file. 2. Verify the signature of the CHECKSUM file.
@ -43,6 +45,7 @@ This verifies that Rocky Linux ISO image can be written to USB media using `dd`
7. **[OPTIONAL]** Proceed with installation on the test system.<br>**Depending on installer choices this MAY destroy all the data on the test system.** 7. **[OPTIONAL]** Proceed with installation on the test system.<br>**Depending on installer choices this MAY destroy all the data on the test system.**
## Expected Results ## Expected Results
1. The gpg signature on the `CHECKSUM` file is valid. 1. The gpg signature on the `CHECKSUM` file is valid.
2. The `CHECKSUM` of the Rocky Linux ISO is valid. 2. The `CHECKSUM` of the Rocky Linux ISO is valid.
3. The Rocky Linux ISO is written to the USB stick without errors. 3. The Rocky Linux ISO is written to the USB stick without errors.

View File

@ -8,6 +8,7 @@ rc:
level: Final level: Final
--- ---
# Creating your primary keypair # Creating your primary keypair
1. Initiate the keypair generation wizard 1. Initiate the keypair generation wizard
gpg --full-generate-key --expert gpg --full-generate-key --expert
@ -19,6 +20,7 @@ rc:
1. Type a passphrase (twice) 1. Type a passphrase (twice)
# Create a signing keypair # Create a signing keypair
1. Add a signing subkey 1. Add a signing subkey
gpg --expert --edit-key my@email.addr gpg --expert --edit-key my@email.addr
@ -43,6 +45,7 @@ Export the *primary keypair* (put these somewhere very safe along with revocatio
gpg --export --armor my@email.addr > my_email_addr.public.gpg-key gpg --export --armor my@email.addr > my_email_addr.public.gpg-key
# Remove the *primary keypair* from your keyring # Remove the *primary keypair* from your keyring
1. Export all subkeys from the new keypair to a file 1. Export all subkeys from the new keypair to a file
gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys
@ -60,6 +63,7 @@ Export the *primary keypair* (put these somewhere very safe along with revocatio
gpg --list-secret-keys $HOME/.gnupg/secring.gpg gpg --list-secret-keys $HOME/.gnupg/secring.gpg
# Revoking a *signing keypair* # Revoking a *signing keypair*
Find the *primary keypair* and import it (preferably into an ephemeral system like a liveUSB) Find the *primary keypair* and import it (preferably into an ephemeral system like a liveUSB)
gpg --import /path/to/my_email_addr.public.gpg-key /path/to/my_email_addr.private.gpg-key gpg --import /path/to/my_email_addr.public.gpg-key /path/to/my_email_addr.private.gpg-key
@ -68,7 +72,6 @@ Find the *primary keypair* and import it (preferably into an ephemeral system li
[ passphrase twice ] [ passphrase twice ]
gpg> save gpg> save
# Renew an expired or expiring keypair # Renew an expired or expiring keypair
gpg --edit-key my@email.addr gpg --edit-key my@email.addr
@ -101,6 +104,7 @@ Find the *primary keypair* and import it (preferably into an ephemeral system li
gpg --keyserver pgp.mit.edu --search-key my@email.addr gpg --keyserver pgp.mit.edu --search-key my@email.addr
# References # References
[OpenPGP Best Practices](https://riseup.net/en/security/message-security/openpgp/best-practices#key-configuration)<br> [OpenPGP Best Practices](https://riseup.net/en/security/message-security/openpgp/best-practices#key-configuration)<br>
[Github: Signing Commits](https://docs.github.com/en/enterprise-server@3.5/authentication/managing-commit-signature-verification/signing-commits)<br> [Github: Signing Commits](https://docs.github.com/en/enterprise-server@3.5/authentication/managing-commit-signature-verification/signing-commits)<br>
[Braincoke's Log: Create a GPG Key](https://blog.braincoke.fr/security/create-a-gpg-key/)<br> [Braincoke's Log: Create a GPG Key](https://blog.braincoke.fr/security/create-a-gpg-key/)<br>

View File

@ -11,7 +11,6 @@ rc:
To complete any of the examples below you will need access to a system providing the openQA client. Typically that will be a Fedora based system/container with the `openqa-client` package and it's (~239) dependencies installed. To complete any of the examples below you will need access to a system providing the openQA client. Typically that will be a Fedora based system/container with the `openqa-client` package and it's (~239) dependencies installed.
## Access Requirement ## Access Requirement
### API `GET` access ### API `GET` access
@ -22,10 +21,9 @@ The {{ rc.prod }} openQA system allows unrestricted public access via it's web i
In order to use the openQA client to interact with the {{ rc.prod }} openQA system for `POST` operations the following are required: In order to use the openQA client to interact with the {{ rc.prod }} openQA system for `POST` operations the following are required:
- an account in good standing in the [{{ rc.prod }} Account Services](https://accounts.rockylinux.org) system, - an account in good standing in the [{{ rc.prod }} Account Services](https://accounts.rockylinux.org) system,
- authorization for API `POST` access from the {{ rc.prod }} Testing Team, and - authorization for API `POST` access from the {{ rc.prod }} Testing Team, and
- an [openQA API key](http://open.qa/docs/#_authentication) generated on the {{ rc.prod }} openQA system. - an [openQA API key](https://open.qa/docs/#_authentication) generated on the {{ rc.prod }} openQA system.
## Configuring your openqa client ## Configuring your openqa client
@ -34,7 +32,7 @@ Per the openqa client command help you can configure your client to use your API
The following example shows how to configure your client by the most common method used. It's possible to configure The following example shows how to configure your client by the most common method used. It's possible to configure
multiple openqa client API keys in this way. multiple openqa client API keys in this way.
``` ```bash
$ mkdir -p ~/.config/openqa $ mkdir -p ~/.config/openqa
$ vim ~/.config/openqa/client.conf $ vim ~/.config/openqa/client.conf
@ -48,10 +46,9 @@ key = your_api_key
secret = your_api_secret secret = your_api_secret
``` ```
## Testing your openqa client installation ## Testing your openqa client installation
``` ```bash
$ openqa-cli api --host http://openqa.rockylinux.org --pretty jobs/1 $ openqa-cli api --host http://openqa.rockylinux.org --pretty jobs/1
{ {
"job" : { "job" : {
@ -118,7 +115,6 @@ $ openqa-cli api --host http://openqa.rockylinux.org --pretty jobs/1
## References ## References
[openQA Documentation](http://open.qa/documentation/) [openQA Documentation](https://open.qa/documentation/)
{% include 'content_bottom.md' %} {% include 'content_bottom.md' %}

View File

@ -17,7 +17,7 @@ To complete any of the examples please complete the API `POST` Access steps outl
## Basic POST ## Basic POST
A basic `POST` can be used for any of the default test suites for the various {{ rc.prod }} media that are made available. The following examples show some of these standard `POST`s that are commonly used by our team and will be used to demonstrate how some minor variations A basic `POST` can be used for any of the default test suites for the various {{ rc.prod }} media that are made available. The following examples show some of these standard `POST`s that are commonly used by our team and will be used to demonstrate how some minor variations.
### FLAVOR=boot-iso ### FLAVOR=boot-iso
@ -30,7 +30,7 @@ $ openqa-cli api -X POST isos ISO=Rocky-9.1-x86_64-boot.iso ARCH=x86_64 \
### FLAVOR=minimal-iso ### FLAVOR=minimal-iso
This `POST` demonstrates how a different media type, in this case the minimal ISO, for an alternate {{ rc.prod }} version, in this case {{ rc.prod }} 8.7, can be triggered. As can be seen by this and the previous `POST` the `BUILD` variable will typically be designate the date, version and architecture of the test suite. Since the minimal ISO contains all packages required to conduct a ***minimal*** install of {{ rc.prod }} that is the behavior of this test suite. This `POST` demonstrates how a different media type, in this case the minimal ISO, for an alternate {{ rc.prod }} version, in this case {{ rc.prod }} 8.7, can be triggered. As can be seen by this and the previous `POST` the `BUILD` variable will typically be designate the date, version and architecture of the test suite. Since the minimal ISO contains all packages required to conduct a ***minimal*** install of {{ rc.prod }} that is the behavior of this test suite.
```bash ```bash
$ openqa-cli api -X POST isos ISO=Rocky-8.7-x86_64-minimal.iso ARCH=x86_64 \ $ openqa-cli api -X POST isos ISO=Rocky-8.7-x86_64-minimal.iso ARCH=x86_64 \
@ -48,7 +48,6 @@ $ openqa-cli api -X POST isos ISO=Rocky-9.1-20221214.1-x86_64-dvd.iso ARCH=x86_6
These three test suites provide for the minimal testing of all ISOs produced for a given release of {{ rc.prod }}. These three test suites provide for the minimal testing of all ISOs produced for a given release of {{ rc.prod }}.
## Advanced POST ## Advanced POST
In addition to the [Basic POSTs](#basic-post) described above there are additional default test suites that use the dvd ISO media and include substantially more test cases. Those include: In addition to the [Basic POSTs](#basic-post) described above there are additional default test suites that use the dvd ISO media and include substantially more test cases. Those include:
@ -76,7 +75,6 @@ $ openqa-cli api -X POST isos ISO=Rocky-9.1-20221214.1-x86_64-dvd.iso ARCH=x86_6
DISTRI=rocky FLAVOR=universal VERSION=9.1 CURRREL=9 BUILD=20230409-Rocky-9.1-x86_64.0 DISTRI=rocky FLAVOR=universal VERSION=9.1 CURRREL=9 BUILD=20230409-Rocky-9.1-x86_64.0
``` ```
## Collection of test suites by BUILD ## Collection of test suites by BUILD
A feature of openQA is that for a given job group test suites which use the same `BUILD` identifier are collected into a single view in the web UI. A feature of openQA is that for a given job group test suites which use the same `BUILD` identifier are collected into a single view in the web UI.
@ -89,7 +87,6 @@ Thus, the examples show above which all use `BUILD=20230409-Rocky-9.1-x86_64.0`
## References ## References
[openQA Documentation](http://open.qa/documentation/) [openQA Documentation](https://open.qa/documentation/)
{% include 'content_bottom.md' %} {% include 'content_bottom.md' %}

View File

@ -25,7 +25,7 @@ The following example demonstrates the testing of an open Github pull request in
***NOTE: The Github CLI tool (`gh`) is used to display PR information statically in this guide.*** ***NOTE: The Github CLI tool (`gh`) is used to display PR information statically in this guide.***
``` ```text
➜ os-autoinst-distri-rocky git:(develop) gh pr view 168 ➜ os-autoinst-distri-rocky git:(develop) gh pr view 168
Serial console install #168 Serial console install #168
Merged • AlanMarshall wants to merge 1 commit into develop from serial_console • about 27 days ago Merged • AlanMarshall wants to merge 1 commit into develop from serial_console • about 27 days ago
@ -57,7 +57,7 @@ Above is the information provided in the original PR and it includes tests perfo
In practice it is useful to run `openqa-clone-custom-git-refspec` in `--verbose` and `--dry-run` mode to observe it's behavior even for the Basic cases... In practice it is useful to run `openqa-clone-custom-git-refspec` in `--verbose` and `--dry-run` mode to observe it's behavior even for the Basic cases...
``` ```bash
$ openqa-clone-custom-git-refspec --verbose --dry-run \ $ openqa-clone-custom-git-refspec --verbose --dry-run \
https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \ https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \
https://openqa.rockylinux.org/tests/16080 2>&1 | tee pr-168 https://openqa.rockylinux.org/tests/16080 2>&1 | tee pr-168
@ -65,7 +65,7 @@ $ openqa-clone-custom-git-refspec --verbose --dry-run \
***NOTE: The full output of `openqa-clone-custom-git-refspece` will not be shown here.*** ***NOTE: The full output of `openqa-clone-custom-git-refspece` will not be shown here.***
``` ```diff
+ shift + shift
+ true + true
+ case "$1" in + case "$1" in
@ -114,10 +114,9 @@ What can be seen from the complete `--dry-run` output for `openqa-clone-custom-g
Without using `--dry-run` the final `openqa-clone-job` command shown above will be run causing the job of interest to be cloned with additional `POST` variables that will cause the repository/branch referenced in the PR to be cloned into the test directory with important files referenced in the cloned job. Without using `--dry-run` the final `openqa-clone-job` command shown above will be run causing the job of interest to be cloned with additional `POST` variables that will cause the repository/branch referenced in the PR to be cloned into the test directory with important files referenced in the cloned job.
### Run `openqa-clone-custom-git-refspec` without `--verbose --dry-run` mode... ### Run `openqa-clone-custom-git-refspec` without `--verbose --dry-run` mode...
``` ```bash
$ openqa-clone-custom-git-refspec \ $ openqa-clone-custom-git-refspec \
https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \ https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/168 \
https://openqa.rockylinux.org/tests/16080 https://openqa.rockylinux.org/tests/16080
@ -126,7 +125,7 @@ Created job #16119: rocky-9.1-universal-x86_64-Build20230329-Rocky-9.1-x86_64.0-
### Cloned job information... ### Cloned job information...
``` ```bash
$ openqa-cli api jobs/16119 --pretty $ openqa-cli api jobs/16119 --pretty
{ {
"job" : { "job" : {
@ -206,10 +205,9 @@ $ openqa-cli api jobs/16119 --pretty
The following example demonstrates the testing of an open Github pull request in the {{ rc.prod }} openQA production system. The PR changes test code and supplies updated needles for the test. The following example demonstrates the testing of an open Github pull request in the {{ rc.prod }} openQA production system. The PR changes test code and supplies updated needles for the test.
### Github PR information ### Github PR information
``` ```text
➜ os-autoinst-distri-rocky git:(nazunalika/develop) gh pr view 162 ➜ os-autoinst-distri-rocky git:(nazunalika/develop) gh pr view 162
Anaconda text install #162 Anaconda text install #162
@ -244,9 +242,8 @@ View this pull request on GitHub: https://github.com/rocky-linux/os-autoinst-dis
### Run `openqa-clone-custom-git-refspec` in `--verbose --dry-run` mode ### Run `openqa-clone-custom-git-refspec` in `--verbose --dry-run` mode
``` ```diff
$ openqa-clone-custom-git-refspec --verbose --dry-run https://github.com/rocky-linux/os-autoinst-d $ openqa-clone-custom-git-refspec --verbose --dry-run https://github.com/rocky-linux/os-autoinst-distri-rocky/pull/162 https://openqa.rockylinux.org/tests/13371
istri-rocky/pull/162 https://openqa.rockylinux.org/tests/13371
+ shift + shift
+ true + true
+ case "$1" in + case "$1" in
@ -288,33 +285,40 @@ istri-rocky/pull/162 https://openqa.rockylinux.org/tests/13371
This PR provides updated needles and the default behavior of `openqa-clone-custom-git-refspec` is to **not** provide an alternate location for `NEEDLES`. The `--verbose --dry-run` output needs to be modified to ensure the needles provided in the PR are used in the test. This PR provides updated needles and the default behavior of `openqa-clone-custom-git-refspec` is to **not** provide an alternate location for `NEEDLES`. The `--verbose --dry-run` output needs to be modified to ensure the needles provided in the PR are used in the test.
### Modify `--verbose --dry-run` output to point to needles in the PR... ### Modify `--verbose --dry-run` output to point to needles in the PR...
Use output to modify clone job... Use output to modify clone job...
#### original #### original
```
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky ```bash
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
PRODUCTDIR=os-autoinst-distri-rocky
NEEDLES_DIR=rocky/needles NEEDLES_DIR=rocky/needles
``` ```
#### specify NEEDLES_DIR manually pointing at PR branch #### specify NEEDLES_DIR manually pointing at PR branch
```
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://o ```bash
penqa.rockylinux.org 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distr $ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
i-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git/needles#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
``` ```
#### {{ rc.prod }} 9.1 #### {{ rc.prod }} 9.1
``` ```bash
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org 13255 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles $ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
13255 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
Created job #14228: rocky-9.1-universal-x86_64-Build20230319-Rocky-9.1-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14228 Created job #14228: rocky-9.1-universal-x86_64-Build20230319-Rocky-9.1-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14228
``` ```
``` ```bash
$ openqa-cli api jobs/14228 --pretty $ openqa-cli api jobs/14228 --pretty
{ {
"job" : { "job" : {
@ -389,12 +393,15 @@ $ openqa-cli api jobs/14228 --pretty
#### {{ rc.prod }} 8.7 #### {{ rc.prod }} 8.7
``` ```bash
$ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org 13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles $ /usr/bin/openqa-clone-job --skip-chained-deps --parental-inheritance --within-instance https://openqa.rockylinux.org \
13371 _GROUP=0 TEST+=@AlanMarshall/os-autoinst-distri-rocky#anaconda-txt \
BUILD=AlanMarshall/os-autoinst-distri-rocky#162 CASEDIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt \
PRODUCTDIR=os-autoinst-distri-rocky NEEDLES_DIR=https://github.com/AlanMarshall/os-autoinst-distri-rocky.git#anaconda-txt/needles
Created job #14229: rocky-8.7-universal-x86_64-Build20230319-Rocky-8.7-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14229 Created job #14229: rocky-8.7-universal-x86_64-Build20230319-Rocky-8.7-x86_64.0-install_anaconda_text@64bit -> https://openqa.rockylinux.org/t14229
``` ```
``` ```bash
$ openqa-cli api jobs/14229 --pretty $ openqa-cli api jobs/14229 --pretty
{ {
"job" : { "job" : {

View File

@ -21,7 +21,7 @@ To complete any of the examples please complete the API `POST` Access steps outl
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... 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...
``` ```bash
$ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 distri=rocky version=9.1 test=install_default_upload latest=1 | jq '.' $ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 distri=rocky version=9.1 test=install_default_upload latest=1 | jq '.'
[ [
{ {
@ -33,12 +33,11 @@ $ openqa-cli api --host http://openqa.rockylinux.org jobs/overview groupid=0 dis
This basically says "give me the job id and name of the most recent `install_default_upload` test for {{ rc.prod }} 9.1". 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" ### 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... With that job id in hand you can now clone that job directly to your local openQA development system with...
``` ```bash
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735 $ 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 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 Created job #23: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit -> http://localhost/t23
@ -48,14 +47,14 @@ Created job #23: rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-insta
Now you should have the same job running in your local instance... Now you should have the same job running in your local instance...
``` ```bash
$ openqa-cli api jobs/overview $ 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"}] [{"id":23,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
``` ```
### Basic job details ### Basic job details
``` ```bash
$ openqa-cli api jobs/23 | jq '.' $ openqa-cli api jobs/23 | jq '.'
{ {
"job": { "job": {
@ -130,34 +129,30 @@ $ openqa-cli api jobs/23 | jq '.'
***NOTE: In the above job information you can clearly see the job was cloned from `https://openqa.rockylinux.org/tests/22735`. ***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` ## 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. 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 ### Changing variable during clone
Here is an example where the ISO is changed in the cloned job... Here is an example where the ISO is changed in the cloned job...
``` ```bash
$ openqa-clone-job --from https://openqa.rockylinux.org --skip-download 22735 ISO=Rocky-9.1-x86_64-dvd.iso $ 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 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 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 ### Job overview
``` ```bash
$ openqa-cli api jobs/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"}] [{"id":24,"name":"rocky-9.1-dvd-iso-x86_64-Build20230423-Rocky-9.1-x86_64.0-install_default_upload@64bit"}]
``` ```
### Job details ### Job details
``` ```bash
$ openqa-cli api jobs/24 | jq '.' $ openqa-cli api jobs/24 | jq '.'
{ {
"job": { "job": {
@ -234,7 +229,7 @@ $ openqa-cli api jobs/24 | jq '.'
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... 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...
``` ```bash
$ openqa-cli api jobs/23 | jq '.job.settings.ISO' $ openqa-cli api jobs/23 | jq '.job.settings.ISO'
"Rocky-9.1-20221214.1-x86_64-dvd.iso" "Rocky-9.1-20221214.1-x86_64-dvd.iso"