diff --git a/manifests/repo/redhat/redhat.pp b/manifests/repo/redhat/redhat.pp index 5f356f3..07a4102 100644 --- a/manifests/repo/redhat/redhat.pp +++ b/manifests/repo/redhat/redhat.pp @@ -31,6 +31,10 @@ # create_resource. See examples folder for some useful examples. # Defaults to {} # +# [*repo_source_hash*] +# (optional) A hash of repo files +# Defaults to {} +# # [*repo_defaults*] # (optional) The defaults for the yumrepo resources that will be # created using create_resource. @@ -71,6 +75,7 @@ class openstack_extras::repo::redhat::redhat( $manage_virt = true, $manage_epel = false, $repo_hash = {}, + $repo_source_hash = {}, $repo_defaults = {}, $gpgkey_hash = {}, $gpgkey_defaults = {}, @@ -84,6 +89,7 @@ class openstack_extras::repo::redhat::redhat( validate_legacy(Boolean, 'validate_bool', $manage_rdo) validate_legacy(Boolean, 'validate_bool', $manage_epel) validate_legacy(Hash, 'validate_hash', $repo_hash) + validate_legacy(Hash, 'validate_hash', $repo_source_hash) validate_legacy(Hash, 'validate_hash', $repo_defaults) validate_legacy(Hash, 'validate_hash', $gpgkey_hash) validate_legacy(Hash, 'validate_hash', $gpgkey_defaults) @@ -168,6 +174,13 @@ class openstack_extras::repo::redhat::redhat( create_resources('yumrepo', $repo_hash, $_repo_defaults) create_resources('file', $gpgkey_hash, $_gpgkey_defaults) + $repo_source_hash.each | $filename, $url | { + file { $filename: + path => "/etc/yum.repos.d/${filename}", + source => $url, + } + } + if ((versioncmp($::puppetversion, '3.5') > 0) and $purge_unmanaged) { resources { 'yumrepo': purge => true } } diff --git a/releasenotes/notes/repo-redhat-repofile-bfafdae3f8b158b2.yaml b/releasenotes/notes/repo-redhat-repofile-bfafdae3f8b158b2.yaml new file mode 100644 index 0000000..95c3cfe --- /dev/null +++ b/releasenotes/notes/repo-redhat-repofile-bfafdae3f8b158b2.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The new ``manifests::repo::redhat::redhat::repo_source_hash`` parameter has + been added, so that repo file can be passed directly to configure yum + repogitories on CentOS or RHEL nodes. diff --git a/spec/classes/openstack_extras_repo_redhat_redhat_spec.rb b/spec/classes/openstack_extras_repo_redhat_redhat_spec.rb index 80bdb16..a8e9a48 100644 --- a/spec/classes/openstack_extras_repo_redhat_redhat_spec.rb +++ b/spec/classes/openstack_extras_repo_redhat_redhat_spec.rb @@ -252,6 +252,26 @@ describe 'openstack_extras::repo::redhat::redhat' do it { should_not contain_exec('installing_yum-plugin-priorities') } end + + context 'with repo_source_hash' do + let :params do + default_params.merge!({ + :repo_source_hash => { + 'delorean.repo' => 'https://trunk.rdoproject.org/centos8-master/puppet-passed-ci/delorean.repo', + 'delorean-deps.repo' => 'https://trunk.rdoproject.org/centos8-master/delorean-deps.repo'}}) + end + + it { + should contain_file('delorean.repo').with( + :path => '/etc/yum.repos.d/delorean.repo', + :source => 'https://trunk.rdoproject.org/centos8-master/puppet-passed-ci/delorean.repo' + ) + should contain_file('delorean-deps.repo').with( + :path => '/etc/yum.repos.d/delorean-deps.repo', + :source => 'https://trunk.rdoproject.org/centos8-master/delorean-deps.repo' + ) + } + end end on_supported_os({