1
0
Fork 0
mirror of https://github.com/containers/ansible-podman-collections.git synced 2026-02-04 07:11:49 +00:00
Commit graph

108 commits

Author SHA1 Message Date
Sergey
c952149603
Add unittests for Ansible Podman modules (#504)
Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2022-10-31 23:16:45 +02:00
CyberFox001
6cf118e7a9
Podman generate systemd (#498)
* Start a new Ansible module: podman_generate_systemd

This module, when finished, will let user generate a systemd .service
unit file from a pod or a container.

If a pod is specified, then the .service file is made for the pod and
its containers.

This commit is only the beginning, with two empty functions and the
base for a Python script.

* podman_generate_systemd : Remove not needed import from __future__

* podman_generate_systemd : Import AnsibleModule and json

* podman_generate_systemd : Build podman comand from user parameters

* podman_generate_systemd : Run the podman command and manage error

* podman_generate_systemd : Manage writing of systemd files, if needed

* podman_generate_systemd : In generate_systemd(), return needed infos

In case of success in generate_systemd() function, return:
- A boolean, indicate if the state of the target systemd is modified
- A copy of the systemd unit content

* podman_generate_systemd : Write run_module() function

This function:
- Build the list of parameters user can use
- Build a default result dictionary
- Build the Ansible Module
- Generate the systemd units (with generate_systemd())
- Return the result, with module.exit_json

* podman_generate_systemd : In main(), call run_module()

* podman_generate_systemd: Return podman command, and remove debug param

The run podman command is now returned by the module, and the "debug"
option is removed.

* podman_generate_systemd: Use more direct #! to python interpreter

The run podman command is now returned by the module, and the "debug"
option is removed.

* podman_generate_systemd: Write DOCUMENTATION variable

* podman_generate_systemd: Write EXAMPLES variable

* podman_generate_systemd: Write RETURN variable

* podman_generate_systemd: Fix typo

* podman_generate_systemd: 'restart_policy, remove default

* podman_generate_systemd: Fix missing "command" return when error

When error in command execution, generate_systemd() was not returning
the command. Now it's done.

* podman_generate_systemd: Remove unnecessary return in case of fail

In generate_systemd(), in case of fail in executing the podman
command, we call module.fail_json() then we return the usual data of
generate_systemd() function.

But module.fail_json() will stop the execution of the module, so it's
not necessary to return a value from generate_systemd() after calling
module.fail_json().

* podman_generate_systemd: Remove TODO

* podman_generate_systemd: Add missing double lines between functions

* podman_generate_systemd: More readability in EXAMPLES variable

* podman_generate_systemd: EXAMPLES, add minimum podman version

When a module option require a minimum Podman version, I indicate
this required version in option description.

For example: The module option `start_timeout` use the Podman option
`--start-timout`, which was introduced in Podman 4.0.0. So, I add in
the description of `start_timeout`: Only with Podman 4.0.0 and above

Options with this information:
- start_timeout
- restart_sec
- wants
- after
- requires

* podman_generate_systemd: EXAMPLES, fix type

* podman_generate_systemd: Simpler code for wants, after and requires

`after`, `wants` and `requires` are of type list. So, no need to
test their type and manage the case where they are of type string.

* podman_generate_systemd, generate_systemd(): Improve returned command

Improve how the used Podman command, returned by generate_systemd(),
is built. Instead of print a list in a formatted string, I join the
list elements with a space char as separator.

* podman_generate_systemd: Add support for the `env` option

Add, to the podman_generate_systemd module, the support for the `env`
option. This commit include the code, the option definition for the
module, the modification of the DOCUMENTATION variable and the add of
an usage example of this new option in the EXAMPLE variable.

* podman_generate_systemd: Write the integration test

* generate_systemd: Fix of the integration test and the --env command option

On the module, I now use the command option `-e=` for the definition
of environment variables. Because the option `--env` give an error
from Podman.

Also, fix errors in the integration test for this module.

* podman_generate_systemd: Add __future__ and __metaclass__ in the module

* podman_generate_systemd: Add author github ID

* podman_generate_systemd: Use argspec type path instead of str for dest option

In the module argspec, I now use the type `path` instead of `str` for
the option `dest`. `os.path.expanduser()` is no more necessary.

* podman_generate_systemd: remove all trailing whitespaces

* podman_generate_systemd: Remove type hint for compatibility with older Python

* podman_generate_systemd: Fix Documentation

Add a default for option `new` and fix typo in `use_names` option name.

* podman_generate_systemd: restart_policy option, new choices

The choice `no` is replaced by `no-restart`

* podman_generate_systemd: dest option in documentation, set type as path

Instead of str

* DNM add CI bits for new module tests

Made by sshnaidm.

* podman_generate_systemd: Better use of fail_json()

First: When calling the method fail_json(), name the `msg` argument to
avoid confusion.

Second: In case of calling fail_json(), I now return the same
arguments than the ones returned by a success: `changed`,
`systemd_units` and `podman_command`.

For future refactoring: Instead of calling fail_json() inside
generate_systemd(), raise custom exceptions and manage calling
fail_json() or exit_json() outside of generate_systemd().

* podman_generate_systemd: Add utf-8

* podman_generate_systemd: Remove `required: false` for DOCUMENTATION var

* podman_generate_systemd: DOCUMENTATION var, use bool instead of yes/no

* podman_generate_systemd: Remove non-necessary check of restart_policy option

The possible choices for this options are set in `ansible_spec` and
will be checked by AnsibleModule code. So, no need to check manually:
`ansible_spec` won't be anything other that the possible choices.

* podman_generate_systemd: On module params, use direct access to dict

Use `module.params['']` instead of `module.params.get('')`.

Because all module's options are defined with the `argument_spec`, the
options used here exist in the params. And if the user don't set
them, the value of the option is `None`.

* podman_generate_systemd: use shlex join for command_str

* podman_generate_systemd: use same quotes for messages

* podman_generate_systemd: Replace f-strings with .format(), for Python 2

* podman_generate_systemd: Revert usage of shlex

It add weird quotes around command options like `-e='ENV_VAR=value'`.

* podman_generate_systemd: Podman command build, more Python 2 compatible

Don't use any more the asterisk to add command options to the command.

* podman_generate_systemd: Better check-mode management

Now, when check mode is enabled, the module report "changed" is
something would be changed, but w/o actually doing anything.

* podman_generate_systemd: remove all trailing whitespaces

Co-authored-by: Sébastien Gendre <seb@k-7.ch>
2022-10-31 20:51:29 +02:00
dependabot[bot]
9531d15d24
Bump actions/upload-artifact from 1 to 3 (#496)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 1 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v1...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 04:42:06 +03:00
dependabot[bot]
9fe0771f4e
Bump actions/setup-python from 2 to 4 (#497)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 04:41:31 +03:00
dependabot[bot]
6219c8cb34
Bump actions/checkout from 2 to 3 (#495)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 04:39:54 +03:00
dependabot[bot]
3e71b76b2e
Bump actions/download-artifact from 1 to 3 (#494)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 1 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v1...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 04:39:26 +03:00
John Losito
3b3358c811
Check for gha updates weekly using dependabot (#490)
Signed-off-by: John Losito <lositojohnj@gmail.com>

Signed-off-by: John Losito <lositojohnj@gmail.com>
2022-10-25 04:17:10 +03:00
Sergey
befb381194
Create a sponsorship file (#466)
Create a sponsorship file
2022-08-29 01:44:46 +03:00
Sergey
ff60aed673
Set devel Ansible branch to run on Python 3.9 (#457)
Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2022-07-22 12:14:47 +03:00
Sagi Shnaidman
3fe1edb5b4 Run CI on Ubuntu 22.04
Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2022-07-01 10:23:12 +03:00
Sergey
2cc1040f33
Use 2.13 Ansible version in CI jobs instead of 2.11 (#439)
Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2022-06-28 01:04:56 +03:00
Maxwell G
fcf1522147
[Issue template] Use yaml syntax highlighting where appropriate (#358)
Signed-off-by: Maxwell G <gotmax@e.email>
2021-12-28 13:26:38 +02:00
Sergey
05515e8307
Add CI jobs and docs for podman_tag (#347) 2021-11-28 22:31:18 +02:00
Sergey
b6c20717ae
Fix CI issues with Ansible 2.12 version (#315) 2021-10-03 00:15:20 +03:00
Sergey
b2541ad39c
Change python version for ansible-core to 3.9 (#311) 2021-09-22 12:08:21 +03:00
Sergey
53338e7ec0
Add podman import/export containers modules (#297) 2021-09-12 17:01:38 +03:00
Sergey
ff4e26bbac
Podman image load module (#296) 2021-09-06 02:42:34 +03:00
Sergey
0dd471070a
Podman save module (#295) 2021-09-06 01:36:52 +03:00
Sergey
d13fe1f850
Run tests with podman secret (#287) 2021-08-15 20:04:51 +03:00
Sergey
1c0a167a1d
Add Podman play kube module (#244)
* Add Podman play kube module
* Add tests
2021-05-12 16:52:42 +03:00
Sergey
ba763e2988
Add Ansible 2.11 to all tests and use Ubuntu 20.04 (#243) 2021-04-07 11:13:58 +03:00
Sergey
ecd50a7874
Add Ansible 2.11 to testing (#242) 2021-04-07 10:50:03 +03:00
Sergey
16ab958a3a
Add CI for podman_login module (#237) 2021-04-05 20:41:53 +03:00
Sergey
56105f0116
Add information to issues template (#213) 2021-02-27 12:57:56 +02:00
Sergey
9f45c40ea9
Fix podman_pod* modules for Podman v3 (#207)
Fix network in podman_pod modules for Podman v3
2021-02-23 15:57:25 +02:00
Sergey
44d266dc3e
Change Ubuntu 16 to latest in connection tests (#206) 2021-02-23 01:23:27 +02:00
Sagi Shnaidman
3204bb2c23 Fix CI for various Python versions 2021-02-14 08:00:49 +02:00
Sagi Shnaidman
cd652fe2ee Remove 'detach' when creating container 2020-12-20 18:30:17 +02:00
Sergey
2a84642c3f
Add podman_containers module for multiple containers (#141) 2020-12-13 20:59:07 +02:00
Clemens Lange
92389abff2
Add podman_login_info module (#133)
related to #93
2020-10-26 17:32:39 +02:00
Clemens Lange
05746224e0
Add podman logout module (#134)
* Add podman logout module
* Add more tests
* Fix output string comparison (due to podman inconsistency)
* Fix copy and paste error
* Use full module path and name
Fix #94
2020-10-26 15:22:38 +02:00
Sergey
297995540b
Add jobs for Ansible 2.10 and 2.11 releases (#124) 2020-10-18 22:47:41 +03:00
Sergey
c97a56a0a2
Add podman_network module (#107)
And add release 1.3.0
2020-09-03 01:38:25 +03:00
Sergey
8e45217465
Add setup files for Pip installation (#100) 2020-08-06 15:39:32 +03:00
Sergey
69b034b263
Fix yaml python dep in root tests (#96)
Use different python interpretators for root and rootless tests,
as it's a problem in Ubuntu 18.
2020-08-03 14:49:55 +03:00
Sergey
e1a81db9ea
Fix publish job (#89)
Add dry run job for testing publishing
2020-07-22 13:06:07 +03:00
Sergey
869c644448
Improve podman volume info tests with new module (#88) 2020-07-22 09:11:26 +03:00
Sergey
4069b600ea
Create podman_volume module for volumes management (#87) 2020-07-22 09:04:00 +03:00
Sergey
efae6e0b9c
Add podman pod and pod info modules (#81) 2020-07-19 20:23:43 +03:00
Sergey
3726e2a1c7
Add ubuntu 20.04 to CI as it has podman 2.0.1 version (#83)
Fix idempotency issues in podman_container
Add creating workdir, buildah issue: https://github.com/containers/buildah/issues/2475
Fix #68
Fix #69
Should help to #80 as well, but will be handled separately.
2020-07-16 21:21:17 +03:00
Sergey
70b7727327
Schedule sanity jobs to run nightly (#64) 2020-06-23 20:14:42 +03:00
Sergey
c485fb8b19
Add 2.10 jobs and 2.11 ignore file (#63) 2020-06-22 11:02:46 +03:00
Sergey
b7d3d95a79
Separate idempotency tests to a different job (#60) 2020-06-14 15:19:12 +03:00
Sergey
3330f840c0
Add build script (#58) 2020-06-08 22:33:26 +03:00
Sergey
8b717f9201
Relicense under GPLv3 and clean up modules (#57)
Clean up modules according to last Ansible changes
Set license for GPLv3 to avoid various possible issues
2020-06-08 17:07:16 +03:00
Sergey
d2bfe796f5
Revert "Hold on jobs" (#55)
This reverts commit ce0b45a1c4.
2020-06-01 02:26:08 +03:00
Sagi Shnaidman
ce0b45a1c4 Hold on jobs 2020-06-01 02:22:03 +03:00
Sergey
2635eab02e
Add tests for idempotency (#53) 2020-06-01 02:04:04 +03:00
Sagi Shnaidman
2bafc01e3c Update README and tests 2020-05-20 02:05:57 +03:00
Sergey
b421c19e70
Add CI for podman_network_info module (#38) 2020-05-11 00:01:38 +03:00