![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package salt for openSUSE:Factory checked in at 2014-07-25 12:27:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/salt (Old) and /work/SRC/openSUSE:Factory/.salt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "salt" Changes: -------- --- /work/SRC/openSUSE:Factory/salt/salt.changes 2014-07-21 22:35:16.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.salt.new/salt.changes 2014-07-25 12:27:54.000000000 +0200 @@ -1,0 +2,17 @@ +Thu Jul 24 13:11:03 UTC 2014 - tserong@suse.com + +- Allow salt to correctly detect services provided by init scripts + + Added allow-systemd-units-no-unit-files.patch + + Added allow-systemd-parameterized-services.patch + + Added pass-all-systemd-list-units.patch +- Move systemd service file fix to patch, add PIDFile parameter (this + fix is applicable for all SUSE versions, not just 12.3) + + Added use-forking-daemon.patch + +------------------------------------------------------------------- +Wed Jul 23 06:24:00 UTC 2014 - aboe76@gmail.com + +- Improve systemd service file fix for 12.3 + Use forking instead of Simple and daemonize salt-master process + +------------------------------------------------------------------- New: ---- allow-systemd-parameterized-services.patch allow-systemd-units-no-unit-files.patch pass-all-systemd-list-units.patch use-forking-daemon.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ salt.spec ++++++ --- /var/tmp/diff_new_pack.DC5u6H/_old 2014-07-25 12:27:55.000000000 +0200 +++ /var/tmp/diff_new_pack.DC5u6H/_new 2014-07-25 12:27:55.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package salt # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,6 +24,14 @@ Group: System/Monitoring Url: http://saltstack.org/ Source0: http://pypi.python.org/packages/source/s/%{name}/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM allow-systemd-units-no-unit-files.patch tserong@suse.com -- allow salt to detect init script services +Patch1: allow-systemd-units-no-unit-files.patch +# PATCH-FIX-UPSTREAM allow-systemd-units-no-unit-files.patch tserong@suse.com -- part 2 of above fix +Patch2: allow-systemd-parameterized-services.patch +# PATCH-FIX-UPSTREAM pass-all-systemd-list-units.patch tserong@suse.com -- part 3 of above fix +Patch3: pass-all-systemd-list-units.patch +# PATCH-FIX-OPENSUSE use-forking-daemon.patch tserong@suse.com -- We don't have python-systemd, so notify can't work +Patch4: use-forking-daemon.patch #for building BuildRequires: fdupes @@ -31,14 +39,14 @@ BuildRequires: python-Jinja2 BuildRequires: python-M2Crypto BuildRequires: python-PyYAML -BuildRequires: python-yaml +BuildRequires: python-apache-libcloud >= 0.14.0 BuildRequires: python-devel BuildRequires: python-msgpack-python +BuildRequires: python-psutil BuildRequires: python-pycrypto BuildRequires: python-pyzmq -BuildRequires: python-psutil BuildRequires: python-requests -BuildRequires: python-apache-libcloud >= 0.14.0 +BuildRequires: python-yaml %if 0%{?sles_version} BuildRequires: python @@ -65,13 +73,13 @@ Requires: logrotate Requires: python-Jinja2 -Requires: python-yaml Requires: python-PyYAML -Requires: python-yaml Requires: python-apache-libcloud -Requires: python-xml Requires: python-psutil Requires: python-requests +Requires: python-xml +Requires: python-yaml +Requires: python-yaml Requires(pre): %fillup_prereq %if 0%{?suse_version} < 1210 Requires(pre): %insserv_prereq @@ -87,7 +95,6 @@ BuildRequires: bash-completion %endif #with_bashcomp - BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} @@ -98,7 +105,6 @@ Recommends: python-botocore Recommends: python-netaddr - %description Salt is a distributed remote execution system used to execute commands and query data. It was developed in order to bring the best solutions found in @@ -224,6 +230,10 @@ %prep %setup -q +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build python setup.py build @@ -254,11 +264,6 @@ mkdir -p %{buildroot}/srv/pillar mkdir -p %{buildroot}%{_docdir}/salt -## fix opensuse 12.3 systemd service file -%if 0%{?suse_version} == 1230 -sed -i 's/^Type=notify/Type=simple/g' pkg/salt-master.service -%endif - ## install init and systemd scripts %if 0%{?_unitdir:1} install -Dpm 0644 pkg/salt-master.service %{buildroot}%_unitdir/salt-master.service ++++++ allow-systemd-parameterized-services.patch ++++++
From 9617d339273ceecd3b47cbcd8c331080faac48f8 Mon Sep 17 00:00:00 2001 From: Massimiliano Torromeo <massimilianotorromeo@artera.it> Date: Mon, 14 Apr 2014 18:01:18 +0200 Subject: [PATCH] Allow systemd parametrized services to be enabled by the service state.
This makes the systemd.get_all function return the combined output of list-units and list-unit-files and the systemd.available function will also check for the base unit name stripped of the user parameter (e.g. dhcpcd@eth0 will be considered available if dhcpcd@.service exists) --- salt/modules/systemd.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/salt/modules/systemd.py b/salt/modules/systemd.py index e2cfb1d..72079d7 100644 --- a/salt/modules/systemd.py +++ b/salt/modules/systemd.py @@ -82,7 +82,7 @@ def _get_all_units(): r')\s+loaded\s+(?P<active>[^\s]+)') out = __salt__['cmd.run_stdout']( - 'systemctl --full list-units | col -b' + 'systemctl --full --no-legend --no-pager list-units | col -b' ) ret = {} @@ -104,7 +104,7 @@ def _get_all_unit_files(): r')\s+(?P<state>.+)$') out = __salt__['cmd.run_stdout']( - 'systemctl --full list-unit-files | col -b' + 'systemctl --full --no-legend --no-pager list-unit-files | col -b' ) ret = {} @@ -195,7 +195,7 @@ def get_all(): salt '*' service.get_all ''' - return sorted(_get_all_units().keys()) + return sorted(set(_get_all_units().keys() + _get_all_unit_files().keys())) def available(name): @@ -209,7 +209,15 @@ def available(name): salt '*' service.available sshd ''' - return _canonical_template_unit_name(name) in get_all() + name = _canonical_template_unit_name(name) + units = get_all() + if name in units: + return True + elif '@' in name: + templatename = name[:name.find('@') + 1] + return templatename in units + else: + return False def missing(name): @@ -224,7 +232,7 @@ def missing(name): salt '*' service.missing sshd ''' - return not _canonical_template_unit_name(name) in get_all() + return not available(name) def start(name): -- 1.9.3 ++++++ allow-systemd-units-no-unit-files.patch ++++++
From 90bece1faa1862465e97f7caf262c65cd84583ff Mon Sep 17 00:00:00 2001 From: Massimiliano Torromeo <massimiliano.torromeo@gmail.com> Date: Fri, 11 Apr 2014 14:43:02 +0200 Subject: [PATCH] Allow systemd units no provided by unit files to be handled.
This allows to query status, start, stop, restart and list units that are not actually provided by unit files. Such units cannot be enabled/disabled and that's why those actions still prefer the "list-unit-files" output over "list-units". Units that couldn't be handled otherwise include for example mount units and sysvinit compatibility units such as those present on debian systems. The output of a "service.running ssh" state on a debian wheezy target is: ID: ssh Function: service.running Result: False Comment: The named service ssh is not available Changes: after this patch: ID: ssh Function: service.running Result: True Comment: The service ssh is already running Changes: --- salt/modules/systemd.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/salt/modules/systemd.py b/salt/modules/systemd.py index 57b55f5..e2cfb1d 100644 --- a/salt/modules/systemd.py +++ b/salt/modules/systemd.py @@ -72,6 +72,28 @@ def _systemctl_cmd(action, name): return 'systemctl {0} {1}'.format(action, _canonical_unit_name(name)) +def _get_all_units(): + ''' + Get all units and their state. Units ending in .service + are normalized so that they can be referenced without a type suffix. + ''' + rexp = re.compile(r'(?m)^(?P<name>.+)\.(?P<type>' + + '|'.join(VALID_UNIT_TYPES) + + r')\s+loaded\s+(?P<active>[^\s]+)') + + out = __salt__['cmd.run_stdout']( + 'systemctl --full list-units | col -b' + ) + + ret = {} + for match in rexp.finditer(out): + name = match.group('name') + if match.group('type') != 'service': + name += '.' + match.group('type') + ret[name] = match.group('active') + return ret + + def _get_all_unit_files(): ''' Get all unit files and their state. Unit files ending in .service @@ -173,7 +195,7 @@ def get_all(): salt '*' service.get_all ''' - return sorted(_get_all_unit_files().keys()) + return sorted(_get_all_units().keys()) def available(name): -- 1.9.3 ++++++ pass-all-systemd-list-units.patch ++++++
From 968b26f45351d790a9fa2afd9bbd6c5bb31f13d5 Mon Sep 17 00:00:00 2001 From: Tim Serong <tserong@suse.com> Date: Mon, 7 Jul 2014 21:14:26 +1000 Subject: [PATCH] Pass --all when invoking `systemctl list-units`
`systemctl list-units` without --all won't list services that aren't actually running. See https://github.com/saltstack/salt/issues/13788 for some further discussion. --- salt/modules/systemd.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/modules/systemd.py b/salt/modules/systemd.py index ca93986..036adb4 100644 --- a/salt/modules/systemd.py +++ b/salt/modules/systemd.py @@ -82,7 +82,7 @@ def _get_all_units(): r')\s+loaded\s+(?P<active>[^\s]+)') out = __salt__['cmd.run_stdout']( - 'systemctl --full --no-legend --no-pager list-units | col -b' + 'systemctl --all --full --no-legend --no-pager list-units | col -b' ) ret = {} -- 1.9.3 ++++++ use-forking-daemon.patch ++++++ Index: salt-2014.1.7/pkg/salt-master.service =================================================================== --- salt-2014.1.7.orig/pkg/salt-master.service +++ salt-2014.1.7/pkg/salt-master.service @@ -3,8 +3,10 @@ Description=The Salt Master Server After=syslog.target network.target [Service] -Type=notify -ExecStart=/usr/bin/salt-master +Type=forking +ExecStart=/usr/bin/salt-master --daemon +# Daemon mode doesn't seem to work reliably without PIDFile +PIDFile=/var/run/salt-master.pid [Install] WantedBy=multi-user.target -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org