Class: Vagrant::Smartos::Zones::Util::Snapshots

Inherits:
Object
  • Object
show all
Includes:
GlobalZone::Helper
Defined in:
lib/vagrant/smartos/zones/util/snapshots.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from GlobalZone::Helper

included, #sudo, #with_gz

Constructor Details

#initialize(machine, zonename) ⇒ Snapshots

Returns a new instance of Snapshots.



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

def initialize(machine, zonename)
  @machine = machine
  @zonename = zonename
end

Instance Attribute Details

#machineObject (readonly)

Returns the value of attribute machine.



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

def machine
  @machine
end

#zonenameObject (readonly)

Returns the value of attribute zonename.



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

def zonename
  @zonename
end

Instance Method Details

#create(name) ⇒ Object



32
33
34
35
36
# File 'lib/vagrant/smartos/zones/util/snapshots.rb', line 32

def create(name)
  machine.ui.info(I18n.t('vagrant.smartos.zones.commands.zones.snapshot.create',
                         name: name), prefix: false)
  Models::Snapshot.create(name, zone)
end

#destroy(name) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/vagrant/smartos/zones/util/snapshots.rb', line 38

def destroy(name)
  Models::Snapshot.find(name, zone).tap do |snapshot|
    machine.ui.info(I18n.t('vagrant.smartos.zones.commands.zones.snapshot.destroy',
                           name: snapshot.name), prefix: false)
    snapshot.destroy
  end
end

#list(_snapshot) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/vagrant/smartos/zones/util/snapshots.rb', line 21

def list(_snapshot)
  Models::Snapshot.all(zone).tap do |snapshots|
    sns = snapshots.map do |snapshot|
      [snapshot.name.ljust(12), snapshot.created_at.to_s.ljust(21),
       snapshot.space_used.to_s.rjust(6), snapshot.zone.name].join(' ')
    end
    machine.ui.info(I18n.t('vagrant.smartos.zones.commands.zones.snapshot.list',
                           snapshots: sns.join("\n")), prefix: false)
  end
end

#rollback(name) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/vagrant/smartos/zones/util/snapshots.rb', line 46

def rollback(name)
  Models::Snapshot.find(name, zone).tap do |snapshot|
    machine.ui.info(I18n.t('vagrant.smartos.zones.commands.zones.snapshot.rollback',
                           zonename: zone.name, name: snapshot.name), prefix: false)
    snapshot.rollback
  end
end

#run(action, snapshot = nil) ⇒ Object



17
18
19
# File 'lib/vagrant/smartos/zones/util/snapshots.rb', line 17

def run(action, snapshot = nil)
  send action, snapshot
end