Class: VagrantPlugins::AVF::MachineMetadataStore
- Inherits:
-
Object
- Object
- VagrantPlugins::AVF::MachineMetadataStore
- Defined in:
- lib/vagrant_provider_avf/machine_metadata_store.rb
Instance Method Summary collapse
- #clear ⇒ Object
- #fetch(machine_id: nil) ⇒ Object
-
#initialize(machine) ⇒ MachineMetadataStore
constructor
A new instance of MachineMetadataStore.
- #save(machine_metadata) ⇒ Object
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
#clear ⇒ Object
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 |