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 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