Bug 1006278

Summary: Missing dependency on python-httplib2
Product: [Fedora] Fedora EPEL Reporter: Nir Magnezi <nmagnezi>
Component: python-oauth2Assignee: Pádraig Brady <pbrady>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: el6CC: aortega, apevec, ayoung, binoy.arnold, derekh, metherid, ohochman, pj.pandit
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: python-oauth2-1.5.211-5.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-16 17:45:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Nir Magnezi 2013-09-10 11:21:21 UTC
Description of problem:
=======================
I tried to follow:
http://openstack.redhat.com/QuickStartLatest#Step_3:_Run_Packstack_to_install_OpenStack

packstack fails to install allinone with the following:

PackStackError: Error during puppet run : err: /Stage[main]/Swift::Keystone::Auth/Keystone_service[swift]: Could not evaluate: Execution of '/usr/bin/keystone --endpoint http://127.0.0.1:35357/v2.0/ service-list' returned 1: <attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to http://127.0.0.1:35357/v2.0/OS-KSADM/services)


Version-Release number of selected component (if applicable):
=============================================================
packstack version: openstack-packstack-2013.2.1-0.7.dev752.el6.noarch
Installed with: rdo-release-havana-6.noarch

How reproducible:
=================
2/2
Steps to Reproduce:
===================
1. Install openstack-packstack from RDO Repo*
2. $ packstack --allinone -d

*rdo-release-havana-6.noarch

Actual results:
===============
Installation fails.
The Error from openstack-setup.log:
2013-09-10 13:32:47::DEBUG::sequences::48::root:: Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/packstack/installer/core/sequences.py", line 46, in run
    self.function(config)
  File "/usr/lib/python2.6/site-packages/packstack/plugins/puppet_950.py", line 181, in applyPuppetManifest
    waitforpuppet(currently_running)
  File "/usr/lib/python2.6/site-packages/packstack/plugins/puppet_950.py", line 168, in waitforpuppet
    validate_puppet_logfile(log)
  File "/usr/lib/python2.6/site-packages/packstack/modules/ospluginutils.py", line 145, in validate_puppet_logfile
    raise PackStackError(message)
PackStackError: Error during puppet run : err: /Stage[main]/Swift::Keystone::Auth/Keystone_service[swift]: Could not evaluate: Execution of '/usr/bin/keystone --endpoint http://127.0.0.1:35357/v2.0/ service-list' returned 1: <attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to http://127.0.0.1:35357/v2.0/OS-KSADM/services)

2013-09-10 13:32:47::ERROR::run_setup::913::root:: Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 894, in main
    single_step_aio_install(options)
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 667, in single_step_aio_install
    single_step_install(options)
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 697, in single_step_install
    _main(answerfilepath)
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 577, in _main
    runSequences()
  File "/usr/lib/python2.6/site-packages/packstack/installer/run_setup.py", line 554, in runSequences
    controller.runAllSequences()
  File "/usr/lib/python2.6/site-packages/packstack/installer/setup_controller.py", line 90, in runAllSequences
    sequence.run(self.CONF)
  File "/usr/lib/python2.6/site-packages/packstack/installer/core/sequences.py", line 105, in run
    step.run(config=config)
  File "/usr/lib/python2.6/site-packages/packstack/installer/core/sequences.py", line 52, in run
    raise SequenceError(str(ex))
SequenceError: Error during puppet run : err: /Stage[main]/Swift::Keystone::Auth/Keystone_service[swift]: Could not evaluate: Execution of '/usr/bin/keystone --endpoint http://127.0.0.1:35357/v2.0/ service-list' returned 1: <attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to http://127.0.0.1:35357/v2.0/OS-KSADM/services)

Expected results:
=================
Should not fail with this error.

Comment 1 Perry Myers 2013-09-10 12:28:20 UTC
I reproduced the exact above error.  Debugging a bit...  Logged into the system and saw:

[admin@r6m ~]$ /etc/init.d/openstack-keystone status
keystone dead but pid file exists

There was nothing listening on port 35357 when doing lsof -i tcp | grep LISTEN

keystone.log shows:

2013-09-10 08:15:08.255 6679 CRITICAL keystone [-] No module named httplib2

Looks like keystone RPM is missing Requires on:
python-httplib2

Comment 2 Perry Myers 2013-09-10 12:30:02 UTC
So, the Requires: python-httplib2 needs to be on the following RPM in the specfile:
openstack-keystone-2013.2-0.10.b3.el6.noarch

I manually installed python-httplib2 and restarted keystone and it seemed to work.  So manual workaround for now would be to manually install that package prior to the packstack run

