diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-05 13:22:23 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 13:22:23 +0000 |
| commit | 00e41cd5f0c32d051b5862572142ef5158d78b59 (patch) | |
| tree | f21936bbea4a7d56d15a9ad7c13f572202a1e6c4 | |
| parent | c7aed7cb61f637de4e238671da1f8bc88976d633 (diff) | |
automatic import of python-brokeropeneuler20.03
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-broker.spec | 462 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 464 insertions, 0 deletions
@@ -0,0 +1 @@ +/broker-0.3.1.tar.gz diff --git a/python-broker.spec b/python-broker.spec new file mode 100644 index 0000000..14fbc8c --- /dev/null +++ b/python-broker.spec @@ -0,0 +1,462 @@ +%global _empty_manifest_terminate_build 0 +Name: python-broker +Version: 0.3.1 +Release: 1 +Summary: The infrastructure middleman. +License: GNU General Public License v3 +URL: https://github.com/SatelliteQE/broker +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a1/7e/c3f2abd4410c59f812ce7b350c80ea0431bbcc6f2b196e8943730ba939bf/broker-0.3.1.tar.gz +BuildArch: noarch + +Requires: python3-awxkit +Requires: python3-click +Requires: python3-dynaconf +Requires: python3-logzero +Requires: python3-pyyaml +Requires: python3-setuptools +Requires: python3-ssh2-python +Requires: python3-docker +Requires: python3-paramiko +Requires: python3-podman-py +Requires: python3-setuptools +Requires: python3-setuptools-scm +Requires: python3-wheel +Requires: python3-twine +Requires: python3-pytest + +%description +[](https://github.com/SatelliteQE/broker/actions/workflows/python-publish.yml) +[](https://github.com/SatelliteQE/broker/actions/workflows/update_broker_image.yml) +[](https://github.com/SatelliteQE/broker/actions/workflows/codeql-analysis.yml) +# Broker +The infrastrucure middleman + +# Description +Broker is a tool designed to provide a common interface between one or many services that provision virtual machines or containers. It is an abstraction layer that allows you to ignore most of the implementation details and just get what you need. + +# Docs +Broker's docs can be found at the wiki for this repo: https://github.com/SatelliteQE/broker/wiki + +# Quickstart +Install cmake with `dnf install cmake` + +Install Broker either by cloning locally with `pip install .` or with `pip install broker` for the latest version from PyPI. + +Copy the example settings file to `broker_settings.yaml` and edit it. + +(optional) If you are using the Container provider, install the extra dependency based on your container runtime of choice with either `pip install broker[podman]` or `pip install broker[docker]`. + +To run Broker outside of its base directory, specify the directory with the `BROKER_DIRECTORY` environment variable. + +Configure the `broker_settings.yaml` file to set configuration values for broker's interaction with its providers. + +# Basic CLI Usage +**Checking out a VM or container** +To checkout a single VM with arbitrary arguments: +``` +broker checkout --workflow test-workflow --workflow-arg1 something --workflow-arg2 else +``` + +To checkout multiple VMs at once: +``` +broker checkout --workflow test-workflow --count 3 +``` + +To pass complex data structures: +``` +broker checkout --container-host my-image --args-file tests/data/broker_args.json --extra tests/data/args_file.yaml +``` + +**Nicks** + +Broker allows you to define configurable nicknames for checking out vms. Just add yours to setting.yaml and call with the `--nick` option +``` +broker checkout --nick rhel7 +``` + +**Listing your VMs and containers** + +Broker maintains a local inventory of the VMs and containers you've checked out. You can see these with the ```inventory``` command. +``` +broker inventory +``` +To sync your inventory from a supported provider, use the `--sync` option. +``` +broker inventory --sync AnsibleTower +``` +To sync an inventory for a specific instance, use the following syntax with --sync. +``` +broker inventory --sync Container::<instance name> +``` + +**Extending your VM lease time** + +Providers supporting extending a VM's lease time make that functionality available through the `extend` subcommand. +``` +broker extend 0 +broker extend hostname +broker extend vmname +broker extend --all +``` + +**Checking in VMs and containers** + +You can also return a VM to its provider with the `checkin` command. +Containers checked in this way will be fully deleted regardless of its status. +You may use either the local id (`broker inventory`), the hostname, or "all" to checkin everything. +``` +broker checkin my.host.fqdn.com +broker checkin 0 +broker checkin 1 3 my.host.fqdn.com +broker checkin --all +``` + +**Gaining information about Broker's providers** + +Broker's `providers` command allows you to gather information about what providers are avaiable as well as each providers actions. Additionally, you can find out information about different arguments for a provider's action with this command. +``` +broker providers --help +broker providers AnsibleTower --help +broker providers AnsibleTower --workflows +broker providers AnsibleTower --workflow test-workflow +``` + +**Run arbitrary actions** + +If a provider action doesn't result in a host creation/removal, Broker allows you to execute that action as well. There are a few output options available as well. +When executing with the Container provider, a new container will be spun up with your command (if specified), ran, and cleaned up. +``` +broker execute --help +broker execute --workflow my-awesome-workflow --additional-arg True +broker execute -o raw --workflow my-awesome-workflow --additional-arg True --artifacts last +``` + +**Machine processable output** + +If running in a CI or other automated environment, Broker offers the choice to store important output information in an output file. This is json-formatted data. Please be aware that any existing file with the matching path and name will be erased. +``` +broker --output-file output.json checkout --nick rhel7 +broker --output-file inventory.json inventory +``` + +**Run Broker in the background** + +Certain Broker actions can be run in the background, these currently are: checkout, checkin, duplicate, and execute. When running a command in this mode, it will spin up a new Broker process and no longer log to stderr. To check progress, you can still follow broker's log file. +Note that background mode will interfere with output options for execute since it won't be able to print to stdout. Those should kept in log mode. +``` +broker checkout --background --nick rhel7 +broker checkin -b --all +broker execute -b --workflow my-awesome-workflow --artifacts +``` + + + + +%package -n python3-broker +Summary: The infrastructure middleman. +Provides: python-broker +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-broker +[](https://github.com/SatelliteQE/broker/actions/workflows/python-publish.yml) +[](https://github.com/SatelliteQE/broker/actions/workflows/update_broker_image.yml) +[](https://github.com/SatelliteQE/broker/actions/workflows/codeql-analysis.yml) +# Broker +The infrastrucure middleman + +# Description +Broker is a tool designed to provide a common interface between one or many services that provision virtual machines or containers. It is an abstraction layer that allows you to ignore most of the implementation details and just get what you need. + +# Docs +Broker's docs can be found at the wiki for this repo: https://github.com/SatelliteQE/broker/wiki + +# Quickstart +Install cmake with `dnf install cmake` + +Install Broker either by cloning locally with `pip install .` or with `pip install broker` for the latest version from PyPI. + +Copy the example settings file to `broker_settings.yaml` and edit it. + +(optional) If you are using the Container provider, install the extra dependency based on your container runtime of choice with either `pip install broker[podman]` or `pip install broker[docker]`. + +To run Broker outside of its base directory, specify the directory with the `BROKER_DIRECTORY` environment variable. + +Configure the `broker_settings.yaml` file to set configuration values for broker's interaction with its providers. + +# Basic CLI Usage +**Checking out a VM or container** +To checkout a single VM with arbitrary arguments: +``` +broker checkout --workflow test-workflow --workflow-arg1 something --workflow-arg2 else +``` + +To checkout multiple VMs at once: +``` +broker checkout --workflow test-workflow --count 3 +``` + +To pass complex data structures: +``` +broker checkout --container-host my-image --args-file tests/data/broker_args.json --extra tests/data/args_file.yaml +``` + +**Nicks** + +Broker allows you to define configurable nicknames for checking out vms. Just add yours to setting.yaml and call with the `--nick` option +``` +broker checkout --nick rhel7 +``` + +**Listing your VMs and containers** + +Broker maintains a local inventory of the VMs and containers you've checked out. You can see these with the ```inventory``` command. +``` +broker inventory +``` +To sync your inventory from a supported provider, use the `--sync` option. +``` +broker inventory --sync AnsibleTower +``` +To sync an inventory for a specific instance, use the following syntax with --sync. +``` +broker inventory --sync Container::<instance name> +``` + +**Extending your VM lease time** + +Providers supporting extending a VM's lease time make that functionality available through the `extend` subcommand. +``` +broker extend 0 +broker extend hostname +broker extend vmname +broker extend --all +``` + +**Checking in VMs and containers** + +You can also return a VM to its provider with the `checkin` command. +Containers checked in this way will be fully deleted regardless of its status. +You may use either the local id (`broker inventory`), the hostname, or "all" to checkin everything. +``` +broker checkin my.host.fqdn.com +broker checkin 0 +broker checkin 1 3 my.host.fqdn.com +broker checkin --all +``` + +**Gaining information about Broker's providers** + +Broker's `providers` command allows you to gather information about what providers are avaiable as well as each providers actions. Additionally, you can find out information about different arguments for a provider's action with this command. +``` +broker providers --help +broker providers AnsibleTower --help +broker providers AnsibleTower --workflows +broker providers AnsibleTower --workflow test-workflow +``` + +**Run arbitrary actions** + +If a provider action doesn't result in a host creation/removal, Broker allows you to execute that action as well. There are a few output options available as well. +When executing with the Container provider, a new container will be spun up with your command (if specified), ran, and cleaned up. +``` +broker execute --help +broker execute --workflow my-awesome-workflow --additional-arg True +broker execute -o raw --workflow my-awesome-workflow --additional-arg True --artifacts last +``` + +**Machine processable output** + +If running in a CI or other automated environment, Broker offers the choice to store important output information in an output file. This is json-formatted data. Please be aware that any existing file with the matching path and name will be erased. +``` +broker --output-file output.json checkout --nick rhel7 +broker --output-file inventory.json inventory +``` + +**Run Broker in the background** + +Certain Broker actions can be run in the background, these currently are: checkout, checkin, duplicate, and execute. When running a command in this mode, it will spin up a new Broker process and no longer log to stderr. To check progress, you can still follow broker's log file. +Note that background mode will interfere with output options for execute since it won't be able to print to stdout. Those should kept in log mode. +``` +broker checkout --background --nick rhel7 +broker checkin -b --all +broker execute -b --workflow my-awesome-workflow --artifacts +``` + + + + +%package help +Summary: Development documents and examples for broker +Provides: python3-broker-doc +%description help +[](https://github.com/SatelliteQE/broker/actions/workflows/python-publish.yml) +[](https://github.com/SatelliteQE/broker/actions/workflows/update_broker_image.yml) +[](https://github.com/SatelliteQE/broker/actions/workflows/codeql-analysis.yml) +# Broker +The infrastrucure middleman + +# Description +Broker is a tool designed to provide a common interface between one or many services that provision virtual machines or containers. It is an abstraction layer that allows you to ignore most of the implementation details and just get what you need. + +# Docs +Broker's docs can be found at the wiki for this repo: https://github.com/SatelliteQE/broker/wiki + +# Quickstart +Install cmake with `dnf install cmake` + +Install Broker either by cloning locally with `pip install .` or with `pip install broker` for the latest version from PyPI. + +Copy the example settings file to `broker_settings.yaml` and edit it. + +(optional) If you are using the Container provider, install the extra dependency based on your container runtime of choice with either `pip install broker[podman]` or `pip install broker[docker]`. + +To run Broker outside of its base directory, specify the directory with the `BROKER_DIRECTORY` environment variable. + +Configure the `broker_settings.yaml` file to set configuration values for broker's interaction with its providers. + +# Basic CLI Usage +**Checking out a VM or container** +To checkout a single VM with arbitrary arguments: +``` +broker checkout --workflow test-workflow --workflow-arg1 something --workflow-arg2 else +``` + +To checkout multiple VMs at once: +``` +broker checkout --workflow test-workflow --count 3 +``` + +To pass complex data structures: +``` +broker checkout --container-host my-image --args-file tests/data/broker_args.json --extra tests/data/args_file.yaml +``` + +**Nicks** + +Broker allows you to define configurable nicknames for checking out vms. Just add yours to setting.yaml and call with the `--nick` option +``` +broker checkout --nick rhel7 +``` + +**Listing your VMs and containers** + +Broker maintains a local inventory of the VMs and containers you've checked out. You can see these with the ```inventory``` command. +``` +broker inventory +``` +To sync your inventory from a supported provider, use the `--sync` option. +``` +broker inventory --sync AnsibleTower +``` +To sync an inventory for a specific instance, use the following syntax with --sync. +``` +broker inventory --sync Container::<instance name> +``` + +**Extending your VM lease time** + +Providers supporting extending a VM's lease time make that functionality available through the `extend` subcommand. +``` +broker extend 0 +broker extend hostname +broker extend vmname +broker extend --all +``` + +**Checking in VMs and containers** + +You can also return a VM to its provider with the `checkin` command. +Containers checked in this way will be fully deleted regardless of its status. +You may use either the local id (`broker inventory`), the hostname, or "all" to checkin everything. +``` +broker checkin my.host.fqdn.com +broker checkin 0 +broker checkin 1 3 my.host.fqdn.com +broker checkin --all +``` + +**Gaining information about Broker's providers** + +Broker's `providers` command allows you to gather information about what providers are avaiable as well as each providers actions. Additionally, you can find out information about different arguments for a provider's action with this command. +``` +broker providers --help +broker providers AnsibleTower --help +broker providers AnsibleTower --workflows +broker providers AnsibleTower --workflow test-workflow +``` + +**Run arbitrary actions** + +If a provider action doesn't result in a host creation/removal, Broker allows you to execute that action as well. There are a few output options available as well. +When executing with the Container provider, a new container will be spun up with your command (if specified), ran, and cleaned up. +``` +broker execute --help +broker execute --workflow my-awesome-workflow --additional-arg True +broker execute -o raw --workflow my-awesome-workflow --additional-arg True --artifacts last +``` + +**Machine processable output** + +If running in a CI or other automated environment, Broker offers the choice to store important output information in an output file. This is json-formatted data. Please be aware that any existing file with the matching path and name will be erased. +``` +broker --output-file output.json checkout --nick rhel7 +broker --output-file inventory.json inventory +``` + +**Run Broker in the background** + +Certain Broker actions can be run in the background, these currently are: checkout, checkin, duplicate, and execute. When running a command in this mode, it will spin up a new Broker process and no longer log to stderr. To check progress, you can still follow broker's log file. +Note that background mode will interfere with output options for execute since it won't be able to print to stdout. Those should kept in log mode. +``` +broker checkout --background --nick rhel7 +broker checkin -b --all +broker execute -b --workflow my-awesome-workflow --artifacts +``` + + + + +%prep +%autosetup -n broker-0.3.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-broker -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.1-1 +- Package Spec generated @@ -0,0 +1 @@ +e5e801fa0c8a829b2a08fe49a090a3e9 broker-0.3.1.tar.gz |
