diff --git a/lib/puppet/provider/cinder_qos/openstack.rb b/lib/puppet/provider/cinder_qos/openstack.rb index d3b69eff..7898f6fc 100644 --- a/lib/puppet/provider/cinder_qos/openstack.rb +++ b/lib/puppet/provider/cinder_qos/openstack.rb @@ -27,12 +27,10 @@ Puppet::Type.type(:cinder_qos).provide( @property_hash[:properties] = resource[:properties] @property_hash[:consumer] = resource[:consumer] @property_hash[:name] = name - unless resource[:associations].empty? - resource[:associations].each do |item| - self.class.request('volume qos', 'associate', [name, item]) - end - @property_hash[:associations] = resource[:associations] + resource[:associations].each do |item| + self.class.request('volume qos', 'associate', [name, item]) end + @property_hash[:associations] = resource[:associations] end def destroy @@ -94,7 +92,7 @@ Puppet::Type.type(:cinder_qos).provide( end def self.string2array(input) - return input.delete("'").split(/,\s/) + return input[1..-2].delete("'").split(/,\s/) end def self.pythondict2hash(input) diff --git a/spec/unit/provider/cinder_qos/openstack_spec.rb b/spec/unit/provider/cinder_qos/openstack_spec.rb index 5dafba1d..9576a6f2 100644 --- a/spec/unit/provider/cinder_qos/openstack_spec.rb +++ b/spec/unit/provider/cinder_qos/openstack_spec.rb @@ -58,8 +58,8 @@ properties="{\'key1\': \'value1\', \'key2\': \'value2\'}" expect(provider_class).to receive(:openstack) .with('volume qos', 'list', '--quiet', '--format', 'csv', []) .and_return('"ID","Name","Consumer","Associations","Properties" -"28b632e8-6694-4bba-bf68-67b19f619019","qos-1","front-end","my_type1, my_type2","{\'read_iops\': \'value1\', \'write_iops\':\'value2\'}" -"4f992f69-14ec-4132-9313-55cc06a6f1f6","qos-2","both","","{}" +"28b632e8-6694-4bba-bf68-67b19f619019","qos-1","front-end","[\'my_type1\', \'my_type2\']","{\'read_iops\': \'value1\', \'write_iops\':\'value2\'}" +"4f992f69-14ec-4132-9313-55cc06a6f1f6","qos-2","both","[]","{}" ') instances = provider_class.instances expect(instances.count).to eq(2) @@ -75,9 +75,9 @@ properties="{\'key1\': \'value1\', \'key2\': \'value2\'}" end describe '#string2array' do - it 'should return an array with key-value' do - s = "key='value', key2='value2'" - expect(provider_class.string2array(s)).to eq(['key=value', 'key2=value2']) + it 'should return an array' do + s = "['foo', 'bar']" + expect(provider_class.string2array(s)).to eq(['foo', 'bar']) end end