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
+
+- 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