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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64a41367917d4c9b4445f795f9d71eb1a092b901
4
- data.tar.gz: 26ea5183d5e2e675bccdb938443d2e464efbeda6
3
+ metadata.gz: 17334721e7c45832785d2e615c822b081cb14d2b
4
+ data.tar.gz: 2ab5ac52522dd716279c65cb27448e539d697e3f
5
5
  SHA512:
6
- metadata.gz: a4e3e3c59d52bf281a1e0c8a55f328c5e7ecc4fd4791d63aff1e5a099255c46f11fbdb2267861ccde607a5ea7467d0d55de1d37d542c592ecb0822e34214903d
7
- data.tar.gz: 84348914d0e589ef7859de46a980806b98a0067fcef293e5290aa8f8d67b6bb7c53b7b6d8f29e62235bf7c3d449c210bef4e08deda64b04a8409ef93daa4bf5b
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.new(name: args.first, size: hosts.length, servers: hosts, proc: procblock).add
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
- @servers
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
@@ -1,3 +1,3 @@
1
1
  module XP5K
2
- VERSION='0.0.11'
2
+ VERSION='0.0.12'
3
3
  end
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.11
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-05 00:00:00.000000000 Z
11
+ date: 2015-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client