dtk-node-agent 0.6.0 → 0.6.1
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 +13 -5
- data/lib/dtk-node-agent/installer.rb +1 -2
- data/lib/dtk-node-agent/version.rb +1 -1
- data/mcollective_additions/plugins/v2.2/agent/puppet_apply.rb +59 -13
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MDA2NGNlZDk5MmRkNDA0MDAxNGE2NDA0ZWQ3OGU2YTNjZjk1MTM1NA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZmEzMGY2M2MxZWEzNmJmNjVhMGFhMDM0NTkyMjIxNjhlMThlYTQ1ZA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OWMyYThiN2Q1NzMzN2YxMzI0YzAwNGJjZTA1MDExYmIxOGU3OTA1YTliYjZj
|
10
|
+
ZjUzMWQzMDQ5NTA0MGE2MzYzZmEyNTk5ZmRiNzg0YmM0MTBkNTFkNDQxNzUy
|
11
|
+
YTZkYzZlMjhhZThkODE2OTQwZDBjYzQyMDUzOGNkMzljZTc3Zjc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OTJlZjM2OWY5ZjNhNzIyODMwMTdlMmIwMjgzODBiMjJkNGNlODFkM2RmNzFj
|
14
|
+
M2IxMzFiYmQ1ZmJhODgwZDVhMWVmZDBlOWUwMDdmOTRhMWE2MjliZDRhZjk4
|
15
|
+
NzhkMDAyNDVkYTNkYjRjNzAyOWZkNDhlYThjMDYyYjZiYWVhMDk=
|
@@ -45,7 +45,6 @@ module DTK
|
|
45
45
|
shell "rpm -ivh #{CONFIG[:puppetlabs_el5_rpm_repo]}"
|
46
46
|
Facter.architecture == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el5_i686_repo]}")
|
47
47
|
when "6", "n/a"
|
48
|
-
next unless Facter.operatingsystem == "Amazon"
|
49
48
|
shell "rpm -ivh #{CONFIG[:puppetlabs_el6_rpm_repo]}"
|
50
49
|
Facter.architecture == 'X86_64' ? (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_X86_64_repo]}") : (shell "rpm -ivh #{CONFIG[:rpm_forge_el6_i686_repo]}")
|
51
50
|
shell "yum-config-manager --disable rpmforge-release"
|
@@ -154,4 +153,4 @@ module DTK
|
|
154
153
|
|
155
154
|
end
|
156
155
|
end
|
157
|
-
end
|
156
|
+
end
|
@@ -7,8 +7,9 @@ require 'fileutils'
|
|
7
7
|
require File.expand_path('dtk_node_agent_git_client',File.dirname(__FILE__))
|
8
8
|
|
9
9
|
#TODO: move to be shared by agents
|
10
|
-
PuppetApplyLogDir
|
11
|
-
ModulePath
|
10
|
+
PuppetApplyLogDir = "/var/log/puppet"
|
11
|
+
ModulePath = "/etc/puppet/modules"
|
12
|
+
DTKPuppetCacheBaseDir = "/usr/share/dtk/tasks"
|
12
13
|
|
13
14
|
module MCollective
|
14
15
|
module Agent
|
@@ -29,6 +30,7 @@ module MCollective
|
|
29
30
|
log_params()
|
30
31
|
@reply_data = nil
|
31
32
|
@msg_id = request.uniqid
|
33
|
+
@service_name = request[:service_name] || "UNKNOWN"
|
32
34
|
@task_info = [:task_id,:top_task_id].inject({}) do |h,k|
|
33
35
|
h.merge(k => request[k])
|
34
36
|
end.merge(:msg_id => @msg_id)
|
@@ -135,10 +137,11 @@ module MCollective
|
|
135
137
|
# Amar: Added task ID to current thread, so puppet apply can be canceled from puppet_cancel.rb when user requests cancel
|
136
138
|
task_id = request[:top_task_id]
|
137
139
|
Thread.current[:task_id] = task_id
|
138
|
-
|
139
140
|
clean_state()
|
140
141
|
ret = nil
|
141
|
-
|
142
|
+
# TODO: harmonize request[:top_task_id] and top_task_id()
|
143
|
+
dtk_puppet_cache = DTKPuppetCache.new(@service_name,top_task_id())
|
144
|
+
log_file_path = dtk_puppet_cache.log_file_path(inter_node_stage)
|
142
145
|
log_file = nil
|
143
146
|
begin
|
144
147
|
save_stderr = nil
|
@@ -146,9 +149,8 @@ module MCollective
|
|
146
149
|
log_file = File.open(log_file_path,"a")
|
147
150
|
log_file.close
|
148
151
|
Puppet[:autoflush] = true
|
149
|
-
most_recent_link =
|
150
|
-
|
151
|
-
File.symlink(log_file_path,most_recent_link)
|
152
|
+
most_recent_link = puppet_last_log_link()
|
153
|
+
ln_s(log_file_path,most_recent_link)
|
152
154
|
|
153
155
|
# Amar: Node manifest contains list of generated puppet manifests
|
154
156
|
# This is done to support multiple puppet calls inside one puppet_apply agent call
|
@@ -156,7 +158,13 @@ module MCollective
|
|
156
158
|
execute_lines = puppet_manifest || ret_execute_lines(cmps_with_attrs)
|
157
159
|
execute_string = execute_lines.join("\n")
|
158
160
|
@log.info("\n----------------execute_string------------\n#{execute_string}\n----------------execute_string------------")
|
159
|
-
|
161
|
+
task_dir = dtk_puppet_cache.task_dir()
|
162
|
+
# set the link to last_task
|
163
|
+
ln_s(task_dir, dtk_puppet_cache.last_task_link())
|
164
|
+
|
165
|
+
manifest_path = dtk_puppet_cache.node_manifest_path(inter_node_stage,i+1)
|
166
|
+
File.open(manifest_path,"w"){|f| f << execute_string}
|
167
|
+
|
160
168
|
cmd_line =
|
161
169
|
[
|
162
170
|
"apply",
|
@@ -553,11 +561,8 @@ module MCollective
|
|
553
561
|
def log_params()
|
554
562
|
@log.info("params: #{request.data.inspect}")
|
555
563
|
end
|
556
|
-
|
557
|
-
def
|
558
|
-
"#{PuppetApplyLogDir}/#{id_info()}.log"
|
559
|
-
end
|
560
|
-
def most_recent_file_path()
|
564
|
+
|
565
|
+
def puppet_last_log_link()
|
561
566
|
"#{PuppetApplyLogDir}/last.log"
|
562
567
|
end
|
563
568
|
def id_info()
|
@@ -567,6 +572,47 @@ module MCollective
|
|
567
572
|
end
|
568
573
|
end.compact.join(":")
|
569
574
|
end
|
575
|
+
def top_task_id()
|
576
|
+
"task_id_#{@task_info[:top_task_id] || @task_info[:task_id] || 'task' }"
|
577
|
+
end
|
578
|
+
|
579
|
+
def ln_s(target,link)
|
580
|
+
File.delete(link) if File.exists? link
|
581
|
+
FileUtils.ln_s(target,link,:force => true)
|
582
|
+
end
|
583
|
+
|
584
|
+
class DTKPuppetCache
|
585
|
+
BaseDir = DTKPuppetCacheBaseDir
|
586
|
+
def initialize(service_name,top_task_id)
|
587
|
+
@service_name = service_name
|
588
|
+
@top_task_id = top_task_id
|
589
|
+
end
|
590
|
+
|
591
|
+
def task_dir()
|
592
|
+
@task_dir ||= mkdir_p("#{base_dir()}/#{@service_name}/#{@top_task_id}")
|
593
|
+
end
|
594
|
+
|
595
|
+
def log_file_path(stage)
|
596
|
+
"#{task_dir()}/stage-#{stage}-puppet.log"
|
597
|
+
end
|
598
|
+
def node_manifest_path(stage,invocation)
|
599
|
+
"#{task_dir()}/site-stage-#{stage}-invocation-#{invocation}.pp"
|
600
|
+
end
|
601
|
+
|
602
|
+
def last_task_link()
|
603
|
+
"#{base_dir()}/last-task"
|
604
|
+
end
|
605
|
+
|
606
|
+
private
|
607
|
+
def base_dir()
|
608
|
+
@base_dir ||= mkdir_p(BaseDir)
|
609
|
+
end
|
610
|
+
|
611
|
+
def mkdir_p(dir_path)
|
612
|
+
FileUtils.mkdir_p(dir_path)
|
613
|
+
dir_path
|
614
|
+
end
|
615
|
+
end
|
570
616
|
|
571
617
|
#TODO: this should be common accross Agents
|
572
618
|
class Response < Hash
|
metadata
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dtk-node-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rich PELAVIN
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.3.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.3.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: facter
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.7.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.7.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: grit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 2.5.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 2.5.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: stomp
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.3.1
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.3.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sshkeyauth
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 0.0.11
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.0.11
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: serverspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 1.1.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 1.1.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: specinfra
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 1.0.4
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.0.4
|
111
111
|
- !ruby/object:Gem::Dependency
|
@@ -209,17 +209,17 @@ require_paths:
|
|
209
209
|
- lib
|
210
210
|
required_ruby_version: !ruby/object:Gem::Requirement
|
211
211
|
requirements:
|
212
|
-
- -
|
212
|
+
- - ! '>='
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '0'
|
215
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
216
|
requirements:
|
217
|
-
- -
|
217
|
+
- - ! '>='
|
218
218
|
- !ruby/object:Gem::Version
|
219
219
|
version: '0'
|
220
220
|
requirements: []
|
221
221
|
rubyforge_project:
|
222
|
-
rubygems_version: 2.
|
222
|
+
rubygems_version: 2.2.2
|
223
223
|
signing_key:
|
224
224
|
specification_version: 4
|
225
225
|
summary: DTK Node Agent gem.
|