From ab1f1b9f2f47301c149e0f5f7a987d80ec1e2e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Tue, 1 Nov 2022 08:56:53 +0100 Subject: [PATCH 01/17] Add initial spec from upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- mrack.spec | 254 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 mrack.spec diff --git a/mrack.spec b/mrack.spec new file mode 100644 index 0000000..a935455 --- /dev/null +++ b/mrack.spec @@ -0,0 +1,254 @@ +Name: mrack +Version: 1.10.0 +Release: 1%{?dist} +Summary: Multicloud use-case based multihost async provisioner + +License: Apache-2.0 +URL: https://github.com/neoave/mrack +Source0: %{URL}/releases/download/v%{version}/%{name}-%{version}.tar.gz +BuildArch: noarch + +BuildRequires: python3-devel +BuildRequires: python3-click +BuildRequires: python3-pyyaml +BuildRequires: python3-setuptools + +# coma separated list of provider plugins +%global provider_plugins aws,beaker,openstack,podman,virt + +Requires: %{name}-cli = %{version}-%{release} +Requires: python3-%{name}lib = %{version}-%{release} +Requires: python3-%{name}-aws = %{version}-%{release} +Requires: python3-%{name}-beaker = %{version}-%{release} +Requires: python3-%{name}-openstack = %{version}-%{release} +Requires: python3-%{name}-podman = %{version}-%{release} +Requires: python3-%{name}-virt = %{version}-%{release} + +# We filter out the asyncopenstackclient dependency of this package +# so it is not forcing installation of missing dependencies in Fedora +# Once python3-AsyncOpenStackClient is in fedora we can drop this line +%global __requires_exclude asyncopenstackclient + +%description +mrack is a provisioning tool and a library for CI and local multi-host +testing supporting multiple provisioning providers (e.g. AWS, Beaker, +Openstack). But in comparison to other multi-cloud libraries, +the aim is to be able to describe host from application perspective. + +%{?python_provide:%python_provide %{name}} + +%package cli +Summary: Command line interface for mrack +Requires: python3-%{name}lib = %{version}-%{release} + +%package -n python3-%{name}lib +Summary: Core mrack libraries +Requires: python3-click +Requires: python3-pyyaml +Requires: sshpass + +%{?python_provide:%python_provide python3-%{name}lib} + +%package -n python3-%{name}-aws +Summary: AWS provider plugin for mrack +Requires: python3-%{name}lib = %{version}-%{release} +Requires: python3-boto3 +Requires: python3-botocore + +%{?python_provide:%python_provide python3-%{name}-aws} + + +%package -n python3-%{name}-beaker +Summary: Beaker provider plugin for mrack +Requires: python3-%{name}lib = %{version}-%{release} +Requires: beaker-client + +%{?python_provide:%python_provide python3-%{name}-beaker} + + +%package -n python3-%{name}-openstack +Summary: Openstack provider plugin for mrack +Requires: python3-%{name}lib = %{version}-%{release} +Recommends: python3-AsyncOpenStackClient + +%{?python_provide:%python_provide python3-%{name}-openstack} + + +%package -n python3-%{name}-podman +Summary: Podman provider plugin for mrack +Requires: python3-%{name}lib = %{version}-%{release} +Requires: podman + +%{?python_provide:%python_provide python3-%{name}-podman} + +%package -n python3-%{name}-virt +Summary: Virtualization provider plugin for mrack using testcloud +Requires: python3-%{name}lib = %{version}-%{release} +Requires: testcloud + +%{?python_provide:%python_provide python3-%{name}-virt} + +%description cli +%{name}-cli contains mrack command which functionality +can be extended by installing mrack plugins + +%description -n python3-%{name}lib +python3-%{name}lib contains core mrack functionalities +and static provider which can be used as a library + +%description -n python3-%{name}-aws +%{name}-aws is an additional plugin with AWS provisioning +library extending mrack package + +%description -n python3-%{name}-beaker +%{name}-beaker is an additional plugin with Beaker provisioning +library extending mrack package + +%description -n python3-%{name}-openstack +%{name}-openstack is an additional plugin with OpenStack provisioning +library extending mrack package + +%description -n python3-%{name}-podman +%{name}-podman is an additional plugin with Podman provisioning +library extending mrack package + +%description -n python3-%{name}-virt +%{name}-virt is an additional plugin with Virualization provisioning +library extending mrack package using testcloud + +%prep +%autosetup -p1 -n %{name}-%{version} +# Remove bundled egg-info +rm -rf %{name}.egg-info + +%build +%py3_build + +%install +%py3_install + +%files +%license LICENSE +%doc README.md +%doc CHANGELOG.md + +%files cli +# the mrack man page RFE: https://github.com/neoave/mrack/issues/197 +%license LICENSE +%doc README.md +%doc CHANGELOG.md +%{_bindir}/%{name} + +%files -n python3-%{name}lib +%license LICENSE +%doc README.md +%doc CHANGELOG.md +%{python3_sitelib}/%{name} +%{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info +%exclude %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}osapi.* +%exclude %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* +%exclude %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}podman.* +%exclude %{python3_sitelib}/%{name}/providers/{,__pycache__/}{%{provider_plugins}}.* +%exclude %{python3_sitelib}/%{name}/transformers/{,__pycache__/}{%{provider_plugins}}.* + +%files -n python3-%{name}-aws +%{python3_sitelib}/%{name}/transformers/{,__pycache__/}aws.* +%{python3_sitelib}/%{name}/providers/{,__pycache__/}aws.* + +%files -n python3-%{name}-beaker +%{python3_sitelib}/%{name}/transformers/{,__pycache__/}beaker.* +%{python3_sitelib}/%{name}/providers/{,__pycache__/}beaker.* + +%files -n python3-%{name}-openstack +%{python3_sitelib}/%{name}/transformers/{,__pycache__/}openstack.* +%{python3_sitelib}/%{name}/providers/{,__pycache__/}openstack.* +%{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}osapi.* + +%files -n python3-%{name}-podman +%{python3_sitelib}/%{name}/transformers/{,__pycache__/}podman.* +%{python3_sitelib}/%{name}/providers/{,__pycache__/}podman.* +%{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}podman.* + +%files -n python3-%{name}-virt +%{python3_sitelib}/%{name}/transformers/{,__pycache__/}virt.* +%{python3_sitelib}/%{name}/providers/{,__pycache__/}virt.* +%{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* + +%changelog +* Wed Oct 26 2022 Tibor Dudlák - 1.10.0-1 +- Released upstream version 1.10.0 + +* Thu Oct 20 2022 Tibor Dudlák - 1.9.1-1 +- Released upstream version 1.9.1 + +* Wed Oct 12 2022 Tibor Dudlák - 1.9.0-1 +- Released upstream version 1.9.0 + +* Mon Oct 10 2022 Tibor Dudlák - 1.8.1-1 +- Released upstream version 1.8.1 + +* Mon Oct 10 2022 Tibor Dudlák - 1.8.0-1 +- Released upstream version 1.8.0 + +* Tue Sep 20 2022 Tibor Dudlák - 1.7.0-1 +- Released upstream version 1.7.0 + +* Wed Jul 27 2022 Tibor Dudlák - 1.6.0-1 +- Released upstream version 1.6.0 + +* Fri Jul 08 2022 Tibor Dudlák - 1.5.0-1 +- Released upstream version 1.5.0 + +* Fri Jun 17 2022 David Pascual Hernandez - 1.4.1-1 +- Released upstream version 1.4.1 + +* Thu May 05 2022 Tibor Dudlák - 1.4.0-1 +- Released upstream version 1.4.0 + +* Tue Apr 05 2022 Tibor Dudlák - 1.3.1-1 +- Released upstream version 1.3.1 + +* Fri Apr 01 2022 David Pascual Hernandez - 1.3.0-1 +- Released upstream version 1.3.0 + +* Wed Dec 15 2021 Tibor Dudlák - 1.2.0-1 +- Released upstream version 1.2.0 + +* Thu Nov 25 2021 Tibor Dudlák - 1.1.1-1 +- Released upstream version 1.1.1 + +* Tue Nov 23 2021 Tibor Dudlák - 1.1.0-1 +- Released upstream version 1.1.0 + +* Fri Sep 03 2021 Tibor Dudlák - 1.0.0-1 +- Released upstream version 1.0.0 + +* Thu Jul 01 2021 Tibor Dudlák - 0.14.0-1 +- Released upstream version 0.14.0 + +* Tue Jun 08 2021 Francisco Triviño - 0.13.0-1 +- Released upstream version 0.13.0 + +* Thu May 13 2021 Tibor Dudlák - 0.12.0-1 +- Released upstream version 0.12.0 + +* Fri May 07 2021 Tibor Dudlák - 0.11.0-1 +- Released upstream version 0.11.0 + +* Fri Apr 30 2021 Bhavik Bhavsar - 0.10.0-1 +- Released upstream version 0.10.0 + +* Mon Apr 19 2021 Armando Neto - 0.9.0-1 +- Released upstream version 0.9.0 + +* Thu Apr 15 2021 Armando Neto - 0.8.0-1 +- Released upstream version 0.8.0 + +* Tue Mar 23 2021 Armando Neto - 0.7.1-1 +- Released upstream version 0.7.1 + +* Mon Mar 22 2021 Tibor Dudlák - 0.7.0-1 +- Released upstream version 0.7.0 + +* Thu Feb 04 2021 Armando Neto - 0.6.0-1 +- Initial package. From d49a4b40edc69aee4cacbda661cbbe12c1881a3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Tue, 1 Nov 2022 08:57:34 +0100 Subject: [PATCH 02/17] Update README.md to upstream version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- README.md | 303 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 302 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b5b028..2895974 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,304 @@ # mrack -The mrack package +![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). + +But in comparison to multi-cloud libraries, the aim is to be able to describe +host from application perspective. E.g.: + +```yaml +network: IPv4 +hosts: +- name: master.testdomain.test + role: master + group: ipaserver + os: fedora-31 +- name: client.testdomain.test + role: client + group: ipaclient + os: fedora-30 +``` + +This is then combined with provisioning configuration where each provider has +defined meaning for `role`, `group`, `os` params which e.g. translates to +flavors, images, ... + +```yaml +provider: openstack # default provider +openstack: + images: + fedora-30: Fedora-Cloud-Base-30-compose-latest + fedora-31: Fedora-Cloud-Base-31 + flavors: + ipaserver: ci.m1.medium + ipaclient: ci.m1.micro + networks: + IPv4: net_ci_4 + IPv6: net_ipv6_only + dual: net_cci_4_6 + keypair: ipa_key +beaker: + distros: + fedora-30: FEDORA-30% + fodora-31: FEDORA-31% +``` + +So then user can quickly change provisioning location just by changing provider +name without needing to redefine the provider/cloud specifics. This is +especially useful for a lot of jobs sharing the same app specific provisioner +configuration. + +```yaml +provider: beaker +``` + +Or each host can use a different provider: + +```yaml +hosts: +- name: master.testdomain.test + role: master + group: ipaserver + os: fedora-31 + provider: openstack + network: dual +- name: client.testdomain.test + role: client + group: ipaclient + os: fedora-30 + provider: beaker +``` + +The output is then Ansible inventory with correct group mapping and information +which allows to SSH to the machines. + +```yaml +all: + children: + ipaserver: + hosts: + f30-1.mrack.test: {} + f33-2.mrack.test: {} + hosts: + f30-1.mrack.test: + ansible_host: 10.0.154.21 + ansible_python_interpreter: /usr/bin/python3 + ansible_ssh_private_key_file: config/id_rsa + ansible_user: fedora + meta_dc_record: DC=mrack,DC=test + meta_domain: mrack.test + meta_fqdn: f30-1.mrack.test + meta_ip: 10.0.154.21 + meta_os: fedora-30 + meta_provider_id: 7c3c28f9-4674-4f7f-b413-00bc0b00d711 + meta_restraint_id: 9 + meta_role: master + f33-2.mrack.test: + ansible_host: ec2-13-15-16-1.eu-central-1.compute.amazonaws.com + ansible_python_interpreter: /usr/bin/python3 + ansible_ssh_private_key_file: config/id_rsa + ansible_user: fedora + meta_dc_record: DC=mrack,DC=test + meta_domain: mrack.test + meta_fqdn: f33-2.mrack.test + meta_ip: 13.15.16.1 + meta_os: fedora-33 + meta_provider_id: i-08c0d4a86c4b7f7ef + meta_restraint_id: 1 + meta_role: master +``` + +## Installation + +mrack can be installed via pip, from [PyPI](https://pypi.org/project/mrack/): + +``` +pip install mrack +``` + +It is also available for Fedora 32+ via [COPR](https://copr.fedorainfracloud.org/coprs/g/freeipa/neoave/package/mrack/): + +``` +# enable the copr at your system +sudo dnf copr enable @freeipa/neoave + +# install mrack package with all supported providers and cli +sudo dnf install mrack + +# install mrack command and e.g. AWS provider +sudo dnf install mrack-cli python3-mrack-aws + +# install mrack library to be later used as an import with support of OpenStack provider: +sudo dnf install python3-mrack-openstack + +``` +--- +**NOTE** + +Above command will install `mrack` package which depends on (contains) following packages: +- mrack-cli +- python3-mracklib +- python3-mrack-aws +- python3-mrack-beaker +- python3-mrack-openstack +- python3-mrack-podman +- python3-mrack-virt + +The `python3-mracklib` is mandatory as it contains core mrack library. +To install only some of `mrack` providers you should install `python3-mrack-{provider_name}`. +To install mrack command a package `mrack-cli` is required. + +--- + +## Run mrack + +In order to use the mrack utility a mrack.conf (e.g. [mrack.conf] from the repository(repo/blob/main/src/mrack/data/mrack.conf)) is needed. + +mrack looks for the config file in following order: +- `./` actual directory +- `~/.mrack/` home directory +- `/etc/mrack/` system directory + +Values from the configuration file could be overriden using mrack utility +options `--mrack-config` `--provisioning-config` `--db` (for more see `mrack --help`). +``` +Usage: mrack [OPTIONS] COMMAND [ARGS]... + + Multihost human friendly provisioner. + +Options: + -c, --mrack-config PATH + -p, --provisioning-config PATH + -d, --db PATH + --debug + --help Show this message and exit. + +Commands: + destroy Destroy provisioned hosts. + list List host tracked by. + output Create outputs - such as Ansible inventory. + ssh SSH to host. + up Provision hosts. +``` + +### Provisioning with mrack + +To provision system from the metadata.yaml either run: +``` +mrack up +``` +or use `up` command's option `--metadata`/`-m` to override path to the metadata file. +``` +mrack up --metadata other-metadata.yaml +``` + +To return resources using mrack run: +``` +mrack destroy +``` +or use `destroy` command's option `--metadata`/`-m` to override path to the metadata file. +``` +mrack destroy --metadata other-metadata.yaml +``` + +### mrack as python library + +```python +# first set up authentication for each provider +# $ export AWS_CONFIG_FILE=`readlink -f ./aws.key` +from mrack.providers import providers +# import all supported providers: +from mrack.providers.aws import PROVISIONER_KEY as AWS +from mrack.providers.aws import AWSProvider +from mrack.providers.beaker import PROVISIONER_KEY as BEAKER +from mrack.providers.beaker import BeakerProvider +from mrack.providers.openstack import PROVISIONER_KEY as OPENSTACK +from mrack.providers.openstack import OpenStackProvider +from mrack.providers.podman import PROVISIONER_KEY as PODMAN +from mrack.providers.podman import PodmanProvider +from mrack.providers.static import PROVISIONER_KEY as STATIC +from mrack.providers.static import StaticProvider +from mrack.providers.virt import PROVISIONER_KEY as VIRT +from mrack.providers.virt import VirtProvider + +# register all supported providers: +providers.register(AWS, AWSProvider) +providers.register(OPENSTACK, OpenStackProvider) +providers.register(BEAKER, BeakerProvider) +providers.register(PODMAN, PodmanProvider) +providers.register(STATIC, StaticProvider) +providers.register(VIRT, VirtProvider) + + +# use global context class +import mrack +global_context = mrack.context.global_context + +# init global context with paths to files +mrack_config = "mrack.conf" +provisioning_config = "provisioning-config.yaml" +db_file = "mrackdb.json" +global_context.init(mrack_config, provisioning_config, db_file) + +# load the metadata to global_context +metadata = "./metadata-f34.yaml" +global_context.init_metadata(metadata) + +# pick default provider: +provider = "aws" + +# create Up action + +from mrack.actions.up import Up + +up_action = Up() +await up_action.init(provider) + +# provision machines: +await up_action.provision() + +# store the output to db or just use the db later on +from mrack.actions.output import Output +output_action = Output() +await output_action.generate_outputs() + +# work with machines... + +# cleanup the machines: +from mrack.actions.destroy import Destroy +destroy_action = Destroy() +await destroy_action.destroy() +``` + +## Contribute + +Projects is using [black](https://github.com/psf/black) formater and [isort](https://github.com/PyCQA/isort) to keep consistent +formatting, [flake8](https://flake8.pycqa.org/en/latest/) and +[pydocstyle](http://pycodestyle.pycqa.org/en/latest/intro.html) to ensure following +Python good practices. + +Contributions (Pull Requests) are welcome. It is expected that they will pass tox tests and code checkers. +Inclusion of the unit tests for the new code is recommended. +Because of that we have configured [pre-commit](https://pre-commit.com/) hook. +Please enable the feature on your local system and use it before sending a patch. +It could save us lot of re-pushing to the PR. + +### Black formatting and isort +Expected formatting can be achieved by running: +``` +$ make format +``` + +Look into [black](https://github.com/psf/black) documentation for possible integration +in editors/IDEs. + +### Testing +Just run tox to execute all tests and linters + +``` +$ tox +# or use make +$ make test +``` From 991811f842a4cadc5303ea8b937be97380475685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Tue, 1 Nov 2022 08:58:24 +0100 Subject: [PATCH 03/17] Add source tarball with 1.10.0 mrack version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- .gitignore | 1 + sources | 1 + 2 files changed, 2 insertions(+) create mode 100644 .gitignore create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8776eac --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/mrack-1.10.0.tar.gz diff --git a/sources b/sources new file mode 100644 index 0000000..9cfff2d --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (mrack-1.10.0.tar.gz) = b543606c726d4bdc41ad91c64e8667ca0043901e93bcbf0970d26fa8d2628ddd4c99ad4c99510098d9a05df8cb3b14225565f0ec20ce74d707f5d6660ba4804e From d9796dcafd42a456987255bd0cd628032d498c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Fri, 4 Nov 2022 12:54:34 +0100 Subject: [PATCH 04/17] Bump to upstream version 1.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- .gitignore | 1 + mrack.spec | 13 ++++++++----- sources | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 8776eac..bbdb4d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /mrack-1.10.0.tar.gz +/mrack-1.11.0.tar.gz diff --git a/mrack.spec b/mrack.spec index a935455..e982445 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.10.0 +Version: 1.11.0 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -35,15 +35,13 @@ testing supporting multiple provisioning providers (e.g. AWS, Beaker, Openstack). But in comparison to other multi-cloud libraries, the aim is to be able to describe host from application perspective. -%{?python_provide:%python_provide %{name}} - %package cli Summary: Command line interface for mrack Requires: python3-%{name}lib = %{version}-%{release} +Requires: python3-click %package -n python3-%{name}lib Summary: Core mrack libraries -Requires: python3-click Requires: python3-pyyaml Requires: sshpass @@ -119,7 +117,7 @@ library extending mrack package using testcloud %prep %autosetup -p1 -n %{name}-%{version} # Remove bundled egg-info -rm -rf %{name}.egg-info +rm -r src/%{name}.egg-info %build %py3_build @@ -138,6 +136,7 @@ rm -rf %{name}.egg-info %doc README.md %doc CHANGELOG.md %{_bindir}/%{name} +%{python3_sitelib}/%{name}/{,__pycache__/}run.* %files -n python3-%{name}lib %license LICENSE @@ -145,6 +144,7 @@ rm -rf %{name}.egg-info %doc CHANGELOG.md %{python3_sitelib}/%{name} %{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info +%exclude %{python3_sitelib}/%{name}/{,__pycache__/}run.* %exclude %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}osapi.* %exclude %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %exclude %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}podman.* @@ -175,6 +175,9 @@ rm -rf %{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Thu Nov 03 2022 Tibor Dudlák - 1.11.0-1 +- Released upstream version 1.11.0 + * Wed Oct 26 2022 Tibor Dudlák - 1.10.0-1 - Released upstream version 1.10.0 diff --git a/sources b/sources index 9cfff2d..2506309 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.10.0.tar.gz) = b543606c726d4bdc41ad91c64e8667ca0043901e93bcbf0970d26fa8d2628ddd4c99ad4c99510098d9a05df8cb3b14225565f0ec20ce74d707f5d6660ba4804e +SHA512 (mrack-1.11.0.tar.gz) = b170842d34df43798f76280e588ad9c03f346a7da2a911be3cb141ec6d6e2f6bad73fc724fe6247be4c0178be9cdddfb6c765433d995aa4f2dd7e8e565aa50ac From 1abf16f67b9ee6dc1afc3ee17674c21614dfd01c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Mon, 21 Nov 2022 09:44:42 +0100 Subject: [PATCH 05/17] Add spec readme and sources upstream version 1.12.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- .gitignore | 1 + mrack.spec | 7 ++++++- sources | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index bbdb4d4..0b00642 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /mrack-1.10.0.tar.gz /mrack-1.11.0.tar.gz +/mrack-1.12.0.tar.gz diff --git a/mrack.spec b/mrack.spec index e982445..5799b49 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.11.0 +Version: 1.12.0 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -28,6 +28,7 @@ Requires: python3-%{name}-virt = %{version}-%{release} # so it is not forcing installation of missing dependencies in Fedora # Once python3-AsyncOpenStackClient is in fedora we can drop this line %global __requires_exclude asyncopenstackclient +%{?python_disable_dependency_generator} %description mrack is a provisioning tool and a library for CI and local multi-host @@ -43,6 +44,7 @@ Requires: python3-click %package -n python3-%{name}lib Summary: Core mrack libraries Requires: python3-pyyaml +Recommends: python3-gssapi Requires: sshpass %{?python_provide:%python_provide python3-%{name}lib} @@ -175,6 +177,9 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Mon Nov 14 2022 Tibor Dudlák - 1.12.0-1 +- Released upstream version 1.12.0 + * Thu Nov 03 2022 Tibor Dudlák - 1.11.0-1 - Released upstream version 1.11.0 diff --git a/sources b/sources index 2506309..c37ecc9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.11.0.tar.gz) = b170842d34df43798f76280e588ad9c03f346a7da2a911be3cb141ec6d6e2f6bad73fc724fe6247be4c0178be9cdddfb6c765433d995aa4f2dd7e8e565aa50ac +SHA512 (mrack-1.12.0.tar.gz) = 0a96efd09d8735b62764b171c299cea73347afc749080b15f0dd8360eec072d444656a6ceafa4f9a0a4127e5cfd8c29b690014e5db187d96992047d1dbcf514a From d7d14bbb8ac0c4a5921f1971f1772c2da97cf11d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Tue, 29 Nov 2022 15:01:35 +0100 Subject: [PATCH 06/17] Add spec readme and sources upstream version 1.12.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- .gitignore | 1 + mrack.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0b00642..cc1d8d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /mrack-1.10.0.tar.gz /mrack-1.11.0.tar.gz /mrack-1.12.0.tar.gz +/mrack-1.12.1.tar.gz diff --git a/mrack.spec b/mrack.spec index 5799b49..d21a270 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.12.0 +Version: 1.12.1 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -177,6 +177,9 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Thu Nov 24 2022 Tibor Dudlák - 1.12.1-1 +- Released upstream version 1.12.1 + * Mon Nov 14 2022 Tibor Dudlák - 1.12.0-1 - Released upstream version 1.12.0 diff --git a/sources b/sources index c37ecc9..e8f80e7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.12.0.tar.gz) = 0a96efd09d8735b62764b171c299cea73347afc749080b15f0dd8360eec072d444656a6ceafa4f9a0a4127e5cfd8c29b690014e5db187d96992047d1dbcf514a +SHA512 (mrack-1.12.1.tar.gz) = 49964fe5c2c85b14a784972fed8d6f43047c4974ab0825a2a6d2e6608fdbb798c77ed2816d423460ff29ec64a007f8af6a4bca51b03c40ac73391fe4769eed91 From 0faf135c8c9cfb9234472ebf46185ee0db38a37c Mon Sep 17 00:00:00 2001 From: Packit Date: Fri, 2 Dec 2022 10:20:57 +0000 Subject: [PATCH 07/17] [packit] 1.12.2 upstream release Upstream tag: v1.12.2 Upstream commit: 497e95b3 Signed-off-by: Packit --- .gitignore | 1 + .packit.yaml | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.packit | 3 +++ mrack.spec | 12 +++++++++++- sources | 2 +- 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 .packit.yaml create mode 100644 README.packit diff --git a/.gitignore b/.gitignore index cc1d8d6..7cdbf13 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /mrack-1.11.0.tar.gz /mrack-1.12.0.tar.gz /mrack-1.12.1.tar.gz +/mrack-1.12.2.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..1fe5c0d --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,51 @@ +--- +# See the documentation for more information: +# https://packit.dev/docs/configuration/ +specfile_path: mrack.spec + +# add or remove files that should be synced +files_to_sync: + - mrack.spec + - README.md + - .packit.yaml + +# name in upstream package repository/registry (e.g. in PyPI) +upstream_package_name: mrack +# downstream (Fedora) RPM package name +downstream_package_name: mrack +# mrack uses tag v(ver_number) and we need to make sure packit know what to expect +# see: https://packit.dev/docs/configuration/#upstream_tag_template +upstream_tag_template: "v{version}" + +actions: + create-archive: + - "python3 setup.py sdist --dist-dir ." + - "sh -c 'echo mrack-$(python3 setup.py --version).tar.gz'" + get-current-version: + - "python3 setup.py --version" + +jobs: + - job: copr_build + trigger: pull_request + targets: [fedora-all] + + - job: copr_build + trigger: release + owner: "@freeipa" + project: neoave + targets: [fedora-all] + + - job: propose_downstream + trigger: release + dist_git_branches: + - fedora-all + + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched # rawhide updates are created automatically diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..bdc4243 --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.63.2.dev8+g33fd64a. diff --git a/mrack.spec b/mrack.spec index d21a270..e8ba4b4 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.12.1 +Version: 1.12.2 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -177,6 +177,16 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Fri Dec 02 2022 Packit - 1.12.2-1 +- chore: Release version 1.12.2 (github-actions) +- chore: Use python 3.10 in GH actions (Tibor Dudlák) +- refactor: pylint fixes related to Python 3.10 (Tibor Dudlák) +- test: Fix test_utils.py to be included in pytest run (Tibor Dudlák) +- chore(pytest): add missing python_path when using pytest >=7.0.0 (Tibor Dudlák) +- test: Add test for value_to_bool util function (Tibor Dudlák) +- fix: Owner requirement boolean parsing from string (Tibor Dudlák) +- chore(Packit): Add upstream_tag_template to .packit.yaml (Tibor Dudlák) + * Thu Nov 24 2022 Tibor Dudlák - 1.12.1-1 - Released upstream version 1.12.1 diff --git a/sources b/sources index e8f80e7..7ce0828 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.12.1.tar.gz) = 49964fe5c2c85b14a784972fed8d6f43047c4974ab0825a2a6d2e6608fdbb798c77ed2816d423460ff29ec64a007f8af6a4bca51b03c40ac73391fe4769eed91 +SHA512 (mrack-1.12.2.tar.gz) = 7ac6ec24398d58cb092e4a12c15c75758485a5e430c74cbe3312a48dde905f0350029b70245d8b21e6bb060b3022a16657b25bd080ced9de1f193159a2752405 From d2842b8853b7cb69818da3391aa356c9b42633ca Mon Sep 17 00:00:00 2001 From: Packit Date: Tue, 13 Dec 2022 20:54:22 +0000 Subject: [PATCH 08/17] [packit] 1.12.3 upstream release Upstream tag: v1.12.3 Upstream commit: 6bd9e17e Signed-off-by: Packit --- .gitignore | 1 + .packit.yaml | 20 +++++++++++--------- README.packit | 2 +- gating.yaml | 10 ++++++++++ mrack.spec | 13 ++++++++++++- sources | 2 +- 6 files changed, 36 insertions(+), 12 deletions(-) create mode 100644 gating.yaml diff --git a/.gitignore b/.gitignore index 7cdbf13..6057967 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /mrack-1.12.0.tar.gz /mrack-1.12.1.tar.gz /mrack-1.12.2.tar.gz +/mrack-1.12.3.tar.gz diff --git a/.packit.yaml b/.packit.yaml index 1fe5c0d..2d27343 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -8,6 +8,7 @@ files_to_sync: - mrack.spec - README.md - .packit.yaml + - gating.yaml # name in upstream package repository/registry (e.g. in PyPI) upstream_package_name: mrack @@ -25,27 +26,28 @@ actions: - "python3 setup.py --version" jobs: - - job: copr_build + - job: tests trigger: pull_request - targets: [fedora-all] + targets: [fedora-all, epel-8, epel-9] + + - job: copr_build + trigger: commit + targets: [fedora-all, epel-8, epel-9] - job: copr_build trigger: release owner: "@freeipa" project: neoave - targets: [fedora-all] + targets: [fedora-all, epel-8, epel-9] - job: propose_downstream trigger: release - dist_git_branches: - - fedora-all + dist_git_branches: [fedora-all, epel-8, epel-9] - job: koji_build trigger: commit - dist_git_branches: - - fedora-all + dist_git_branches: [fedora-all, epel-8, epel-9] - job: bodhi_update trigger: commit - dist_git_branches: - - fedora-branched # rawhide updates are created automatically + dist_git_branches: [fedora-branched, epel-8, epel-9] # rawhide updates are created automatically diff --git a/README.packit b/README.packit index bdc4243..a26b3a1 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.63.2.dev8+g33fd64a. +The file was generated using packit 0.65.0. diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ad8f991 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,10 @@ +--- !Policy +product_versions: + - fedora-* + - epel-8 + - epel-9 +decision_contexts: + - bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tests.functional} diff --git a/mrack.spec b/mrack.spec index e8ba4b4..f859935 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.12.2 +Version: 1.12.3 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -177,6 +177,17 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Tue Dec 13 2022 Packit - 1.12.3-1 +- chore: Release version 1.12.3 (github-actions) +- chore(Packit): Enable copr build for commit to main only. (Tibor Dudlák) +- chore(Packit): Enable TF tests job to run on pull request. (Tibor Dudlák) +- chore(Packit): Add fedora gating.yaml to synced files. (Tibor Dudlák) +- chore(TestingFarm): Add gating for fedora workflow (Tibor Dudlák) +- fix: Add cache decorator for older python versions. (Tibor Dudlák) +- fix(mrack.spec): Missing dependency in c8s for beaker-client (Tibor Dudlák) +- chore(Packit): enable epel-8 and epel-9 updates and tests (Tibor Dudlák) +- fix(AWS): refactor sources to be py3.6 compatible (Tibor Dudlák) + * Fri Dec 02 2022 Packit - 1.12.2-1 - chore: Release version 1.12.2 (github-actions) - chore: Use python 3.10 in GH actions (Tibor Dudlák) diff --git a/sources b/sources index 7ce0828..8ad92e2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.12.2.tar.gz) = 7ac6ec24398d58cb092e4a12c15c75758485a5e430c74cbe3312a48dde905f0350029b70245d8b21e6bb060b3022a16657b25bd080ced9de1f193159a2752405 +SHA512 (mrack-1.12.3.tar.gz) = 04b097020264fa0686f38f513156ea97d761769bf68cff564224991bd157632aeda673c8e471c985e1f49657b47f3ed5505867f469dfefa688da1fa42f5a1be8 From 34b4eb15cc30521048f2bb2d16078b413c35c217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Wed, 14 Dec 2022 08:12:56 +0100 Subject: [PATCH 09/17] Add ci.fmf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- ci.fmf | 1 + 1 file changed, 1 insertion(+) create mode 100644 ci.fmf diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate From ede9b2d2b1c44efb9cbb328083cb587714cc0e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Wed, 14 Dec 2022 08:44:00 +0100 Subject: [PATCH 10/17] Create release mrack-1.12.3-2 which has fixed ci.fmf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- mrack.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mrack.spec b/mrack.spec index f859935..4e16b54 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,6 +1,6 @@ Name: mrack Version: 1.12.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Multicloud use-case based multihost async provisioner License: Apache-2.0 @@ -177,6 +177,9 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Tue Dec 13 2022 Tibor Dudlák - 1.12.3-2 +- chore: Add ci.fmf to the repo (Tibor Dudlák) + * Tue Dec 13 2022 Packit - 1.12.3-1 - chore: Release version 1.12.3 (github-actions) - chore(Packit): Enable copr build for commit to main only. (Tibor Dudlák) From 7c7791dbb6ddc5b455b378c244d83c8640bdab45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Wed, 14 Dec 2022 10:41:12 +0100 Subject: [PATCH 11/17] chore: Add fmf/version and allowed users to run packit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- .fmf/version | 1 + .packit.yaml | 9 +++++++++ mrack.spec | 5 ++++- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .fmf/version diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.packit.yaml b/.packit.yaml index 2d27343..a2bc0d4 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -9,6 +9,15 @@ files_to_sync: - README.md - .packit.yaml - gating.yaml + - ci.fmf + +# Allow disgit reactions on packit and tdudlak commits and PRs +allowed_pr_authors: +- packit +- tdudlak +allowed_committers: +- packit +- tdudlak # name in upstream package repository/registry (e.g. in PyPI) upstream_package_name: mrack diff --git a/mrack.spec b/mrack.spec index 4e16b54..cde228d 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,6 +1,6 @@ Name: mrack Version: 1.12.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Multicloud use-case based multihost async provisioner License: Apache-2.0 @@ -177,6 +177,9 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* Tue Dec 13 2022 Tibor Dudlák - 1.12.3-3 +- chore: Add fmf/version and allowed users to run packit (Tibor Dudlák) + * Tue Dec 13 2022 Tibor Dudlák - 1.12.3-2 - chore: Add ci.fmf to the repo (Tibor Dudlák) From 77e2e70823845377b632100077a7bbe0a59f697a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= Date: Thu, 15 Dec 2022 08:07:30 +0100 Subject: [PATCH 12/17] chore: Add add tmt tests and plans and add them to sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tibor Dudlák --- .packit.yaml | 4 +++ mrack.spec | 5 ++- plans/tests.fmf | 9 ++++++ tests/smoke/main.fmf | 8 +++++ tests/smoke/smoke-test.sh | 67 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 plans/tests.fmf create mode 100644 tests/smoke/main.fmf create mode 100755 tests/smoke/smoke-test.sh diff --git a/.packit.yaml b/.packit.yaml index a2bc0d4..0588b34 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -10,6 +10,10 @@ files_to_sync: - .packit.yaml - gating.yaml - ci.fmf + - src: ./tests/smoke/* + dest: ./tests/smoke/ + - src: ./plans/* + dest: ./plans/ # Allow disgit reactions on packit and tdudlak commits and PRs allowed_pr_authors: diff --git a/mrack.spec b/mrack.spec index cde228d..d50e81a 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,6 +1,6 @@ Name: mrack Version: 1.12.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Multicloud use-case based multihost async provisioner License: Apache-2.0 @@ -177,6 +177,9 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* 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) + * Tue Dec 13 2022 Tibor Dudlák - 1.12.3-3 - chore: Add fmf/version and allowed users to run packit (Tibor Dudlák) diff --git a/plans/tests.fmf b/plans/tests.fmf new file mode 100644 index 0000000..65199d8 --- /dev/null +++ b/plans/tests.fmf @@ -0,0 +1,9 @@ +summary: Smoke test for mrack +discover: + how: fmf +prepare: +- how: shell + script: + - dnf remove -y `rpm -qa | grep mrack` +execute: + how: tmt diff --git a/tests/smoke/main.fmf b/tests/smoke/main.fmf new file mode 100644 index 0000000..b465d57 --- /dev/null +++ b/tests/smoke/main.fmf @@ -0,0 +1,8 @@ +summary: Run Smoke tests +test: ./smoke-test.sh +enabled: true +path: /tests/smoke +require: +- which +framework: beakerlib +duration: 10m diff --git a/tests/smoke/smoke-test.sh b/tests/smoke/smoke-test.sh new file mode 100755 index 0000000..a06d73d --- /dev/null +++ b/tests/smoke/smoke-test.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Author: Tibor Dudlák + +. /usr/share/beakerlib/beakerlib.sh || ( echo "FAILED to source beakerlib" && exit 1 ) + +install_package () { + rlPhaseStartSetup "Installing $1" + rlRun "dnf install -y $1" + rlPhaseEnd +} + +print_and_remove_mrack_log(){ + rlPhaseStartTest "Print and remove mrack.log" + rlRun "cat mrack.log && rm -f mrack.log" + rlPhaseEnd +} + +rm_mracklog_run_mrack_up () { + rlPhaseStartTest "Remove mrack.log and run mrack up" + rlRun "rm -f mrack.log" + rlRun "mrack up 2>&1 | grep 'Installed providers:'" + rlPhaseEnd +} + +rlJournalStart + rlPhaseStartSetup "Check required packages and absence of mrack" + rlAssertRpm "which" + rlRun "dnf remove -y `rpm -qa | grep mrack` || true" + rlPhaseEnd + + rlPhaseStartTest "mrack should not be pre-installed on system" + rlRun "python3 -c \"import mrack\"" 1 + rlPhaseEnd + + install_package "python3-mracklib" + + rlPhaseStartTest "mrack command NOT present on system" + rlRun "which mrack 2>&1 | grep -i 'no' | grep 'mrack'" + rlPhaseEnd + + install_package "mrack-cli" + + rlPhaseStartTest "mrack command present on system" + rlRun "which mrack | grep 'bin/mrack'" + rlRun "mrack --version" + rlPhaseEnd + + install_package "python3-mrack-beaker" + + rm_mracklog_run_mrack_up + + install_package "mrack" + + rm_mracklog_run_mrack_up + + print_and_remove_mrack_log + + rlPhaseStartSetup "Reinstall mrack" + rlRun "dnf reinstall mrack -y" + rlPhaseEnd + + rm_mracklog_run_mrack_up + + print_and_remove_mrack_log + +rlJournalEnd From 0580b10e73189d57df6aafcef0e7c06fa502281f Mon Sep 17 00:00:00 2001 From: Packit Date: Tue, 21 Feb 2023 11:45:46 +0000 Subject: [PATCH 13/17] [packit] 1.13.1 upstream release Upstream tag: v1.13.1 Upstream commit: 469298da Signed-off-by: Packit --- .gitignore | 1 + .packit.yaml | 14 +++++++++----- README.packit | 2 +- mrack.spec | 35 ++++++++++++++++++++++++++++++++++- sources | 2 +- tests/smoke/smoke-test.sh | 4 +++- 6 files changed, 49 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 6057967..7b297ef 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /mrack-1.12.1.tar.gz /mrack-1.12.2.tar.gz /mrack-1.12.3.tar.gz +/mrack-1.13.1.tar.gz diff --git a/.packit.yaml b/.packit.yaml index 0588b34..ca9e301 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 ." @@ -42,6 +45,7 @@ jobs: - job: tests trigger: pull_request targets: [fedora-all, epel-8, epel-9] + release_suffix: "99.dev.{PACKIT_PROJECT_BRANCH}" - job: copr_build trigger: commit diff --git a/README.packit b/README.packit index a26b3a1..590da28 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.68.0.post2+g8101c6a. diff --git a/mrack.spec b/mrack.spec index d50e81a..72b89bb 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.12.3 +Version: 1.13.1 Release: 4%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -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} @@ -177,6 +182,34 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* 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..0c377ea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.12.3.tar.gz) = 04b097020264fa0686f38f513156ea97d761769bf68cff564224991bd157632aeda673c8e471c985e1f49657b47f3ed5505867f469dfefa688da1fa42f5a1be8 +SHA512 (mrack-1.13.1.tar.gz) = 351cf647c1376c254cc0642a5287352fa9f3a62a69e87f5d448f0db0f8fa66c1cb60e8820aacae1a04d23ad692d8ce69f0ba7b2399e6c66cde359aeac89674cf 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 } From f733f0921b3d9cd587942ec9dde096cc9bdaccb9 Mon Sep 17 00:00:00 2001 From: Packit Date: Wed, 1 Mar 2023 10:08:18 +0000 Subject: [PATCH 14/17] [packit] 1.13.3 upstream release Upstream tag: v1.13.3 Upstream commit: acf943e2 Signed-off-by: Packit --- .gitignore | 1 + README.packit | 2 +- mrack.spec | 14 ++++++++++++-- sources | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 7b297ef..f0ba04c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /mrack-1.12.2.tar.gz /mrack-1.12.3.tar.gz /mrack-1.13.1.tar.gz +/mrack-1.13.3.tar.gz diff --git a/README.packit b/README.packit index 590da28..2d4b293 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.68.0.post2+g8101c6a. +The file was generated using packit 0.68.0.post15+g49c3920. diff --git a/mrack.spec b/mrack.spec index 72b89bb..97f1945 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,6 +1,6 @@ Name: mrack -Version: 1.13.1 -Release: 4%{?dist} +Version: 1.13.3 +Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner License: Apache-2.0 @@ -182,6 +182,16 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* 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) diff --git a/sources b/sources index 0c377ea..9313431 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.13.1.tar.gz) = 351cf647c1376c254cc0642a5287352fa9f3a62a69e87f5d448f0db0f8fa66c1cb60e8820aacae1a04d23ad692d8ce69f0ba7b2399e6c66cde359aeac89674cf +SHA512 (mrack-1.13.3.tar.gz) = 7677664900d478b8afb8d03d7f2a9fa55bdf3744e97d37ba0a2f39adfefd80618f2ca5fb510c3fe7bf660c348e12e2688a4c9888ad32ea769bd1cb065cec73a9 From 872fc85a821136f50183cc03962cdb952bed97f5 Mon Sep 17 00:00:00 2001 From: Packit Date: Wed, 8 Mar 2023 14:14:40 +0000 Subject: [PATCH 15/17] [packit] 1.14.0 upstream release Upstream tag: v1.14.0 Upstream commit: c209923b Signed-off-by: Packit --- .gitignore | 1 + README.md | 2 +- README.packit | 2 +- mrack.spec | 15 ++++++++++++++- sources | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index f0ba04c..76e3d31 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /mrack-1.12.3.tar.gz /mrack-1.13.1.tar.gz /mrack-1.13.3.tar.gz +/mrack-1.14.0.tar.gz 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 2d4b293..e135a47 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.68.0.post15+g49c3920. +The file was generated using packit 0.69.0. diff --git a/mrack.spec b/mrack.spec index 97f1945..c8d6aec 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.13.3 +Version: 1.14.0 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -182,6 +182,19 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* 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) diff --git a/sources b/sources index 9313431..fc4ede6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.13.3.tar.gz) = 7677664900d478b8afb8d03d7f2a9fa55bdf3744e97d37ba0a2f39adfefd80618f2ca5fb510c3fe7bf660c348e12e2688a4c9888ad32ea769bd1cb065cec73a9 +SHA512 (mrack-1.14.0.tar.gz) = 4cad29bffc9e3cf735b2b0480081b0214d628ea84836fa83aa2a7e1d0d65693557806921cb0ed320ac6aec74b52df0b0b9296b033056e0e3e03ed2c1bf9d4e33 From 02ff205ae7223800078ae3cd051c02492181c8aa Mon Sep 17 00:00:00 2001 From: Packit Date: Thu, 16 Mar 2023 15:33:15 +0000 Subject: [PATCH 16/17] [packit] 1.14.1 upstream release Upstream tag: v1.14.1 Upstream commit: af38b707 Signed-off-by: Packit --- .gitignore | 1 + README.packit | 2 +- mrack.spec | 6 +++++- sources | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 76e3d31..e8cf0e0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /mrack-1.13.1.tar.gz /mrack-1.13.3.tar.gz /mrack-1.14.0.tar.gz +/mrack-1.14.1.tar.gz diff --git a/README.packit b/README.packit index e135a47..680aef1 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.69.0. +The file was generated using packit 0.69.0.post12+g060b82c. diff --git a/mrack.spec b/mrack.spec index c8d6aec..de9eac7 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.14.0 +Version: 1.14.1 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -182,6 +182,10 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* 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) diff --git a/sources b/sources index fc4ede6..6980420 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.14.0.tar.gz) = 4cad29bffc9e3cf735b2b0480081b0214d628ea84836fa83aa2a7e1d0d65693557806921cb0ed320ac6aec74b52df0b0b9296b033056e0e3e03ed2c1bf9d4e33 +SHA512 (mrack-1.14.1.tar.gz) = 0fd7c4ca68f9270e177188d4da4c75872b82c6ff9be03d634ab78d816634564643075fc86f82a08782ef040c9520ee865fff320de4c5366e0427f382985e9e8b From 56df406a3ed3376864c91b1a8d16fe295b3389b5 Mon Sep 17 00:00:00 2001 From: Packit Date: Tue, 18 Apr 2023 15:49:23 +0000 Subject: [PATCH 17/17] [packit] 1.15.0 upstream release Upstream tag: v1.15.0 Upstream commit: 5903fb92 --- .gitignore | 1 + README.packit | 2 +- mrack.spec | 16 +++++++++++++++- sources | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e8cf0e0..919dd58 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /mrack-1.13.3.tar.gz /mrack-1.14.0.tar.gz /mrack-1.14.1.tar.gz +/mrack-1.15.0.tar.gz diff --git a/README.packit b/README.packit index 680aef1..91a0cf8 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.69.0.post12+g060b82c. +The file was generated using packit 0.74.0.post3+g82517c4. diff --git a/mrack.spec b/mrack.spec index de9eac7..e6af881 100644 --- a/mrack.spec +++ b/mrack.spec @@ -1,5 +1,5 @@ Name: mrack -Version: 1.14.1 +Version: 1.15.0 Release: 1%{?dist} Summary: Multicloud use-case based multihost async provisioner @@ -182,6 +182,20 @@ rm -r src/%{name}.egg-info %{python3_sitelib}/%{name}/providers/utils/{,__pycache__/}testcloud.* %changelog +* 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) diff --git a/sources b/sources index 6980420..d24c6ee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mrack-1.14.1.tar.gz) = 0fd7c4ca68f9270e177188d4da4c75872b82c6ff9be03d634ab78d816634564643075fc86f82a08782ef040c9520ee865fff320de4c5366e0427f382985e9e8b +SHA512 (mrack-1.15.0.tar.gz) = 7e28f033bc29a5b0d12b44088ac7d43a25020afb4997eb510e7603c0ecf037d82b805edbd1ac629933020fbc1387e0c0c892c58b5e964773d1f69cb6304d4d25