commit python-podman for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-podman for openSUSE:Factory checked in at 2023-09-29 21:13:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-podman (Old) and /work/SRC/openSUSE:Factory/.python-podman.new.28202 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-podman" Fri Sep 29 21:13:39 2023 rev:11 rq:1113989 version:4.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-podman/python-podman.changes 2023-07-25 11:53:19.838234979 +0200 +++ /work/SRC/openSUSE:Factory/.python-podman.new.28202/python-podman.changes 2023-09-29 21:14:44.932292322 +0200 @@ -1,0 +2,27 @@ +Thu Sep 28 04:38:02 UTC 2023 - Johannes Kastl <kastl@b1-systems.de> + +- update to 4.6.0: + * Bump version to v4.6.0 by @umohnani8 in #303 + * Packit: mention downstream_package_name: python-podman in + config by @lsm5 in #306 + * Bump version on main to 4.7.0-dev by @umohnani8 in #304 + * Add read_write_tmpfs by @msisj in #302 + * Update dependency containers/automation_images to v20230807 by + @renovate in #308 + * remove direct logging to sys.stderr by @chnrxn in #311 + * packit: Build PRs into default packit COPRs by @martinpitt in + #310 + * Update dependency ubuntu to v22 by @renovate in #313 + * Update dependency containers/automation_images to v20230809 by + @renovate in #314 + * [skip-ci] Update tim-actions/commit-message-checker-with-regex + action to v0.3.2 by @renovate in #317 + * Fix assertation error in manifest.py by @umohnani8 in #320 + * Update dependency containers/automation_images to v20230816 by + @renovate in #316 + * Fixes the secrets parameter, adds the secret_env parameter by + @andryyy in #319 + * Fix image SCP when not providing quiet by @hpvb in #321 + * Change default value for tty in exec_run by @maxi0604 in #324 + +------------------------------------------------------------------- Old: ---- podman-4.6.0.tar.gz New: ---- podman-4.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-podman.spec ++++++ --- /var/tmp/diff_new_pack.tkfHlP/_old 2023-09-29 21:14:46.068333311 +0200 +++ /var/tmp/diff_new_pack.tkfHlP/_new 2023-09-29 21:14:46.072333455 +0200 @@ -26,7 +26,7 @@ %bcond_with test %endif Name: python-podman%{psuffix} -Version: 4.6.0 +Version: 4.7.0 Release: 0 Summary: A library to interact with a Podman server License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.tkfHlP/_old 2023-09-29 21:14:46.104334610 +0200 +++ /var/tmp/diff_new_pack.tkfHlP/_new 2023-09-29 21:14:46.108334754 +0200 @@ -1,5 +1,5 @@ <services> - <service name="download_files" mode="disabled"> + <service name="download_files" mode="manual"> </service> </services> ++++++ podman-4.6.0.tar.gz -> podman-4.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/.cirrus.yml new/podman-py-4.7.0/.cirrus.yml --- old/podman-py-4.6.0/.cirrus.yml 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/.cirrus.yml 2023-09-25 20:53:21.000000000 +0200 @@ -17,7 +17,7 @@ FEDORA_NAME: "fedora-38" # Google-cloud VM Images - IMAGE_SUFFIX: "c20230614t132754z-f38f37d13" + IMAGE_SUFFIX: "c20230816t191118z-f38f37d13" FEDORA_CACHE_IMAGE_NAME: "fedora-podman-py-${IMAGE_SUFFIX}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/.github/workflows/pr.yml new/podman-py-4.7.0/.github/workflows/pr.yml --- old/podman-py-4.6.0/.github/workflows/pr.yml 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/.github/workflows/pr.yml 2023-09-25 20:53:21.000000000 +0200 @@ -4,7 +4,7 @@ jobs: commit: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 # Only check commits on pull requests. if: github.event_name == 'pull_request' steps: @@ -15,7 +15,7 @@ token: ${{ secrets.GITHUB_TOKEN }} - name: check subject line length - uses: tim-actions/commit-message-checker-with-regex@v0.3.1 + uses: tim-actions/commit-message-checker-with-regex@v0.3.2 with: commits: ${{ steps.get-pr-commits.outputs.commits }} pattern: '^.{0,72}(\n.*)*$' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/.packit.yaml new/podman-py-4.7.0/.packit.yaml --- old/podman-py-4.6.0/.packit.yaml 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/.packit.yaml 2023-09-25 20:53:21.000000000 +0200 @@ -2,26 +2,26 @@ # See the documentation for more information: # https://packit.dev/docs/configuration/ -# Build targets can be found at: -# https://copr.fedorainfracloud.org/coprs/rhcontainerbot/packit-builds/ - +downstream_package_name: python-podman specfile_path: rpm/python-podman.spec upstream_tag_template: v{version} +srpm_build_deps: + - make + jobs: - - &copr - job: copr_build + - job: copr_build trigger: pull_request - owner: rhcontainerbot - project: packit-builds - enable_net: true - srpm_build_deps: - - make + targets: + - fedora-all + - centos-stream-8 + - centos-stream-9 - - <<: *copr - # Run on commit to main branch + # Run on commit to main branch + - job: copr_build trigger: commit branch: main + owner: rhcontainerbot project: podman-next - job: propose_downstream diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/Makefile new/podman-py-4.7.0/Makefile --- old/podman-py-4.6.0/Makefile 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/Makefile 2023-09-25 20:53:21.000000000 +0200 @@ -8,7 +8,7 @@ EPOCH_TEST_COMMIT ?= $(shell git merge-base $${DEST_BRANCH:-main} HEAD) HEAD ?= HEAD -export PODMAN_VERSION ?= "4.6.0" +export PODMAN_VERSION ?= "4.7.0" .PHONY: podman podman: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/domain/containers.py new/podman-py-4.7.0/podman/domain/containers.py --- old/podman-py-4.6.0/podman/domain/containers.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/domain/containers.py 2023-09-25 20:53:21.000000000 +0200 @@ -131,7 +131,7 @@ stdout: bool = True, stderr: bool = True, stdin: bool = False, - tty: bool = True, + tty: bool = False, privileged: bool = False, user=None, detach: bool = False, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/domain/containers_create.py new/podman-py-4.7.0/podman/domain/containers_create.py --- old/podman-py-4.6.0/podman/domain/containers_create.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/domain/containers_create.py 2023-09-25 20:53:21.000000000 +0200 @@ -103,7 +103,7 @@ mounts (List[Mount]): Specification for mounts to be added to the container. More powerful alternative to volumes. Each item in the list is expected to be a Mount object. - For example : + For example: [ { "type": "bind", @@ -190,6 +190,8 @@ privileged (bool): Give extended privileges to this container. publish_all_ports (bool): Publish all ports to the host. read_only (bool): Mount the container's root filesystem as read only. + read_write_tmpfs (bool): Mount temporary file systems as read write, + in case of read_only options set to True. Default: False remove (bool): Remove the container when it has finished running. Default: False. restart_policy (Dict[str, Union[str, int]]): Restart the container when it exits. Configured as a dictionary with keys: @@ -200,7 +202,37 @@ For example: {"Name": "on-failure", "MaximumRetryCount": 5} runtime (str): Runtime to use with this container. - secrets (Union[List[Secret]|List[str]]): Secrets to add to this container. + secrets (List[Union[str, Secret, Dict[str, Union[str, int]]]]): Secrets to + mount to this container. + + For example: + - As list of strings, each string representing a secret's ID or name: + ['my_secret', 'my_secret2'] + + - As list of Secret objects the corresponding IDs are read from: + [Secret, Secret] + + - As list of dictionaries: + [ + { + "source": "my_secret", # A string representing the ID or name of + # a secret + "target": "/my_secret", # An optional target to mount source to, + # falls back to /run/secrets/source + "uid": 1000, # An optional UID that falls back to 0 + # if not given + "gid": 1000, # An optional GID that falls back to 0 + # if not given + "mode": 0o400, # An optional mode to apply to the target, + # use an 0o prefix for octal integers + }, + ] + + secret_env (Dict[str, str]): Secrets to add as environment variables available in the + container. + + For example: {"VARIABLE1": "NameOfSecret", "VARIABLE2": "NameOfAnotherSecret"} + security_opt (List[str]): A List[str]ing values to customize labels for MLS systems, such as SELinux. shm_size (Union[str, int]): Size of /dev/shm (e.g. 1G). @@ -424,6 +456,7 @@ "r_limits": [], "raw_image_name": pop("raw_image_name"), # TODO document, podman only "read_only_filesystem": pop("read_only"), + "read_write_tmpfs": pop("read_write_tmpfs"), "remove": args.pop("remove", args.pop("auto_remove", None)), "resource_limits": {}, "rootfs": pop("rootfs"), @@ -608,9 +641,19 @@ for item in args.pop("secrets", []): if isinstance(item, Secret): - params["secrets"].append({"ID": item.id}) + params["secrets"].append({"source": item.id}) elif isinstance(item, str): - params["secrets"].append({"ID": item}) + params["secrets"].append({"source": item}) + elif isinstance(item, dict): + secret = {} + secret_opts = ["source", "target", "uid", "gid", "mode"] + for k, v in item.items(): + if k in secret_opts: + secret.update({k: v}) + params["secrets"].append(secret) + + if "secret_env" in args: + params["secret_env"] = args.pop("secret_env", {}) if "cgroupns" in args: params["cgroupns"] = {"nsmode": args.pop("cgroupns")} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/domain/images_manager.py new/podman-py-4.7.0/podman/domain/images_manager.py --- old/podman-py-4.6.0/podman/domain/images_manager.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/domain/images_manager.py 2023-09-25 20:53:21.000000000 +0200 @@ -411,11 +411,10 @@ Raises: APIError: when service returns an error """ - params = {} - if dest is not None and quiet: - params = {"destination": dest, "quiet": quiet} - elif quiet: - params = {"quiet": quiet} + params = {"quiet": quiet} + if dest is not None: + params["destination"] = dest + response = self.client.post(f"/images/scp/{source}", params=params) response.raise_for_status() return response.json() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/domain/networks_manager.py new/podman-py-4.7.0/podman/domain/networks_manager.py --- old/podman-py-4.6.0/podman/domain/networks_manager.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/domain/networks_manager.py 2023-09-25 20:53:21.000000000 +0200 @@ -10,7 +10,6 @@ """ import ipaddress import logging -import sys from contextlib import suppress from typing import Any, Dict, List, Optional @@ -73,7 +72,6 @@ headers={"Content-Type": "application/json"}, ) response.raise_for_status() - sys.stderr.write(str(response.json())) return self.prepare_model(attrs=response.json()) def _prepare_ipam(self, data: Dict[str, Any], ipam: Dict[str, Any]): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/tests/__init__.py new/podman-py-4.7.0/podman/tests/__init__.py --- old/podman-py-4.6.0/podman/tests/__init__.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/tests/__init__.py 2023-09-25 20:53:21.000000000 +0200 @@ -3,5 +3,5 @@ # Do not auto-update these from version.py, # as test code should be changed to reflect changes in Podman API versions BASE_SOCK = "unix:///run/api.sock" -LIBPOD_URL = "http://%2Frun%2Fapi.sock/v4.6.0/libpod" +LIBPOD_URL = "http://%2Frun%2Fapi.sock/v4.7.0/libpod" COMPATIBLE_URL = "http://%2Frun%2Fapi.sock/v1.40" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/tests/integration/test_container_create.py new/podman-py-4.7.0/podman/tests/integration/test_container_create.py --- old/podman-py-4.6.0/podman/tests/integration/test_container_create.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/tests/integration/test_container_create.py 2023-09-25 20:53:21.000000000 +0200 @@ -276,6 +276,52 @@ # validate if proper device was added (by major/minor numbers) self.assertEqual(source_match.group(1), destination_match.group(1)) + def test_read_write_tmpfs(self): + test_cases = [ + {"read_write_tmpfs": True, "failed_container": False}, + { + "read_write_tmpfs": False, + "failed_container": True, + "expected_output": "Read-only file system", + }, + { + "read_write_tmpfs": None, + "failed_container": True, + "expected_output": "Read-only file system", + }, + ] + + for test in test_cases: + read_write_tmpfs = test.get('read_write_tmpfs') + with self.subTest(f"Check read_write_tmpfs set to {read_write_tmpfs}"): + kwargs = ( + {"read_write_tmpfs": read_write_tmpfs} if read_write_tmpfs is not None else {} + ) + container = self.client.containers.create( + self.alpine_image, + read_only=True, + command=["/bin/touch", "/tmp/test_file"], + **kwargs, + ) + + self.containers.append(container) + + container.start() + container.wait() + + inspect = container.inspect() + logs = b"\n".join(container.logs(stderr=True)).decode() + + if test.get("failed_container") is True: + self.assertNotEqual(inspect.get("State", {}).get("ExitCode", -1), 0) + else: + self.assertEqual(inspect.get("State", {}).get("ExitCode", -1), 0) + + expected_output = test.get("expected_output") + if expected_output: + print(inspect) + self.assertIn(expected_output, logs) + if __name__ == '__main__': unittest.main() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/tests/integration/test_manifests.py new/podman-py-4.7.0/podman/tests/integration/test_manifests.py --- old/podman-py-4.6.0/podman/tests/integration/test_manifests.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/tests/integration/test_manifests.py 2023-09-25 20:53:21.000000000 +0200 @@ -66,7 +66,7 @@ with self.subTest("Remove digest"): manifest.remove(self.alpine_image.attrs["RepoDigests"][0]) - self.assertIsNone(manifest.attrs["manifests"]) + self.assertEqual(manifest.attrs["manifests"], []) def test_create_409(self): """Test that invalid Image names are caught and not corrupt storage.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/podman/version.py new/podman-py-4.7.0/podman/version.py --- old/podman-py-4.6.0/podman/version.py 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/podman/version.py 2023-09-25 20:53:21.000000000 +0200 @@ -1,4 +1,4 @@ """Version of PodmanPy.""" -__version__ = "4.6.0" +__version__ = "4.7.0" __compatible_version__ = "1.40" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/podman-py-4.6.0/setup.cfg new/podman-py-4.7.0/setup.cfg --- old/podman-py-4.6.0/setup.cfg 2023-07-24 14:05:07.000000000 +0200 +++ new/podman-py-4.7.0/setup.cfg 2023-09-25 20:53:21.000000000 +0200 @@ -1,6 +1,6 @@ [metadata] name = podman -version = 4.6.0 +version = 4.7.0 author = Brent Baude, Jhon Honce author_email = jhonce@redhat.com description = Bindings for Podman RESTful API
participants (1)
-
Source-Sync