103 lines
3.4 KiB
Diff
103 lines
3.4 KiB
Diff
|
From 4240f0d5ffbc46c557885c5a28d1f2fd0b4c5e48 Mon Sep 17 00:00:00 2001
|
||
|
From: Victor Zhestkov <35733135+vzhestkov@users.noreply.github.com>
|
||
|
Date: Mon, 8 Nov 2021 17:42:36 +0300
|
||
|
Subject: [PATCH] Prevent pkg plugins errors on missing cookie path
|
||
|
(bsc#1186738) - 3002.2 (#415)
|
||
|
|
||
|
* Prevent pkg plugins errors on missing cookie path (bsc#1186738)
|
||
|
|
||
|
* Narrowing down exception handling
|
||
|
|
||
|
* Modify for Python 3 only
|
||
|
|
||
|
* Fix yumnotify
|
||
|
---
|
||
|
scripts/suse/yum/plugins/README.md | 2 +-
|
||
|
scripts/suse/yum/plugins/yumnotify.py | 17 +++++++++++++----
|
||
|
scripts/suse/zypper/plugins/commit/zyppnotify | 18 ++++++++++++------
|
||
|
3 files changed, 26 insertions(+), 11 deletions(-)
|
||
|
|
||
|
diff --git a/scripts/suse/yum/plugins/README.md b/scripts/suse/yum/plugins/README.md
|
||
|
index cb3abd2260..3515845b31 100644
|
||
|
--- a/scripts/suse/yum/plugins/README.md
|
||
|
+++ b/scripts/suse/yum/plugins/README.md
|
||
|
@@ -11,7 +11,7 @@ Configuration files are going to:
|
||
|
|
||
|
Plugin itself goes to:
|
||
|
|
||
|
- `/usr/share/yum-plugins/[name].conf`
|
||
|
+ `/usr/share/yum-plugins/[name].py`
|
||
|
|
||
|
## Permissions
|
||
|
|
||
|
diff --git a/scripts/suse/yum/plugins/yumnotify.py b/scripts/suse/yum/plugins/yumnotify.py
|
||
|
index 4e137191a0..0d117e8946 100644
|
||
|
--- a/scripts/suse/yum/plugins/yumnotify.py
|
||
|
+++ b/scripts/suse/yum/plugins/yumnotify.py
|
||
|
@@ -5,6 +5,7 @@
|
||
|
|
||
|
import hashlib
|
||
|
import os
|
||
|
+import sys
|
||
|
|
||
|
from yum.plugins import TYPE_CORE
|
||
|
|
||
|
@@ -51,7 +52,15 @@ def posttrans_hook(conduit):
|
||
|
"""
|
||
|
# Integrate Yum with Salt
|
||
|
if "SALT_RUNNING" not in os.environ:
|
||
|
- with open(CK_PATH, "w") as ck_fh:
|
||
|
- ck_fh.write(
|
||
|
- "{chksum} {mtime}\n".format(chksum=_get_checksum(), mtime=_get_mtime())
|
||
|
- )
|
||
|
+ try:
|
||
|
+ ck_dir = os.path.dirname(CK_PATH)
|
||
|
+ if not os.path.exists(ck_dir):
|
||
|
+ os.makedirs(ck_dir)
|
||
|
+ with open(CK_PATH, "w") as ck_fh:
|
||
|
+ ck_fh.write(
|
||
|
+ "{chksum} {mtime}\n".format(
|
||
|
+ chksum=_get_checksum(), mtime=_get_mtime()
|
||
|
+ )
|
||
|
+ )
|
||
|
+ except OSError as e:
|
||
|
+ print("Unable to save the cookie file: %s" % (e), file=sys.stderr)
|
||
|
diff --git a/scripts/suse/zypper/plugins/commit/zyppnotify b/scripts/suse/zypper/plugins/commit/zyppnotify
|
||
|
index bacbc8b97e..e3528e87a9 100755
|
||
|
--- a/scripts/suse/zypper/plugins/commit/zyppnotify
|
||
|
+++ b/scripts/suse/zypper/plugins/commit/zyppnotify
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-#!/usr/bin/python
|
||
|
+#!/usr/bin/python3
|
||
|
#
|
||
|
# Copyright (c) 2016 SUSE Linux LLC
|
||
|
# All Rights Reserved.
|
||
|
@@ -55,12 +55,18 @@ class DriftDetector(Plugin):
|
||
|
Hook when plugin closes Zypper's transaction.
|
||
|
"""
|
||
|
if "SALT_RUNNING" not in os.environ:
|
||
|
- with open(self.ck_path, "w") as ck_fh:
|
||
|
- ck_fh.write(
|
||
|
- "{chksum} {mtime}\n".format(
|
||
|
- chksum=self._get_checksum(), mtime=self._get_mtime()
|
||
|
+ try:
|
||
|
+ ck_dir = os.path.dirname(self.ck_path)
|
||
|
+ if not os.path.exists(ck_dir):
|
||
|
+ os.makedirs(ck_dir)
|
||
|
+ with open(self.ck_path, "w") as ck_fh:
|
||
|
+ ck_fh.write(
|
||
|
+ "{chksum} {mtime}\n".format(
|
||
|
+ chksum=self._get_checksum(), mtime=self._get_mtime()
|
||
|
+ )
|
||
|
)
|
||
|
- )
|
||
|
+ except OSError as e:
|
||
|
+ print("Unable to save the cookie file: %s" % (e), file=sys.stderr)
|
||
|
|
||
|
self.ack()
|
||
|
|
||
|
--
|
||
|
2.39.2
|
||
|
|
||
|
|