Bug 1804445 - Rebase to RDO's python-etcd3gw-0.2.5-1
Summary: Rebase to RDO's python-etcd3gw-0.2.5-1
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-etcd3gw
Version: unspecified
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Alan Bishop
QA Contact: Tzach Shefi
URL:
Whiteboard:
Depends On: 1821834
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-02-18 20:31 UTC by Eric Harney
Modified: 2020-06-09 20:01 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1821834 (view as bug list)
Environment:
Last Closed: 2020-06-09 20:01:23 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
RDO 26186 0 None None None 2020-04-07 17:05:38 UTC

Description Eric Harney 2020-02-18 20:31:59 UTC
The python-etcd3gw 0.2.4 package is missing this fix:

https://github.com/dims/etcd3-gateway/issues/24

which appears to be significant for running on Python 3.

Comment 1 John Eckersberg 2020-02-21 14:13:34 UTC
I looked into this a bit.  I was able to use mock to rebuild python-etcd3gw-0.2.5 from rawhide (https://koji.fedoraproject.org/koji/buildinfo?buildID=1436305) against cbs with centos7, but I couldn't get it to work with centos8 due to some weird metadata error with modular python.  But the changes to rebase up to 0.2.5 and get the python3 fix is minor, if we can get the cbs builds in place that should be sufficient.

Comment 2 John Eckersberg 2020-02-28 22:21:06 UTC
(In reply to John Eckersberg from comment #1)
> I looked into this a bit.  I was able to use mock to rebuild
> python-etcd3gw-0.2.5 from rawhide
> (https://koji.fedoraproject.org/koji/buildinfo?buildID=1436305) against cbs
> with centos7, but I couldn't get it to work with centos8 due to some weird
> metadata error with modular python.  But the changes to rebase up to 0.2.5
> and get the python3 fix is minor, if we can get the cbs builds in place that
> should be sufficient.

I looked into this a bit more today.  I got past the previous error with modular python by tweaking the mock config to explicitly include the base centos8 repo.

However, there is a conflict with the tests.

The cloud8-openstack repos for train and ussuri include python3-pluggy=0.13.0, whereas the base centos8 AppStream repo has python3-pluggy=0.6.0.

The version of python3-pytest in centos8 has an unversioned rpm requires on python3-pluggy, but the included requires.txt is more confined:

[root@centos8 ~]# grep pluggy /usr/lib/python3.6/site-packages/pytest-3.4.2-py3.6.egg-info/requires.txt
pluggy<0.7,>=0.5

So we end up with python3-pluggy=0.13.0 installed from the openstack repo, but then pytest cannot run because of the mismatch with the error:

Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.l8Wmat                                                                                                                                                                                                          
+ umask 022                                                                                                                                                                                                                                                    
+ cd /builddir/build/BUILD                                                                                                                                                                                                                                     
+ cd etcd3gw-0.2.5                                                                                                                                                                                                                                             
+ export PYTHON=/usr/libexec/platform-python                                                                                                                                                                                                                   
+ PYTHON=/usr/libexec/platform-python                                                                                                                                                                                                                          
+ rm -rf .testrepository/times.dbm                                                                                                                                                                                                                             
+ py.test-3                                                                                                                                                                                                                                                    
Traceback (most recent call last):                                                                                                                                                                                                                             
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 583, in _build_master                                                                                                                                                                
    ws.require(__requires__)                                                                                                                                                                                                                                   
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 900, in require                                                                                                                                                                      
    needed = self.resolve(parse_requirements(requirements))                                                                                                                                                                                                    
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 791, in resolve                                                                                                                                                                      
    raise VersionConflict(dist, req).with_context(dependent_req)                                                                                                                                                                                               
pkg_resources.ContextualVersionConflict: (pluggy 0.13.0 (/usr/lib/python3.6/site-packages), Requirement.parse('pluggy<0.7,>=0.5'), {'pytest'})                                                                                                                 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/py.test-3", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3251, in <module>
    @_call_aside
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3235, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3264, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 585, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 598, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 786, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pluggy<0.7,>=0.5' distribution was not found and is required by pytest


RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.l8Wmat (%check)

Comment 3 Alan Bishop 2020-03-11 17:03:54 UTC
Can we get a newer version of python3-pytest added to the cloud8-openstack repos? I notice that downstream osp-16 repo contains python3-pytest-3.5.1-1

Comment 4 John Eckersberg 2020-04-01 21:02:12 UTC
overdue updates:

Got updated builds for train/el7 and ussuri/el8:

- rdoinfo PR merged - https://review.rdoproject.org/r/#/c/26186/

- train/el7 build - https://cbs.centos.org/koji/buildinfo?buildID=29200

- ussuri/el8 build - https://cbs.centos.org/koji/buildinfo?buildID=29202

Getting builds updated in -testing is currently broken, seems to be something wrong with the package mirror.  Here's the review, I'm expecting this to just sort itself out when the mirror resyncs:

https://review.rdoproject.org/r/#/c/26203/

Comment 5 Tzach Shefi 2020-04-07 05:22:30 UTC
Alan/Eric, 

Remind me how we came across this missing package,
wasn't it some intermittent performance/scale issue?  

How should I trigger this corner case for testing once it lands? 
Or would verifying package installation suffice?

Comment 6 Alan Bishop 2020-04-07 17:19:04 UTC
@Tzach, comment +0 pretty much provides the context for this. It's unclear why we haven't noted issues in OSP.

Comment 7 Alan Bishop 2020-06-09 20:01:23 UTC
I'm closing this for 16.0. There will be not be another 16.0 release, and the etcd3gw is only required for cinder A/A which is not a 16.0 feature.

See bug #1821834 for 16.1.


Note You need to log in before you can comment on or make changes to this bug.