From 3a4df791ff334ba5bf67c3dbed074edf656d8975 Mon Sep 17 00:00:00 2001 From: Glenn Sarti Date: Thu, 15 Jun 2017 13:45:14 -0700 Subject: [PATCH] (GH-213) Remove use of private _connection method Previosuly in find_vmdks in vsphere_helper it uses the call vmdk_datastore._connection to get the underlying connection, however this is already available as function parameter. This commit removes this bad code and the associated test fixtures. --- lib/vmpooler/providers/vsphere.rb | 2 +- spec/unit/providers/vsphere_spec.rb | 21 --------------------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/lib/vmpooler/providers/vsphere.rb b/lib/vmpooler/providers/vsphere.rb index 6b559d4..54ec32e 100644 --- a/lib/vmpooler/providers/vsphere.rb +++ b/lib/vmpooler/providers/vsphere.rb @@ -674,7 +674,7 @@ module Vmpooler vmdk_datastore = find_datastore(datastore, connection) - vm_files = vmdk_datastore._connection.serviceContent.propertyCollector.collectMultiple vmdk_datastore.vm, 'layoutEx.file' + vm_files = connection.serviceContent.propertyCollector.collectMultiple vmdk_datastore.vm, 'layoutEx.file' vm_files.keys.each do |f| vm_files[f]['layoutEx.file'].each do |l| if l.name =~ /^\[#{vmdk_datastore.name}\] #{vmname}\/#{vmname}_([0-9]+).vmdk/ diff --git a/spec/unit/providers/vsphere_spec.rb b/spec/unit/providers/vsphere_spec.rb index f27ea70..224166b 100644 --- a/spec/unit/providers/vsphere_spec.rb +++ b/spec/unit/providers/vsphere_spec.rb @@ -1236,11 +1236,6 @@ EOT let(:reconfig_vm_task) { mock_RbVmomi_VIM_Task() } before(:each) do - # NOTE - This method should not be using `_connection`, instead it should be using `@conection` - # This should not be required once https://github.com/puppetlabs/vmpooler/issues/213 is resolved - mock_ds = subject.find_datastore(datastorename,connection) - allow(mock_ds).to receive(:_connection).and_return(connection) unless mock_ds.nil? - # Mocking for find_vmdks allow(connection.serviceContent.propertyCollector).to receive(:collectMultiple).and_return(collectMultiple_response) @@ -2701,25 +2696,9 @@ EOT let(:collectMultiple_response) { {} } before(:each) do - # NOTE - This method should not be using `_connection`, instead it should be using `@conection` - mock_ds = subject.find_datastore(datastorename,connection) - allow(mock_ds).to receive(:_connection).and_return(connection) allow(connection.serviceContent.propertyCollector).to receive(:collectMultiple).and_return(collectMultiple_response) end - it 'should not use _connction to get the underlying connection object' do - pending('https://github.com/puppetlabs/vmpooler/issues/213') - - mock_ds = subject.find_datastore(datastorename) - expect(mock_ds).to receive(:_connection).exactly(0).times - - begin - # ignore all errors. What's important is that it doesn't call _connection - subject.find_vmdks(vmname,datastorename,connection) - rescue - end - end - context 'Searching all files for all VMs on a Datastore' do # This is fairly fragile mocking let(:collectMultiple_response) { {