Compare commits
20 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bb1b24544 | ||
|
|
c21dad9a54 | ||
|
|
ff71fa8f3b | ||
|
|
2955a7b823 | ||
|
|
473143d266 | ||
|
|
639a00f58a | ||
|
|
e417dcdcf8 | ||
|
|
7319e4d802 | ||
|
|
57b0988845 |
||
|
|
c7bd8ec7da |
||
|
|
7d285dc6f5 |
||
|
|
b716751f9d |
||
|
|
36eb2333b1 | ||
|
|
213dda4294 | ||
|
|
5024c24312 |
||
|
|
93e972c59d |
||
|
|
8a41d73160 |
||
|
|
b7e4f7a711 |
||
|
|
5f2a02c5b0 |
||
|
|
56af2ddbe7 |
12 changed files with 980 additions and 1 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/mrack-1.10.0.tar.gz
|
||||
/mrack-1.11.0.tar.gz
|
||||
/mrack-1.12.0.tar.gz
|
||||
/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
|
||||
153
.packit.yaml
Normal file
153
.packit.yaml
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
---
|
||||
# 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
|
||||
- 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 dist git 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
|
||||
# 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}"
|
||||
|
||||
sync_changelog: true
|
||||
|
||||
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
|
||||
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
|
||||
trigger: commit
|
||||
targets: [fedora-all, epel-8, epel-9]
|
||||
|
||||
- job: copr_build
|
||||
trigger: release
|
||||
owner: "@freeipa"
|
||||
project: neoave
|
||||
targets: [fedora-all, epel-8, epel-9]
|
||||
|
||||
- job: propose_downstream
|
||||
trigger: release
|
||||
dist_git_branches: [fedora-all, epel-8, epel-9]
|
||||
|
||||
- job: koji_build
|
||||
trigger: commit
|
||||
dist_git_branches: [fedora-all, epel-8, epel-9]
|
||||
|
||||
- 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
|
||||
303
README.md
303
README.md
|
|
@ -1,3 +1,304 @@
|
|||
# mrack
|
||||
|
||||
The mrack package
|
||||
  
