diff --git a/.fixtures.yml b/.fixtures.yml index 990960b..fef8d87 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -1,10 +1,8 @@ fixtures: symlinks: cassandra: "#{source_dir}" repositories: - apt: - repo: "git://github.com/puppetlabs/puppetlabs-apt" - ref: "2.4.0" + apt: "git://github.com/puppetlabs/puppetlabs-apt" firewall: "git://github.com/puppetlabs/puppetlabs-firewall" inifile: "git://github.com/puppetlabs/puppetlabs-inifile" stdlib: "git://github.com/puppetlabs/puppetlabs-stdlib" diff --git a/metadata.json b/metadata.json index 8a8b8dd..8677234 100644 --- a/metadata.json +++ b/metadata.json @@ -1,86 +1,86 @@ { "name": "puppet-cassandra", "version": "2.7.1-rc0", "author": "Vox Pupuli", "summary": "Installs Cassandra & DataStax Agent on RHEL/Ubuntu/Debian.", "license": "Apache-2.0", "source": "https://github.com/voxpupuli/puppet-cassandra", "project_page": "https://github.com/voxpupuli/puppet-cassandra", "issues_url": "https://github.com/voxpupuli/puppet-cassandra/issues", "tags": [ "Apache", "cassandra", "cluster", "database", "datastax", "datastax-agent", "nosql" ], "dependencies": [ { "name": "puppetlabs-apt", - "version_requirement": ">= 2.0.0 < 5.0.0" + "version_requirement": ">= 2.0.0 < 6.0.0" }, { "name": "puppetlabs-firewall", "version_requirement": ">= 1.0.0 < 2.0.0" }, { "name": "puppetlabs-inifile", "version_requirement": ">= 1.5.0 < 2.0.0" }, { "name": "puppetlabs-stdlib", - "version_requirement": ">= 3.0.0 < 6.0.0" + "version_requirement": ">= 3.0.0 < 5.0.0" } ], "operatingsystem_support": [ { "operatingsystem": "CentOS", "operatingsystemrelease": [ "6", "7" ] }, { "operatingsystem": "OracleLinux", "operatingsystemrelease": [ "6", "7" ] }, { "operatingsystem": "RedHat", "operatingsystemrelease": [ "6", "7" ] }, { "operatingsystem": "Debian", "operatingsystemrelease": [ "8" ] }, { "operatingsystem": "Scientific", "operatingsystemrelease": [ "6", "7" ] }, { "operatingsystem": "Ubuntu", "operatingsystemrelease": [ "14.04", "16.04" ] } ], "requirements": [ { "name": "puppet", "version_requirement": ">= 4.10.0 < 6.0.0" } ] } diff --git a/spec/classes/apache_repo_spec.rb b/spec/classes/apache_repo_spec.rb index 5b5e662..cdf85da 100644 --- a/spec/classes/apache_repo_spec.rb +++ b/spec/classes/apache_repo_spec.rb @@ -1,69 +1,73 @@ require 'spec_helper' describe 'cassandra::apache_repo' do context 'On a RedHat OS with defaults for all parameters' do let :facts do { osfamily: 'RedHat' } end let :params do { release: '311x' } end it do is_expected.to have_resource_count(1) is_expected.to contain_class('cassandra::apache_repo').only_with( 'descr' => 'Repo for Apache Cassandra', 'key_id' => 'A26E528B271F19B9E5D8E19EA278B781FE4B2BDA', 'key_url' => 'https://www.apache.org/dist/cassandra/KEYS', 'release' => '311x' ) is_expected.to contain_yumrepo('cassandra_apache').with( ensure: 'present', descr: 'Repo for Apache Cassandra', baseurl: 'http://www.apache.org/dist/cassandra/redhat/311x', enabled: 1, gpgcheck: 1, gpgkey: 'https://www.apache.org/dist/cassandra/KEYS' ) end end context 'On a Debian OS with defaults for all parameters' do let :facts do { osfamily: 'Debian', - lsbdistid: 'Ubuntu', - lsbdistrelease: '14.04' + lsbdistid: 'Debian', + lsbdistrelease: '9', + os: { + name: 'Debian', + release: { major: '9' } + } } end it do - is_expected.to have_resource_count(14) + is_expected.to have_resource_count(16) is_expected.to contain_class('apt') is_expected.to contain_class('apt::update') is_expected.to contain_apt__key('apache.cassandra').with( id: 'A26E528B271F19B9E5D8E19EA278B781FE4B2BDA', source: 'https://www.apache.org/dist/cassandra/KEYS' ) is_expected.to contain_apt__source('cassandra.sources').with( location: 'http://www.apache.org/dist/cassandra/debian', comment: 'Repo for Apache Cassandra', release: 'main', include: { 'src' => false } ).that_notifies('Exec[update-apache-cassandra-repo]') is_expected.to contain_exec('update-apache-cassandra-repo').with( refreshonly: true, command: '/bin/true' ) end end end diff --git a/spec/classes/datastax_repo_spec.rb b/spec/classes/datastax_repo_spec.rb index e94642b..1ddbc20 100644 --- a/spec/classes/datastax_repo_spec.rb +++ b/spec/classes/datastax_repo_spec.rb @@ -1,62 +1,66 @@ require 'spec_helper' describe 'cassandra::datastax_repo' do context 'On a RedHat OS with defaults for all parameters' do let :facts do { osfamily: 'RedHat' } end it do is_expected.to have_resource_count(1) is_expected.to contain_class('cassandra::datastax_repo').only_with( 'descr' => 'DataStax Repo for Apache Cassandra', 'key_id' => '7E41C00F85BFC1706C4FFFB3350200F2B999A372', 'key_url' => 'http://debian.datastax.com/debian/repo_key', 'release' => 'stable' ) is_expected.to contain_yumrepo('datastax').with( ensure: 'present', descr: 'DataStax Repo for Apache Cassandra', baseurl: 'http://rpm.datastax.com/community', enabled: 1, gpgcheck: 0 ) end end context 'On a Debian OS with defaults for all parameters' do let :facts do { osfamily: 'Debian', - lsbdistid: 'Ubuntu', - lsbdistrelease: '14.04' + lsbdistid: 'Debian', + lsbdistrelease: '9', + os: { + name: 'Debian', + release: { major: '9' } + } } end it do - is_expected.to have_resource_count(14) + is_expected.to have_resource_count(16) is_expected.to contain_class('apt') is_expected.to contain_class('apt::update') is_expected.to contain_apt__key('datastaxkey').with( id: '7E41C00F85BFC1706C4FFFB3350200F2B999A372', source: 'http://debian.datastax.com/debian/repo_key' ) is_expected.to contain_apt__source('datastax').with( location: 'http://debian.datastax.com/community', comment: 'DataStax Repo for Apache Cassandra', release: 'stable', include: { 'src' => false } ).that_notifies('Exec[update-cassandra-repos]') is_expected.to contain_exec('update-cassandra-repos').with( refreshonly: true, command: '/bin/true' ) end end end diff --git a/spec/classes/java_spec.rb b/spec/classes/java_spec.rb index e517302..f4e18d8 100644 --- a/spec/classes/java_spec.rb +++ b/spec/classes/java_spec.rb @@ -1,155 +1,159 @@ require 'spec_helper' describe 'cassandra::java' do context 'On a RedHat OS with defaults for all parameters' do let :facts do { operatingsystemmajrelease: '7', osfamily: 'RedHat' } end it do is_expected.to contain_class('cassandra::java') is_expected.to contain_package('java-1.8.0-openjdk-headless') is_expected.to contain_package('jna') end end context 'On a Debian OS with defaults for all parameters' do let :facts do { operatingsystemmajrelease: '7', osfamily: 'Debian', lsbdistid: 'Debian' } end it do is_expected.to contain_class('cassandra::java') is_expected.to contain_package('openjdk-7-jre-headless') is_expected.to contain_package('libjna-java') is_expected.to have_resource_count(2) end end context 'On a Debian OS with package_ensure set' do let :facts do { operatingsystemmajrelease: '7', osfamily: 'Debian', lsbdistid: 'Debian' } end let :params do { package_ensure: '2.1.13' } end it do is_expected.to contain_package('openjdk-7-jre-headless').with_ensure('2.1.13') end end context 'With package names set to foobar' do let :facts do { operatingsystemmajrelease: '7', osfamily: 'RedHat' } end let :params do { package_name: 'foobar-java', package_ensure: '42', jna_package_name: 'foobar-jna', jna_ensure: 'latest' } end it do is_expected.to contain_package('foobar-java').with(ensure: 42) is_expected.to contain_package('foobar-jna').with(ensure: 'latest') end end context 'Ensure that a YUM repo can be specified.' do let :facts do { operatingsystemmajrelease: '7', osfamily: 'RedHat' } end let :params do { yumrepo: { 'ACME' => { 'baseurl' => 'http://yum.acme.org/repos', 'descr' => 'YUM Repository for ACME Products' } } } end it do is_expected.to contain_yumrepo('ACME').with( baseurl: 'http://yum.acme.org/repos', descr: 'YUM Repository for ACME Products' ).that_comes_before('Package[java-1.8.0-openjdk-headless]') end end context 'Ensure that Apt key and source can be specified.' do let :facts do { operatingsystemmajrelease: '7', osfamily: 'Debian', - lsbdistid: 'Debian' + lsbdistid: 'Debian', + os: { + name: 'Debian', + release: { major: '7' } + } } end let :params do { aptkey: { 'openjdk-r' => { 'id' => 'DA1A4A13543B466853BAF164EB9B1D8886F44E2A', 'server' => 'keyserver.ubuntu.com' } }, aptsource: { 'openjdk-r' => { 'comment' => 'OpenJDK builds (all archs)', 'location' => 'http://ppa.launchpad.net/openjdk-r/ppa/ubuntu', 'repos' => 'main', 'release' => 'trusty' } } } end it do is_expected.to contain_apt__key('openjdk-r'). with( id: 'DA1A4A13543B466853BAF164EB9B1D8886F44E2A', server: 'keyserver.ubuntu.com' ). that_comes_before('Package[openjdk-7-jre-headless]') is_expected.to contain_apt__source('openjdk-r'). with( comment: 'OpenJDK builds (all archs)', location: 'http://ppa.launchpad.net/openjdk-r/ppa/ubuntu', repos: 'main', release: 'trusty' ) is_expected.to contain_exec('cassandra::java::apt_update'). with( refreshonly: true, command: '/bin/true' ). that_comes_before('Package[openjdk-7-jre-headless]') end end end