Bug 1133953

Summary: Pulp should fail to start if the Mongo Connection doesn't meet the minimum version requirement
Product: [Retired] Pulp Reporter: Randy Barlow <rbarlow>
Component: API/integrationAssignee: Chris Duryee <cduryee>
Status: CLOSED UPSTREAM QA Contact: Preethi Thomas <pthomas>
Severity: high Docs Contact:
Priority: medium    
Version: 2.4.0CC: bcourt, bmbouter, cduryee, pthomas
Target Milestone: ---Keywords: Triaged
Target Release: 2.6.0   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-28 22:16:47 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 Randy Barlow 2014-08-26 14:07:31 UTC
Description of problem:
We have a current Mongo requirement of 2.4.0 or greater. Nothing in Pulp currently validates that the Mongo version is 2.4.0. It would be good for us to check the Mongo version upon connecting, raising a meaningful error in the logs if the version doesn't meet our requirements.


Version-Release number of selected component (if applicable):
2.4.0-1

How reproducible:
Very

Steps to Reproduce:
1. Configure Pulp to use a Mongo server < 2.4.0
2. Start Pulp


Actual results:
Observe that most operations will work, but when you hit one that doesn't, it's a doozy!

Expected results:
Pulp should refuse to connect to a Mongo that doesn't meet our requirements.

Additional info:
Here is how to check the Mongo version:

In [5]: pymongo.Connection('limeade.usersys.redhat.com').server_info()['versionArray']
Out[5]: [2, 4, 6, 0]

There is also a 'version' key that looks like '2.4.6'.

Comment 1 Barnaby Court 2014-08-26 14:11:53 UTC
The pulp-manage-db migration script should also check the mongo version.

Comment 2 Chris Duryee 2014-08-28 13:56:14 UTC
Is it possible to check that the mongo connection has correct privileges on pulp_database during startup? This would also be helpful, especially when connecting as non-admin users.

Comment 3 Chris Duryee 2014-09-08 18:37:42 UTC
https://github.com/pulp/pulp/pull/1150

Comment 4 Chris Duryee 2014-09-18 20:38:13 UTC
merged to 2.5-dev and master

Comment 5 Chris Duryee 2014-12-23 20:52:28 UTC
fixed in pulp 2.6.0-0.2.beta

Comment 6 Preethi Thomas 2015-02-04 13:34:59 UTC
verified
[root@ibm-x3550m3-07 ~]# rpm -qa pulp-server
pulp-server-2.6.0-0.5.beta.el6.noarch
[root@ibm-x3550m3-07 ~]# 

Mongo version is getting checked while running pulp-manage-db

[root@ibm-x3550m3-07 ~]# sudo -u apache pulp-manage-db
Mongo database for connection is version 2.4.12
Loading content types.
Loading type descriptors [iso_support.json, nodes.json, rpm_support.json]
Parsing type descriptors
Validating type descriptor syntactic integrity
Validating type descriptor semantic integrity
Updating the database with types [iso, repository, node, distribution, drpm, erratum, package_group, package_category, package_environment, rpm, srpm, yum_repo_metadata_file]
Found the following type definitions that were not present in the update collection [puppet_module]
/usr/lib/python2.6/site-packages/pulp/server/db/connection.py:162: DeprecationWarning: The safe parameter is deprecated. Please use write concern options instead.
  return method(*args, **kwargs)
Content types loaded.
Ensuring the admin role and user are in place.
Mongo database for connection is version 2.4.12
Admin role and user are in place.
Beginning database migrations.
Migration package pulp.server.db.migrations is up to date at version 12
Migration package pulp_rpm.plugins.migrations is up to date at version 18
Database migrations complete.

Comment 7 Brian Bouterse 2015-02-28 22:16:47 UTC
Moved to https://pulp.plan.io/issues/501