pec 0.7.8 → 0.7.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pec.rb +0 -1
- data/lib/pec/command/up.rb +21 -10
- data/lib/pec/core.rb +4 -0
- data/lib/pec/handler/networks.rb +9 -0
- data/lib/pec/handler/user_data.rb +19 -6
- data/lib/pec/{coordinate → handler}/user_data/nic.rb +9 -9
- data/lib/pec/{coordinate → handler}/user_data/nic/base.rb +1 -1
- data/lib/pec/{coordinate → handler}/user_data/nic/rhel.rb +1 -1
- data/lib/pec/{coordinate → handler}/user_data/nic/ubuntu.rb +1 -1
- data/lib/pec/version.rb +1 -1
- metadata +6 -8
- data/lib/pec/coordinate.rb +0 -5
- data/lib/pec/coordinate/user_data.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e289abbff98834305ea24c1bb20d3858d548fc9
|
4
|
+
data.tar.gz: 6a1187c24347f8783d03f84179c543a317a46b8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e51d042af1b21821fd38a505d01ad2c82b9e970866b284dd0479f020bc54616b08656883788c0c38b97e2928e73169e4287830a80e6f1133e8ac35b30b3e31b
|
7
|
+
data.tar.gz: 9ae349b52e0cb7cc154cabb69c40dbda8a406f9ab2e44eb98a52bd9d65025e3a376c339b59999e97c46960818877a297344647f7940c792581c096d9cf26c688
|
data/lib/pec.rb
CHANGED
data/lib/pec/command/up.rb
CHANGED
@@ -5,18 +5,29 @@ module Pec::Command
|
|
5
5
|
case
|
6
6
|
when server.nil?
|
7
7
|
Pec::Logger.info "make start #{config.name}"
|
8
|
-
|
9
8
|
attribute = {name: config.name}
|
10
|
-
make_attribute(config, Pec::Handler) do |key, klass|
|
11
|
-
attribute.deep_merge!(klass.build(config))
|
12
|
-
end
|
13
9
|
|
14
|
-
|
15
|
-
|
10
|
+
begin
|
11
|
+
processor_matching(config, Pec::Handler) do |klass|
|
12
|
+
attribute.deep_merge!(klass.build(config))
|
13
|
+
end
|
14
|
+
|
15
|
+
processor_matching(attribute, Pec::Handler) do |klass|
|
16
|
+
attribute.deep_merge!(klass.post_build(config, attribute))
|
17
|
+
end
|
18
|
+
|
19
|
+
Yao::Server.create(attribute)
|
20
|
+
Pec::Logger.info "create success! #{config.name}"
|
21
|
+
rescue => e
|
22
|
+
Pec::Logger.critical(e)
|
23
|
+
Pec::Logger.warning "recovery start #{config.name}"
|
24
|
+
|
25
|
+
processor_matching(config, Pec::Handler) do |klass|
|
26
|
+
attribute.deep_merge!(klass.recover(attribute))
|
27
|
+
end
|
28
|
+
Pec::Logger.warning "recovery success! #{config.name}"
|
16
29
|
end
|
17
30
|
|
18
|
-
Yao::Server.create(attribute)
|
19
|
-
Pec::Logger.info "create success! #{config.name}"
|
20
31
|
when server.status == "SHUTOFF"
|
21
32
|
Yao::Server.start(server.id)
|
22
33
|
Pec::Logger.info "start server: #{config.name}"
|
@@ -25,11 +36,11 @@ module Pec::Command
|
|
25
36
|
end
|
26
37
|
end
|
27
38
|
|
28
|
-
def self.
|
39
|
+
def self.processor_matching(source, klass)
|
29
40
|
source.keys.each do |k|
|
30
41
|
Object.const_get(klass.to_s).constants.each do |c|
|
31
42
|
object = Object.const_get("#{klass.to_s}::#{c}")
|
32
|
-
yield
|
43
|
+
yield object if k.to_s == object.kind.to_s
|
33
44
|
end
|
34
45
|
end
|
35
46
|
end
|
data/lib/pec/core.rb
CHANGED
data/lib/pec/handler/networks.rb
CHANGED
@@ -23,6 +23,15 @@ module Pec::Handler
|
|
23
23
|
}
|
24
24
|
end
|
25
25
|
|
26
|
+
def recover(attribute)
|
27
|
+
Pec::Logger.notice "start port recovery"
|
28
|
+
attribute[:networks].each do |port|
|
29
|
+
Yao::Port.destroy(port[:port])
|
30
|
+
Pec::Logger.notice "port delete id:#{port[:port]}"
|
31
|
+
end
|
32
|
+
Pec::Logger.notice "complete port recovery"
|
33
|
+
end
|
34
|
+
|
26
35
|
def validate(network)
|
27
36
|
%w(
|
28
37
|
bootproto
|
@@ -1,14 +1,27 @@
|
|
1
1
|
module Pec::Handler
|
2
2
|
class UserData
|
3
3
|
extend Pec::Core
|
4
|
+
autoload :Nic, "pec/handler/user_data/nic"
|
4
5
|
self.kind = 'user_data'
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
|
7
|
+
def self.build(host)
|
8
|
+
user_data = host.user_data || {}
|
9
|
+
user_data['fqdn'] = host.name if host.user_data && !host.user_data['fqdn']
|
10
|
+
{ user_data: user_data }
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.post_build(host, attribute)
|
14
|
+
attribute.keys.each do |k|
|
15
|
+
Pec::Handler::UserData.constants.each do |c|
|
16
|
+
klass = Object.const_get("Pec::Handler::UserData::#{c}")
|
17
|
+
|
18
|
+
if klass.kind.to_s == k.to_s
|
19
|
+
attribute = klass.post_build(host, attribute)
|
20
|
+
end
|
21
|
+
end
|
10
22
|
end
|
23
|
+
attribute[:user_data] = Base64.encode64("#cloud-config\n" + attribute[:user_data].to_yaml) if attribute[:user_data]
|
24
|
+
attribute
|
11
25
|
end
|
12
26
|
end
|
13
27
|
end
|
14
|
-
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module Pec::
|
1
|
+
module Pec::Handler
|
2
2
|
class UserData::Nic
|
3
3
|
extend Pec::Core
|
4
|
-
autoload :Base, "pec/
|
5
|
-
autoload :Rhel, "pec/
|
6
|
-
autoload :Ubuntu, "pec/
|
4
|
+
autoload :Base, "pec/handler/user_data/nic/base"
|
5
|
+
autoload :Rhel, "pec/handler/user_data/nic/rhel"
|
6
|
+
autoload :Ubuntu, "pec/handler/user_data/nic/ubuntu"
|
7
7
|
self.kind = 'networks'
|
8
8
|
|
9
9
|
class << self
|
10
|
-
def
|
11
|
-
_nic = Pec::
|
12
|
-
host.os_type && Object.const_get("Pec::
|
10
|
+
def post_build(host, attribute)
|
11
|
+
_nic = Pec::Handler::UserData::Nic.constants.reject {|c|c.to_s.downcase == "base"}.find do |c|
|
12
|
+
host.os_type && Object.const_get("Pec::Handler::UserData::Nic::#{c}").os_type.include?(host.os_type)
|
13
13
|
end
|
14
14
|
|
15
15
|
nic = if _nic
|
16
|
-
Object.const_get("Pec::
|
16
|
+
Object.const_get("Pec::Handler::UserData::Nic::#{_nic}")
|
17
17
|
else
|
18
|
-
Pec::
|
18
|
+
Pec::Handler::UserData::Nic::Rhel
|
19
19
|
end
|
20
20
|
|
21
21
|
attribute.deep_merge(
|
data/lib/pec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kazuhiko yamashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -153,12 +153,6 @@ files:
|
|
153
153
|
- lib/pec/command/up.rb
|
154
154
|
- lib/pec/config_error.rb
|
155
155
|
- lib/pec/configure.rb
|
156
|
-
- lib/pec/coordinate.rb
|
157
|
-
- lib/pec/coordinate/user_data.rb
|
158
|
-
- lib/pec/coordinate/user_data/nic.rb
|
159
|
-
- lib/pec/coordinate/user_data/nic/base.rb
|
160
|
-
- lib/pec/coordinate/user_data/nic/rhel.rb
|
161
|
-
- lib/pec/coordinate/user_data/nic/ubuntu.rb
|
162
156
|
- lib/pec/core.rb
|
163
157
|
- lib/pec/handler.rb
|
164
158
|
- lib/pec/handler/availability_zone.rb
|
@@ -170,6 +164,10 @@ files:
|
|
170
164
|
- lib/pec/handler/networks/ip_address.rb
|
171
165
|
- lib/pec/handler/templates.rb
|
172
166
|
- lib/pec/handler/user_data.rb
|
167
|
+
- lib/pec/handler/user_data/nic.rb
|
168
|
+
- lib/pec/handler/user_data/nic/base.rb
|
169
|
+
- lib/pec/handler/user_data/nic/rhel.rb
|
170
|
+
- lib/pec/handler/user_data/nic/ubuntu.rb
|
173
171
|
- lib/pec/init.rb
|
174
172
|
- lib/pec/logger.rb
|
175
173
|
- lib/pec/sample.rb
|
data/lib/pec/coordinate.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Pec::Coordinate
|
2
|
-
class UserData
|
3
|
-
extend Pec::Core
|
4
|
-
autoload :Nic, "pec/coordinate/user_data/nic"
|
5
|
-
self.kind = 'user_data'
|
6
|
-
|
7
|
-
def self.build(host, attribute)
|
8
|
-
attribute.keys.each do |k|
|
9
|
-
Pec::Coordinate::UserData.constants.each do |c|
|
10
|
-
klass = Object.const_get("Pec::Coordinate::UserData::#{c}")
|
11
|
-
|
12
|
-
if klass.kind.to_s == k.to_s
|
13
|
-
attribute = klass.build(host, attribute)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
attribute[:user_data] = Base64.encode64("#cloud-config\n" + attribute[:user_data].to_yaml) if attribute[:user_data]
|
18
|
-
attribute
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|