Comment 3 Omri Hochman 2013-09-10 12:33:54 UTC
*** Bug 1006307 has been marked as a duplicate of this bug. ***

Comment 4 Alan Pevec 2013-09-10 13:11:12 UTC
> Looks like keystone RPM is missing Requires on:
> python-httplib2

That must be from somewhere else, httplib2 is not used in Keystone Havana.
It was used in Keystone _client_ library < 0.2.1 but since then keystoneclient switched to requests.

Comment 5 Binoy Arnold 2013-09-10 13:48:41 UTC
Though i installed python-httplib2, I still get the error message and not able to continue with install

stopped on                                                                                             [ ERROR ]

ERROR : Error during puppet run : Error: /Stage[main]/Keystone/Exec[keystone-manage db_sync]: Failed to call refresh: keystone-manage db_sync returned 1 instead of one of [0]
Please check log file /var/tmp/packstack/20130910-142921-31dYdk/openstack-setup.log for more information

rerun the _keystone.pp and getting 

Notice: /Stage[main]/Keystone/Service[keystone]/ensure: ensure changed 'stopped' to 'running'
Error: /Stage[main]/Keystone::Roles::Admin/Keystone_role[_member_]: Could not evaluate: Execution of '/usr/bin/keystone --endpoint http://127.0.0.1:35357/v2.0/ role-list' returned 1: <attribute 'message' of 'exceptions.BaseException' objects> (HTTP Unable to establish connection to http://127.0.0.1:35357/v2.0/OS-KSADM/roles)

When try to start keystone
# /etc/init.d/openstack-keystone status
keystone dead but pid file exists


]# keystone-manage db_sync
Traceback (most recent call last):
  File "/usr/bin/keystone-manage", line 31, in <module>
    from keystone.openstack.common import gettextutils
  File "/usr/lib/python2.6/site-packages/keystone/__init__.py", line 20, in <module>
    replace_dist("WebOb >= 1.2")
  File "/usr/lib/python2.6/site-packages/keystone/__init__.py", line 18, in replace_dist
    return pkg_resources.require(requirement)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: WebOb>=1.2

Please help

Comment 6 Perry Myers 2013-09-10 13:49:31 UTC
Reiterating Comment #2.... I was seeing this in the keystone log file, which means that the _server_ was failing to start. 

I don't think this had anything to do with the client at all.  It looks like openstack-keystone should be requiring httplib, not python-keystoneclient

Comment 7 Alan Pevec 2013-09-10 17:10:38 UTC
So it's a packaging bug in EPEL6 python-oauth2-1.5.170-1.el6.noarch
It has:
import httplib2
but missing Requires: python-httplib2

It was fixed in Fedora[1] but never synced to EPEL :(

[1] http://pkgs.fedoraproject.org/cgit/python-oauth2.git/commit/?h=f14&id=4f84567a57ea42a7548b14366b941058276dc2cb

Comment 8 Alan Pevec 2013-09-10 17:18:49 UTC
Fedora was fixed in bug 736133

Comment 9 Alan Pevec 2013-09-10 21:46:55 UTC
(In reply to Binoy Arnold from comment #5)
> Though i installed python-httplib2, I still get the error message and not
> able to continue with install
...
> pkg_resources.DistributionNotFound: WebOb>=1.2

Please open a new BZ for this.
Workaround is yum install python-webob1.2 (from EPEL6)

Comment 10 Binoy Arnold 2013-09-11 09:04:25 UTC
Thanks for the updates,
its working..

(In reply to Alan Pevec from comment #9)
> (In reply to Binoy Arnold from comment #5)
> > Though i installed python-httplib2, I still get the error message and not
> > able to continue with install
> ...
> > pkg_resources.DistributionNotFound: WebOb>=1.2
> 
> Please open a new BZ for this.
> Workaround is yum install python-webob1.2 (from EPEL6)

Comment 11 Alan Pevec 2013-09-11 10:30:16 UTC
> > pkg_resources.DistributionNotFound: WebOb>=1.2
> Please open a new BZ for this.

FTR bug 1006768

Comment 12 Fedora Update System 2013-09-11 16:36:59 UTC
python-oauth2-1.5.211-5.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/python-oauth2-1.5.211-5.el6

Comment 13 Fedora Update System 2013-09-11 18:10:23 UTC
Package python-oauth2-1.5.211-5.el6:
* should fix your issue,
* was pushed to the Fedora EPEL 6 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing python-oauth2-1.5.211-5.el6'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2013-11536/python-oauth2-1.5.211-5.el6
then log in and leave karma (feedback).

Comment 14 Fedora Update System 2013-09-16 17:45:53 UTC
python-oauth2-1.5.211-5.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.