Tools for repositories used by openQA:
add_qa_head_repo
add_qa_web_repo
smt_wizard
smt_mirror_repo
rmt_wizard
rmt_sync
rmt_enable_pro
rmt_list_pro
rmt_mirror_repo
rmt_export_data
rmt_import_data
prepare_source_repo
disable_source_repo
get_repo_var_name
type_password_twice
prepare_oss_repo
disable_oss_repo
generate_version
validate_repo_properties
validate_repo_arch
parse_repo_data
verify_software
validate_install_repo
add_qa_head_repo();
Helper to add QA:HEAD repository repository (usually from IBS). This repository *is* mandatory.
add_qa_web_repo();
Helper to add QA web repository repository. This repository is *not* mandatory.
get_installed_patterns();
Here zypper uses XML as output format for more precise parsing (by using '-x' command parameter). Then the names of patterns are parsed from the XML.
Returns array containing all installed patterns in the system.
get_repo_var_name($repo_name);
This takes something like "MODULE_BASESYSTEM_SOURCE" as parameter $repo_name and returns "REPO_SLE15_SP1_MODULE_BASESYSTEM_SOURCE" when being called on SLE15-SP1.
smt_wizard();
Run smt wizard workflow and to get repository synced with smt server
get_repo_var_name();
Verify smt mirror function and mirror a tiny released repo from SCC. Hardcode it as SLES12-SP3-Installer-Updates.
type_password_twice();
Type password, TAB, password, ALT+o. This is for use within YaST.
rmt_wizard();
Install Repository Mirroring Tool and mariadb database
rmt_sync();
Function to sync rmt server
rmt_enable_pro();
Function to enable products
rmt_mirror_repo();
Function to mirror the enabled repository
rmt_list_pro();
Function to list products
rmt_import_data($datafile);
RMT server import data from one folder which stored RMT export data about available repositories and the mirrored packages $datafile is repository source.
rmt_export_data();
RMT server export data about available repositories and the mirrored packages
prepare_source_repo($repo_name);
Prepare SLES or OSS souce repositories
disable_source_repo();
Disable source repositories
generate_version($separator);
Generate SLE or openSUSE versions. $separator is separator used for version number, it will be default to _ if omitted. Example: SLES-12-4, openSUSE_Leap
validate_repo_properties($args);
Validates that repo with given search criteria (uri, alias, number) has other properties mathing the expectations. If one of the keys is not provided, that field will NOT be validated. $args should have following keys defined: - Alias: repository alias, optional - Autorefresh: repository Autorefresh property, optional - Enabled: repository Enabled property, optional - Filter: repository search criteria (alias, uri, number), uri is used if not defined - Name: repository name, optional - URI: repository uri, used as a search criteria if no Filter provided.
validate_repo_arch($args);
Validates whether repositories are valid for specific architecture. For example: 1. If given repo_uri already has repo_arch, check whether this repo_uri is valid by do http request. In this case, repo_arch_uri=repo_uri and repo_base_uri=repo_uri after being stripped appending repo_arch. 2. If given repo_uri does not have repo_arch, check whether it has architecture sub-folders by do http request to repo_uri/x86_64. If repo_uri/x86_64 is valid, check corresponding repo_uri/{repo_arch,noarch} to do the same validation. In this case, repo_arch_uri=repo_uri/{repo_arch,noarch} and repo_base_uri=repo_uri. The returned values are 0 or 1 which represents in/valid repository uri for the architecture involved. $args should have following keys defined: - repo_uri: The URIs of repositories which support multiple URIs separated by comma or space.
parse_repo_data($repo_identifier);
Parses the output of 'zypper lr $repo_identifier' command (detailed information about specific repository) and returns it as Hash reference.
$repo_identifier can be either alias, name, number from simple zypper lr, or URI. Please, search for 'repos (lr)' on 'https://en.opensuse.org/SDB:Zypper_manual' page for more details of the command usage and its output.
Returns Hash reference with all the parsed properties and their values, for example: {Alias => 'repo-oss', Name => 'openSUSE-Tumbleweed-Oss', Enabled => 'Yes', ...}
verify_software(%args);
Validates that package or pattern is installed, or not installed and/or if package is available in the given repo. returns string with error or empty string in case of matching expectations. %args should have following keys defined: - name: package or pattern name - installed: if set to true, validate that package or pattern is installed - pattern: set to true if is pattern, otherwise validating package - available: if set to true, validate that package or pattern is available in the list of packages with given search criteria, otherwise expect zypper command to fail - repo: Optional, name of the repo where the package should be available. Check is triggered only if available is set to true
Verify that install repo mirror corresponds to the one expected one.