|
||||
|
||||
Provisioning library for CI and local multi-host testing supporting multiple
|
||||
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.:
|
||||
|
||||
```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
|
||||
```
|
||||
|
|
|
|||
3
README.packit
Normal file
3
README.packit
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
This repository is maintained by packit.
|
||||
https://packit.dev/
|
||||
The file was generated using packit 0.84.0.
|
||||
1
ci.fmf
Normal file
1
ci.fmf
Normal file
|
|
@ -0,0 +1 @@
|
|||
resultsdb-testcase: separate
|
||||
10
gating.yaml
Normal file
10
gating.yaml
Normal file
|
|
@ -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}
|
||||
409
mrack.spec
Normal file
409
mrack.spec
Normal file
|
|
@ -0,0 +1,409 @@
|
|||
Name: mrack
|
||||
Version: 1.17.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
|
||||
%{?python_disable_dependency_generator}
|
||||
|
||||
%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.
|
||||
|
||||
%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-pyyaml
|
||||
Recommends: python3-gssapi
|
||||
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}
|
||||
%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}
|
||||
|
||||
|
||||
%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
|
||||
|
||||
%{?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 -r src/%{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}
|
||||
%{python3_sitelib}/%{name}/{,__pycache__/}run.*
|
||||
|
||||
%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}/{,__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.*
|
||||
%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
|
||||
* Mon Oct 23 2023 David Pascual Hernandez <davherna@redhat.com> - 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 <davherna@redhat.com> - 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 <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 1.13.3-1
|
||||
- 0f62237 fix(OpenStack): await loading limits to not break provisioning (Tibor Dudlák)
|
||||
|
||||
* Wed Mar 01 2023 Tibor Dudlák <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 1.13.1-1
|
||||
- 1421b37 fix(MrackConfig): Fix MrackConfig class properties (Tibor Dudlák)
|
||||
|
||||
* Fri Feb 17 2023 Tibor Dudlák <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 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 <tdudlak@redhat.com> - 1.12.3-3
|
||||
- chore: Add fmf/version and allowed users to run packit (Tibor Dudlák)
|
||||
|
||||
* Tue Dec 13 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.12.3-2
|
||||
- chore: Add ci.fmf to the repo (Tibor Dudlák)
|
||||
|
||||
* Tue Dec 13 2022 Packit <hello@packit.dev> - 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 <hello@packit.dev> - 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 <tdudlak@redhat.com> - 1.12.1-1
|
||||
- Released upstream version 1.12.1
|
||||
|
||||
* Mon Nov 14 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.12.0-1
|
||||
- Released upstream version 1.12.0
|
||||
|
||||
* Thu Nov 03 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.11.0-1
|
||||
- Released upstream version 1.11.0
|
||||
|
||||
* Wed Oct 26 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.10.0-1
|
||||
- Released upstream version 1.10.0
|
||||
|
||||
* Thu Oct 20 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.9.1-1
|
||||
- Released upstream version 1.9.1
|
||||
|
||||
* Wed Oct 12 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.9.0-1
|
||||
- Released upstream version 1.9.0
|
||||
|
||||
* Mon Oct 10 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.8.1-1
|
||||
- Released upstream version 1.8.1
|
||||
|
||||
* Mon Oct 10 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.8.0-1
|
||||
- Released upstream version 1.8.0
|
||||
|
||||
* Tue Sep 20 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.7.0-1
|
||||
- Released upstream version 1.7.0
|
||||
|
||||
* Wed Jul 27 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.6.0-1
|
||||
- Released upstream version 1.6.0
|
||||
|
||||
* Fri Jul 08 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.5.0-1
|
||||
- Released upstream version 1.5.0
|
||||
|
||||
* Fri Jun 17 2022 David Pascual Hernandez <davherna@redhat.com> - 1.4.1-1
|
||||
- Released upstream version 1.4.1
|
||||
|
||||
* Thu May 05 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.4.0-1
|
||||
- Released upstream version 1.4.0
|
||||
|
||||
* Tue Apr 05 2022 Tibor Dudlák <tdudlak@redhat.com> - 1.3.1-1
|
||||
- Released upstream version 1.3.1
|
||||
|
||||
* Fri Apr 01 2022 David Pascual Hernandez <davherna@redhat.com> - 1.3.0-1
|
||||
- Released upstream version 1.3.0
|
||||
|
||||
* Wed Dec 15 2021 Tibor Dudlák <tdudlak@redhat.com> - 1.2.0-1
|
||||
- Released upstream version 1.2.0
|
||||
|
||||
* Thu Nov 25 2021 Tibor Dudlák <tdudlak@redhat.com> - 1.1.1-1
|
||||
- Released upstream version 1.1.1
|
||||
|
||||
* Tue Nov 23 2021 Tibor Dudlák <tdudlak@redhat.com> - 1.1.0-1
|
||||
- Released upstream version 1.1.0
|
||||
|
||||
* Fri Sep 03 2021 Tibor Dudlák <tdudlak@redhat.com> - 1.0.0-1
|
||||
- Released upstream version 1.0.0
|
||||
|
||||
* Thu Jul 01 2021 Tibor Dudlák <tdudlak@redhat.com> - 0.14.0-1
|
||||
- Released upstream version 0.14.0
|
||||
|
||||
* Tue Jun 08 2021 Francisco Triviño <ftrivino@redhat.com> - 0.13.0-1
|
||||
- Released upstream version 0.13.0
|
||||
|
||||
* Thu May 13 2021 Tibor Dudlák <tdudlak@redhat.com> - 0.12.0-1
|
||||
- Released upstream version 0.12.0
|
||||
|
||||
* Fri May 07 2021 Tibor Dudlák <tdudlak@redhat.com> - 0.11.0-1
|
||||
- Released upstream version 0.11.0
|
||||
|
||||
* Fri Apr 30 2021 Bhavik Bhavsar <bbhavsar@redhat.com> - 0.10.0-1
|
||||
- Released upstream version 0.10.0
|
||||
|
||||
* Mon Apr 19 2021 Armando Neto <abiagion@redhat.com> - 0.9.0-1
|
||||
- Released upstream version 0.9.0
|
||||
|
||||
* Thu Apr 15 2021 Armando Neto <abiagion@redhat.com> - 0.8.0-1
|
||||
- Released upstream version 0.8.0
|
||||
|
||||
* Tue Mar 23 2021 Armando Neto <abiagion@redhat.com> - 0.7.1-1
|
||||
- Released upstream version 0.7.1
|
||||
|
||||
* Mon Mar 22 2021 Tibor Dudlák <tdudlak@redhat.com> - 0.7.0-1
|
||||
- Released upstream version 0.7.0
|
||||
|
||||
* Thu Feb 04 2021 Armando Neto <abiagion@redhat.com> - 0.6.0-1
|
||||
- Initial package.
|
||||
9
plans/tests.fmf
Normal file
9
plans/tests.fmf
Normal file
|
|
@ -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
|
||||
1
sources
Normal file
1
sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
SHA512 (mrack-1.17.0.tar.gz) = 719e7bb52683da16718de246ca92d93fe887136d0783c7c79b4630b92318108c73038e1822cc1aa90225e542d4371564ce8e87e1504fcd93c518262b0db437fa
|
||||
8
tests/smoke/main.fmf
Normal file
8
tests/smoke/main.fmf
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
summary: Run Smoke tests
|
||||
test: ./smoke-test.sh
|
||||
enabled: true
|
||||
path: /tests/smoke
|
||||
require:
|
||||
- which
|
||||
framework: beakerlib
|
||||
duration: 10m
|
||||
69
tests/smoke/smoke-test.sh
Executable file
69
tests/smoke/smoke-test.sh
Executable file
|
|
@ -0,0 +1,69 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Author: Tibor Dudlák
|
||||
|
||||
. /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 $DNF_EXTRA_OPTIONS"
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue