Class: Vagrant::Smartos::Zones::Util::Datasets::Manifest

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant/smartos/zones/util/datasets/manifest.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, env) ⇒ Manifest

Returns a new instance of Manifest.



12
13
14
15
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 12

def initialize(name, env)
  @name = name
  @env = env
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



10
11
12
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 10

def env
  @env
end

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 10

def name
  @name
end

Instance Method Details

#load!Object



24
25
26
27
28
29
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 24

def load!
  json = JSON.load(File.read(local_filename))
  @creator = json['creator_uuid']
  @uuid = json['uuid']
  self
end

#local_filenameObject



47
48
49
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 47

def local_filename
  env.home_path.join('smartos', 'datasets', manifest_filename).to_s
end

#remote_filenameObject



51
52
53
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 51

def remote_filename
  '/zones/vagrant/%s' % manifest_filename
end

#to_jsonObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 31

def to_json
  {
    'creator_name' => 'vagrant-smartos-zones',
    'creator_uuid' => creator_uuid,
    'description' => name,
    'files' => files,
    'name' => name,
    'os' => 'smartos',
    'published_at' => '2015-06-15T15:13:08.425Z',
    'type' => 'zone-dataset',
    'urn' => urn,
    'uuid' => uuid,
    'version' => '1.0.0'
  }.to_json
end

#uuidObject



55
56
57
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 55

def uuid
  @uuid ||= SecureRandom.uuid
end

#write!Object



17
18
19
20
21
22
# File 'lib/vagrant/smartos/zones/util/datasets/manifest.rb', line 17

def write!
  File.open(local_filename, 'w') do |f|
    f.write to_json
  end
  self
end