Class: VagrantPlugins::AVF::MachineMetadataStore

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant_provider_avf/machine_metadata_store.rb

Instance Method Summary collapse

Constructor Details

#initialize(machine) ⇒ MachineMetadataStore

Returns a new instance of MachineMetadataStore.



6
7
8
# File 'lib/vagrant_provider_avf/machine_metadata_store.rb', line 6

def initialize(machine)
  @path = machine.data_dir.join("machine_metadata.json")
end

Instance Method Details

#clearObject



26
27
28
# File 'lib/vagrant_provider_avf/machine_metadata_store.rb', line 26

def clear
  @path.delete if @path.exist?
end

#fetch(machine_id: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/vagrant_provider_avf/machine_metadata_store.rb', line 10

def fetch(machine_id: nil)
  return if !@path.exist? || @path.size.zero?

   = Model::MachineMetadata.from_h(JSON.parse(@path.read))
  return  if machine_id.nil?

  validate_machine_id!(, machine_id)
rescue JSON::ParserError, KeyError, ArgumentError => error
  raise Errors::InvalidMachineMetadata.new(@path, error)
end

#save(machine_metadata) ⇒ Object



21
22
23
24
# File 'lib/vagrant_provider_avf/machine_metadata_store.rb', line 21

def save()
  @path.dirname.mkpath
  @path.write(JSON.dump(.to_h))
end