civo_cli 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/volume.rb ADDED
@@ -0,0 +1,88 @@
1
+ module CivoCLI
2
+ class Volume < Thor
3
+ desc "list", "list all volumes"
4
+ def list
5
+ CivoCLI::Config.set_api_auth
6
+ rows = []
7
+ Civo::Volume.all.items.each do |volume|
8
+ mounted = (volume.mountpoint.nil? || volume.mountpoint == "" ? "No" : "Yes")
9
+ rows << [volume.id, volume.name, mounted, volume.size_gb]
10
+ end
11
+ puts Terminal::Table.new headings: ['ID', 'Name', 'Mounted', 'Size (GB)'], rows: rows
12
+ end
13
+
14
+ desc "create NAME SIZE", "create a volume of SIZE (GB) called NAME"
15
+ def create(name, size)
16
+ CivoCLI::Config.set_api_auth
17
+ size = size.to_i.to_s
18
+ volume = Civo::Volume.create(name: name, size_gb: size)
19
+ puts "Created a new #{size.colorize(:green)}GB volume called #{name.colorize(:green)} with ID #{volume.id.colorize(:green)}"
20
+ rescue Flexirest::HTTPException => e
21
+ puts e.result.reason.colorize(:red)
22
+ exit 1
23
+ end
24
+ map "new" => "create"
25
+
26
+ desc "resize ID NEW_SIZE", "resizes the volume with ID to NEW_SIZE GB"
27
+ def resize(id, new_size)
28
+ CivoCLI::Config.set_api_auth
29
+ new_size = new_size.to_i.to_s
30
+ Civo::Volume.resize(id: id, size_gb: new_size)
31
+ volume = Civo::Volume.find(id)
32
+ puts "Resized volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)} to be #{new_size.colorize(:green)}GB"
33
+ rescue Flexirest::HTTPException => e
34
+ puts e.result.reason.colorize(:red)
35
+ exit 1
36
+ end
37
+
38
+ desc "remove ID", "remove the volume with ID"
39
+ def remove(id)
40
+ CivoCLI::Config.set_api_auth
41
+ volume = Civo::Volume.find(id)
42
+ Civo::Volume.remove(id: id)
43
+ puts "Removed volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)} (was #{volume.size_gb}GB)"
44
+ rescue Flexirest::HTTPException => e
45
+ puts e.result.reason.colorize(:red)
46
+ exit 1
47
+ end
48
+ map "delete" => "remove", "rm" => "remove"
49
+
50
+ desc "attach VOLUME_ID INSTANCE_ID", "connect the volume with VOLUME_ID to the instance with INSTANCE_ID"
51
+ def attach(volume_id, instance_id)
52
+ CivoCLI::Config.set_api_auth
53
+ Civo::Volume.attach(id: volume_id, instance_id: instance_id)
54
+ volume = Civo::Volume.find(volume_id)
55
+ instance = Civo::Instance.find(instance_id)
56
+ puts "Attached volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)} to #{instance.hostname.colorize(:green)}"
57
+ rescue Flexirest::HTTPException => e
58
+ puts e.result.reason.colorize(:red)
59
+ exit 1
60
+ end
61
+ map "connect" => "attach", "link" => "attach"
62
+
63
+ desc "detach ID", "disconnect the volume with ID from any instance it's connected to"
64
+ def detach(id)
65
+ CivoCLI::Config.set_api_auth
66
+ Civo::Volume.detach(id: id)
67
+ volume = Civo::Volume.find(id)
68
+ puts "Detached volume #{volume.name.colorize(:green)} with ID #{volume.id.colorize(:green)}"
69
+ rescue Flexirest::HTTPException => e
70
+ puts e.result.reason.colorize(:red)
71
+ exit 1
72
+ end
73
+ map "disconnect" => "detach", "unlink" => "detach"
74
+
75
+ desc "rename ID NEW_NAME", "rename the volume with ID to have the NEW_NAME"
76
+ def rename(id, new_name)
77
+ CivoCLI::Config.set_api_auth
78
+ Civo::Volume.update(id: id, name: new_name)
79
+ volume = Civo::Volume.find(id)
80
+ puts "Renamed volume with ID #{volume.id.colorize(:green)} to be called #{volume.name.colorize(:green)}"
81
+ rescue Flexirest::HTTPException => e
82
+ puts e.result.reason.colorize(:red)
83
+ exit 1
84
+ end
85
+
86
+ default_task :list
87
+ end
88
+ end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: civo_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Jeffries
8
+ - Absolute Devops Ltd
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2019-02-20 00:00:00.000000000 Z
12
+ date: 2019-04-01 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -52,9 +53,136 @@ dependencies:
52
53
  - - "~>"
53
54
  - !ruby/object:Gem::Version
54
55
  version: '3.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: guard
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: guard-rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: terminal-notifier-guard
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: webmock
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: terminal-table
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: thor
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: colorize
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: civo
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: 1.1.14
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 1.1.14
168
+ - !ruby/object:Gem::Dependency
169
+ name: json
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
55
182
  description: The official command line client for interacting with Civo's API
56
183
  email:
57
184
  - andy@absolutedevops.io
185
+ - hello@civo.com
58
186
  executables:
59
187
  - civo
60
188
  extensions: []
@@ -65,6 +193,8 @@ files:
65
193
  - ".travis.yml"
66
194
  - CHANGELOG.md
67
195
  - Gemfile
196
+ - Gemfile.lock
197
+ - Guardfile
68
198
  - LICENSE.txt
69
199
  - README.md
70
200
  - Rakefile
@@ -72,8 +202,22 @@ files:
72
202
  - bin/setup
73
203
  - civo_cli.gemspec
74
204
  - exe/civo
205
+ - lib/apikey.rb
206
+ - lib/blueprint.rb
75
207
  - lib/civo_cli.rb
76
208
  - lib/civo_cli/version.rb
209
+ - lib/config.rb
210
+ - lib/domain.rb
211
+ - lib/firewall.rb
212
+ - lib/instance.rb
213
+ - lib/network.rb
214
+ - lib/quota.rb
215
+ - lib/region.rb
216
+ - lib/size.rb
217
+ - lib/snapshot.rb
218
+ - lib/sshkey.rb
219
+ - lib/template.rb
220
+ - lib/volume.rb
77
221
  homepage: https://www.civo.com/api
78
222
  licenses:
79
223
  - MIT
@@ -87,9 +231,9 @@ require_paths:
87
231
  - lib
88
232
  required_ruby_version: !ruby/object:Gem::Requirement
89
233
  requirements:
90
- - - ">="
234
+ - - "~>"
91
235
  - !ruby/object:Gem::Version
92
- version: '0'
236
+ version: '2.0'
93
237
  required_rubygems_version: !ruby/object:Gem::Requirement
94
238
  requirements:
95
239
  - - ">="