Compare commits

...

No commits in common. 'e9' and 'i8e' have entirely different histories.
e9 ... i8e

5
.gitignore vendored

@ -1,4 +1 @@
salt-*.tar.gz
SaltTesting-*.tar.gz
*.src.rpm
results_salt/
SOURCES/salt-3005.1.tar.gz

@ -0,0 +1 @@
b7359edf8db1e01ce4fb7708e9bb6af0578f4ebd SOURCES/salt-3005.1.tar.gz

@ -0,0 +1,32 @@
From 38329cd2bc666ffa82b419a882a92f56ed6b44f0 Mon Sep 17 00:00:00 2001
From: Sergey Cherevko <sergey.cherevko@softline.com>
Date: Mon, 24 Apr 2023 11:15:44 +0300
Subject: [PATCH] Added MSVSphere support
---
salt/grains/core.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/salt/grains/core.py b/salt/grains/core.py
index debbeb2..37bd9c6 100644
--- a/salt/grains/core.py
+++ b/salt/grains/core.py
@@ -1565,6 +1565,7 @@ _OS_NAME_MAP = {
"cloudserve": "CloudLinux",
"cloudlinux": "CloudLinux",
"almalinux": "AlmaLinux",
+ "msvsphere": "MSVSphere",
"pidora": "Fedora",
"scientific": "ScientificLinux",
"synology": "Synology",
@@ -1602,6 +1603,7 @@ _OS_FAMILY_MAP = {
"Amazon": "RedHat",
"CloudLinux": "RedHat",
"AlmaLinux": "RedHat",
+ "MSVSphere": "RedHat",
"OVS": "RedHat",
"OEL": "RedHat",
"XCP": "RedHat",
--
2.39.2

@ -0,0 +1,25 @@
diff --git a/requirements/base.txt b/requirements/base.txt
index 63e524d..5b816aa 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -5,5 +5,4 @@ PyYAML
MarkupSafe
requests>=1.0.0
distro>=1.0.1
-contextvars
psutil>=5.0.0
diff --git a/requirements/zeromq.txt b/requirements/zeromq.txt
index ce3dde0..156aed7 100644
--- a/requirements/zeromq.txt
+++ b/requirements/zeromq.txt
@@ -1,9 +1,7 @@
-r base.txt
-r crypto.txt
-pyzmq<=20.0.0 ; python_version < "3.6"
-pyzmq>=17.0.0 ; python_version < "3.9"
-pyzmq>19.0.2 ; python_version >= "3.9"
+pyzmq>=19.0.2
# We can't use 23+ on Windows until they fix this:
# https://github.com/zeromq/pyzmq/issues/1472

@ -10,8 +10,8 @@
%global py3_shebang_flags %(echo %py3_shebang_flags | sed s/s//)
Name: salt
Version: 3005.4
Release: 1%{?dist}
Version: 3005.1%{?__rc_ver}
Release: 4%{?dist}.inferit
Summary: A parallel remote execution system
Group: System Environment/Daemons
License: ASL 2.0
@ -26,7 +26,7 @@ Source6: %{name}-master.service
Source7: %{name}-syndic.service
Source8: %{name}-minion.service
Source9: %{name}-api.service
Source10: README.fedora
Source10: README
Source11: %{name}-common.logrotate
Source12: %{name}.bash
Source13: %{name}.fish
@ -40,6 +40,10 @@ Source20: %{name}-run.fish
Source21: %{name}-syndic.fish
Patch0: contextvars.patch
# Added MSVSphere support
Patch100: 0001-Added-MSVSphere-support.patch
BuildArch: noarch
%ifarch %{ix86} x86_64
@ -53,7 +57,7 @@ Requires: logrotate
BuildRequires: systemd-rpm-macros
BuildRequires: python3-devel
BuildRequires: python3-toml
%description
Salt is a distributed remote execution system used to execute commands and
@ -134,17 +138,13 @@ Supports Python 3.
%prep
%autosetup -p1
%generate_buildrequires
%pyproject_buildrequires
%build
%pyproject_wheel
python3 setup.py build
%install
%pyproject_install
%pyproject_save_files salt
rm -rf %{buildroot}
python3 setup.py install --root=%{buildroot}
# Add some directories
install -d -m 0755 %{buildroot}%{_var}/log/%{name}
@ -205,17 +205,14 @@ mkdir -p %{buildroot}%{zsh_dir}
install -p -m 0644 pkg/%{name}.zsh %{buildroot}%{zsh_dir}/_%{name}
%check
%pyproject_check_import -t
%files -f %{pyproject_files}
%files
%defattr(-,root,root,-)
%license LICENSE
%doc README.fedora
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%config(noreplace) %{_sysconfdir}/bash_completion.d/%{name}.bash
%{_var}/cache/%{name}
%{_var}/log/%{name}
%{_prefix}/lib/python3.6
%{_bindir}/spm
%doc %{_mandir}/man1/spm.1*
%dir %{zsh_dir}
@ -281,7 +278,6 @@ install -p -m 0644 pkg/%{name}.zsh %{buildroot}%{zsh_dir}/_%{name}
%config(noreplace) %{_sysconfdir}/%{name}/roster
# assumes systemd for RHEL 7 & 8
%preun master
%systemd_preun %{name}-syndic.service
@ -317,133 +313,37 @@ install -p -m 0644 pkg/%{name}.zsh %{buildroot}%{zsh_dir}/_%{name}
%changelog
* Mon Oct 30 2023 Gwyn Ciesla <gwync@protonmail.com> - 3005.4-1
- 3005.4
* Tue Sep 05 2023 Gwyn Ciesla <gwync@protonmail.com> - 3005.2-1
- 3005.2
* Mon Oct 10 2022 Robby Callicotte <rcallicotte@fedoraproject.org> - 3005.1-2
- Removed macros from changelog
* Tue Oct 04 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3005.1-1
- Update to feature release 3005.1-1 for Python 3
* Thu Aug 25 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3005-1
- Update to feature release 3005-1 for Python 3
* Thu Jul 28 2022 Robby Callicotte <rcallicotte@fedoraproject.org> - 3004.2-3
- Cleaned up specfile
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3004.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jun 21 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3004.2-1
- Update to CVE release 3004.2-1 for Python 3
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 3004.1-2
- Rebuilt for Python 3.11
* Mon Mar 28 2022 Salt Project Packaging <saltproject-packaging@vmware.com> - 3004.1-1
- Update to CVE release 3004.1-1 for Python 3
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3004-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Oct 19 2021 Salt Project Packaging <saltproject-packaging@vmware.com> - 3004-1
- Update to feature release 3004-1 for Python 3
* Wed Sep 08 2021 SaltStack Packaging Team <saltproject-packaging@vmware.com> - 3003.3-1
- Update to CVE release 3003.3-1 https://saltproject.io/security_announcements/salt-security-advisory-2021-sep-02/
* Thu Aug 12 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3003.2-1
- Update to bugfix release 3003.2-1 for Python 3
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3003.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jul 01 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3003.1-1
- Update to bugfix release 3003.1-1 for Python 3
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 3003-2
- Rebuilt for Python 3.10
* Mon Apr 26 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3003-1
- Update to feature release 3003-1 for Python 3
* Fri Mar 26 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3002.6-1
- Update to bugfix release 3002.6-1 for Python 3
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3002.5-2
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Fri Feb 26 2021 SaltStack Packaging Team <packaging@saltstack.com> - 3002.5-1
- Update to CVE release 3002.5-1 for Python 3
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3002.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Apr 25 2023 Sergey Cherevko <s.cherevko@msvsphere.ru> - 3005.1-4.inferit
- Added MSVSphere support
- Rebuild for MSVSphere
* Wed Nov 18 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3002.2-1
- Update to bugfix release 3002.2-1 for Python3
- Revert _scope_id patch since it's been fixed upstream
* Tue Nov 01 2022 SaltStack Packaging Team <packaging@saltstack.com> - 3005-2
- Generate HMAC files post-install in case FIPS mode used only if libraries exist
* Wed Nov 04 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3002.1-1
- Update to CVE release 3002.1-1 for Python3
* Tue Sep 27 2022 SaltStack Packaging Team <packaging@saltstack.com> - 3005-1
- Generate HMAC files post-install in case FIPS mode used
- Added MAN pages
* Sun Oct 25 2020 Gwyn Ciesla <gwync@protonmail.com> - 3002-1
- 3002
- Patch for _scope_id 3.9 error.
* Fri Apr 10 2020 SaltStack Packaging Team <packaging@frogunder.com> - 3001
- Update to use pop-build
* Mon Jul 27 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3001.1-1
- Update to feature release 3001.1-1 for Python 3
* Thu Jun 18 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 30001-1
- Update to feature release 30001-1 for Python 3
* Wed Jun 03 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3001rc1-2
- Altered msgpack and python-zmq versions limitation
* Tue Jun 02 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3001rc1-1
- Update to Release Candidate rc1 for point release 3001
* Fri May 15 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000.3-1
- Update to feature release 3000.3-1 for Python 3
* Wed Apr 29 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000.2-1
- Update to feature release 3000.2-1 for Python 3
* Wed Apr 01 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000.1-1
- Update to feature release 3000.1-1 for Python 3
* Tue Feb 25 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-5
- Fix lint clean up issues
* Tue Feb 25 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-4
- Removed cherrypy < 18.0.0 check since python 3.5 no longer used on Fedora
* Mon Feb 24 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-3
- Added distro as a build and requires dependency for Fedora >= 31
* Mon Feb 24 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-2
- Changed dependency for crypto to pycryptodomex
* Mon Feb 03 2020 SaltStack Packaging Team <packaging@saltstack.com.com> - 3000-1
* Mon Feb 03 2020 SaltStack Packaging Team <packaging@frogunder.com> - 3000-1
- Update to feature release 3000-1 for Python 3
- Removed Torando since salt.ext.tornado, add dependencies for Tornado
* Wed Jan 22 2020 SaltStack Packaging Team <packaging@saltstack.com> - 3000.0.0rc2-1
## - Removed Torando since salt.ext.tornado, add dependencies for Tornado
* Wed Jan 22 2020 SaltStack Packaging Team <packaging@garethgreenaway.com> - 3000.0.0rc2-1
- Update to Neon Release Candidate 2 for Python 3
- Updated spec file to not use py3_build due to '-s' preventing pip installs
- Updated patch file to support Tornado4
* Wed Jan 08 2020 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.3-1
* Wed Jan 08 2020 SaltStack Packaging Team <packaging@frogunder.com> - 2019.2.3-1
- Update to feature release 2019.2.3-1 for Python 3
* Tue Oct 15 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.2-1
* Tue Oct 15 2019 SaltStack Packaging Team <packaging@frogunder.com> - 2019.2.2-1
- Update to feature release 2019.2.2-1 for Python 3
* Thu Sep 12 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.1-1
* Thu Sep 12 2019 SaltStack Packaging Team <packaging@frogunder.com> - 2019.2.1-1
- Update to feature release 2019.2.1-1 for Python 3
* Tue Sep 10 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-10
@ -476,70 +376,27 @@ install -p -m 0644 pkg/%{name}.zsh %{buildroot}%{zsh_dir}/_%{name}
* Mon Apr 08 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.4-2
- Update to allow for Python 3.6
* Mon Mar 04 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2019.2.0-1
- Update to feature release 2019.2.0-1 for Python 2
* Sat Feb 16 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-1
- Update to feature release 2019.2.0-1 for Python 3
* Sat Feb 16 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.4-1
- Update to feature release 2018.3.4-1 for Python 3
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2018.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jan 09 2019 SaltStack Packaging Team <packaging@saltstack.com> - 2019.2.0-0
- Update to feature release branch 2019.2.0-0 for Python 2
- Revised acceptable versions of cherrypy, futures
* Thu Nov 29 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2018.3.3-2
- Revised BuildRequires and Requires to use python2 versions of packages
- Cleaned up spec file to apply to Fedora 28 and above
* Mon Oct 15 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2018.3.3-1
- Update to feature release 2018.3.3-1 for Python 2
- Revised versions of cherrypy acceptable
* Tue Oct 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.3-1
- Update to feature release 2018.3.3-1 for Python 3
- Revised versions of cherrypy acceptable
* Tue Jul 24 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-5
- Fix version of python used, multiple addition of 2.7
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2018.3.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-3
- Allow for removal of /usr/bin/python
* Mon Jul 09 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-2
- Correct tornado version check
* Thu Jun 21 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.2-1
- Update to feature release 2018.3.2-1 for Python 2
* Mon Jun 11 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.1-1
- Update to feature release 2018.3.1-1 for Python 3
- Revised minimum msgpack version >= 0.4
* Fri Jun 08 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.1-1
- Update to feature release 2018.3.1-1 for Python 2
- Revised minimum msgpack version >= 0.4
* Mon Apr 02 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.0-1
- Development build for Python 3 support
* Fri Mar 30 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2018.3.0-1
- Update to feature release 2018.3.0-1
* Tue Mar 27 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2017.7.5-1
- Update to feature release 2017.7.5-1
* Fri Feb 16 2018 SaltStack Packaging Team <packaging@saltstack.com> - 2017.7.4-1
- Update to feature release 2017.7.4-1
- Limit to Tornado use to between versions 4.2.1 and less than 5.0
* Tue Jan 30 2018 SaltStack Packaging Team <packaging@Ch3LL.com> - 2017.7.3-1
- Update to feature release 2017.7.3-1

@ -1,20 +0,0 @@
--- salt-3005/requirements/base.txt.fix 2022-08-25 17:13:58.740984435 -0600
+++ salt-3005/requirements/base.txt 2022-08-25 17:14:14.428036445 -0600
@@ -4,5 +4,4 @@ PyYAML
MarkupSafe
requests>=1.0.0
distro>=1.0.1
-contextvars
psutil>=5.0.0
--- salt-3005.2/requirements/zeromq.txt~ 2023-08-03 12:27:49.000000000 -0500
+++ salt-3005.2/requirements/zeromq.txt 2023-09-05 15:00:22.172125782 -0500
@@ -1,8 +1,4 @@
-r base.txt
-r crypto.txt
-pyzmq<=20.0.0; python_version < "3.6"
-pyzmq>=20.0.0; python_version >= "3.6"
-# We can't use 23+ on Windows until they fix this:
-# https://github.com/zeromq/pyzmq/issues/1472
-pyzmq>=20.0.0,<=22.0.3 ; sys_platform == "win32"
+pyzmq>=20.0.0

@ -1,214 +0,0 @@
diff -Naur a/salt/modules/rpmbuild_pkgbuild.py b/salt/modules/rpmbuild_pkgbuild.py
--- a/salt/modules/rpmbuild_pkgbuild.py 2019-07-02 10:15:07.035874718 -0600
+++ b/salt/modules/rpmbuild_pkgbuild.py 2019-07-02 10:55:34.147934899 -0600
@@ -140,7 +140,9 @@
tgtattrs = tgt.split('-')
if tgtattrs[0] == 'amzn':
distset = '--define "dist .{0}1"'.format(tgtattrs[0])
- elif tgtattrs[1] in ['6', '7']:
+ elif tgtattrs[0] == 'amzn2':
+ distset = '--define "dist .{0}"'.format(tgtattrs[0])
+ elif tgtattrs[1] in ['6', '7', '8']:
distset = '--define "dist .el{0}"'.format(tgtattrs[1])
else:
distset = ''
@@ -173,6 +175,19 @@
return deps_list
+def _check_repo_gpg_phrase_utils():
+ '''
+ Check for /usr/libexec/gpg-preset-passphrase is installed
+ '''
+ util_name = '/usr/libexec/gpg-preset-passphrase'
+ if __salt__['file.file_exists'](util_name):
+ return True
+ else:
+ raise CommandExecutionError(
+ 'utility \'{0}\' needs to be installed'.format(util_name)
+ )
+
+
def make_src_pkg(dest_dir, spec, sources, env=None, template=None, saltenv='base', runas='root'):
'''
Create a source rpm from the given spec file and sources
@@ -450,8 +465,14 @@
Use a passphrase with the signing key presented in ``keyid``.
Passphrase is received from Pillar data which could be passed on the
- command line with ``pillar`` parameter. For example:
+ command line with ``pillar`` parameter.
+ .. versionadded:: 2018.2.1
+
+ RHEL 8 and above leverages gpg-agent and gpg-preset-passphrase for
+ caching keys, etc.
+
+ For example:
.. code-block:: bash
pillar='{ "gpg_passphrase" : "my_passphrase" }'
@@ -485,10 +506,27 @@
'''
SIGN_PROMPT_RE = re.compile(r'Enter pass phrase: ', re.M)
- define_gpg_name = ''
+ local_keygrip_to_use = None
+ local_key_fingerprint = None
local_keyid = None
local_uids = None
+ define_gpg_name = ''
phrase = ''
+ retrc = 0
+ use_gpg_agent = False
+
+ res = {
+ 'retcode': 1,
+ 'stdout': '',
+ 'stderr': 'initialization value'
+ }
+
+ if gnupghome and env is None:
+ env = {}
+ env['GNUPGHOME'] = gnupghome
+
+ if __grains__.get('osmajorrelease') >= 7:
+ use_gpg_agent = True
if keyid is not None:
# import_keys
@@ -517,8 +555,29 @@
if keyid == gpg_key['keyid'][8:]:
local_uids = gpg_key['uids']
local_keyid = gpg_key['keyid']
+ if use_gpg_agent:
+ local_keygrip_to_use = gpg_key['fingerprint']
+ local_key_fingerprint = gpg_key['fingerprint']
break
+ if use_gpg_agent:
+ cmd = 'gpg --with-keygrip --list-secret-keys'
+ local_keys2_keygrip = __salt__['cmd.run'](cmd, runas=runas, env=env)
+ local_keys2 = iter(local_keys2_keygrip.splitlines())
+ try:
+ for line in local_keys2:
+ if line.startswith('sec'):
+ line_fingerprint = next(local_keys2).lstrip().rstrip()
+ if local_key_fingerprint == line_fingerprint:
+ lkeygrip = next(local_keys2).split('=')
+ local_keygrip_to_use = lkeygrip[1].lstrip().rstrip()
+ break
+ except StopIteration:
+ raise SaltInvocationError(
+ 'unable to find keygrip associated with fingerprint \'{0}\' for keyid \'{1}\''
+ .format(local_key_fingerprint, local_keyid)
+ )
+
if local_keyid is None:
raise SaltInvocationError(
'The key ID \'{0}\' was not found in GnuPG keyring at \'{1}\''
@@ -527,6 +586,15 @@
if use_passphrase:
phrase = __salt__['pillar.get']('gpg_passphrase')
+ if use_gpg_agent:
+ _check_repo_gpg_phrase_utils()
+ cmd = '/usr/libexec/gpg-preset-passphrase --verbose --preset --passphrase "{0}" {1}'.format(phrase, local_keygrip_to_use)
+ retrc = __salt__['cmd.retcode'](cmd, runas=runas, env=env)
+ if retrc != 0:
+ raise SaltInvocationError(
+ 'Failed to preset passphrase, error {1}, '
+ 'check logs for further details'.format(retrc)
+ )
if local_uids:
define_gpg_name = '--define=\'%_signature gpg\' --define=\'%_gpg_name {0}\''.format(
@@ -553,43 +621,54 @@
number_retries = timeout / interval
times_looped = 0
error_msg = 'Failed to sign file {0}'.format(abs_file)
- cmd = 'rpm {0} --addsign {1}'.format(define_gpg_name, abs_file)
- preexec_fn = functools.partial(salt.utils.user.chugid_and_umask, runas, None)
- try:
- stdout, stderr = None, None
- proc = salt.utils.vt.Terminal(
- cmd,
- shell=True,
- preexec_fn=preexec_fn,
- stream_stdout=True,
- stream_stderr=True
- )
- while proc.has_unread_data:
- stdout, stderr = proc.recv()
- if stdout and SIGN_PROMPT_RE.search(stdout):
- # have the prompt for inputting the passphrase
- proc.sendline(phrase)
- else:
- times_looped += 1
+ if use_gpg_agent:
+ cmd = 'rpmsign --verbose --key-id={0} --addsign {1}'.format(local_keyid, abs_file)
+ retrc |= __salt__['cmd.retcode'](cmd, runas=runas, cwd=repodir, use_vt=True, env=env)
+ if retrc != 0:
+ raise SaltInvocationError(
+ 'Signing encountered errors for command \'{0}\', '
+ 'return error {1}, check logs for further details'.format(
+ cmd,
+ retrc)
+ )
+ else:
+ cmd = 'rpm {0} --addsign {1}'.format(define_gpg_name, abs_file)
+ preexec_fn = functools.partial(salt.utils.user.chugid_and_umask, runas, None)
+ try:
+ stdout, stderr = None, None
+ proc = salt.utils.vt.Terminal(
+ cmd,
+ shell=True,
+ preexec_fn=preexec_fn,
+ stream_stdout=True,
+ stream_stderr=True
+ )
+ while proc.has_unread_data:
+ stdout, stderr = proc.recv()
+ if stdout and SIGN_PROMPT_RE.search(stdout):
+ # have the prompt for inputting the passphrase
+ proc.sendline(phrase)
+ else:
+ times_looped += 1
+
+ if times_looped > number_retries:
+ raise SaltInvocationError(
+ 'Attemping to sign file {0} failed, timed out after {1} seconds'
+ .format(abs_file, int(times_looped * interval))
+ )
+ time.sleep(interval)
- if times_looped > number_retries:
+ proc_exitstatus = proc.exitstatus
+ if proc_exitstatus != 0:
raise SaltInvocationError(
- 'Attemping to sign file {0} failed, timed out after {1} seconds'
- .format(abs_file, int(times_looped * interval))
+ 'Signing file {0} failed with proc.status {1}'
+ .format(abs_file, proc_exitstatus)
)
- time.sleep(interval)
-
- proc_exitstatus = proc.exitstatus
- if proc_exitstatus != 0:
- raise SaltInvocationError(
- 'Signing file {0} failed with proc.status {1}'
- .format(abs_file, proc_exitstatus)
- )
- except salt.utils.vt.TerminalException as err:
- trace = traceback.format_exc()
- log.error(error_msg, err, trace)
- finally:
- proc.close(terminate=True, kill=True)
+ except salt.utils.vt.TerminalException as err:
+ trace = traceback.format_exc()
+ log.error(error_msg, err, trace)
+ finally:
+ proc.close(terminate=True, kill=True)
cmd = 'createrepo --update {0}'.format(repodir)
return __salt__['cmd.run_all'](cmd, runas=runas)

@ -1 +0,0 @@
SHA512 (salt-3005.4.tar.gz) = 31c699fc369c1f3c47f4f3a9a572381dd8c54323771194bdcc73128b55d983da7338b03061a6cdec6631aca62048e5829ea38687c3b0fdb1cdcbd5df9d000f05
Loading…
Cancel
Save