Skip to content

Commit

Permalink
Merge pull request #25 from calavera/fix_delete_favorites_metadata
Browse files Browse the repository at this point in the history
Delete metadata from fusionInitialSessions for Fussion 5 compatibility.
  • Loading branch information
thbishop committed Mar 20, 2013
2 parents 35f4673 + bb773c0 commit a8fe385
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
7 changes: 6 additions & 1 deletion lib/fission/metadata.rb
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,12 @@ def delete_vm_restart_document(vm_path)
#
# Returns nothing.
def delete_vm_favorite_entry(vm_path)
@content['VMFavoritesListDefaults2'].delete_if { |vm| vm['path'] == vm_path }
if @content.has_key?('VMFavoritesListDefaults2')
@content['VMFavoritesListDefaults2'].delete_if { |vm| vm['path'] == vm_path }
end
if @content.has_key?('fusionInitialSessions')
@content['fusionInitialSessions'].delete_if {|vm| vm['documentPath'] == vm_path}
end
end

end
Expand Down
24 changes: 20 additions & 4 deletions spec/fission/metadata_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
describe 'delete_vm_restart_document' do
before do
vm_dir = Fission.config['vm_dir']
@foo_vm_dir = File.join vm_dir, 'foo.vmwarevm'
@foo_vm_dir = File.join vm_dir, 'foo.vmwarevm'
@bar_vm_dir = File.join vm_dir, 'bar.vmwarevm'
@data = { 'PLRestartDocumentPaths' => [@foo_vm_dir, @bar_vm_dir]}
@metadata.content = @data
Expand All @@ -50,8 +50,8 @@

describe 'delete_vm_favorite_entry' do
before do
foo_vm_dir = File.join Fission.config['vm_dir'], 'foo.vmwarevm'
foo_vm_dir = File.join Fission.config['vm_dir'], 'foo.vmwarevm'

@data = { 'VMFavoritesListDefaults2' => [{'path' => foo_vm_dir}] }
@metadata.content = @data
end
Expand All @@ -65,6 +65,22 @@
@metadata.delete_vm_favorite_entry(Fission::VM.new('bar').path)
@metadata.content.should == @data
end

it 'should ignore VMFavoritesListDefaults2 in Fussion 5' do
data = {}
@metadata.content = data
@metadata.delete_vm_favorite_entry(Fission::VM.new('bar').path)
@metadata.content.should == data
end

it 'should remove the vm item from the list in Fussion 5' do
foo_vm_dir = File.join Fission.config['vm_dir'], 'foo.vmwarevm'
data = {"fusionInitialSessions" => [{"documentPath" => foo_vm_dir}]}

@metadata.content = data
@metadata.delete_vm_favorite_entry(Fission::VM.new('foo').path)
@metadata.content.should == { 'fusionInitialSessions' => []}
end
end

describe 'self.delete_vm_info' do
Expand All @@ -74,7 +90,7 @@
@md_mock.should_receive(:save)
Fission::Metadata.stub!(:new).and_return(@md_mock)

@foo_vm_dir = File.join Fission.config['vm_dir'], 'foo.vmwarevm'
@foo_vm_dir = File.join Fission.config['vm_dir'], 'foo.vmwarevm'
end

it 'should remove the vm from the restart document list' do
Expand Down

0 comments on commit a8fe385

Please sign in to comment.