skyed 0.1.11 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/skyed.rb +2 -1
- data/lib/skyed/aws.rb +23 -0
- data/lib/skyed/commands.rb +21 -2
- data/lib/skyed/create.rb +13 -2
- data/lib/skyed/stop.rb +14 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c191f7b0605dc2e8d68779b5cd1eaf2712e43447
|
4
|
+
data.tar.gz: d1daad8c34f40f89dfd6fc28d9c794465f15b564
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ba58d81e95e50e8258abb2ff06a4c775c24eb4b17356939239f94179abf150ac750dc4fac4f97f248fe19030fd310e21c367ad5c0c6e739636eb0c952523a90
|
7
|
+
data.tar.gz: 792ce1e3b5756bbfae02b31e39111ba7d7cece30f1c65cadef1656ab52c319ccb7d952e259248974a8f51ac1c351c34b496d7f354a8342cbbdba2c177df86e9d
|
data/lib/skyed.rb
CHANGED
@@ -4,6 +4,7 @@ require 'skyed/utils'
|
|
4
4
|
require 'skyed/git'
|
5
5
|
require 'skyed/aws'
|
6
6
|
require 'skyed/destroy'
|
7
|
+
require 'skyed/stop'
|
7
8
|
require 'skyed/run'
|
8
9
|
require 'skyed/deploy'
|
9
10
|
require 'skyed/init'
|
@@ -11,5 +12,5 @@ require 'skyed/settings'
|
|
11
12
|
|
12
13
|
# Skyed is a set of tools for cloud computing
|
13
14
|
module Skyed
|
14
|
-
VERSION = '0.1.
|
15
|
+
VERSION = '0.1.12'
|
15
16
|
end
|
data/lib/skyed/aws.rb
CHANGED
@@ -158,6 +158,29 @@ module Skyed
|
|
158
158
|
}
|
159
159
|
|
160
160
|
class << self
|
161
|
+
def start_instance(instance_id, opsworks)
|
162
|
+
opsworks.start_instance(instance_id: instance_id)
|
163
|
+
wait_for_instance_id(instance_id, 'online', opsworks)
|
164
|
+
end
|
165
|
+
|
166
|
+
def instances_by_status(stack_id, layer_id, status, ow)
|
167
|
+
Skyed::Settings.stack_id = stack(stack_id, ow).stack_id
|
168
|
+
ow.describe_instances(
|
169
|
+
layer_id: layer(layer_id, ow).layer_id)[:instances].select do |i|
|
170
|
+
i.status == status
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def stop_instance(stack_id, hostname, opsworks = nil)
|
175
|
+
opsworks = login if opsworks.nil?
|
176
|
+
instance = instance_by_name(hostname, stack_id, opsworks)
|
177
|
+
opsworks.stop_instance(instance_id: instance.instance_id)
|
178
|
+
wait_for_instance_id(
|
179
|
+
instance.instance_id,
|
180
|
+
'stopped',
|
181
|
+
opsworks)
|
182
|
+
end
|
183
|
+
|
161
184
|
def create_instance(stack_id, layer_id, instance_type, opsworks)
|
162
185
|
instance = opsworks.create_instance(
|
163
186
|
stack_id: stack_id,
|
data/lib/skyed/commands.rb
CHANGED
@@ -37,8 +37,8 @@ end
|
|
37
37
|
desc 'Run specific recipes on instance'
|
38
38
|
long_desc 'Runs specified recipes on all running instances'
|
39
39
|
|
40
|
-
stack_desc = 'Stack to which the
|
41
|
-
layer_desc = 'Layer to which the
|
40
|
+
stack_desc = 'Stack to which the command affects.'
|
41
|
+
layer_desc = 'Layer to which the command affects.'
|
42
42
|
command :run do |cmd|
|
43
43
|
cmd.flag [:s, :stack], default_value: nil,
|
44
44
|
type: String,
|
@@ -73,9 +73,26 @@ command :destroy do |cmd|
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
desc 'Stop instance'
|
77
|
+
long_desc 'Stop instance'
|
78
|
+
|
79
|
+
command :stop do |cmd|
|
80
|
+
cmd.flag [:s, :stack], default_value: nil,
|
81
|
+
type: String,
|
82
|
+
desc: stack_desc
|
83
|
+
desc = 'Time to wait for AWS responses'
|
84
|
+
cmd.flag [:w, :wait_interval, 'wait-interval'], default_value: 30,
|
85
|
+
type: Integer,
|
86
|
+
desc: desc
|
87
|
+
cmd.action do |global_options, options, args|
|
88
|
+
Skyed::Stop.execute(global_options, options, args)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
76
92
|
desc 'Create instance'
|
77
93
|
long_desc 'Create instance'
|
78
94
|
|
95
|
+
start_desc = 'Avoids creation if stopped OW instance already exists'
|
79
96
|
command :create do |cmd|
|
80
97
|
cmd.switch [:rds], default_value: false,
|
81
98
|
desc: 'Creates RDS instance'
|
@@ -97,6 +114,8 @@ command :create do |cmd|
|
|
97
114
|
cmd.flag [:l, :layer], default_value: nil,
|
98
115
|
type: String,
|
99
116
|
desc: layer_desc
|
117
|
+
cmd.switch [:start], default_value: false,
|
118
|
+
desc: start_desc
|
100
119
|
desc = 'Time to wait for AWS responses'
|
101
120
|
cmd.flag [:w, :wait_interval, 'wait-interval'], default_value: 30,
|
102
121
|
type: Integer,
|
data/lib/skyed/create.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Skyed
|
2
2
|
# This module encapsulates all the create command steps.
|
3
3
|
module Create
|
4
|
-
@non_rds_options = [:rds, :stack, :layer]
|
4
|
+
@non_rds_options = [:rds, :start, :stack, :layer]
|
5
5
|
class << self
|
6
6
|
def execute(_global_options, options, args)
|
7
7
|
Skyed::Init.credentials if Skyed::Settings.empty?
|
@@ -9,6 +9,16 @@ module Skyed
|
|
9
9
|
create_opsworks(options, args) unless options[:rds]
|
10
10
|
end
|
11
11
|
|
12
|
+
def start_opsworks(options, ow)
|
13
|
+
stopped_instances = Skyed::AWS::OpsWorks.instances_by_status(
|
14
|
+
options[:stack], options[:layer], 'stopped', ow)
|
15
|
+
return false if stopped_instances.empty?
|
16
|
+
Skyed::AWS::OpsWorks.start_instance(
|
17
|
+
stopped_instances.first.instance_id,
|
18
|
+
ow)
|
19
|
+
true
|
20
|
+
end
|
21
|
+
|
12
22
|
def check_create_options(options)
|
13
23
|
msg = 'Specify stack and layer or initialize for local management'
|
14
24
|
fail msg unless options[:stack] && options[:layer]
|
@@ -17,11 +27,12 @@ module Skyed
|
|
17
27
|
def create_opsworks(options, _args)
|
18
28
|
check_create_options(options)
|
19
29
|
ow = settings(options)
|
30
|
+
options[:start] = start_opsworks(options, ow) if options[:start]
|
20
31
|
Skyed::AWS::OpsWorks.create_instance(
|
21
32
|
Skyed::Settings.stack_id,
|
22
33
|
Skyed::Settings.layer_id,
|
23
34
|
options[:type],
|
24
|
-
ow)
|
35
|
+
ow) unless options[:start]
|
25
36
|
end
|
26
37
|
|
27
38
|
def stack(ow, options)
|
data/lib/skyed/stop.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Skyed
|
2
|
+
# This module encapsulates all the destroy command steps.
|
3
|
+
module Stop
|
4
|
+
class << self
|
5
|
+
def execute(_global_options, options, args)
|
6
|
+
Skyed::Init.credentials if Skyed::Settings.empty?
|
7
|
+
ow = Skyed::AWS::OpsWorks.login
|
8
|
+
stack_id = Skyed::AWS::OpsWorks.stack(
|
9
|
+
options[:stack], ow)[:stack_id]
|
10
|
+
Skyed::AWS::OpsWorks.stop_instance(stack_id, args[0], ow)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skyed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ignasi Fosch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- lib/skyed/list.rb
|
86
86
|
- lib/skyed/run.rb
|
87
87
|
- lib/skyed/settings.rb
|
88
|
+
- lib/skyed/stop.rb
|
88
89
|
- lib/skyed/utils.rb
|
89
90
|
- templates/Vagrantfile.erb
|
90
91
|
- templates/config.j2.erb
|