diff --git a/.gitignore b/.gitignore index 6057967..8ae6620 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,13 @@ /mrack-1.12.1.tar.gz /mrack-1.12.2.tar.gz /mrack-1.12.3.tar.gz +/mrack-1.13.1.tar.gz +/mrack-1.13.3.tar.gz +/mrack-1.14.0.tar.gz +/mrack-1.14.1.tar.gz +/mrack-1.15.0.tar.gz +/mrack-1.15.1.tar.gz +/mrack-1.16.0.tar.gz +/mrack-1.17.0.tar.gz +/mrack-1.17.1.tar.gz +/mrack-1.18.0.tar.gz diff --git a/.packit.yaml b/.packit.yaml index 0588b34..83f3dee 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -10,18 +10,19 @@ files_to_sync: - .packit.yaml - gating.yaml - ci.fmf +# we need to sync tmt for TF to work in Fedora updates - src: ./tests/smoke/* dest: ./tests/smoke/ - src: ./plans/* dest: ./plans/ -# Allow disgit reactions on packit and tdudlak commits and PRs +# Allow dist git reactions on packit and tdudlak commits and PRs allowed_pr_authors: -- packit -- tdudlak + - packit + - tdudlak allowed_committers: -- packit -- tdudlak + - packit + - tdudlak # name in upstream package repository/registry (e.g. in PyPI) upstream_package_name: mrack @@ -31,6 +32,8 @@ downstream_package_name: mrack # see: https://packit.dev/docs/configuration/#upstream_tag_template upstream_tag_template: "v{version}" +sync_changelog: true + actions: create-archive: - "python3 setup.py sdist --dist-dir ." @@ -39,8 +42,14 @@ actions: - "python3 setup.py --version" jobs: + - job: copr_build + trigger: pull_request + release_suffix: "99.dev.{PACKIT_PROJECT_BRANCH}" + targets: [fedora-all, epel-8, epel-9] + - job: tests trigger: pull_request + identifier: "upstream-smoke" targets: [fedora-all, epel-8, epel-9] - job: copr_build @@ -64,3 +73,81 @@ jobs: - job: bodhi_update trigger: commit dist_git_branches: [fedora-branched, epel-8, epel-9] # rawhide updates are created automatically + +# # pr_osp +# - &internal_test # use openstack (osp) tests as template for other test cases +# job: tests +# fmf_url: "https://gitlab.cee.redhat.com/idm-ops/mrack-internal-tests" +# fmf_ref: "main" +# use_internal_tf: True +# targets: [fedora-latest-stable] +# identifier: "internal-provisioning-osp" +# trigger: pull_request +# env: +# MRACK_TEST_CASE: "provisioning-osp" + +# - &pr_aws +# <<: *internal_test +# identifier: "internal-provisioning-aws" +# env: +# MRACK_TEST_CASE: "provisioning-aws" + +# - &pr_bkr_cpu +# <<: *internal_test +# identifier: "internal-provisioning-bkr-c9s-req1cpu" +# env: +# MRACK_TEST_CASE: "provisioning-bkr-c9s-req1cpu" + +# - &pr_bkr_ppc64le +# <<: *internal_test +# identifier: "internal-provisioning-bkr-fedora-ppc64le" +# env: +# MRACK_TEST_CASE: "provisioning-bkr-fedora-ppc64le" + +# - &pr_bkr_mem_cpu +# <<: *internal_test +# identifier: "internal-provisioning-bkr-rhel-8-req-2048mem-2cpu" +# env: +# MRACK_TEST_CASE: "provisioning-bkr-rhel-8-req-2048mem-2cpu" + +# - &pr_bkr_mem +# <<: *internal_test +# identifier: "internal-provisioning-bkr-rhel-9-req-4069mem" +# env: +# MRACK_TEST_CASE: "provisioning-bkr-rhel-9-req-4069mem" + +# - &pr_mrack_all_ssh +# <<: *internal_test +# identifier: "internal-all-providers-ssh" +# trigger: pull_request +# env: +# MRACK_TEST_CASE: "all-providers-ssh" + +# # run the same internal tests as in PR for commit in main +# - &main_osp +# <<: *internal_test # pr_osp +# trigger: commit + +# - &main_aws +# <<: *pr_aws +# trigger: commit + +# - &main_bkr_ppc64le +# <<: *pr_bkr_ppc64le +# trigger: commit + +# - &main_bkr_cpu +# <<: *pr_bkr_cpu +# trigger: commit + +# - &main_bkr_mem_cpu +# <<: *pr_bkr_mem_cpu +# trigger: commit + +# - &main_bkr_mem +# <<: *pr_bkr_mem +# trigger: commit + +# - &main_mrack_all_ssh +# <<: *pr_mrack_all_ssh +# trigger: commit diff --git a/README.md b/README.md index 2895974..1b411e6 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ![pypi_badge](https://img.shields.io/pypi/v/mrack?label=PyPI&logo=pypi) ![readthedocs_badge](https://img.shields.io/readthedocs/mrack?label=Read%20the%20Docs&logo=read-the-docs) ![badge](https://copr.fedorainfracloud.org/coprs/g/freeipa/neoave/package/mrack/status_image/last_build.png) Provisioning library for CI and local multi-host testing supporting multiple -provisioning providers e.g. OpenStack, libvirt, containers, Beaker). +provisioning providers (OpenStack, AWS, libvirt, podman containers, Beaker). But in comparison to multi-cloud libraries, the aim is to be able to describe host from application perspective. E.g.: diff --git a/README.packit b/README.packit index a26b3a1..115b422 100644 --- a/README.packit +++ b/README.packit @@ -1,3 +1,3 @@ This repository is maintained by packit. https://packit.dev/ -The file was generated using packit 0.65.0. +The file was generated using packit 0.88.0.post1.dev4+gc070191b. diff --git a/mrack.spec b/mrack.spec index 878c869..c94b8a0 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,6 +1,6 @@ Name: mrack -Version: 1.12.3 -Release: 5%{?dist} +Version: 1.18.0 +Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner License: Apache-2.0 @@ -61,7 +61,12 @@ Requires: python3-botocore %package -n python3-%{name}-beaker Summary: Beaker provider plugin for mrack Requires: python3-%{name}lib = %{version}-%{release} +%if 0%{?rhel} == 8 +# c8s has missing beaker-client package +Recommends: beaker-client +%else Requires: beaker-client +%endif %{?python_provide:%python_provide python3-%{name}-beaker} @@ -69,7 +74,10 @@ Requires: beaker-client %package -n python3-%{name}-openstack Summary: Openstack provider plugin for mrack Requires: python3-%{name}lib = %{version}-%{release} +Recommends: python3-aiofiles +Recommends: python3-os-client-config Recommends: python3-AsyncOpenStackClient +Recommends: python3-async-timeout %{?python_provide:%python_provide python3-%{name}-openstack} @@ -177,8 +185,118 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog -* Thu Jan 19 2023 Fedora Release Engineering - 1.12.3-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild +* Mon Nov 27 2023 David Pascual Hernandez - 1.18.0-1 +- c158474 feat: Add async_timeout dependency (David Pascual) + +* Fri Nov 03 2023 David Pascual Hernandez - 1.17.1-1 +- 583193a fix: curate_auth func changed to non-async (Kaleemullah Siddiqui) + +* Mon Oct 23 2023 David Pascual Hernandez - 1.17.0-1 +- 5251d90 chore(ci): Temporarely remove packit tests (David Pascual) +- 3a59761 feat(openstack): Append API version to auth_url in credentials (David Pascual) +- 97a5355 chore(release): Update semantic release action name and version (David Pascual) +- 6d6cdc6 chore(release): Upload distribution package to release assets (David Pascual) + +* Mon Oct 09 2023 David Pascual Hernandez - 1.16.0-1 +- e8e20f1 chore(ci): Fix release workflow build step checking out wrong commit (David Pascual) +- 97a7cd0 chore: Bump asyncopenstackclient dependency version (David Pascual) +- 41b12e7 chore: Release version 1.16.0 (github-actions) +- 278d1b1 chore(release): Add PyPI action & extract copr step (Tibor Dudlák) +- 9bbd987 chore: Bump python-semantic-release to v7.34.4 (Tibor Dudlák) +- d6b7298 feat: Add new dependecies to mrack.spec file (David Pascual) +- 7bbda34 feat(OpenStack): Add clouds.yaml as an authentication method (David Pascual) +- a5b32e3 feat(OpenStack): Import publick key on provision (David Pascual) +- 1a29d86 test: fix pylint issues and use isinstance (Tibor Dudlák) +- db74ae0 fix(Beaker): Exception has been thrown as raise missed argument (Tibor Dudlák) +- de027fa docs(Beaker): Add hostRequires documentation section to guides (David Pascual) + +* Tue Sep 19 2023 Tibor Dudlák - 1.16.0-1 +- 278d1b1 chore(release): Add PyPI action & extract copr step (Tibor Dudlák) +- 9bbd987 chore: Bump python-semantic-release to v7.34.4 (Tibor Dudlák) +- d6b7298 feat: Add new dependecies to mrack.spec file (David Pascual) +- 7bbda34 feat(OpenStack): Add clouds.yaml as an authentication method (David Pascual) +- a5b32e3 feat(OpenStack): Import publick key on provision (David Pascual) +- 1a29d86 test: fix pylint issues and use isinstance (Tibor Dudlák) +- db74ae0 fix(Beaker): Exception has been thrown as raise missed argument (Tibor Dudlák) +- de027fa docs(Beaker): Add hostRequires documentation section to guides (David Pascual) + +* Tue Jun 13 2023 Tibor Dudlák - 1.15.1-1 +- 608c763 chore(Packit): Use yaml magic to run same internal tests for PRs and commits to main (Tibor Dudlák) +- 8062a20 refactor: more verbose output when (re)provisioning (Tibor Dudlák) +- 19b52f8 test(OpenStack): Add reprovision with dynamic result tests (Tibor Dudlák) +- fd111f5 fix: Do not reprovision all hosts when server error is detected (Tibor Dudlák) +- 6e499f6 fix: Use lower cooldown time to not be too slow in re-provisioning (Tibor Dudlák) +- e03793c chore(Packit): Add internalt tests per pull request (Tibor Dudlák) +- 44023eb chore(Packit): add missing build job(s) to Packit config (Tibor Dudlák) + +* Tue Apr 18 2023 Tibor Dudlák - 1.15.0-1 +- f9f0e33 test: Add missing strategy_retry test (Tibor Dudlák) +- 121c5db refactor(provider): take max_utilization out to method to ease mocking (Tibor Dudlák) +- dc74ced test: Add missing tests for fixed code from https://github.com/neoave/mrack/pull/245 (Tibor Dudlák) +- 86393ab feat(outputs): preset username and password for windows host in pytest-mh (Tibor Dudlák) +- 4c26b5f feat(outputs): merge nested dictionary instead of overriding it (Tibor Dudlák) +- 4dde2e5 feat(utils): add merge_dict (Tibor Dudlák) +- 5440be1 refactor: fixes _openstack_gather_responses test warnings and exec time (David Pascual) +- e29031b fix: Handle 403 AuthError (out of quota) in openstack provisioning (David Pascual) +- a4e5075 feat: configurable ssh options (Petr Vobornik) +- e9d716e chore: fix docs dependencies in tox run (Petr Vobornik) +- 6f1943b chore: add Markdown support to docs and add design section (Petr Vobornik) +- 88458e1 docs: SSH options design (Petr Vobornik) + +* Thu Mar 16 2023 Tibor Dudlák - 1.14.1-1 +- a9c4e62 fix: mrack not re-provisioning hosts which were destroyed (Tibor Dudlák) +- 17b45e4 fix: Replace coroutines with tasks to avoid RuntimeError (David Pascual) + +* Wed Mar 08 2023 Tibor Dudlák - 1.14.0-1 +- e319b73 refactor(AWS): change variable name typo in get_ip_addresses (Tibor Dudlák) +- d95e65f fix(OpenStack): Add missing await for self._load_limits() method call (Tibor Dudlák) +- d0c2d8f refactor: Update supported providers (Tibor Dudlák) +- 13ad3df fix(outputs): remove config section from pytest-multihost (Tibor Dudlák) +- d3da251 feat(outputs): allow to overwrite ansible layout (Tibor Dudlák) +- d3ac20d feat(outputs): allow to choose which outputs should be generated (Tibor Dudlák) +- 66f2877 feat(outputs): add support for pytest-mh (Tibor Dudlák) +- db633b7 feat(utils): relax condition in get_fqdn (Tibor Dudlák) +- 0735e36 fix(outputs): add host to correct group in layout (Tibor Dudlák) +- b1f5318 feat(utils): add get_os_type (Tibor Dudlák) +- 0ab88e6 refactor(black): reformat code (Tibor Dudlák) + +* Wed Mar 01 2023 Tibor Dudlák - 1.13.3-1 +- 0f62237 fix(OpenStack): await loading limits to not break provisioning (Tibor Dudlák) + +* Wed Mar 01 2023 Tibor Dudlák - 1.13.2-1 +- 06f18d1 fix: Use get method when host error object is a dictionary (Tibor Dudlák) +- fd33d68 fix(Beaker): rerurn common dictionary when validation fails (Tibor Dudlák) +- b6c5ef4 fix(OpenStack): Add exception parameter when validation fails (Tibor Dudlák) +- fa2c779 fix(OpenStack): load limits properly by one method (Tibor Dudlák) +- 61e515f chore: change back mrack dist release to 1 (Tibor Dudlák) + +* Tue Feb 21 2023 Tibor Dudlák - 1.13.1-1 +- 1421b37 fix(MrackConfig): Fix MrackConfig class properties (Tibor Dudlák) + +* Fri Feb 17 2023 Tibor Dudlák - 1.13.0-1 +- 72cc2f3 test: add extra dnf options when dealing with rhel/epel 8 (Tibor Dudlák) +- 32a754b chore: set packit to sync changelog as well (Tibor Dudlák) +- b0512b4 chore: sync fedora spec to upstream to maintain changelog history for fedora (Tibor Dudlák) +- be7b50a chore: Generate proper changelog from commit history when releasing (Tibor Dudlák) +- 98f4035 chore: Bump python-semantic-release to latest (Tibor Dudlák) +- a0e76dd test(OpenStack): Fixup the network spread tests (Tibor Dudlák) +- 88b9332 test(OpenStack): rewrite network alloaction tests (Tibor Dudlák) +- 777862f feat(OpenStack): Provide a way to disable network spreading (Tibor Dudlák) +- ff7331d fix(OpenStack): fix condition for network to get in interval (Tibor Dudlák) +- 943316d fix: fqdn in name is ignored and mrack guesses the name instead #237 (Tibor Dudlák) +- 46141dc feat(AWS): Add utilization check method (Tibor Dudlák) +- bb80060 feat(OpenStack): Add utilization check method (Tibor Dudlák) +- 55f9c2c feat: Do not use same sleep for every mrack run (Tibor Dudlák) +- 6ce3927 test(AnsibleInventory): global level output values override (Tibor Dudlák) +- a7a896a feat(AnsibleInventory): Allow additional global level values (Tibor Dudlák) +- 91c562c feat(AnsibleInventory): Allow additional domain level ansible inventory values (Tibor Dudlák) +- 109b03c test(OpenStack): Update calls in openststack tests (Tibor Dudlák) +- 4467cc2 refactor(OpenStack): make private openstack methods truly private (Tibor Dudlák) +- 72b9b9c chore: use custom release_suffix for PR testing via packit (Petr Vobornik) +- f3f734a chore: disable pylint pre-commit hook (Petr Vobornik) +- 4aa9b0a chore(Packit): Add synchronization of tmt plans and tests (Tibor Dudlák) +- 02c3e01 chore(Packit): Configure users on whose actions packit is allowed to be run (Tibor Dudlák) +- cf14ed9 chore(Packit): Add missing ci.fmf to synced files (Tibor Dudlák) * Tue Dec 13 2022 Tibor Dudlák - 1.12.3-4 - chore: Add add tmt tests and plans and add them to sync (Tibor Dudlák) diff --git a/sources b/sources index 8ad92e2..f94928c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.12.3.tar.gz) = 04b097020264fa0686f38f513156ea97d761769bf68cff564224991bd157632aeda673c8e471c985e1f49657b47f3ed5505867f469dfefa688da1fa42f5a1be8 +SHA512 (mrack-1.18.0.tar.gz) = 2a75e92a7c7b0316cb8ffb544dc33a2ceb729c5ca76743a4fa12d8873ff3764baeb7156b06647e43bfbcf45763277e3eb1cfecd4f60d76e236dca239a887586b diff --git a/tests/smoke/smoke-test.sh b/tests/smoke/smoke-test.sh index a06d73d..b49361c 100755 --- a/tests/smoke/smoke-test.sh +++ b/tests/smoke/smoke-test.sh @@ -4,9 +4,11 @@ . /usr/share/beakerlib/beakerlib.sh || ( echo "FAILED to source beakerlib" && exit 1 ) +export DNF_EXTRA_OPTIONS=$([[ `rpm --eval '%{?dist}' | grep .el8` > /dev/null ]] && echo "--nobest") + install_package () { rlPhaseStartSetup "Installing $1" - rlRun "dnf install -y $1" + rlRun "dnf install -y $1 $DNF_EXTRA_OPTIONS" rlPhaseEnd }