pec 0.7.8 → 0.7.9
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.
- 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
|