Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
salt.3514
0043-Prevent-crash-if-pygit2-package-is-request...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0043-Prevent-crash-if-pygit2-package-is-requesting-re-com.patch of Package salt.3514
From a6fa29feb9f18b94e8c4b48be52de1bb08711cbb Mon Sep 17 00:00:00 2001 From: Bo Maryniuk <bo@maryniuk.net> Date: Mon, 18 Apr 2016 16:25:05 +0200 Subject: [PATCH 43/43] Prevent crash if pygit2 package is requesting re-compilation * Prevent crash if pygit2 package is requesting re-compilation of the entire library on production systems (no *devel packages) * Fix PEP8: move imports to the top of the file * Move logger up * Add log error message in case if exception is not an ImportError --- salt/utils/gitfs.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py index 289aa9e..35dfcb8 100644 --- a/salt/utils/gitfs.py +++ b/salt/utils/gitfs.py @@ -19,6 +19,18 @@ import subprocess import time from datetime import datetime +# Import salt libs +import salt.utils +import salt.utils.itertools +import salt.utils.url +import salt.fileserver +from salt.utils.process import os_is_running as pid_exists +from salt.exceptions import FileserverConfigError, GitLockError +from salt.utils.event import tagify + +# Import third party libs +import salt.ext.six as six + VALID_PROVIDERS = ('gitpython', 'pygit2', 'dulwich') # Optional per-remote params that can only be used on a per-remote basis, and # thus do not have defaults in salt/config.py. @@ -54,16 +66,8 @@ _INVALID_REPO = ( 'master to continue to use this {2} remote.' ) -# Import salt libs -import salt.utils -import salt.utils.itertools -import salt.utils.url -import salt.fileserver -from salt.exceptions import FileserverConfigError, GitLockError -from salt.utils.event import tagify +log = logging.getLogger(__name__) -# Import third party libs -import salt.ext.six as six # pylint: disable=import-error try: import git @@ -79,8 +83,13 @@ try: GitError = pygit2.errors.GitError except AttributeError: GitError = Exception -except ImportError: - HAS_PYGIT2 = False +except Exception as err: # cffi VerificationError also may happen + HAS_PYGIT2 = False # and pygit2 requrests re-compilation + # on a production system (!), + # but cffi might be absent as well! + # Therefore just a generic Exception class. + if not isinstance(err, ImportError): + log.error('Import pygit2 failed: {0}'.format(err)) try: import dulwich.errors @@ -93,8 +102,6 @@ except ImportError: HAS_DULWICH = False # pylint: enable=import-error -log = logging.getLogger(__name__) - # Minimum versions for backend providers GITPYTHON_MINVER = '0.3' PYGIT2_MINVER = '0.20.3' -- 2.8.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor