Hey Konstantin (and anyone else hitting this),
While we're figuring out the best way to address this, here's a quick fix:
Save the attached patch
as /usr/lib/python2.7/site-packages/pulp-common.patch . Then:
$ cd /usr/lib/python2.7/site-packages/
$ sudo patch -p1 < pulp-common.patch
Here's the run from my test machine:
[vagrant@centos7 ~]$ *cd /usr/lib/python2.7/site-packages/*
[vagrant@centos7 site-packages]$ *python*
Python 2.7.5 (default, Apr 2 2020, 13:16:51)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pulp.common.bundle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pulp/common/bundle.py", line 4, in <module>
from pulp.plugins.util import misc
*ImportError*: No module named plugins.util
>>> import pulp.common.lock
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pulp/common/lock.py", line 10, in <module>
from pulp.plugins.util import misc
*ImportError*: No module named plugins.util
>>>
[vagrant@centos7 site-packages]$ *sudo patch -p1 < pulp-common.patch*
*patching file pulp/common/bundle.pypatching file pulp/common/lock.py*
[vagrant@centos7 site-packages]$ python
Python 2.7.5 (default, Apr 2 2020, 13:16:51)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pulp.common.bundle
>>> import pulp.common.lock
>>>
[vagrant@centos7 site-packages]$
===
G
On Thu, Nov 5, 2020 at 9:52 AM Grant Gainey <[email protected]> wrote:
>
>
> On Tue, Nov 3, 2020 at 2:14 PM Konstantin M. Khankin <
> [email protected]> wrote:
>
>> Hi!
>>
>> This report is very similar to the one in
>> https://pulp.plan.io/issues/5126 or mail thread
>> https://www.redhat.com/archives/pulp-list/2019-July/msg00021.html, the
>> only difference is I get this error with the latest Pulp update 2.21.4:
>>
>
> Uuugh, that would appear to be my fault as part
> of e067d28a00bdec989dd03170d599e58cde4fba13
>
> These two changes from that commit:
>
> ===
> diff --git a/common/pulp/common/bundle.py b/common/pulp/common/bundle.py
> index 6ad95d498..be178b006 100644
> --- a/common/pulp/common/bundle.py
> +++ b/common/pulp/common/bundle.py
> @@ -1,6 +1,7 @@
> import os
> import re
> from logging import getLogger
> +from pulp.plugins.util import misc
>
> from M2Crypto import X509
>
> @@ -199,8 +200,7 @@ class Bundle:
> Ensure I{root} directory exists.
> """
> path = os.path.dirname(self.path)
> - if not os.path.exists(path):
> - os.makedirs(path)
> + misc.mkdir(path)
>
> def cn(self):
> """
> diff --git a/common/pulp/common/lock.py b/common/pulp/common/lock.py
> index 7fdf7e9b8..9caf9b1c7 100644
> --- a/common/pulp/common/lock.py
> +++ b/common/pulp/common/lock.py
> @@ -7,6 +7,8 @@ import fcntl
>
> from threading import RLock
>
> +from pulp.plugins.util import misc
> +
>
> class LockFailed(Exception):
> pass
> @@ -92,8 +94,7 @@ class LockFile:
>
> def __mkdir(self, path):
> dir = os.path.dirname(path)
> - if not os.path.exists(dir):
> - os.makedirs(dir)
> + misc.mkdir(dir)
>
>
> class Lock:
> ===
>
> are the problem, I believe. I'll work on figuring out how best to address
> the problem.
>
> Konstantin, could you open an issue at pulp.plan.io please? That way
> you'll see progress as we/I make it.
>
> Thanks for the catch, and the great problem report!
>
> G
>
>
>>
>>
> # rpm -qa | grep pulp
>> python-pulp-client-lib-2.21.4-1.el7.noarch
>> python-pulp-common-2.21.4-1.el7.noarch
>> pulp-rpm-handlers-2.21.4-1.el7.noarch
>> python-pulp-rpm-common-2.21.4-1.el7.noarch
>> python-pulp-agent-lib-2.21.4-1.el7.noarch
>> pulp-agent-2.21.4-1.el7.noarch
>> pulp-puppet-consumer-extensions-2.21.4-1.el7.noarch
>> pulp-consumer-client-2.21.4-1.el7.noarch
>> pulp-rpm-yumplugins-2.21.4-1.el7.noarch
>> python-pulp-bindings-2.21.4-1.el7.noarch
>> pulp-rpm-consumer-extensions-2.21.4-1.el7.noarch
>> python-pulp-puppet-common-2.21.4-1.el7.noarch
>> pulp-puppet-handlers-2.21.4-1.el7.noarch
>>
>> >>> import os
>> >>> d, m = os.path.split('/usr/lib/yum-plugins/pulp-profile-update.py')
>> >>> m = m.split('.py')[0]
>> >>> m
>> 'pulp-profile-update'
>> >>> d
>> '/usr/lib/yum-plugins'
>> >>> import imp
>> >>> imp.find_module(m, [d])
>> (<open file '/usr/lib/yum-plugins/pulp-profile-update.py', mode 'U' at
>> 0x7fbb0b54f5d0>, '/usr/lib/yum-plugins/pulp-profile-update.py', ('.py',
>> 'U', 1))
>> >>> f, p, d = imp.find_module(m, [d])
>> >>> imp.load_module(m, f, p, d)
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> File "/usr/lib/yum-plugins/pulp-profile-update.py", line 7, in <module>
>> from pulp.common.bundle import Bundle as BundleImpl
>> File "/usr/lib/python2.7/site-packages/pulp/common/bundle.py", line 4,
>> in <module>
>> from pulp.plugins.util import misc
>> ImportError: No module named plugins.util
>>
>> # ls /usr/lib/python2.7/site-packages/pulp/
>> agent bindings client common __init__.py __init__.pyc __init__.pyo
>>
>> ===
>> At host where I don't have this error, ls gives:
>> # ls /usr/lib/python2.7/site-packages/pulp
>> agent bindings client common __init__.py __init__.pyc __init__.pyo
>> oid_validation plugins repoauth server
>>
>> # ls /usr/lib/python2.7/site-packages/pulp/plugins/
>> cataloger.py conduits config.pyo distributor.pyo importer.pyc
>> __init__.pyc migration model.pyo profiler.pyo util
>> cataloger.pyc config.py distributor.py file importer.pyo
>> __init__.pyo model.py profiler.py rsync
>> cataloger.pyo config.pyc distributor.pyc importer.py __init__.py
>> loader model.pyc profiler.pyc types
>>
>> # rpm -qf /usr/lib/python2.7/site-packages/pulp/plugins/util/misc.py
>> pulp-server-2.21.4-1.el7.noarch
>>
>> ===
>> Obviously if plugins/util/misc is included into the pulp-server package,
>> it can only be found on a server. So same as in
>> https://pulp.plan.io/issues/5126, 2.21.4 introduced server dependency on
>> a client.
>>
>> Could you move the plugins package into the pulp-common package please?
>>
>> Thanks!
>>
>> --
>> Konstantin Khankin
>> _______________________________________________
>> Pulp-list mailing list
>> [email protected]
>> https://www.redhat.com/mailman/listinfo/pulp-list
>
>
>
> --
> Grant Gainey
> Principal Software Engineer, Red Hat System Management Engineering
>
--
Grant Gainey
Principal Software Engineer, Red Hat System Management Engineering
diff --git a/pulp/common/bundle.py b/pulp/common/bundle.py
index be178b006..6ad95d498 100644
--- a/pulp/common/bundle.py
+++ b/pulp/common/bundle.py
@@ -1,7 +1,6 @@
import os
import re
from logging import getLogger
-from pulp.plugins.util import misc
from M2Crypto import X509
@@ -200,7 +199,8 @@ class Bundle:
Ensure I{root} directory exists.
"""
path = os.path.dirname(self.path)
- misc.mkdir(path)
+ if not os.path.exists(path):
+ os.makedirs(path)
def cn(self):
"""
diff --git a/pulp/common/lock.py b/pulp/common/lock.py
index 9caf9b1c7..7fdf7e9b8 100644
--- a/pulp/common/lock.py
+++ b/pulp/common/lock.py
@@ -7,8 +7,6 @@ import fcntl
from threading import RLock
-from pulp.plugins.util import misc
-
class LockFailed(Exception):
pass
@@ -94,7 +92,8 @@ class LockFile:
def __mkdir(self, path):
dir = os.path.dirname(path)
- misc.mkdir(dir)
+ if not os.path.exists(dir):
+ os.makedirs(dir)
class Lock:
_______________________________________________
Pulp-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/pulp-list