From 70bf352a34133431d1c14e539537ad1589e82b3c Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 4 May 2020 15:17:24 +0900 Subject: [PATCH] Use anchor to require necessary packages/services ... so that correct packages and services are required without re-defining them in resource implementations. Change-Id: I756b6ff532cc1989ef9e24228d475d481c75c4a5 --- lib/puppet/type/sahara_api_paste_ini.rb | 4 ++-- lib/puppet/type/sahara_cluster_template.rb | 4 ++-- lib/puppet/type/sahara_config.rb | 4 ++-- lib/puppet/type/sahara_node_group_template.rb | 4 ++-- spec/unit/type/sahara_api_paste_ini_spec.rb | 22 +++++-------------- .../unit/type/sahara_cluster_template_spec.rb | 6 ++--- spec/unit/type/sahara_config_spec.rb | 7 +++--- .../type/sahara_node_group_template_spec.rb | 6 ++--- 8 files changed, 24 insertions(+), 33 deletions(-) diff --git a/lib/puppet/type/sahara_api_paste_ini.rb b/lib/puppet/type/sahara_api_paste_ini.rb index 248047b9..afbd98e4 100644 --- a/lib/puppet/type/sahara_api_paste_ini.rb +++ b/lib/puppet/type/sahara_api_paste_ini.rb @@ -45,8 +45,8 @@ Puppet::Type.newtype(:sahara_api_paste_ini) do defaultto('') end - autorequire(:package) do - 'sahara-common' + autorequire(:anchor) do + ['sahara::install::end'] end end diff --git a/lib/puppet/type/sahara_cluster_template.rb b/lib/puppet/type/sahara_cluster_template.rb index ee21a07a..5f6c6e8f 100644 --- a/lib/puppet/type/sahara_cluster_template.rb +++ b/lib/puppet/type/sahara_cluster_template.rb @@ -47,8 +47,8 @@ Puppet::Type.newtype(:sahara_cluster_template) do end end - autorequire(:service) do - [ 'sahara-api', 'sahara-engine' ] + autorequire(:anchor) do + ['sahara::service::end'] end autorequire(:sahara_node_group_template) do diff --git a/lib/puppet/type/sahara_config.rb b/lib/puppet/type/sahara_config.rb index fbb139db..7757f81d 100644 --- a/lib/puppet/type/sahara_config.rb +++ b/lib/puppet/type/sahara_config.rb @@ -45,7 +45,7 @@ Puppet::Type.newtype(:sahara_config) do defaultto('') end - autorequire(:package) do - 'sahara-common' + autorequire(:anchor) do + ['sahara::install::end'] end end diff --git a/lib/puppet/type/sahara_node_group_template.rb b/lib/puppet/type/sahara_node_group_template.rb index b50321e6..5196c160 100644 --- a/lib/puppet/type/sahara_node_group_template.rb +++ b/lib/puppet/type/sahara_node_group_template.rb @@ -74,7 +74,7 @@ Puppet::Type.newtype(:sahara_node_group_template) do end end - autorequire(:service) do - [ 'sahara-api', 'sahara-engine' ] + autorequire(:anchor) do + ['sahara::service::end'] end end diff --git a/spec/unit/type/sahara_api_paste_ini_spec.rb b/spec/unit/type/sahara_api_paste_ini_spec.rb index 2139116c..281d64c6 100644 --- a/spec/unit/type/sahara_api_paste_ini_spec.rb +++ b/spec/unit/type/sahara_api_paste_ini_spec.rb @@ -1,21 +1,11 @@ -require 'spec_helper' -# this hack is required for now to ensure that the path is set up correctly -# to retrieve the parent provider -$LOAD_PATH.push( - File.join( - File.dirname(__FILE__), - '..', - '..', - 'fixtures', - 'modules', - 'inifile', - 'lib') -) +require 'puppet' require 'puppet/type/sahara_api_paste_ini' + describe 'Puppet::Type.type(:sahara_api_paste_ini)' do before :each do @sahara_api_paste_ini = Puppet::Type.type(:sahara_api_paste_ini).new(:name => 'DEFAULT/foo', :value => 'bar') end + it 'should accept a valid value' do @sahara_api_paste_ini[:value] = 'bar' expect(@sahara_api_paste_ini[:value]).to eq('bar') @@ -23,12 +13,12 @@ describe 'Puppet::Type.type(:sahara_api_paste_ini)' do it 'should autorequire the package that install the file' do catalog = Puppet::Resource::Catalog.new - package = Puppet::Type.type(:package).new(:name => 'sahara-common') - catalog.add_resource package, @sahara_api_paste_ini + anchor = Puppet::Type.type(:anchor).new(:name => 'sahara::install::end') + catalog.add_resource anchor, @sahara_api_paste_ini dependency = @sahara_api_paste_ini.autorequire expect(dependency.size).to eq(1) expect(dependency[0].target).to eq(@sahara_api_paste_ini) - expect(dependency[0].source).to eq(package) + expect(dependency[0].source).to eq(anchor) end end diff --git a/spec/unit/type/sahara_cluster_template_spec.rb b/spec/unit/type/sahara_cluster_template_spec.rb index 80efbf88..e9d5f932 100644 --- a/spec/unit/type/sahara_cluster_template_spec.rb +++ b/spec/unit/type/sahara_cluster_template_spec.rb @@ -33,17 +33,17 @@ describe Puppet::Type.type(:sahara_cluster_template) do it 'should autorequire sahara-api service' do catalog = Puppet::Resource::Catalog.new - service = Puppet::Type.type(:service).new(:name => 'sahara-api') + anchor = Puppet::Type.type(:anchor).new(:name => 'sahara::service::end') correct_input = { :name => 'test_type', :node_groups => [ 'nodegroup_1:1', 'nodegroup_2:2' ] } sahara_cluster_template = Puppet::Type.type(:sahara_cluster_template).new(correct_input) - catalog.add_resource service, sahara_cluster_template + catalog.add_resource anchor, sahara_cluster_template dependency = sahara_cluster_template.autorequire expect(dependency.size).to eq(1) expect(dependency[0].target).to eq(sahara_cluster_template) - expect(dependency[0].source).to eq(service) + expect(dependency[0].source).to eq(anchor) end it 'should autorequire sahara_node_group_template' do diff --git a/spec/unit/type/sahara_config_spec.rb b/spec/unit/type/sahara_config_spec.rb index 2f7d188c..0d473fb7 100644 --- a/spec/unit/type/sahara_config_spec.rb +++ b/spec/unit/type/sahara_config_spec.rb @@ -1,5 +1,6 @@ require 'puppet' require 'puppet/type/sahara_config' + describe 'Puppet::Type.type(:sahara_config)' do before :each do @sahara_config = Puppet::Type.type(:sahara_config).new(:name => 'DEFAULT/foo', :value => 'bar') @@ -52,11 +53,11 @@ describe 'Puppet::Type.type(:sahara_config)' do it 'should autorequire the package that install the file' do catalog = Puppet::Resource::Catalog.new - package = Puppet::Type.type(:package).new(:name => 'sahara-common') - catalog.add_resource package, @sahara_config + anchor = Puppet::Type.type(:anchor).new(:name => 'sahara::install::end') + catalog.add_resource anchor, @sahara_config dependency = @sahara_config.autorequire expect(dependency.size).to eq(1) expect(dependency[0].target).to eq(@sahara_config) - expect(dependency[0].source).to eq(package) + expect(dependency[0].source).to eq(anchor) end end diff --git a/spec/unit/type/sahara_node_group_template_spec.rb b/spec/unit/type/sahara_node_group_template_spec.rb index ce8e1865..0033a0f5 100644 --- a/spec/unit/type/sahara_node_group_template_spec.rb +++ b/spec/unit/type/sahara_node_group_template_spec.rb @@ -20,7 +20,7 @@ describe Puppet::Type.type(:sahara_node_group_template) do it 'should autorequire cinder-api service' do catalog = Puppet::Resource::Catalog.new - service = Puppet::Type.type(:service).new(:name => 'sahara-api') + anchor = Puppet::Type.type(:anchor).new(:name => 'sahara::service::end') correct_input = { :name => 'test_type', :plugin => 'plugin', @@ -29,10 +29,10 @@ describe Puppet::Type.type(:sahara_node_group_template) do :node_processes => [ 'process1', 'process2' ] } sahara_node_group_template = Puppet::Type.type(:sahara_node_group_template).new(correct_input) - catalog.add_resource service, sahara_node_group_template + catalog.add_resource anchor, sahara_node_group_template dependency = sahara_node_group_template.autorequire expect(dependency.size).to eq(1) expect(dependency[0].target).to eq(sahara_node_group_template) - expect(dependency[0].source).to eq(service) + expect(dependency[0].source).to eq(anchor) end end