xp5k 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xp5k/rake/dsl.rb +12 -1
- data/lib/xp5k/role.rb +10 -3
- data/lib/xp5k/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17334721e7c45832785d2e615c822b081cb14d2b
|
4
|
+
data.tar.gz: 2ab5ac52522dd716279c65cb27448e539d697e3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a62ab77e00dd13ad9d733142ac930462281dadd7bf49f42132553e6f3079204fe90db14d3255a71e0ea0f826c0ff447942d5675013ae999b5af8c9053ee14673
|
7
|
+
data.tar.gz: 6ebbffd6a1b21d621ae59f7219747fa46face90368b15189e7a03433bda024e0b2976aa77ecba5ab9a73c1acb1553bba8a1688567fcc37cf9607bec9975326bd
|
data/lib/xp5k/rake/dsl.rb
CHANGED
@@ -26,7 +26,13 @@ module XP5K
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
XP5K::Role.
|
29
|
+
if not existing_role = XP5K::Role.findByName(args.first)
|
30
|
+
XP5K::Role.new(name: args.first, size: hosts.length, servers: hosts, proc: procblock).add
|
31
|
+
else
|
32
|
+
existing_role.size = hosts.length
|
33
|
+
existing_role.servers = hosts
|
34
|
+
existing_role.proc = procblock
|
35
|
+
end
|
30
36
|
|
31
37
|
end
|
32
38
|
|
@@ -56,6 +62,10 @@ module XP5K
|
|
56
62
|
commands = (args.last.class == String or args.last.class == Array) ? (args.last.class == String ? [args.pop] : args.pop ) : []
|
57
63
|
options = args.last.class == Hash ? args.pop : {}
|
58
64
|
options[:user] ||= 'root'
|
65
|
+
options[:environment] ||= {}
|
66
|
+
cmd_env = options[:environment].map do |key, value|
|
67
|
+
"#{key}=#{value}"
|
68
|
+
end
|
59
69
|
|
60
70
|
if block_given?
|
61
71
|
case result = yield
|
@@ -111,6 +121,7 @@ module XP5K
|
|
111
121
|
while host = workq.pop(true)
|
112
122
|
begin
|
113
123
|
commands.each do |command|
|
124
|
+
command.prepend(cmd_env.join(' ') + ' ') unless cmd_env.empty?
|
114
125
|
puts "[command][#{host}] #{command}"
|
115
126
|
ssh_session[host].exec!(command) do |channel, stream, data|
|
116
127
|
logs[host] << data
|
data/lib/xp5k/role.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class XP5K::Role
|
2
2
|
|
3
|
-
attr_accessor :name, :size, :desc, :servers, :jobid, :inner, :pattern, :proc
|
3
|
+
attr_accessor :name, :size, :desc, :servers, :jobid, :inner, :pattern, :proc, :vlan
|
4
4
|
|
5
5
|
@@roles = []
|
6
6
|
|
@@ -10,6 +10,7 @@ class XP5K::Role
|
|
10
10
|
@servers = []
|
11
11
|
@desc = ""
|
12
12
|
@proc = nil
|
13
|
+
@vlan = nil
|
13
14
|
|
14
15
|
# Required parameters
|
15
16
|
%w{ name size }.each do |param|
|
@@ -21,7 +22,7 @@ class XP5K::Role
|
|
21
22
|
end
|
22
23
|
|
23
24
|
# Optional parameters
|
24
|
-
%w{ desc servers inner pattern proc }.each do |param|
|
25
|
+
%w{ desc servers inner pattern proc vlan }.each do |param|
|
25
26
|
instance_variable_set("@#{param}", options[param.to_sym]) if options[param.to_sym]
|
26
27
|
end
|
27
28
|
end
|
@@ -34,7 +35,13 @@ class XP5K::Role
|
|
34
35
|
if self.proc.class == Proc
|
35
36
|
self.callproc
|
36
37
|
end
|
37
|
-
@
|
38
|
+
if @vlan
|
39
|
+
@servers.map do |node|
|
40
|
+
node.match('kavlan') ? node : node.gsub(/-(\d+)/, '-\1-kavlan-' + @vlan)
|
41
|
+
end
|
42
|
+
else
|
43
|
+
@servers
|
44
|
+
end
|
38
45
|
end
|
39
46
|
|
40
47
|
def callproc
|
data/lib/xp5k/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xp5k
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pascal Morillon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|