diff --git a/files/RPM-GPG-KEY-RDO-Havana b/files/RPM-GPG-KEY-RDO-Havana new file mode 100644 index 0000000..59a2a5a --- /dev/null +++ b/files/RPM-GPG-KEY-RDO-Havana @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.11 (GNU/Linux) + +mQINBFHvxL0BEADUX2nizL2nXQDR+c4msIcBdvXx67Q9MUXgPzaTWIB9EPxrnJVb +hrZva6JKKrt9djG3k7qeUdy7qwMT6OwZ5LswmcVKEQ91+sgO9GazUSmdZIb+e9ag +vmEnkPgeUCI7UlmNqpoPjfvn5msgcJGFGyLHoNGONs88Jo8TWkc145d+P2UJC6Kx +hNAHNIntE40eebA/mHW8NWySMQy9UPLYqw1TEawv5PTDGViaM08gEhvH1lEMOpD9 +nIYTeYw9JCXSPqG7NcpvF3q2gzew3sw1dYuXkowOybSSTJCAPGhuaRMcBzTOFhLD +1NRzeBXOHYKg7lxVSDtdH0wljNleR4IzdH6R+vR5XEddmqqIAZJ/8I8T9fxq18De +hVLvSuRh+UcVehjjHucmLNskTzDE+8oC7WdI2SoTQaPfa0xVcYvM+zWZ4OSVqoiW +i4/fIwIArFiuUqu7E9trackxdtzEIjdJnWzjdlNSZ9S8wqyt0ncjgyTnCzcoFPvq +HTnRmIR3ldxxlTKEXdTw/v3TobN6Giu+Iqu4vFpyP8j/z/YJQJoDCnLX+6Dsj4Ko +JDHBfaCLVnHRUVdnowtd37qN13x+w5Bj/u7td9SRvsHyVYmM7WxlDFjTYvo685IZ +hhu5qyrvMReXciQfGNkwEGpRzniY3PKJFJy0jCjiAiT3pjhUC2XWkjHGaQARAQAB +tCVyZG8taGF2YW5hLXNpZ24gPHJkby1pbmZvQHJlZGhhdC5jb20+iQI4BBMBAgAi +BQJR78S9AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRD6Fnt8K8fIAV5L +D/9T1ZWgP38an1pF2rzklTu09ET5e5B55/Jm2bBt1jLp55iF2R/N/G3EEZQM2UzQ +9u3NqY9JdEtdcGUuBP46+DhO6y5HpwvFug/s+ZL4QnlU//tLa8aJXCycyct3tE82 +3tGv37ToAQYucrJkWKNyxOK6SPj/wCKv0sySJsCstRB4ygQWEB8Y7U48kfybAriS +4lwfAceoDLTui2JNfolKeiYfY1iZn4m7q5a2CC8ZhpuWW9W4myUEA7pwKnOJRNr1 +JxF4eDo4SBlwG1eHH/Eg99QodzG49OerOZ4cLozTp9gz9kD70Ki7OXDS4vCsk4Xm +O0z243PK6WKVgmuWs9BYjyvojlvdHrr9UB4xBu9tVSdwJdnYKHunyN4F54IIby6b ++x2J5yTb36gSuQXywkLPuzQJ3qVtlyk1BMl9y8ZSAmiNtfUx2LzIPv558yogsky3 +0onTSFYBlvieo51qbDNmyCsqoClZ9EmGVDjzZpRyJvG/kzISGHStlwrC5ZlDzt/9 +dGfGh4AEOP0ISoCJHcUBfcoPQ0lZmIHUg50ZID1dcrttFdvKWP3mQ5PhjbJ2jm7u +THUSAXYNZRAS4p5NL55+7nVtT0Yu7+rWkgkIOEih5O4VCH56QOV4dfgJndXMzHRt +VTioriA/wrMLiyCw6RLP3iXfzyXch5mjAIeG+7YD8WnFvrkCDQRR78S9ARAAotGX +fwwB+o8bkPK2T2QfIsCg81oyfn5ka1VCeRX05ggQ+KscDWbYDSe/CndRSGoYnSAQ +1GvfDNRcoAB7ZLFU/plQxQEj2dmOAJ6fVvebi8ZP7wU4zOBEm5ijEGTsUGqqdye1 +F0hn/aFomvbMVCrnpThSTTY31c1BRlP7vJFn+21MuohI+/WaDmXq+eM55UlgqksM +3iJrexQRyzGj7cwt3kpFITYOsog6r5AgURsKfyRUM0mk3I2bjvpEu94HBk35RJoS +SacesgmWIscFF52I4PyaXZIo0tz3M8O1lk8y1J7Nl16LfvjEk9nxf9isxc8XgJ+f +C7O1zTxV4nmZqbxphbOfNACfmdlcp9BXg0znvVTgarU5QEdIPb+yhF4ilZItqRIo +feXeb4JuAfZhZNSVeAmqMMydDGkJ2IGL3ahtP4baBTEgdB5xPhm9HQnqLEdoXZZi +1HvRpT8eBsbR6EfhITNosVHy6zqbe3BcGLaDMu3PJAhziIGwtFAXuFhCGnXTtJHm +4A/2VMhgM4Zpf6kVijQ6APJn7X4iq6qeVWTOh/h2HsXanvbv0b0zfKBRCV4tgTnw +S0CO1tO3LVWJSbE+qYc1ZDEqN+0pPc0dIeBAhoBP54KPyc3s/BJrs4YBKkR/cROn +y8S+utUnW4h8cZbWBpfCTDjVBZTQYFyAoHeFJkcAEQEAAYkCHwQYAQIACQUCUe/E +vQIbDAAKCRD6Fnt8K8fIAVlRD/9lgKWuoU1iUdKBg25fM7HTGUhiUzddT/0rFnjp +jOIjeCguc8yX3tekgO+hY6+xM/OOc2BfGSmVXg88u9+aG97KInP2nAPCnxYSWMaQ +Wo1I9066K7nRfZ7PNYB3/lhDkPy0E2ha79SUnWUjlGnswzsNtSt8GxRETAEAv5jo +m9Jbep62jxl3M+f8Z817452dwaUoNNSrfTUKP5FMO95gkHS7sWG2t7X+K5c9/vX5 +GTv3SLQMbHivrRm0yCzFfQpQfAkYAZNahiLp/89RKwyySiQeDzeeqy581U7uLxwA +Uu/QXZH0k3RIZGI/JdOQ3Yk09wzh5SQeOcUs51Jk/O34wu+LrKwFvSgkP1Ld7hqB +j4A8LKn/tJDESOomPlljb8D/sfFb7K7g+sO8GY5Z8RiJKxQT8NXpw+st7QIa2XGV +5i2uhhbPVFaPly8bwtLstoaF84hokOSv4/cMfRbsUIQJMaxtcMwqf9H+eOas0uKh +D3gDZODEve5hYEabTFbVUrJ8N61qyVm3s1kbYBS4q1pM8pPzOnSqKsGnahHDpwhD +vXXbLsOsskZR629yTT/ZbPXMExPUnczhuGzEkCj2tDYF6n63nHSZmClPToXKxkPP +KIaHfraZoe+pO1XjRRSrT+Ax68FlnxoJqLBcuIWpzylnLpXldYqtVXFgXBy9bQ1A +WRhdyg== +=3A9V +-----END PGP PUBLIC KEY BLOCK----- diff --git a/manifests/repo.pp b/manifests/repo.pp index 3af9545..8928cc1 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -5,19 +5,23 @@ class openstack::repo( $release = 'grizzly' ) { - if $release == 'grizzly' { - if $::osfamily == 'RedHat' { - include openstack::repo::rdo - } elsif $::operatingsystem == 'Ubuntu' { - class {'openstack::repo::uca': release => $release } + case $release { + 'havana', 'grizzly': { + if $::osfamily == 'RedHat' { + class {'openstack::repo::rdo': release => $release } + } elsif $::operatingsystem == 'Ubuntu' { + class {'openstack::repo::uca': release => $release } + } } - } elsif $release == 'folsom' { - if $::osfamily == 'RedHat' { - include openstack::repo::epel - } elsif $::operatingsystem == 'Ubuntu' { - class {'openstack::repo::uca': release => $release } + 'folsom': { + if $::osfamily == 'RedHat' { + include openstack::repo::epel + } elsif $::operatingsystem == 'Ubuntu' { + class {'openstack::repo::uca': release => $release } + } + } + default: { + notify { "WARNING: openstack::repo parameter 'release' of '${release}' not recognized; please use one of 'havana', 'grizzly' or 'folsom'.": } } - } else { - notify { "WARNING: openstack::repo parameter 'release' of '${release}' not recognized; please use 'grizzly' or 'folsom'.": } } } diff --git a/manifests/repo/rdo.pp b/manifests/repo/rdo.pp index 9939e88..a335643 100644 --- a/manifests/repo/rdo.pp +++ b/manifests/repo/rdo.pp @@ -1,7 +1,11 @@ # RDO repo (supports Grizzly on both RHEL-alikes and Fedora, requires EPEL) -class openstack::repo::rdo { +class openstack::repo::rdo( + $release = 'grizzly' +) { include openstack::repo::epel + $release_cap = capitalize($release) + if $::osfamily == 'RedHat' { case $operatingsystem { centos, redhat, scientific, slc: { $dist = 'epel' } @@ -11,16 +15,16 @@ class openstack::repo::rdo { $osver = regsubst($::operatingsystemrelease, '(\d+)\..*', '\1') yumrepo { 'rdo-release': - baseurl => "http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/${dist}-${osver}/", - descr => 'OpenStack Grizzly Repository', + baseurl => "http://repos.fedorapeople.org/repos/openstack/openstack-${release}/${dist}-${osver}/", + descr => "OpenStack ${release_cap} Repository", enabled => 1, gpgcheck => 1, - gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Grizzly', + gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}", priority => 98, notify => Exec['yum_refresh'], } - file { '/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Grizzly': - source => 'puppet:///modules/openstack/RPM-GPG-KEY-RDO-Grizzly', + file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-${release_cap}": + source => "puppet:///modules/openstack/RPM-GPG-KEY-RDO-${release_cap}", owner => root, group => root, mode => '0644', diff --git a/spec/classes/openstack_repo_spec.rb b/spec/classes/openstack_repo_spec.rb index bbac4d7..f51df32 100644 --- a/spec/classes/openstack_repo_spec.rb +++ b/spec/classes/openstack_repo_spec.rb @@ -2,6 +2,29 @@ require 'spec_helper' describe 'openstack::repo' do + describe 'RHEL and havana' do + let :params do + { :release => 'havana' } + end + let :facts do + { + :osfamily => 'RedHat', + :operatingsystem => 'CentOS', + :operatingsystemrelease => '6.4', + } + end + + it do + should contain_yumrepo('rdo-release').with( + :baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-havana/epel-6/' + ) + should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Havana') + + should contain_yumrepo('epel') + should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6') + end + end + describe 'RHEL and grizzly' do let :params do { :release => 'grizzly' } @@ -25,6 +48,28 @@ describe 'openstack::repo' do end end + describe 'Fedora and havana' do + let :params do + { :release => 'havana' } + end + + let :facts do + { + :osfamily => 'RedHat', + :operatingsystem => 'Fedora', + :operatingsystemrelease => '18', + } + end + + it do + should contain_yumrepo('rdo-release').with( + :baseurl => 'http://repos.fedorapeople.org/repos/openstack/openstack-havana/fedora-18/' + ) + should contain_file('/etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Havana') + end + end + + describe 'Fedora and grizzly' do let :params do { :release => 'grizzly' } @@ -46,6 +91,26 @@ describe 'openstack::repo' do end end + describe 'Ubuntu and havana' do + let :params do + { :release => 'havana' } + end + + let :facts do + { + :osfamily => 'Debian', + :operatingsystem => 'Ubuntu', + :operatingsystemrelease => '12.04', + :lsbdistdescription => 'Ubuntu 12.04.1 LTS', + :lsbdistcodename => 'precise', + } + end + + it do + should contain_apt__source('ubuntu-cloud-archive').with_release('precise-updates/havana') + end + end + describe 'Ubuntu and grizzly' do let :params do { :release => 'grizzly' }