befog 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/befog +12 -11
- data/lib/befog/cli.rb +40 -33
- data/lib/befog/commands/add.rb +64 -30
- data/lib/befog/commands/configure.rb +27 -40
- data/lib/befog/commands/list.rb +17 -55
- data/lib/befog/commands/mixins/command.rb +52 -45
- data/lib/befog/commands/mixins/configurable.rb +9 -9
- data/lib/befog/commands/mixins/help.rb +2 -4
- data/lib/befog/commands/mixins/safely.rb +28 -0
- data/lib/befog/commands/mixins/scope.rb +127 -0
- data/lib/befog/commands/mixins/selectable.rb +62 -0
- data/lib/befog/commands/mixins/traceable.rb +29 -0
- data/lib/befog/commands/remove.rb +36 -31
- data/lib/befog/commands/run.rb +31 -23
- data/lib/befog/commands/start.rb +21 -18
- data/lib/befog/commands/stop.rb +17 -19
- data/lib/befog.rb +1 -0
- metadata +24 -37
- data/lib/befog/commands/mixins/bank.rb +0 -50
- data/lib/befog/commands/mixins/provider.rb +0 -40
- data/lib/befog/commands/mixins/server.rb +0 -13
- data/lib/befog/providers/aws.rb +0 -20
@@ -0,0 +1,127 @@
|
|
1
|
+
require 'fog'
|
2
|
+
|
3
|
+
module Befog
|
4
|
+
module Commands
|
5
|
+
module Mixins
|
6
|
+
module Scope
|
7
|
+
|
8
|
+
def provider_name
|
9
|
+
options[:provider] or bank["provider"] or
|
10
|
+
error("Specify a provider with --provider or by adding one to the '#{bank_name}' bank.")
|
11
|
+
end
|
12
|
+
|
13
|
+
def provider?
|
14
|
+
!!options[:provider] or bank["provider"]
|
15
|
+
end
|
16
|
+
|
17
|
+
def providers
|
18
|
+
@providers ||= (configuration["providers"] ||= {})
|
19
|
+
end
|
20
|
+
|
21
|
+
def provider
|
22
|
+
@provider ||= (providers[provider_name] ||= {})
|
23
|
+
end
|
24
|
+
|
25
|
+
def account_key
|
26
|
+
provider["key"]
|
27
|
+
end
|
28
|
+
|
29
|
+
def account_secret
|
30
|
+
provider["secret"]
|
31
|
+
end
|
32
|
+
|
33
|
+
# TODO: do something clever once we have more than 2-3 providers
|
34
|
+
def compute
|
35
|
+
case provider_name
|
36
|
+
when "aws"
|
37
|
+
@compute ||= Fog::Compute.new(:provider => "AWS",
|
38
|
+
:aws_access_key_id => account_key,
|
39
|
+
:aws_secret_access_key => account_secret,
|
40
|
+
:region => region)
|
41
|
+
else
|
42
|
+
error("Provider '#{provider_name}' is currently unsupported.")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_server(id)
|
47
|
+
compute.servers.get(id)
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
def region
|
52
|
+
options[:region] or bank["region"] or
|
53
|
+
error("Specify a region with --region or by adding one to the '#{bank_name}' bank.")
|
54
|
+
end
|
55
|
+
|
56
|
+
def region?
|
57
|
+
!!options[:region] or bank["region"]
|
58
|
+
end
|
59
|
+
|
60
|
+
def flavor
|
61
|
+
options[:type] or bank["type"] or
|
62
|
+
error("Specify an instance type (flavor) with --type or by adding one to the '#{bank_name}' bank.")
|
63
|
+
end
|
64
|
+
|
65
|
+
def flavor?
|
66
|
+
!!options[:type] or bank["type"]
|
67
|
+
end
|
68
|
+
|
69
|
+
def image
|
70
|
+
options[:image] or bank["image"] or
|
71
|
+
error("Specify an image with --image or by adding one to the '#{bank_name}' bank.")
|
72
|
+
end
|
73
|
+
|
74
|
+
def image?
|
75
|
+
!!options[:image] or bank["image"]
|
76
|
+
end
|
77
|
+
|
78
|
+
def security_group
|
79
|
+
options[:group] or bank["group"] or
|
80
|
+
error("Specify a security group with --group or by adding one to the '#{bank_name}' bank.")
|
81
|
+
end
|
82
|
+
|
83
|
+
def security_group?
|
84
|
+
options[:group] or bank["group"]
|
85
|
+
end
|
86
|
+
|
87
|
+
def keypair
|
88
|
+
options[:keypair] or bank["keypair"] or
|
89
|
+
error("Specify a keypair with --keypair or by adding one to the '#{bank_name}' bank.")
|
90
|
+
end
|
91
|
+
|
92
|
+
def keypair?
|
93
|
+
!!options[:keypair] or bank["keypair"]
|
94
|
+
end
|
95
|
+
|
96
|
+
def banks
|
97
|
+
configuration["banks"] ||= {}
|
98
|
+
end
|
99
|
+
|
100
|
+
def _bank
|
101
|
+
banks[bank_name] ||= {}
|
102
|
+
end
|
103
|
+
|
104
|
+
def bank
|
105
|
+
_bank["configuration"] ||= {}
|
106
|
+
end
|
107
|
+
|
108
|
+
def bank?
|
109
|
+
!!options[:bank]
|
110
|
+
end
|
111
|
+
|
112
|
+
def bank_name
|
113
|
+
options[:bank] or error("Did you mean to include a bank name?")
|
114
|
+
end
|
115
|
+
|
116
|
+
def servers
|
117
|
+
_bank["servers"] ||= []
|
118
|
+
end
|
119
|
+
|
120
|
+
def servers=(array)
|
121
|
+
_bank["servers"] = array
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Befog
|
2
|
+
module Commands
|
3
|
+
module Mixins
|
4
|
+
module Selectable
|
5
|
+
def self.included(target)
|
6
|
+
target.module_eval do
|
7
|
+
|
8
|
+
option :provider,
|
9
|
+
:short => :q,
|
10
|
+
:description => "Select servers from this provider"
|
11
|
+
|
12
|
+
option :region,
|
13
|
+
:short => :r,
|
14
|
+
:description => "Select servers from this region"
|
15
|
+
|
16
|
+
option :image,
|
17
|
+
:short => :i,
|
18
|
+
:description => "Select servers using this image"
|
19
|
+
|
20
|
+
option :keypair,
|
21
|
+
:short => :x,
|
22
|
+
:description => "Select servers using this keypair"
|
23
|
+
|
24
|
+
option :group,
|
25
|
+
:short => :g,
|
26
|
+
:description => "Select servers using this group"
|
27
|
+
|
28
|
+
option :type,
|
29
|
+
:short => :t,
|
30
|
+
:description => "Select servers of this type (flavor)"
|
31
|
+
|
32
|
+
option :id,
|
33
|
+
:short => :z,
|
34
|
+
:description => "Select server with the given ID"
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def run_for_selected(&block)
|
40
|
+
if bank?
|
41
|
+
servers.each(&block)
|
42
|
+
else
|
43
|
+
banks.keys.each do |name|
|
44
|
+
options[:bank] = name
|
45
|
+
if options[:id]
|
46
|
+
block.call(options[:id]) if servers.include?(options[:id])
|
47
|
+
else
|
48
|
+
servers.each(&block) if ((not provider? or (bank["provider"] == provider_name)) and
|
49
|
+
(not region? or (bank["region"] == region)) and
|
50
|
+
(not image? or (bank["image"] == image)) and
|
51
|
+
(not security_group? or (bank["group"] == security_group)) and
|
52
|
+
(not flavor? or (bank["type"] == flavor)))
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Befog
|
2
|
+
module Commands
|
3
|
+
module Mixins
|
4
|
+
module Traceable
|
5
|
+
def self.included(target)
|
6
|
+
target.module_eval do
|
7
|
+
option :rehearse,
|
8
|
+
:short => :u,
|
9
|
+
:description => "Dry-run, verbose logging, but don't actually run anything"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def rehearse?
|
14
|
+
!!options[:rehearse]
|
15
|
+
end
|
16
|
+
|
17
|
+
def verbose?
|
18
|
+
!!options[:verbose] or rehearse?
|
19
|
+
end
|
20
|
+
|
21
|
+
def verbose(message)
|
22
|
+
log(message) if verbose?
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require "befog/commands/mixins/command"
|
2
2
|
require "befog/commands/mixins/configurable"
|
3
|
-
require "befog/commands/mixins/
|
4
|
-
require "befog/commands/mixins/
|
5
|
-
require "befog/commands/mixins/
|
3
|
+
require "befog/commands/mixins/scope"
|
4
|
+
require "befog/commands/mixins/safely"
|
5
|
+
require "befog/commands/mixins/selectable"
|
6
6
|
require "befog/commands/mixins/help"
|
7
7
|
|
8
8
|
module Befog
|
@@ -12,46 +12,51 @@ module Befog
|
|
12
12
|
|
13
13
|
include Mixins::Command
|
14
14
|
include Mixins::Configurable
|
15
|
-
include Mixins::
|
16
|
-
include Mixins::
|
17
|
-
include Mixins::
|
15
|
+
include Mixins::Scope
|
16
|
+
include Mixins::Safely
|
17
|
+
include Mixins::Selectable
|
18
18
|
include Mixins::Help
|
19
19
|
|
20
|
-
command
|
20
|
+
command :name => :remove,
|
21
|
+
:usage => "befog remove [<bank>] <options>",
|
21
22
|
:default_to_help => true
|
22
23
|
|
23
24
|
option :count,
|
24
|
-
:short =>
|
25
|
-
:long => "--count COUNT",
|
26
|
-
:required => true,
|
25
|
+
:short => :c,
|
27
26
|
:description => "The number of machines to de-provision"
|
27
|
+
|
28
|
+
option :all,
|
29
|
+
:short => :a,
|
30
|
+
:description => "Deprovision all selected servers"
|
31
|
+
|
28
32
|
|
29
33
|
def run
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
$stderr.puts "Number must be an integer greater than 0."
|
37
|
-
return
|
38
|
-
end
|
39
|
-
if count > servers.size
|
40
|
-
$stderr.puts "Number must be less than or equal to the bank size of #{bank.size}."
|
41
|
-
return
|
34
|
+
count = 0 ; threads = [] ; deleted = []
|
35
|
+
unless options[:all]
|
36
|
+
count = options[:count].to_i
|
37
|
+
if count <= 0
|
38
|
+
error "Count must be an integer greater than 0."
|
39
|
+
end
|
42
40
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
41
|
+
run_for_selected do |id|
|
42
|
+
if options[:all] or count > 0
|
43
|
+
threads << Thread.new do
|
44
|
+
safely do
|
45
|
+
log "Deprovisioning server #{id} ..."
|
46
|
+
compute.servers.get(id).destroy
|
47
|
+
deleted << id
|
48
|
+
count -= 1
|
49
|
+
end
|
50
|
+
end
|
51
51
|
end
|
52
|
-
save
|
53
52
|
end
|
53
|
+
$stdout.print "This may take a few minutes .."
|
54
|
+
sleep 1 while threads.any? { |t| $stdout.print "."; $stdout.flush ; t.alive? }
|
55
|
+
$stdout.print "\n"
|
56
|
+
self.servers -= deleted
|
57
|
+
save
|
54
58
|
end
|
59
|
+
|
55
60
|
end
|
56
61
|
end
|
57
62
|
end
|
data/lib/befog/commands/run.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require "fog"
|
2
2
|
require "befog/commands/mixins/command"
|
3
3
|
require "befog/commands/mixins/configurable"
|
4
|
-
require "befog/commands/mixins/
|
5
|
-
require "befog/commands/mixins/
|
6
|
-
require "befog/commands/mixins/
|
4
|
+
require "befog/commands/mixins/scope"
|
5
|
+
require "befog/commands/mixins/safely"
|
6
|
+
require "befog/commands/mixins/selectable"
|
7
7
|
require "befog/commands/mixins/help"
|
8
8
|
|
9
9
|
|
@@ -14,34 +14,42 @@ module Befog
|
|
14
14
|
|
15
15
|
include Mixins::Command
|
16
16
|
include Mixins::Configurable
|
17
|
-
include Mixins::
|
18
|
-
include Mixins::
|
19
|
-
include Mixins::
|
17
|
+
include Mixins::Scope
|
18
|
+
include Mixins::Safely
|
19
|
+
include Mixins::Selectable
|
20
20
|
include Mixins::Help
|
21
21
|
|
22
|
-
command
|
22
|
+
command :name => :run,
|
23
|
+
:usage => "befog run [<bank>] <options>",
|
23
24
|
:default_to_help => true
|
24
25
|
|
25
26
|
option :command,
|
26
|
-
:short =>
|
27
|
-
:long => "--command COMMAND",
|
27
|
+
:short => :c,
|
28
28
|
:required => true,
|
29
29
|
:description => "Command to run (required)"
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
|
31
|
+
option :all,
|
32
|
+
:short => :a,
|
33
|
+
:description => "Deprovision all selected servers"
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
35
|
+
|
36
|
+
def run
|
37
|
+
run_for_selected do |id|
|
38
|
+
threads = []; threads << Thread.new do
|
39
|
+
safely do
|
40
|
+
server = get_server(id)
|
41
|
+
if server.state == "running"
|
42
|
+
address = server.public_ip_address
|
43
|
+
$stdout.puts "Running command '#{options[:command]}' for #{address} ..."
|
44
|
+
result = Fog::SSH.new(address, "root").run(options[:command]).first
|
45
|
+
$stdout.puts "#{address} STDOUT: #{result.stdout}"
|
46
|
+
$stderr.puts "#{address} STDERR: #{result.stderr}" unless result.stderr.empty?
|
47
|
+
else
|
48
|
+
$stdout.puts "Server #{id} isn't running - skipping"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
sleep 1 while threads.any? { |t| t.alive? }
|
45
53
|
end
|
46
54
|
end
|
47
55
|
|
data/lib/befog/commands/start.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require "fog"
|
2
2
|
require "befog/commands/mixins/command"
|
3
3
|
require "befog/commands/mixins/configurable"
|
4
|
-
require "befog/commands/mixins/
|
5
|
-
require "befog/commands/mixins/
|
6
|
-
require "befog/commands/mixins/
|
4
|
+
require "befog/commands/mixins/scope"
|
5
|
+
require "befog/commands/mixins/safely"
|
6
|
+
require "befog/commands/mixins/selectable"
|
7
7
|
require "befog/commands/mixins/help"
|
8
8
|
|
9
9
|
module Befog
|
@@ -13,25 +13,28 @@ module Befog
|
|
13
13
|
|
14
14
|
include Mixins::Command
|
15
15
|
include Mixins::Configurable
|
16
|
-
include Mixins::
|
17
|
-
include Mixins::
|
18
|
-
include Mixins::
|
16
|
+
include Mixins::Scope
|
17
|
+
include Mixins::Safely
|
18
|
+
include Mixins::Selectable
|
19
19
|
include Mixins::Help
|
20
20
|
|
21
|
-
command
|
22
|
-
:
|
21
|
+
command :name => :start,
|
22
|
+
:usage => "befog start [<bank>] [<options>]",
|
23
|
+
:default_to_help => true
|
23
24
|
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
option :all,
|
26
|
+
:short => :a,
|
27
|
+
:description => "Deprovision all selected servers"
|
27
28
|
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
29
|
+
def run
|
30
|
+
run_for_selected do |id|
|
31
|
+
server = get_server(id)
|
32
|
+
if server.state == "stopped"
|
33
|
+
$stdout.puts "Starting server #{id} ..."
|
34
|
+
server.start
|
35
|
+
else
|
36
|
+
$stdout.puts "Server #{id} is already (or still) running"
|
37
|
+
end
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
data/lib/befog/commands/stop.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require "fog"
|
2
2
|
require "befog/commands/mixins/command"
|
3
3
|
require "befog/commands/mixins/configurable"
|
4
|
-
require "befog/commands/mixins/
|
5
|
-
require "befog/commands/mixins/
|
6
|
-
require "befog/commands/mixins/
|
4
|
+
require "befog/commands/mixins/scope"
|
5
|
+
require "befog/commands/mixins/safely"
|
6
|
+
require "befog/commands/mixins/selectable"
|
7
7
|
require "befog/commands/mixins/help"
|
8
8
|
|
9
9
|
module Befog
|
@@ -14,28 +14,26 @@ module Befog
|
|
14
14
|
|
15
15
|
include Mixins::Command
|
16
16
|
include Mixins::Configurable
|
17
|
-
include Mixins::
|
18
|
-
include Mixins::
|
19
|
-
include Mixins::
|
17
|
+
include Mixins::Scope
|
18
|
+
include Mixins::Selectable
|
19
|
+
include Mixins::Safely
|
20
20
|
include Mixins::Help
|
21
21
|
|
22
|
-
command
|
23
|
-
:
|
22
|
+
command :name => :stop,
|
23
|
+
:usage => "befog stop [<bank>] <options>",
|
24
|
+
:default_to_help => true
|
24
25
|
|
25
26
|
def run
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
else
|
35
|
-
$stdout.puts "Server #{id} is not (yet) running"
|
27
|
+
run_for_selected do |id|
|
28
|
+
server = get_server(id)
|
29
|
+
if server.state == "running"
|
30
|
+
$stdout.puts "Stopping server #{id} ..."
|
31
|
+
server.stop
|
32
|
+
else
|
33
|
+
$stdout.puts "Server #{id} is not (yet) running"
|
34
|
+
end
|
36
35
|
end
|
37
36
|
end
|
38
|
-
|
39
37
|
end
|
40
38
|
end
|
41
39
|
end
|
data/lib/befog.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: befog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 19
|
5
4
|
prerelease:
|
6
|
-
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 0
|
10
|
-
version: 0.3.0
|
5
|
+
version: 0.4.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Carlo Flores carlo@spire.io
|
@@ -16,54 +11,52 @@ autorequire:
|
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
13
|
|
19
|
-
date: 2012-
|
14
|
+
date: 2012-09-12 00:00:00 Z
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
17
|
+
name: bundler
|
23
18
|
prerelease: false
|
24
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
20
|
none: false
|
26
21
|
requirements:
|
27
22
|
- - ~>
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 1
|
33
|
-
- 2
|
34
|
-
version: 1.1.2
|
24
|
+
version: "1.2"
|
35
25
|
type: :runtime
|
36
26
|
version_requirements: *id001
|
37
27
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
28
|
+
name: fog
|
39
29
|
prerelease: false
|
40
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
31
|
none: false
|
42
32
|
requirements:
|
43
33
|
- - ~>
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
35
|
+
version: "1.3"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rspec
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
49
46
|
version: "2.7"
|
50
47
|
type: :development
|
51
|
-
version_requirements: *
|
48
|
+
version_requirements: *id003
|
52
49
|
- !ruby/object:Gem::Dependency
|
53
50
|
name: yard
|
54
51
|
prerelease: false
|
55
|
-
requirement: &
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
56
53
|
none: false
|
57
54
|
requirements:
|
58
55
|
- - ~>
|
59
56
|
- !ruby/object:Gem::Version
|
60
|
-
hash: 5
|
61
|
-
segments:
|
62
|
-
- 0
|
63
|
-
- 7
|
64
57
|
version: "0.7"
|
65
58
|
type: :development
|
66
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
67
60
|
description: "\t\tThe befog gem allows you to manage your cloud servers\n\
|
68
61
|
\t\tdirectly from the command-line. \n"
|
69
62
|
email:
|
@@ -80,18 +73,18 @@ files:
|
|
80
73
|
- lib/befog/commands/add.rb
|
81
74
|
- lib/befog/commands/configure.rb
|
82
75
|
- lib/befog/commands/list.rb
|
83
|
-
- lib/befog/commands/mixins/bank.rb
|
84
76
|
- lib/befog/commands/mixins/command.rb
|
85
77
|
- lib/befog/commands/mixins/configurable.rb
|
86
78
|
- lib/befog/commands/mixins/help.rb
|
87
|
-
- lib/befog/commands/mixins/
|
88
|
-
- lib/befog/commands/mixins/
|
79
|
+
- lib/befog/commands/mixins/safely.rb
|
80
|
+
- lib/befog/commands/mixins/scope.rb
|
81
|
+
- lib/befog/commands/mixins/selectable.rb
|
82
|
+
- lib/befog/commands/mixins/traceable.rb
|
89
83
|
- lib/befog/commands/remove.rb
|
90
84
|
- lib/befog/commands/run.rb
|
91
85
|
- lib/befog/commands/start.rb
|
92
86
|
- lib/befog/commands/stop.rb
|
93
87
|
- lib/befog/commands.rb
|
94
|
-
- lib/befog/providers/aws.rb
|
95
88
|
- lib/befog.rb
|
96
89
|
- bin/befog
|
97
90
|
homepage: https://github.com/spire-io/befog
|
@@ -107,23 +100,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
100
|
requirements:
|
108
101
|
- - ">="
|
109
102
|
- !ruby/object:Gem::Version
|
110
|
-
hash: 3
|
111
|
-
segments:
|
112
|
-
- 0
|
113
103
|
version: "0"
|
114
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
105
|
none: false
|
116
106
|
requirements:
|
117
107
|
- - ">="
|
118
108
|
- !ruby/object:Gem::Version
|
119
|
-
hash: 3
|
120
|
-
segments:
|
121
|
-
- 0
|
122
109
|
version: "0"
|
123
110
|
requirements: []
|
124
111
|
|
125
112
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.8.
|
113
|
+
rubygems_version: 1.8.23
|
127
114
|
signing_key:
|
128
115
|
specification_version: 3
|
129
116
|
summary: Cloud provisioning CLI
|