xp5k 0.0.11 → 0.0.12
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/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
|