Skip to content

Commit

Permalink
Merge pull request #256 from hunner/fix_versioncmp
Browse files Browse the repository at this point in the history
Fix versioncmp when version is undef
  • Loading branch information
EmilienM committed Jan 19, 2016
2 parents 3bcfc75 + a04f37d commit dc31d79
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 40 deletions.
48 changes: 25 additions & 23 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@

$manage_package = pick($mongodb::globals::manage_package, $mongodb::globals::manage_package_repo, false)

$version = $::mongodb::globals::version

# Amazon Linux's OS Family is 'Linux', operating system 'Amazon'.
case $::osfamily {
'RedHat', 'Linux': {

if $manage_package {
$user = pick($::mongodb::globals::user, 'mongod')
$group = pick($::mongodb::globals::group, 'mongod')
if ($::mongodb::globals::version == undef) {
if ($version == undef) {
$server_package_name = pick($::mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($::mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($::mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
Expand All @@ -38,20 +40,20 @@
$package_ensure_mongos = true
} else {
# check if the version is greater than 2.6
if(versioncmp($::mongodb::globals::version, '2.6.0') >= 0) {
if $version and (versioncmp($version, '2.6.0') >= 0) {
$server_package_name = pick($::mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($::mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($::mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
$package_ensure = $::mongodb::globals::version
$package_ensure_client = $::mongodb::globals::version
$package_ensure_mongos = $::mongodb::globals::version
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
} else {
$server_package_name = pick($::mongodb::globals::server_package_name, 'mongodb-10gen')
$client_package_name = pick($::mongodb::globals::client_package_name, 'mongodb-10gen')
$mongos_package_name = pick($::mongodb::globals::mongos_package_name, 'mongodb-10gen')
$package_ensure = $::mongodb::globals::version
$package_ensure_client = $::mongodb::globals::version #this is still needed in case they are only installing the client
$package_ensure_mongos = $::mongodb::globals::version
$package_ensure = $version
$package_ensure_client = $version #this is still needed in case they are only installing the client
$package_ensure_mongos = $version
}
}
$service_name = pick($::mongodb::globals::service_name, 'mongod')
Expand All @@ -70,14 +72,14 @@
} else {
# RedHat/CentOS doesn't come with a prepacked mongodb
# so we assume that you are using EPEL repository.
if ($::mongodb::globals::version == undef) {
if ($version == undef) {
$package_ensure = true
$package_ensure_client = true
$package_ensure_mongos = true
} else {
$package_ensure = $::mongodb::globals::version
$package_ensure_client = $::mongodb::globals::version
$package_ensure_mongos = $::mongodb::globals::version
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
}
$user = pick($::mongodb::globals::user, 'mongodb')
$group = pick($::mongodb::globals::group, 'mongodb')
Expand Down Expand Up @@ -114,7 +116,7 @@
if $manage_package {
$user = pick($::mongodb::globals::user, 'mongodb')
$group = pick($::mongodb::globals::group, 'mongodb')
if ($::mongodb::globals::version == undef) {
if ($version == undef) {
$server_package_name = pick($::mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($::mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($::mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
Expand All @@ -125,21 +127,21 @@
$config = '/etc/mongod.conf'
} else {
# check if the version is greater than 2.6
if(versioncmp($::mongodb::globals::version, '2.6.0') >= 0) {
if $version and (versioncmp($version, '2.6.0') >= 0) {
$server_package_name = pick($::mongodb::globals::server_package_name, 'mongodb-org-server')
$client_package_name = pick($::mongodb::globals::client_package_name, 'mongodb-org-shell')
$mongos_package_name = pick($::mongodb::globals::mongos_package_name, 'mongodb-org-mongos')
$package_ensure = $::mongodb::globals::version
$package_ensure_client = $::mongodb::globals::version
$package_ensure_mongos = $::mongodb::globals::version
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
$service_name = pick($::mongodb::globals::service_name, 'mongod')
$config = '/etc/mongod.conf'
} else {
$server_package_name = pick($::mongodb::globals::server_package_name, 'mongodb-10gen')
$client_package_name = pick($::mongodb::globals::client_package_name, 'mongodb-10gen')
$mongos_package_name = pick($::mongodb::globals::mongos_package_name, 'mongodb-10gen')
$package_ensure = $::mongodb::globals::version
$package_ensure_client = $::mongodb::globals::version #this is still needed in case they are only installing the client
$package_ensure = $version
$package_ensure_client = $version #this is still needed in case they are only installing the client
$service_name = pick($::mongodb::globals::service_name, 'mongodb')
$config = '/etc/mongodb.conf'
}
Expand All @@ -155,14 +157,14 @@
# I would not recommend to use the prepacked
# mongodb server on Ubuntu 12.04 or Debian 6/7,
# because its really outdated
if ($::mongodb::globals::version == undef) {
if ($version == undef) {
$package_ensure = true
$package_ensure_client = true
$package_ensure_mongos = true
} else {
$package_ensure = $::mongodb::globals::version
$package_ensure_client = $::mongodb::globals::version
$package_ensure_mongos = $::mongodb::globals::version
$package_ensure = $version
$package_ensure_client = $version
$package_ensure_mongos = $version
}
$user = pick($::mongodb::globals::user, 'mongodb')
$group = pick($::mongodb::globals::group, 'mongodb')
Expand Down
2 changes: 1 addition & 1 deletion manifests/repo.pp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
$location = 'https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/stable/$basearch/'
$description = 'MongoDB Enterprise Repository'
}
elsif (versioncmp($version, '3.0.0') >= 0) {
elsif $version and (versioncmp($version, '3.0.0') >= 0) {
$mongover = split($version, '[.]')
$location = $::architecture ? {
'x86_64' => "http://repo.mongodb.org/yum/redhat/${::operatingsystemmajrelease}/mongodb-org/${mongover[0]}.${mongover[1]}/x86_64/",
Expand Down
2 changes: 1 addition & 1 deletion manifests/server/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
#Pick which config content to use
if $config_content {
$cfg_content = $config_content
} elsif (versioncmp($version, '2.6.0') >= 0) {
} elsif $version and (versioncmp($version, '2.6.0') >= 0) {
# Template uses:
# - $auth
# - $bind_ip
Expand Down
20 changes: 12 additions & 8 deletions spec/classes/mongos_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
context 'on Debian with service_manage set to true' do
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:operatingsystemrelease => '7.0',
}
end

Expand All @@ -29,8 +30,9 @@
context 'on Debian with service_manage set to false' do
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:operatingsystemrelease => '7.0',
}
end

Expand All @@ -50,8 +52,9 @@
context 'on RedHat with service_manage set to true' do
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:operatingsystemrelease => '7.0',
}
end

Expand All @@ -78,8 +81,9 @@
context 'on RedHat with service_manage set to false' do
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:operatingsystemrelease => '7.0',
}
end

Expand Down
17 changes: 10 additions & 7 deletions spec/classes/repo_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
context 'when deploying on Debian' do
let :facts do
{
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:lsbdistid => 'Debian',
:osfamily => 'Debian',
:operatingsystem => 'Debian',
:operatingsystemrelease => '7.0',
:lsbdistid => 'Debian',
}
end

Expand All @@ -19,8 +20,9 @@
context 'when deploying on CentOS' do
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:osfamily => 'RedHat',
:operatingsystem => 'CentOS',
:operatingsystemrelease => '7.0',
}
end

Expand All @@ -32,8 +34,9 @@
context 'when yumrepo has a proxy set' do
let :facts do
{
:osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:osfamily => 'RedHat',
:operatingsystem => 'RedHat',
:operatingsystemrelease => '7.0',
}
end
let :params do
Expand Down

0 comments on commit dc31d79

Please sign in to comment.