Skip to content

Commit

Permalink
Allow running repoclosure based on a URL and dist
Browse files Browse the repository at this point in the history
  • Loading branch information
ehelms committed Aug 31, 2023
1 parent 61b7846 commit 34e93a2
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 5 deletions.
7 changes: 7 additions & 0 deletions obal/data/playbooks/repoclosure/metadata.obal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,10 @@ help: |
Run repoclosure for a repository
Repoclosure ensures that all dependencies are met and all packages are installable.
variables:
repoclosure_check_repo:
parameter: --check
help: Link to a repository to target for repoclosure
repoclosure_target_dist:
parameter: --dist
help: Target dist to test against (e.g. el8)
5 changes: 3 additions & 2 deletions obal/data/roles/repoclosure/tasks/repoclosure.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
- block:
- name: Generate list of repositories
set_fact:
repoclosure_target_repos_all: "{{ repoclosure_target_repos[dist] | default([]) + ['downloaded_rpms'] }}"
repoclosure_target_repos_all: "{{ repoclosure_target_repos[dist] | default([]) + ['downloaded_rpms', 'check_repo'] }}"

- name: Create temp directory
tempfile:
Expand Down Expand Up @@ -35,9 +35,10 @@
--newest
--check {{ repoclosure_target_repos_all | join(' --check ') }}
{{ '--repofrompath=downloaded_rpms,./downloaded_rpms/' + dist if repoclosure_use_downloaded_rpms else '' }}
{{ '--repofrompath=check_repo,' + repoclosure_check_repo if repoclosure_check_repo is defined else '' }}
{{ additional_repos | join(' ') }}
{{ '--repo ' if repoclosure_lookaside_repos else '' }}
{{ repoclosure_lookaside_repos[dist] | join(' --repo ') }}
{{ repoclosure_lookaside_repos[dist] | join(' --repo ') if repoclosure_lookaside_repos else '' }}
register: output
args:
chdir: "{{ inventory_dir }}"
Expand Down
9 changes: 6 additions & 3 deletions tests/fixtures/help/repoclosure.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
usage: obal repoclosure [-h] [-v] [-e EXTRA_VARS] target [target ...]
usage: obal repoclosure [-h] [-v] [-e EXTRA_VARS] [--check REPOCLOSURE_CHECK_REPO] [--dist REPOCLOSURE_TARGET_DIST] target [target ...]

Run repoclosure for a repository

Expand All @@ -10,8 +10,11 @@ positional arguments:
optional arguments:
-h, --help show this help message and exit
-v, --verbose verbose output
--check REPOCLOSURE_CHECK_REPO
Link to a repository to target for repoclosure
--dist REPOCLOSURE_TARGET_DIST
Target dist to test against (e.g. el8)

advanced arguments:
-e EXTRA_VARS, --extra-vars EXTRA_VARS
set additional variables as key=value or YAML/JSON, if
filename prepend with @
set additional variables as key=value or YAML/JSON, if filename prepend with @
3 changes: 3 additions & 0 deletions tests/fixtures/testrepo/upstream/package_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ packages:
dist: '.el7'
- name: obaltest-nightly-el8
dist: '.el8'
repoclosure_lookaside_repos:
el7:
- el7-base
hosts:
hello:
nightly_package_tito_releaser_args:
Expand Down
17 changes: 17 additions & 0 deletions tests/test_functional.py
Original file line number Diff line number Diff line change
Expand Up @@ -655,6 +655,23 @@ def test_obal_repoclosure_katello_with_downloaded_rpms():
assert_in_mockbin_log(expected_log)


@obal_cli_test(repotype='upstream')
def test_obal_repoclosure_with_check_repo():
assert_obal_success(['repoclosure', 'hello', '--check', 'https://test.example.com/myrepo', '--dist', 'el7'])

expected_log = [
"dnf repoclosure",
"--config",
"repoclosure/yum.conf",
"--newest",
"--check downloaded_rpms",
"--check check_repo",
"--repofrompath=check_repo,https://test.example.com/myrepo",
"--repo el7-base"
]
assert_in_mockbin_log(expected_log)


@obal_cli_test(repotype='copr')
def test_obal_scratch_copr_hello_nowait():
assert_obal_success(['scratch', 'hello', '-e', 'build_package_wait=False'])
Expand Down

0 comments on commit 34e93a2

Please sign in to comment.