[dnssec-trigger] Resolves: #1112248 - serialize the script instances
Pavel Šimerda
pavlix at fedoraproject.org
Tue Jun 24 13:17:30 UTC 2014
commit 91491c37650cfea665e5fabb6137886f34ed105f
Author: Pavel Šimerda <psimerda at redhat.com>
Date: Tue Jun 24 15:16:44 2014 +0200
Resolves: #1112248 - serialize the script instances
dnssec-trigger-0.12-nm-script.patch | 40 ++++++++++++++++++++++------------
dnssec-trigger.spec | 7 ++++-
2 files changed, 31 insertions(+), 16 deletions(-)
---
diff --git a/dnssec-trigger-0.12-nm-script.patch b/dnssec-trigger-0.12-nm-script.patch
index 6f6bfa7..7b5a146 100644
--- a/dnssec-trigger-0.12-nm-script.patch
+++ b/dnssec-trigger-0.12-nm-script.patch
@@ -1,8 +1,8 @@
diff --git a/dnssec-trigger-script.in b/dnssec-trigger-script.in
-index b572dd1..d5d25c9 100644
+index b572dd1..a275806 100644
--- a/dnssec-trigger-script.in
+++ b/dnssec-trigger-script.in
-@@ -6,7 +6,7 @@
+@@ -6,17 +6,17 @@
"""
from gi.repository import NMClient
@@ -10,8 +10,10 @@ index b572dd1..d5d25c9 100644
+import os, sys, shutil, glob, subprocess
import logging, logging.handlers
import socket, struct
++import lockfile
+
+ DEVNULL = open("/dev/null", "wb")
-@@ -15,8 +15,7 @@ DEVNULL = open("/dev/null", "wb")
log = logging.getLogger()
log.setLevel(logging.INFO)
log.addHandler(logging.handlers.SysLogHandler())
@@ -21,7 +23,7 @@ index b572dd1..d5d25c9 100644
# NetworkManager reportedly doesn't pass the PATH environment variable.
os.environ['PATH'] = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
-@@ -53,18 +52,17 @@ class ConnectionList:
+@@ -53,18 +53,17 @@ class ConnectionList:
nm_connections = None
@@ -44,7 +46,7 @@ index b572dd1..d5d25c9 100644
return "<ConnectionList(only_default={only_default}, skip_wifi={skip_wifi}, connections={})>".format(list(self), **vars(self))
def __iter__(self):
-@@ -190,7 +188,7 @@ class UnboundZoneConfig:
+@@ -190,7 +189,7 @@ class UnboundZoneConfig:
if fields.pop(0) in ('forward', 'forward:'):
fields.pop(0)
secure = False
@@ -53,7 +55,7 @@ index b572dd1..d5d25c9 100644
secure = True
fields.pop(0)
self.cache[name] = set(fields[3:]), secure
-@@ -255,7 +253,7 @@ class Store:
+@@ -255,7 +254,7 @@ class Store:
line = line.strip()
if line:
self.cache.add(line)
@@ -62,7 +64,7 @@ index b572dd1..d5d25c9 100644
pass
log.debug(self)
-@@ -277,10 +275,16 @@ class Store:
+@@ -277,10 +276,16 @@ class Store:
log.debug(self)
def update(self, zones):
@@ -82,7 +84,7 @@ index b572dd1..d5d25c9 100644
def remove(self, zone):
"""Remove zone from the cache."""
-@@ -309,7 +313,7 @@ class GlobalForwarders:
+@@ -309,7 +314,7 @@ class GlobalForwarders:
line = line.strip()
if line:
self.cache.add(line)
@@ -91,7 +93,7 @@ index b572dd1..d5d25c9 100644
pass
class Application:
-@@ -328,17 +332,24 @@ class Application:
+@@ -328,32 +333,40 @@ class Application:
except AttributeError:
self.usage()
self.config = Config()
@@ -118,7 +120,17 @@ index b572dd1..d5d25c9 100644
return True
def usage(self):
-@@ -353,7 +364,7 @@ class Application:
+ raise UserError("Usage: dnssec-trigger-script [--debug] [--async] --prepare|--update|--update-global-forwarders|--update-connection-zones|--cleanup")
+
+ def run(self):
+- log.debug("Running: {}".format(self.method.__name__))
+- self.method()
++ with lockfile.FileLock("/var/run/dnssec-trigger/dnssec-trigger"):
++ log.debug("Running: {}".format(self.method.__name__))
++ self.method()
+
+ def run_prepare(self):
+ """Prepare for dnssec-trigger."""
if not self.nm_handles_resolv_conf():
log.info("Backing up /etc/resolv.conf")
@@ -127,7 +139,7 @@ index b572dd1..d5d25c9 100644
def run_cleanup(self):
"""Clean up after dnssec-trigger."""
-@@ -361,6 +372,18 @@ class Application:
+@@ -361,6 +374,18 @@ class Application:
stored_zones = Store('zones')
unbound_zones = UnboundZoneConfig()
@@ -146,7 +158,7 @@ index b572dd1..d5d25c9 100644
log.debug("clearing unbound configuration")
for zone in stored_zones:
unbound_zones.remove(zone)
-@@ -370,11 +393,14 @@ class Application:
+@@ -370,11 +395,14 @@ class Application:
log.debug("recovering /etc/resolv.conf")
subprocess.check_call(["chattr", "-i", "/etc/resolv.conf"])
if not self.nm_handles_resolv_conf():
@@ -163,7 +175,7 @@ index b572dd1..d5d25c9 100644
else:
subprocess.check_call(["/etc/init.d/NetworkManager", "restart"])
-@@ -387,7 +413,7 @@ class Application:
+@@ -387,7 +415,7 @@ class Application:
subprocess.check_call(["dnssec-trigger-control", "status"], stdout=DEVNULL, stderr=DEVNULL)
@@ -172,7 +184,7 @@ index b572dd1..d5d25c9 100644
servers = Store('servers')
if servers.update(sum((connection.servers for connection in default_connections), [])):
-@@ -399,7 +425,7 @@ class Application:
+@@ -399,7 +427,7 @@ class Application:
def run_update_connection_zones(self):
"""Configures forward zones in the unbound using unbound-control."""
diff --git a/dnssec-trigger.spec b/dnssec-trigger.spec
index 52f940e..6303f2e 100644
--- a/dnssec-trigger.spec
+++ b/dnssec-trigger.spec
@@ -3,7 +3,7 @@
Summary: NetworkManager plugin to update/reconfigure DNSSEC resolving
Name: dnssec-trigger
Version: 0.12
-Release: 10%{?dist}
+Release: 11%{?dist}
License: BSD
Url: http://www.nlnetlabs.nl/downloads/dnssec-trigger/
Source0: http://www.nlnetlabs.nl/downloads/dnssec-trigger/%{name}-%{version}.tar.gz
@@ -30,7 +30,7 @@ Patch2: dnssec-trigger-0.12-nm-script.patch
Patch3: dnssec-trigger-0.12-service.patch
Requires(postun): initscripts
-Requires: ldns >= 1.6.10, NetworkManager, NetworkManager-glib, unbound, xdg-utils
+Requires: ldns >= 1.6.10, NetworkManager, NetworkManager-glib, unbound, xdg-utils, python-lockfile
Requires(pre): shadow-utils
BuildRequires: desktop-file-utils systemd-units, openssl-devel, ldns-devel
BuildRequires: gtk2-devel, NetworkManager-devel
@@ -133,6 +133,9 @@ fi
%systemd_postun_with_restart %{name}d.service
%changelog
+* Tue Jun 24 2014 Pavel Šimerda <psimerda at redhat.com> - 0.12-11
+- Resolves: #1112248 - serialize the script instances
+
* Tue Jun 24 2014 Pavel Šimerda <psimerda at redhat.com> - 0.12-10
- Resolves: #1112248 - fix a typo
More information about the scm-commits
mailing list