- # There's a more elegant way to do these long sets of checks
- # using multi-line hashes, but it breaks in Ruby 1.8.7
- it { should contain_yumrepo('opendaylight').with_enabled('1').with_gpgcheck('0').with_descr('OpenDaylight SDN controller').with_baseurl(yum_repo) }
- it { should contain_package('opendaylight').with_ensure('present') }
- it { should contain_service('opendaylight').with_ensure('running').with_enable('true').with_hasstatus('true').with_hasrestart('true') }
- it { should contain_file('org.apache.karaf.features.cfg').with_ensure('file').with_path('/opt/opendaylight-0.2.2/etc/org.apache.karaf.features.cfg').with_content(/^featuresBoot=#{features.join(",")}/) }
+ # NB: These hashes don't work with Ruby 1.8.7, but we
+ # don't support 1.8.7 so that's okay. See issue #36.
+ it {
+ should contain_file('org.apache.karaf.features.cfg').with(
+ 'ensure' => 'file',
+ 'path' => '/opt/opendaylight-0.2.2/etc/org.apache.karaf.features.cfg',
+ 'content' => /^featuresBoot=#{features.join(",")}/
+ )
+ }
+end
+
+def install_method_tests(method, yum_repo, tarball_url='', unitfile_url='')
+ case method
+ when 'rpm'
+ # Confirm presense of RPM-related resources
+ it { should contain_yumrepo('opendaylight') }
+ it { should contain_package('opendaylight') }
+ it { should contain_package('opendaylight').that_requires('Yumrepo[opendaylight]') }
+ it { should contain_yumrepo('opendaylight').that_comes_before('Package[opendaylight]') }
+
+ # Confirm properties of RPM-related resources
+ # NB: These hashes don't work with Ruby 1.8.7, but we
+ # don't support 1.8.7 so that's okay. See issue #36.
+ it {
+ should contain_yumrepo('opendaylight').with(
+ 'enabled' => '1',
+ 'gpgcheck' => '0',
+ 'descr' => 'OpenDaylight SDN controller',
+ 'baseurl' => yum_repo,
+ )
+ }
+ it {
+ should contain_package('opendaylight').with(
+ 'ensure' => 'present',
+ )
+ }
+ when 'tarball'
+ if tarball_url == ''
+ fail('Expected tarball_url param')
+ end
+
+ if unitfile_url == ''
+ fail('Expected unitfile_url param')
+ end
+
+ # Confirm presense of tarball-related resources
+ it { should contain_archive('opendaylight-0.2.2') }
+ it { should contain_archive('opendaylight-systemd') }
+
+ # Confirm properties of tarball-related resources
+ # NB: These hashes don't work with Ruby 1.8.7, but we
+ # don't support 1.8.7 so that's okay. See issue #36.
+ it {
+ should contain_archive('opendaylight-0.2.2').with(
+ 'ensure' => 'present',
+ 'url' => tarball_url,
+ 'target' => '/opt/',
+ 'checksum' => false,
+ 'strip_components' => 1,
+ )
+ }
+ it {
+ should contain_archive('opendaylight-systemd').with(
+ 'ensure' => 'present',
+ 'url' => unitfile_url,
+ 'target' => '/usr/lib/systemd/system/',
+ 'root_dir' => '.',
+ 'checksum' => false,
+ 'strip_components' => 1,
+ )
+ }
+ else
+ fail("Unexpected install method: #{method}")
+ end