Class: CivoCLI::Volume

Inherits:
Thor
  • Object
show all
Defined in:
lib/volume.rb

Instance Method Summary collapse

Instance Method Details

#attach(volume_id, instance_id) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/volume.rb', line 52

def attach(volume_id, instance_id)
  CivoCLI::Config.set_api_auth
  Civo::Volume.attach(id: volume_id, instance_id: instance_id)
  volume = Civo::Volume.find(volume_id)
  instance = Civo::Instance.find(instance_id)
  puts "Attached volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)} to #{instance.hostname.colorize(:green)}"
rescue Flexirest::HTTPException => e
  puts e.result.reason.colorize(:red)
  exit 1
end

#create(name, size) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/volume.rb', line 16

def create(name, size)
  CivoCLI::Config.set_api_auth
  size = size.to_i.to_s
  volume = Civo::Volume.create(name: name, size_gb: size)
  puts "Created a new #{size.colorize(:green)}GB volume called #{name.colorize(:green)} with ID #{volume.id.colorize(:green)}"
rescue Flexirest::HTTPException => e
  puts e.result.reason.colorize(:red)
  exit 1
end

#detach(id) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/volume.rb', line 65

def detach(id)
  CivoCLI::Config.set_api_auth
  Civo::Volume.detach(id: id)
  volume = Civo::Volume.find(id)
  puts "Detached volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)}"
rescue Flexirest::HTTPException => e
  puts e.result.reason.colorize(:red)
  exit 1
end

#listObject



4
5
6
7
8
9
10
11
12
# File 'lib/volume.rb', line 4

def list
  CivoCLI::Config.set_api_auth
  rows = []
  Civo::Volume.all.items.each do |volume|
    mounted = (volume.mountpoint.nil? || volume.mountpoint == "" ? "No" : "Yes")
    rows << [volume.id, volume.name, mounted, volume.size_gb]
  end
  puts Terminal::Table.new headings: ['ID', 'Name', 'Mounted', 'Size (GB)'], rows: rows
end

#remove(id) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/volume.rb', line 40

def remove(id)
  CivoCLI::Config.set_api_auth
  volume = Civo::Volume.find(id)
  Civo::Volume.remove(id: id)
  puts "Removed volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)} (was #{volume.size_gb}GB)"
rescue Flexirest::HTTPException => e
  puts e.result.reason.colorize(:red)
  exit 1
end

#rename(id, new_name) ⇒ Object



77
78
79
80
81
82
83
84
85
# File 'lib/volume.rb', line 77

def rename(id, new_name)
  CivoCLI::Config.set_api_auth
  Civo::Volume.update(id: id, name: new_name)
  volume = Civo::Volume.find(id)
  puts "Renamed volume with ID #{volume.id.colorize(:green)} to be called #{volume.name.colorize(:green)}"
rescue Flexirest::HTTPException => e
  puts e.result.reason.colorize(:red)
  exit 1
end

#resize(id, new_size) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/volume.rb', line 28

def resize(id, new_size)
  CivoCLI::Config.set_api_auth
  new_size = new_size.to_i.to_s
  Civo::Volume.resize(id: id, size_gb: new_size)
  volume = Civo::Volume.find(id)
  puts "Resized volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)} to be #{new_size.colorize(:green)}GB"
rescue Flexirest::HTTPException => e
  puts e.result.reason.colorize(:red)
  exit 1
end