oc 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/oc/version.rb +1 -1
- data/lib/system/run/base.rb +0 -2
- data/lib/system/run/client.rb +0 -3
- data/lib/system/run/commands/droplets.rb +6 -21
- data/lib/system/run/commands/images.rb +1 -7
- data/lib/system/run/commands/regions.rb +2 -2
- data/lib/system/run/commands/sizes.rb +28 -28
- data/lib/system/run/commands/ssh.rb +0 -15
- data/lib/system/run/run.rb +0 -12
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b98d817e68a5690c2cd2d1511b8badea6b72759f
|
4
|
+
data.tar.gz: 3eb56af2f8165d2a5b5ea7763311fc81a0d9e62d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e9cfdf198467e7a7e2f5c6f126d4f096c12615d64e9f2761c402af81117ed7f2a6aee30fcdcc3ae53759d04edebd1a2edba970a881a8a57309c5f3083fd8a44
|
7
|
+
data.tar.gz: 73d81d96dff19405f4769bea55000136e259a4b114dc2f60ca084b927df73d946358398af7291a2a1b631354099215b3257726c9c02f970d23a8a74f2a2ff038
|
data/lib/oc/version.rb
CHANGED
data/lib/system/run/base.rb
CHANGED
@@ -6,11 +6,9 @@ class Oc::Run::Base
|
|
6
6
|
return if self == Oc::Run::Base
|
7
7
|
return if private_method_defined? method
|
8
8
|
return if protected_method_defined? method
|
9
|
-
|
10
9
|
prefix = self.get_object_name
|
11
10
|
method_name = method.to_s == 'run' ? nil : method.to_s.gsub('_','-')
|
12
11
|
name = [prefix, method_name].compact
|
13
|
-
|
14
12
|
Oc::Run.add({
|
15
13
|
:name => name,
|
16
14
|
:class => self,
|
data/lib/system/run/client.rb
CHANGED
@@ -4,13 +4,10 @@ require 'commander/import'
|
|
4
4
|
module Oc
|
5
5
|
class Runner
|
6
6
|
def self.start
|
7
|
-
|
8
7
|
program :name, 'Digital Ocean Client'
|
9
8
|
program :version, Oc::VERSION
|
10
9
|
program :description, 'Digital Ocean Command Line Tools'
|
11
|
-
|
12
10
|
Oc::Run.load_commands.parse_command
|
13
|
-
|
14
11
|
end
|
15
12
|
end
|
16
13
|
end
|
@@ -27,7 +27,7 @@ module Oc::Run
|
|
27
27
|
droplets << [
|
28
28
|
droplet.id,
|
29
29
|
droplet.name.to_s.red,
|
30
|
-
droplet.ip_address.to_s.red,
|
30
|
+
droplet.networks.v4[0].ip_address.to_s.red,
|
31
31
|
droplet.status == "active" ? "Active".green : "Deactive".red,
|
32
32
|
droplet.created_at
|
33
33
|
]
|
@@ -37,10 +37,8 @@ module Oc::Run
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
|
41
40
|
description "Create new droplet"
|
42
41
|
syntax "oc droplets new [DROPLET_NAME] [SIZE_ID] [IMAGE_ID] [REGION_ID]"
|
43
|
-
|
44
42
|
def new(*args)
|
45
43
|
name = args[0]
|
46
44
|
size = args[1]
|
@@ -51,7 +49,6 @@ module Oc::Run
|
|
51
49
|
puts "Usage".yellow
|
52
50
|
puts "$ oc droplets new [DROPLET_NAME] [SIZE_ID] [IMAGE_ID] [REGION_ID]".yellow
|
53
51
|
else
|
54
|
-
|
55
52
|
result = barge.droplet.create({:name => name, :region => region_id, :size => size, :image => image_id})
|
56
53
|
if !result.success?
|
57
54
|
puts "#{result.message}".red
|
@@ -72,7 +69,6 @@ module Oc::Run
|
|
72
69
|
puts "$ oc droplets reboot [DROPLET_ID]".yellow
|
73
70
|
else
|
74
71
|
raise ArgumentError, "Argument Error - #{id}" unless id =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/
|
75
|
-
|
76
72
|
result = barge.droplet.reboot(id)
|
77
73
|
if !result.success?
|
78
74
|
puts "#{result.message}".red
|
@@ -152,7 +148,6 @@ module Oc::Run
|
|
152
148
|
puts "$ oc droplets on [DROPLET_ID]".yellow
|
153
149
|
else
|
154
150
|
raise ArgumentError, "Argument Error - #{id}" unless id =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/
|
155
|
-
|
156
151
|
result = barge.droplet.power_on(id)
|
157
152
|
if !result.success?
|
158
153
|
puts "#{result.message}".red
|
@@ -165,7 +160,6 @@ module Oc::Run
|
|
165
160
|
|
166
161
|
description "This method will reset the root password for a droplet. Please be aware that this will reboot the droplet to allow resetting the password."
|
167
162
|
syntax "oc droplets reset_password [DROPLET_ID]"
|
168
|
-
|
169
163
|
def reset_password(*args)
|
170
164
|
id = args[0]
|
171
165
|
if id.nil?
|
@@ -188,7 +182,6 @@ module Oc::Run
|
|
188
182
|
def resize(*args)
|
189
183
|
id = args[0]
|
190
184
|
size_id = args[1]
|
191
|
-
|
192
185
|
if id.nil? or size_id.nil?
|
193
186
|
puts "Argument Error".red
|
194
187
|
puts "Usage".yellow
|
@@ -241,14 +234,12 @@ module Oc::Run
|
|
241
234
|
else
|
242
235
|
puts "Your Droplets".yellow
|
243
236
|
snapshots = []
|
244
|
-
|
245
237
|
snapshots << [
|
246
238
|
'Name',
|
247
239
|
'Distribution',
|
248
240
|
'Public',
|
249
241
|
'Created At'
|
250
242
|
]
|
251
|
-
|
252
243
|
result.snapshots.each do |snapshot|
|
253
244
|
snapshots << [
|
254
245
|
snapshot.name.to_s.red,
|
@@ -264,10 +255,8 @@ module Oc::Run
|
|
264
255
|
end
|
265
256
|
end
|
266
257
|
|
267
|
-
|
268
258
|
description "This method allows you to restore a droplet with a previous image or snapshot. This will be a mirror copy of the image or snapshot to your droplet. Be sure you have backed up any necessary information prior to restore."
|
269
259
|
syntax "oc droplets restore [DROPLET_ID] [IMAGE_ID]"
|
270
|
-
|
271
260
|
def restore(*args)
|
272
261
|
id = args[0]
|
273
262
|
image_id = args[1]
|
@@ -290,7 +279,6 @@ module Oc::Run
|
|
290
279
|
|
291
280
|
description "This method allows you to reinstall a droplet with a default image. This is useful if you want to start again but retain the same IP address for your droplet."
|
292
281
|
syntax "oc droplets rebuild [DROPLET_ID] [IMAGE_ID]"
|
293
|
-
|
294
282
|
def rebuild(*args)
|
295
283
|
id = args[0]
|
296
284
|
image_id = args[1]
|
@@ -301,7 +289,6 @@ module Oc::Run
|
|
301
289
|
else
|
302
290
|
raise ArgumentError, "Argument Error - #{id}" unless id =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/
|
303
291
|
raise ArgumentError, "Argument Error - #{image_id}" unless id =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/
|
304
|
-
|
305
292
|
result = barge.droplet.rebuild(id, image: image_id)
|
306
293
|
if !result.success?
|
307
294
|
puts "#{result.message}".red
|
@@ -322,7 +309,6 @@ module Oc::Run
|
|
322
309
|
puts "$ oc droplets rename [DROPLET_ID] [NEW_NAME]".yellow
|
323
310
|
else
|
324
311
|
raise ArgumentError, "Argument Error - #{id}" unless id =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/
|
325
|
-
|
326
312
|
result = barge.droplet.rename(id, name: name)
|
327
313
|
if !result.success?
|
328
314
|
puts "#{result.message}".red
|
@@ -342,7 +328,6 @@ module Oc::Run
|
|
342
328
|
puts "$ oc droplets enable-ipv6 [DROPLET_ID]"
|
343
329
|
else
|
344
330
|
raise ArgumentError, "Argument Error - #{id}" unless id =~ /\A[-+]?[0-9]*\.?[0-9]+\Z/
|
345
|
-
|
346
331
|
result = barge.droplet.enable_ipv6(id)
|
347
332
|
if !result.success?
|
348
333
|
puts "#{result.message}".red
|
@@ -352,15 +337,15 @@ module Oc::Run
|
|
352
337
|
end
|
353
338
|
end
|
354
339
|
|
355
|
-
def barge
|
356
|
-
puts "I'm thinking, please wait..".blue
|
357
|
-
Oc::Get.get_barge
|
358
|
-
end
|
359
|
-
|
360
340
|
private
|
361
341
|
def config(value)
|
362
342
|
@config ||= value
|
363
343
|
end
|
364
344
|
|
345
|
+
def barge
|
346
|
+
puts "I'm thinking, please wait..".blue
|
347
|
+
Oc::Get.get_barge
|
348
|
+
end
|
349
|
+
|
365
350
|
end
|
366
351
|
end
|
@@ -10,7 +10,6 @@ module Oc::Run
|
|
10
10
|
else
|
11
11
|
puts "Images".yellow
|
12
12
|
rows = []
|
13
|
-
|
14
13
|
rows << [
|
15
14
|
'ID',
|
16
15
|
'Name',
|
@@ -18,7 +17,6 @@ module Oc::Run
|
|
18
17
|
'Public',
|
19
18
|
'Regions'
|
20
19
|
]
|
21
|
-
|
22
20
|
result.images.each do |image|
|
23
21
|
rows << [
|
24
22
|
image.id,
|
@@ -49,7 +47,6 @@ module Oc::Run
|
|
49
47
|
else
|
50
48
|
puts "Images".yellow
|
51
49
|
rows = []
|
52
|
-
|
53
50
|
rows << [
|
54
51
|
'ID',
|
55
52
|
'Name',
|
@@ -57,9 +54,7 @@ module Oc::Run
|
|
57
54
|
'Public',
|
58
55
|
'Regions'
|
59
56
|
]
|
60
|
-
|
61
57
|
image = result.image
|
62
|
-
|
63
58
|
rows << [
|
64
59
|
image.id,
|
65
60
|
image.name.to_s.red,
|
@@ -75,7 +70,6 @@ module Oc::Run
|
|
75
70
|
end
|
76
71
|
end
|
77
72
|
|
78
|
-
|
79
73
|
description "This method allows you to destroy an image. There is no way to restore a deleted image so be careful and ensure your data is properly backed up."
|
80
74
|
syntax "oc images destroy [IMAGE_ID]"
|
81
75
|
|
@@ -117,10 +111,10 @@ module Oc::Run
|
|
117
111
|
end
|
118
112
|
end
|
119
113
|
|
114
|
+
private
|
120
115
|
def barge
|
121
116
|
puts "I'm thinking, please wait..".blue
|
122
117
|
Oc::Get.get_barge
|
123
118
|
end
|
124
|
-
|
125
119
|
end
|
126
120
|
end
|
@@ -9,12 +9,10 @@ module Oc::Run
|
|
9
9
|
else
|
10
10
|
puts "Regions".yellow
|
11
11
|
droplets = []
|
12
|
-
|
13
12
|
droplets << [
|
14
13
|
'ID',
|
15
14
|
'Name'
|
16
15
|
]
|
17
|
-
|
18
16
|
result.regions.each do |region|
|
19
17
|
droplets << [
|
20
18
|
region.slug,
|
@@ -25,6 +23,8 @@ module Oc::Run
|
|
25
23
|
puts table
|
26
24
|
end
|
27
25
|
end
|
26
|
+
|
27
|
+
private
|
28
28
|
def barge
|
29
29
|
puts "I'm thinking, please wait..".blue
|
30
30
|
Oc::Get.get_barge
|
@@ -1,39 +1,39 @@
|
|
1
1
|
module Oc::Run
|
2
2
|
class Sizes < Base
|
3
|
+
description "This method returns all the available sizes that can be used to create a droplet."
|
4
|
+
syntax "oc sizes"
|
5
|
+
def run
|
6
|
+
result = barge.size.all
|
7
|
+
if !result.success?
|
8
|
+
puts "Error: #{result["error_message"]}".red
|
9
|
+
else
|
10
|
+
puts "Sizes".yellow
|
11
|
+
rows = []
|
3
12
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
rows = []
|
13
|
+
rows << [
|
14
|
+
'ID',
|
15
|
+
'Memory',
|
16
|
+
'Disk',
|
17
|
+
'Cpu',
|
18
|
+
'Price (Monthly)',
|
19
|
+
'Price (Hourly)',
|
20
|
+
]
|
13
21
|
|
22
|
+
result.sizes.each do |size|
|
14
23
|
rows << [
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
24
|
+
size.slug,
|
25
|
+
size.memory.to_s + " MB",
|
26
|
+
size.disk.to_s + " GB",
|
27
|
+
size.vcpus,
|
28
|
+
"$ " + size.price_monthly.to_s,
|
29
|
+
"$ " + size.price_hourly.to_s
|
21
30
|
]
|
22
|
-
|
23
|
-
result.sizes.each do |size|
|
24
|
-
rows << [
|
25
|
-
size.slug,
|
26
|
-
size.memory.to_s + " MB",
|
27
|
-
size.disk.to_s + " GB",
|
28
|
-
size.vcpus,
|
29
|
-
"$ " + size.price_monthly.to_s,
|
30
|
-
"$ " + size.price_hourly.to_s
|
31
|
-
]
|
32
|
-
end
|
33
|
-
table = Terminal::Table.new :rows => rows
|
34
|
-
puts table
|
35
31
|
end
|
32
|
+
table = Terminal::Table.new :rows => rows
|
33
|
+
puts table
|
36
34
|
end
|
35
|
+
end
|
36
|
+
private
|
37
37
|
def barge
|
38
38
|
puts "I'm thinking, please wait..".blue
|
39
39
|
Oc::Get.get_barge
|
@@ -4,7 +4,6 @@ module Oc::Run
|
|
4
4
|
config(Netrc.read)
|
5
5
|
end
|
6
6
|
|
7
|
-
|
8
7
|
description "This method lists all the available public SSH keys in your account that can be added to a droplet."
|
9
8
|
syntax "oc ssh keys"
|
10
9
|
def keys
|
@@ -14,12 +13,10 @@ module Oc::Run
|
|
14
13
|
else
|
15
14
|
puts "Your SSH Keys".yellow
|
16
15
|
rows = []
|
17
|
-
|
18
16
|
rows << [
|
19
17
|
'ID',
|
20
18
|
'Name'
|
21
19
|
]
|
22
|
-
|
23
20
|
result.ssh_keys.each do |key|
|
24
21
|
rows << [
|
25
22
|
key["id"],
|
@@ -33,7 +30,6 @@ module Oc::Run
|
|
33
30
|
|
34
31
|
description "This method allows you to add a new public SSH key to your account."
|
35
32
|
syntax "oc ssh add [KEY_NAME] [KEY_EMAIL] [KEY_PUB]"
|
36
|
-
|
37
33
|
def add(*args)
|
38
34
|
name = args[0]
|
39
35
|
pub_key = args[1]
|
@@ -70,12 +66,10 @@ module Oc::Run
|
|
70
66
|
else
|
71
67
|
puts "SSH Keys".yellow
|
72
68
|
rows = []
|
73
|
-
|
74
69
|
rows << [
|
75
70
|
'ID',
|
76
71
|
'Name'
|
77
72
|
]
|
78
|
-
|
79
73
|
key = result.ssh_key
|
80
74
|
rows << [
|
81
75
|
key.id,
|
@@ -84,19 +78,16 @@ module Oc::Run
|
|
84
78
|
|
85
79
|
table = Terminal::Table.new :rows => rows
|
86
80
|
puts table
|
87
|
-
|
88
81
|
end
|
89
82
|
end
|
90
83
|
end
|
91
84
|
|
92
85
|
description "This method allows you to modify an existing public SSH key in your account."
|
93
86
|
syntax "oc ssh edit [KEY_ID] [KEY_NAME] [KEY_PUB]"
|
94
|
-
|
95
87
|
def update(*args)
|
96
88
|
id = args[0]
|
97
89
|
name = args[1]
|
98
90
|
pub_key = args[2]
|
99
|
-
|
100
91
|
if id.nil? or name.nil? or pub_key.nil?
|
101
92
|
puts "Argument Error".red
|
102
93
|
puts "Usage".yellow
|
@@ -117,7 +108,6 @@ module Oc::Run
|
|
117
108
|
|
118
109
|
description "This method will delete the SSH key from your account."
|
119
110
|
syntax "oc ssh destroy [KEY_ID]"
|
120
|
-
|
121
111
|
def destroy(*args)
|
122
112
|
id = args[0]
|
123
113
|
if id.nil?
|
@@ -144,10 +134,5 @@ module Oc::Run
|
|
144
134
|
puts "I'm thinking, please wait..".blue
|
145
135
|
Oc::Get.get_barge
|
146
136
|
end
|
147
|
-
|
148
|
-
def new_key_request name, pub_key
|
149
|
-
|
150
|
-
end
|
151
|
-
|
152
137
|
end
|
153
138
|
end
|
data/lib/system/run/run.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Oc
|
2
2
|
module Run
|
3
3
|
autoload :Base, "system/run/base"
|
4
|
-
|
5
4
|
attr_accessor :main
|
6
5
|
|
7
6
|
def self.load_commands
|
@@ -15,36 +14,27 @@ module Oc
|
|
15
14
|
commands[opts[:name]] = opts
|
16
15
|
end
|
17
16
|
|
18
|
-
|
19
17
|
def self.parse_command(ins = Commander::Runner::instance)
|
20
|
-
|
21
18
|
commands.each_pair do |name, opts|
|
22
19
|
name = Array(name)
|
23
20
|
names = [name.reverse.join('-'), name.join(' ')] if name.length > 1
|
24
21
|
name = name.join(" ")
|
25
|
-
|
26
|
-
|
27
22
|
ins.command name do |c|
|
28
23
|
c.description = opts[:options][:description]
|
29
24
|
c.summary = opts[:options][:summary]
|
30
25
|
c.syntax = opts[:options][:syntax]
|
31
|
-
|
32
26
|
(options_metadata = Array(opts[:options][:meta])).each do |o|
|
33
27
|
option_data = [o[:switches], o[:type], o[:description], o[:optional]].compact.flatten(1)
|
34
28
|
c.option *option_data
|
35
29
|
o[:arg] = Commander::Runner.switch_to_sym(Array(o[:switches]).last)
|
36
|
-
|
37
30
|
end
|
38
|
-
|
39
31
|
c.when_called do |args, options|
|
40
32
|
object = opts[:class].new
|
41
33
|
object.options = options
|
42
34
|
run(object,opts[:method],args)
|
43
35
|
end
|
44
36
|
end
|
45
|
-
|
46
37
|
end
|
47
|
-
|
48
38
|
end
|
49
39
|
|
50
40
|
protected
|
@@ -52,8 +42,6 @@ module Oc
|
|
52
42
|
obj.send(method, *args)
|
53
43
|
end
|
54
44
|
|
55
|
-
|
56
|
-
protected
|
57
45
|
def self.hash_to_array(options)
|
58
46
|
return_data = []
|
59
47
|
options.each do |k,v|
|