mcollective-client 2.8.7 → 2.8.8

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fb16d0f4c651d8d8bda6c9a0643a908afea9ddcc
4
+ data.tar.gz: 36de6a62d72f40972804cd820052d1bd5c7fc599
5
+ SHA512:
6
+ metadata.gz: 992c3957cea99c1d5a64ee774a40bdf87806104a30c87616e4b2864c7f5c92da476400d1679b867ca4d9d054975d1e055e5d930d736d2a3226890b67cf5db906
7
+ data.tar.gz: 591c2e50265b70db08c0ef894a86097ed2f6f7a0d029e0789be0724b38510ebb12e223d1aeab09bd5954158f6a6dd1b7b146d1214b2f08e4c4651fe1e11cd658
@@ -59,7 +59,7 @@ module MCollective
59
59
 
60
60
  MCollective::Vendor.load_vendored
61
61
 
62
- VERSION="2.8.7"
62
+ VERSION="2.8.8"
63
63
 
64
64
  def self.version
65
65
  VERSION
@@ -19,10 +19,40 @@ module MCollective
19
19
 
20
20
  UnixDaemon.daemonize do
21
21
  if pid
22
- begin
23
- File.open(pid, 'w') {|f| f.write(Process.pid) }
24
- rescue Exception => e
22
+ # Clean up stale pidfile if needed
23
+ if File.exist?(pid)
24
+ lock_pid = File.read(pid)
25
+ begin
26
+ lock_pid = Integer(lock_pid)
27
+ rescue ArgumentError, TypeError
28
+ lock_pid = nil
29
+ end
30
+
31
+ # If there's no pid in the pidfile, remove it
32
+ if lock_pid.nil?
33
+ File.unlink(pid)
34
+ else
35
+ begin
36
+ # This will raise an error if the process doesn't
37
+ # exist, and do nothing otherwise
38
+ Process.kill(0, lock_pid)
39
+ # If we reach this point then the process is running.
40
+ # We should raise an error rather than continuing on
41
+ # trying to create the PID
42
+ raise "Process is already running with PID #{lock_pid}"
43
+ rescue Errno::ESRCH
44
+ # Errno::ESRCH = no such process
45
+ # PID in pidfile doesn't exist, remove pidfile
46
+ File.unlink(pid)
47
+ end
48
+ end
49
+
25
50
  end
51
+
52
+ # Use exclusive create on the PID to avoid race condition
53
+ # when two mcollectived processes start at the same time
54
+ opt = File::CREAT | File::EXCL | File::WRONLY
55
+ File.open(pid, opt) {|f| f.print(Process.pid) }
26
56
  end
27
57
 
28
58
  begin
@@ -13,9 +13,9 @@ module MCollective
13
13
 
14
14
  it "should write the pid file if requested", :unless => MCollective::Util.windows? do
15
15
  f = mock
16
- f.expects(:write).with(Process.pid)
16
+ f.expects(:print).with(Process.pid)
17
17
 
18
- File.expects(:open).with("/nonexisting", "w").yields(f)
18
+ File.expects(:open).with("/nonexisting", File::CREAT | File::EXCL | File::WRONLY).yields(f)
19
19
 
20
20
  r = mock
21
21
  r.expects(:main_loop)
@@ -26,6 +26,50 @@ module MCollective
26
26
  UnixDaemon.daemonize_runner("/nonexisting")
27
27
  end
28
28
 
29
+ it "should clean a stale pid file", :unless => MCollective::Util.windows? do
30
+ f = mock
31
+ f.expects(:print).with(Process.pid)
32
+
33
+ File.expects(:exist?).with("/nonexisting").twice.returns(true).then.returns(false)
34
+ File.expects(:read).with("/nonexisting").returns '1234'
35
+ File.expects(:unlink).with("/nonexisting")
36
+ Process.expects(:kill).with(0, 1234).raises(Errno::ESRCH)
37
+ File.expects(:open).with("/nonexisting", File::CREAT | File::EXCL | File::WRONLY).yields(f).returns true
38
+
39
+ r = mock
40
+ r.expects(:main_loop)
41
+ Runner.expects(:new).returns(r)
42
+ UnixDaemon.expects(:daemonize).yields
43
+ UnixDaemon.daemonize_runner("/nonexisting")
44
+ end
45
+
46
+ it "should not write a pid file if the process is running", :unless => MCollective::Util.windows? do
47
+ File.expects(:exist?).with("/nonexisting").returns true
48
+ File.expects(:read).with("/nonexisting").returns '1234'
49
+ Process.expects(:kill).with(0, 1234).returns true
50
+ File.expects(:open).never
51
+
52
+ UnixDaemon.expects(:daemonize).yields
53
+ expect { UnixDaemon.daemonize_runner("/nonexisting") }.to raise_error "Process is already running with PID 1234"
54
+ end
55
+
56
+ it "should clean an empty pid file", :unless => MCollective::Util.windows? do
57
+ f = mock
58
+ f.expects(:print).with(Process.pid)
59
+
60
+ File.expects(:exist?).with("/nonexisting").twice.returns(true).then.returns(false)
61
+ File.expects(:read).with("/nonexisting").returns ''
62
+
63
+ File.expects(:unlink).with("/nonexisting")
64
+ File.expects(:open).with("/nonexisting", File::CREAT | File::EXCL | File::WRONLY).yields(f).returns true
65
+
66
+ r = mock
67
+ r.expects(:main_loop)
68
+ Runner.expects(:new).returns(r)
69
+ UnixDaemon.expects(:daemonize).yields
70
+ UnixDaemon.daemonize_runner("/nonexisting")
71
+ end
72
+
29
73
  it "should not write a pid file unless requested", :unless => MCollective::Util.windows? do
30
74
  r = mock
31
75
  r.expects(:main_loop)
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcollective-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.7
5
- prerelease:
4
+ version: 2.8.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Puppet Labs
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2017-03-01 00:00:00.000000000 Z
11
+ date: 2016-03-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: systemu
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: stomp
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Client libraries for the Mcollective Application Server
@@ -66,268 +59,269 @@ executables:
66
59
  extensions: []
67
60
  extra_rdoc_files: []
68
61
  files:
69
- - lib/mcollective/rpc.rb
70
- - lib/mcollective/monkey_patches.rb
71
- - lib/mcollective/connector.rb
72
- - lib/mcollective/pluginmanager.rb
73
- - lib/mcollective/client.rb
74
- - lib/mcollective/rpc/helpers.rb
75
- - lib/mcollective/rpc/client.rb
76
- - lib/mcollective/rpc/progress.rb
77
- - lib/mcollective/rpc/reply.rb
78
- - lib/mcollective/rpc/audit.rb
79
- - lib/mcollective/rpc/result.rb
80
- - lib/mcollective/rpc/agent.rb
81
- - lib/mcollective/rpc/request.rb
82
- - lib/mcollective/rpc/stats.rb
83
- - lib/mcollective/rpc/actionrunner.rb
84
- - lib/mcollective/facts/yaml_facts.rb
85
- - lib/mcollective/facts/base.rb
86
- - lib/mcollective/security.rb
87
- - lib/mcollective/log.rb
88
- - lib/mcollective/matcher.rb
89
- - lib/mcollective/unix_daemon.rb
90
- - lib/mcollective/application/rpc.rb
91
- - lib/mcollective/application/plugin.rb
92
- - lib/mcollective/application/ping.rb
93
- - lib/mcollective/application/completion.rb
94
- - lib/mcollective/application/describe_filter.rb
95
- - lib/mcollective/application/facts.rb
96
- - lib/mcollective/application/help.rb
97
- - lib/mcollective/application/inventory.rb
98
- - lib/mcollective/application/find.rb
99
- - lib/mcollective/validator/regex_validator.ddl
100
- - lib/mcollective/validator/typecheck_validator.ddl
101
- - lib/mcollective/validator/shellsafe_validator.ddl
102
- - lib/mcollective/validator/ipv6address_validator.ddl
103
- - lib/mcollective/validator/length_validator.ddl
104
- - lib/mcollective/validator/shellsafe_validator.rb
105
- - lib/mcollective/validator/ipv4address_validator.ddl
106
- - lib/mcollective/validator/ipv4address_validator.rb
107
- - lib/mcollective/validator/array_validator.ddl
108
- - lib/mcollective/validator/length_validator.rb
109
- - lib/mcollective/validator/regex_validator.rb
110
- - lib/mcollective/validator/ipv6address_validator.rb
111
- - lib/mcollective/validator/array_validator.rb
112
- - lib/mcollective/validator/typecheck_validator.rb
113
- - lib/mcollective/windows_daemon.rb
114
- - lib/mcollective/aggregate/sum.ddl
62
+ - lib/mcollective.rb
63
+ - lib/mcollective/agent.rb
64
+ - lib/mcollective/agent/discovery.rb
65
+ - lib/mcollective/agent/rpcutil.ddl
66
+ - lib/mcollective/agent/rpcutil.rb
67
+ - lib/mcollective/agents.rb
68
+ - lib/mcollective/aggregate.rb
115
69
  - lib/mcollective/aggregate/average.ddl
116
- - lib/mcollective/aggregate/summary.ddl
70
+ - lib/mcollective/aggregate/average.rb
71
+ - lib/mcollective/aggregate/base.rb
72
+ - lib/mcollective/aggregate/result.rb
73
+ - lib/mcollective/aggregate/result/base.rb
117
74
  - lib/mcollective/aggregate/result/collection_result.rb
118
75
  - lib/mcollective/aggregate/result/numeric_result.rb
119
- - lib/mcollective/aggregate/result/base.rb
76
+ - lib/mcollective/aggregate/sum.ddl
120
77
  - lib/mcollective/aggregate/sum.rb
121
- - lib/mcollective/aggregate/result.rb
122
- - lib/mcollective/aggregate/average.rb
78
+ - lib/mcollective/aggregate/summary.ddl
123
79
  - lib/mcollective/aggregate/summary.rb
124
- - lib/mcollective/aggregate/base.rb
125
- - lib/mcollective/optionparser.rb
126
- - lib/mcollective/ssl.rb
127
- - lib/mcollective/runnerstats.rb
128
- - lib/mcollective/shell.rb
129
- - lib/mcollective/validator.rb
130
- - lib/mcollective/vendor/require_vendored.rb
131
- - lib/mcollective/matcher/parser.rb
132
- - lib/mcollective/matcher/scanner.rb
133
- - lib/mcollective/audit/logfile.rb
134
- - lib/mcollective/config.rb
135
- - lib/mcollective/message.rb
136
80
  - lib/mcollective/application.rb
137
- - lib/mcollective/pluginpackager.rb
138
- - lib/mcollective/facts.rb
139
- - lib/mcollective/aggregate.rb
140
- - lib/mcollective/cache.rb
141
- - lib/mcollective/exceptions.rb
142
- - lib/mcollective/registration/agentlist.rb
143
- - lib/mcollective/registration/base.rb
144
- - lib/mcollective/discovery/mc.rb
145
- - lib/mcollective/discovery/mc.ddl
146
- - lib/mcollective/discovery/flatfile.ddl
147
- - lib/mcollective/discovery/stdin.ddl
148
- - lib/mcollective/discovery/stdin.rb
149
- - lib/mcollective/discovery/flatfile.rb
81
+ - lib/mcollective/application/completion.rb
82
+ - lib/mcollective/application/describe_filter.rb
83
+ - lib/mcollective/application/facts.rb
84
+ - lib/mcollective/application/find.rb
85
+ - lib/mcollective/application/help.rb
86
+ - lib/mcollective/application/inventory.rb
87
+ - lib/mcollective/application/ping.rb
88
+ - lib/mcollective/application/plugin.rb
89
+ - lib/mcollective/application/rpc.rb
150
90
  - lib/mcollective/applications.rb
151
- - lib/mcollective/generators.rb
152
- - lib/mcollective/data/fact_data.ddl
153
- - lib/mcollective/data/agent_data.rb
154
- - lib/mcollective/data/collective_data.rb
91
+ - lib/mcollective/audit/logfile.rb
92
+ - lib/mcollective/cache.rb
93
+ - lib/mcollective/client.rb
94
+ - lib/mcollective/config.rb
95
+ - lib/mcollective/connector.rb
96
+ - lib/mcollective/connector/activemq.ddl
97
+ - lib/mcollective/connector/activemq.rb
98
+ - lib/mcollective/connector/base.rb
99
+ - lib/mcollective/connector/rabbitmq.ddl
100
+ - lib/mcollective/connector/rabbitmq.rb
101
+ - lib/mcollective/data.rb
155
102
  - lib/mcollective/data/agent_data.ddl
156
- - lib/mcollective/data/result.rb
103
+ - lib/mcollective/data/agent_data.rb
104
+ - lib/mcollective/data/base.rb
157
105
  - lib/mcollective/data/collective_data.ddl
106
+ - lib/mcollective/data/collective_data.rb
107
+ - lib/mcollective/data/fact_data.ddl
158
108
  - lib/mcollective/data/fact_data.rb
159
109
  - lib/mcollective/data/fstat_data.ddl
160
110
  - lib/mcollective/data/fstat_data.rb
161
- - lib/mcollective/data/base.rb
111
+ - lib/mcollective/data/result.rb
112
+ - lib/mcollective/ddl.rb
113
+ - lib/mcollective/ddl/agentddl.rb
114
+ - lib/mcollective/ddl/base.rb
162
115
  - lib/mcollective/ddl/dataddl.rb
163
116
  - lib/mcollective/ddl/discoveryddl.rb
164
117
  - lib/mcollective/ddl/validatorddl.rb
165
- - lib/mcollective/ddl/agentddl.rb
166
- - lib/mcollective/ddl/base.rb
167
- - lib/mcollective/data.rb
168
- - lib/mcollective/logger/file_logger.rb
169
- - lib/mcollective/logger/console_logger.rb
170
- - lib/mcollective/logger/syslog_logger.rb
171
- - lib/mcollective/logger/base.rb
172
- - lib/mcollective/registration.rb
173
118
  - lib/mcollective/discovery.rb
174
- - lib/mcollective/util.rb
119
+ - lib/mcollective/discovery/flatfile.ddl
120
+ - lib/mcollective/discovery/flatfile.rb
121
+ - lib/mcollective/discovery/mc.ddl
122
+ - lib/mcollective/discovery/mc.rb
123
+ - lib/mcollective/discovery/stdin.ddl
124
+ - lib/mcollective/discovery/stdin.rb
125
+ - lib/mcollective/exceptions.rb
126
+ - lib/mcollective/facts.rb
127
+ - lib/mcollective/facts/base.rb
128
+ - lib/mcollective/facts/yaml_facts.rb
129
+ - lib/mcollective/generators.rb
130
+ - lib/mcollective/generators/agent_generator.rb
131
+ - lib/mcollective/generators/base.rb
132
+ - lib/mcollective/generators/data_generator.rb
133
+ - lib/mcollective/generators/templates/action_snippet.erb
134
+ - lib/mcollective/generators/templates/data_input_snippet.erb
135
+ - lib/mcollective/generators/templates/ddl.erb
136
+ - lib/mcollective/generators/templates/plugin.erb
137
+ - lib/mcollective/log.rb
175
138
  - lib/mcollective/logger.rb
139
+ - lib/mcollective/logger/base.rb
140
+ - lib/mcollective/logger/console_logger.rb
141
+ - lib/mcollective/logger/file_logger.rb
142
+ - lib/mcollective/logger/syslog_logger.rb
143
+ - lib/mcollective/matcher.rb
144
+ - lib/mcollective/matcher/parser.rb
145
+ - lib/mcollective/matcher/scanner.rb
146
+ - lib/mcollective/message.rb
147
+ - lib/mcollective/monkey_patches.rb
148
+ - lib/mcollective/optionparser.rb
149
+ - lib/mcollective/pluginmanager.rb
150
+ - lib/mcollective/pluginpackager.rb
176
151
  - lib/mcollective/pluginpackager/agent_definition.rb
152
+ - lib/mcollective/pluginpackager/debpackage_packager.rb
153
+ - lib/mcollective/pluginpackager/modulepackage_packager.rb
154
+ - lib/mcollective/pluginpackager/ospackage_packager.rb
155
+ - lib/mcollective/pluginpackager/rpmpackage_packager.rb
156
+ - lib/mcollective/pluginpackager/standard_definition.rb
157
+ - lib/mcollective/pluginpackager/templates/debian/Makefile.erb
158
+ - lib/mcollective/pluginpackager/templates/debian/changelog.erb
177
159
  - lib/mcollective/pluginpackager/templates/debian/compat.erb
178
160
  - lib/mcollective/pluginpackager/templates/debian/control.erb
179
- - lib/mcollective/pluginpackager/templates/debian/rules.erb
180
- - lib/mcollective/pluginpackager/templates/debian/changelog.erb
181
- - lib/mcollective/pluginpackager/templates/debian/Makefile.erb
182
161
  - lib/mcollective/pluginpackager/templates/debian/copyright.erb
162
+ - lib/mcollective/pluginpackager/templates/debian/rules.erb
163
+ - lib/mcollective/pluginpackager/templates/module/Modulefile.erb
183
164
  - lib/mcollective/pluginpackager/templates/module/README.md.erb
184
165
  - lib/mcollective/pluginpackager/templates/module/_manifest.pp.erb
185
- - lib/mcollective/pluginpackager/templates/module/Modulefile.erb
186
166
  - lib/mcollective/pluginpackager/templates/redhat/rpm_spec.erb
187
- - lib/mcollective/pluginpackager/standard_definition.rb
188
- - lib/mcollective/pluginpackager/rpmpackage_packager.rb
189
- - lib/mcollective/pluginpackager/debpackage_packager.rb
190
- - lib/mcollective/pluginpackager/ospackage_packager.rb
191
- - lib/mcollective/pluginpackager/modulepackage_packager.rb
192
- - lib/mcollective/agent.rb
193
- - lib/mcollective/agents.rb
194
- - lib/mcollective/agent/discovery.rb
195
- - lib/mcollective/agent/rpcutil.rb
196
- - lib/mcollective/agent/rpcutil.ddl
197
- - lib/mcollective/ddl.rb
198
- - lib/mcollective/connector/activemq.rb
199
- - lib/mcollective/connector/rabbitmq.rb
200
- - lib/mcollective/connector/rabbitmq.ddl
201
- - lib/mcollective/connector/activemq.ddl
202
- - lib/mcollective/connector/base.rb
203
- - lib/mcollective/generators/agent_generator.rb
204
- - lib/mcollective/generators/templates/action_snippet.erb
205
- - lib/mcollective/generators/templates/ddl.erb
206
- - lib/mcollective/generators/templates/data_input_snippet.erb
207
- - lib/mcollective/generators/templates/plugin.erb
208
- - lib/mcollective/generators/data_generator.rb
209
- - lib/mcollective/generators/base.rb
210
- - lib/mcollective/vendor.rb
211
- - lib/mcollective/security/ssl.rb
167
+ - lib/mcollective/registration.rb
168
+ - lib/mcollective/registration/agentlist.rb
169
+ - lib/mcollective/registration/base.rb
170
+ - lib/mcollective/rpc.rb
171
+ - lib/mcollective/rpc/actionrunner.rb
172
+ - lib/mcollective/rpc/agent.rb
173
+ - lib/mcollective/rpc/audit.rb
174
+ - lib/mcollective/rpc/client.rb
175
+ - lib/mcollective/rpc/helpers.rb
176
+ - lib/mcollective/rpc/progress.rb
177
+ - lib/mcollective/rpc/reply.rb
178
+ - lib/mcollective/rpc/request.rb
179
+ - lib/mcollective/rpc/result.rb
180
+ - lib/mcollective/rpc/stats.rb
181
+ - lib/mcollective/runnerstats.rb
182
+ - lib/mcollective/security.rb
212
183
  - lib/mcollective/security/aes_security.rb
213
- - lib/mcollective/security/psk.rb
214
184
  - lib/mcollective/security/base.rb
215
- - lib/mcollective.rb
185
+ - lib/mcollective/security/psk.rb
186
+ - lib/mcollective/security/ssl.rb
187
+ - lib/mcollective/shell.rb
188
+ - lib/mcollective/ssl.rb
189
+ - lib/mcollective/unix_daemon.rb
190
+ - lib/mcollective/util.rb
191
+ - lib/mcollective/validator.rb
192
+ - lib/mcollective/validator/array_validator.ddl
193
+ - lib/mcollective/validator/array_validator.rb
194
+ - lib/mcollective/validator/ipv4address_validator.ddl
195
+ - lib/mcollective/validator/ipv4address_validator.rb
196
+ - lib/mcollective/validator/ipv6address_validator.ddl
197
+ - lib/mcollective/validator/ipv6address_validator.rb
198
+ - lib/mcollective/validator/length_validator.ddl
199
+ - lib/mcollective/validator/length_validator.rb
200
+ - lib/mcollective/validator/regex_validator.ddl
201
+ - lib/mcollective/validator/regex_validator.rb
202
+ - lib/mcollective/validator/shellsafe_validator.ddl
203
+ - lib/mcollective/validator/shellsafe_validator.rb
204
+ - lib/mcollective/validator/typecheck_validator.ddl
205
+ - lib/mcollective/validator/typecheck_validator.rb
206
+ - lib/mcollective/vendor.rb
207
+ - lib/mcollective/vendor/require_vendored.rb
208
+ - lib/mcollective/windows_daemon.rb
216
209
  - bin/mco
217
- - spec/fixtures/util/3.out
210
+ - spec/Rakefile
211
+ - spec/fixtures/application/test.rb
212
+ - spec/fixtures/test-cert.pem
213
+ - spec/fixtures/test-private.pem
214
+ - spec/fixtures/test-public.pem
218
215
  - spec/fixtures/util/1.in
219
- - spec/fixtures/util/4.in
220
216
  - spec/fixtures/util/1.out
221
- - spec/fixtures/util/3.in
222
- - spec/fixtures/util/4.out
223
217
  - spec/fixtures/util/2.in
224
218
  - spec/fixtures/util/2.out
225
- - spec/fixtures/application/test.rb
226
- - spec/fixtures/test-cert.pem
227
- - spec/fixtures/test-public.pem
228
- - spec/fixtures/test-private.pem
219
+ - spec/fixtures/util/3.in
220
+ - spec/fixtures/util/3.out
221
+ - spec/fixtures/util/4.in
222
+ - spec/fixtures/util/4.out
229
223
  - spec/monkey_patches/instance_variable_defined.rb
230
224
  - spec/spec.opts
231
- - spec/Rakefile
232
- - spec/unit/mcollective/application_spec.rb
233
- - spec/unit/mcollective/runnerstats_spec.rb
234
- - spec/unit/mcollective/validator_spec.rb
235
- - spec/unit/mcollective/rpc/agent_spec.rb
236
- - spec/unit/mcollective/rpc/helpers_spec.rb
237
- - spec/unit/mcollective/rpc/stats_spec.rb
238
- - spec/unit/mcollective/rpc/actionrunner_spec.rb
239
- - spec/unit/mcollective/rpc/request_spec.rb
240
- - spec/unit/mcollective/rpc/result_spec.rb
241
- - spec/unit/mcollective/rpc/client_spec.rb
242
- - spec/unit/mcollective/rpc/reply_spec.rb
243
- - spec/unit/mcollective/facts/base_spec.rb
244
- - spec/unit/mcollective/facts/yaml_facts_spec.rb
245
- - spec/unit/mcollective/vendor_spec.rb
246
- - spec/unit/mcollective/ssl_spec.rb
247
- - spec/unit/mcollective/application/plugin_spec.rb
248
- - spec/unit/mcollective/validator/ipv6address_validator_spec.rb
249
- - spec/unit/mcollective/validator/ipv4address_validator_spec.rb
250
- - spec/unit/mcollective/validator/regex_validator_spec.rb
251
- - spec/unit/mcollective/validator/array_validator_spec.rb
252
- - spec/unit/mcollective/validator/length_validator_spec.rb
253
- - spec/unit/mcollective/validator/typecheck_validator_spec.rb
254
- - spec/unit/mcollective/validator/shellsafe_validator_spec.rb
255
- - spec/unit/mcollective/aggregate/base_spec.rb
225
+ - spec/spec_helper.rb
226
+ - spec/unit/mcollective/agent/rpcutil_spec.rb
227
+ - spec/unit/mcollective/agents_spec.rb
256
228
  - spec/unit/mcollective/aggregate/average_spec.rb
229
+ - spec/unit/mcollective/aggregate/base_spec.rb
257
230
  - spec/unit/mcollective/aggregate/result/base_spec.rb
258
231
  - spec/unit/mcollective/aggregate/result/collection_result_spec.rb
259
232
  - spec/unit/mcollective/aggregate/result/numeric_result_spec.rb
260
233
  - spec/unit/mcollective/aggregate/sum_spec.rb
261
234
  - spec/unit/mcollective/aggregate/summary_spec.rb
262
- - spec/unit/mcollective/matcher_spec.rb
263
- - spec/unit/mcollective/windows_daemon_spec.rb
264
- - spec/unit/mcollective/config_spec.rb
235
+ - spec/unit/mcollective/aggregate_spec.rb
236
+ - spec/unit/mcollective/application/plugin_spec.rb
237
+ - spec/unit/mcollective/application_spec.rb
265
238
  - spec/unit/mcollective/applications_spec.rb
266
- - spec/unit/mcollective/cache_spec.rb
267
- - spec/unit/mcollective/matcher/scanner_spec.rb
268
- - spec/unit/mcollective/matcher/parser_spec.rb
239
+ - spec/unit/mcollective/array_spec.rb
269
240
  - spec/unit/mcollective/audit/logfile_spec.rb
270
- - spec/unit/mcollective/string_spec.rb
271
- - spec/unit/mcollective/ddl_spec.rb
272
- - spec/unit/mcollective/log_spec.rb
273
- - spec/unit/mcollective/pluginmanager_spec.rb
274
- - spec/unit/mcollective/registration/base_spec.rb
275
- - spec/unit/mcollective/discovery/flatfile_spec.rb
276
- - spec/unit/mcollective/discovery/stdin_spec.rb
277
- - spec/unit/mcollective/discovery/mc_spec.rb
278
- - spec/unit/mcollective/data/collective_data_spec.rb
279
- - spec/unit/mcollective/data/base_spec.rb
241
+ - spec/unit/mcollective/cache_spec.rb
242
+ - spec/unit/mcollective/client_spec.rb
243
+ - spec/unit/mcollective/config_spec.rb
244
+ - spec/unit/mcollective/connector/activemq_spec.rb
245
+ - spec/unit/mcollective/connector/base_spec.rb
246
+ - spec/unit/mcollective/connector/rabbitmq_spec.rb
280
247
  - spec/unit/mcollective/data/agent_data_spec.rb
281
- - spec/unit/mcollective/data/result_spec.rb
282
- - spec/unit/mcollective/data/fstat_data_spec.rb
248
+ - spec/unit/mcollective/data/base_spec.rb
249
+ - spec/unit/mcollective/data/collective_data_spec.rb
283
250
  - spec/unit/mcollective/data/fact_data_spec.rb
251
+ - spec/unit/mcollective/data/fstat_data_spec.rb
252
+ - spec/unit/mcollective/data/result_spec.rb
253
+ - spec/unit/mcollective/data_spec.rb
254
+ - spec/unit/mcollective/ddl/agentddl_spec.rb
284
255
  - spec/unit/mcollective/ddl/base_spec.rb
285
256
  - spec/unit/mcollective/ddl/dataddl_spec.rb
286
257
  - spec/unit/mcollective/ddl/discoveryddl_spec.rb
287
- - spec/unit/mcollective/ddl/agentddl_spec.rb
258
+ - spec/unit/mcollective/ddl_spec.rb
259
+ - spec/unit/mcollective/discovery/flatfile_spec.rb
260
+ - spec/unit/mcollective/discovery/mc_spec.rb
261
+ - spec/unit/mcollective/discovery/stdin_spec.rb
288
262
  - spec/unit/mcollective/discovery_spec.rb
263
+ - spec/unit/mcollective/facts/base_spec.rb
264
+ - spec/unit/mcollective/facts/yaml_facts_spec.rb
265
+ - spec/unit/mcollective/facts_spec.rb
266
+ - spec/unit/mcollective/generators/agent_generator_spec.rb
267
+ - spec/unit/mcollective/generators/base_spec.rb
268
+ - spec/unit/mcollective/generators/data_generator_spec.rb
269
+ - spec/unit/mcollective/generators/snippets/agent_ddl
270
+ - spec/unit/mcollective/generators/snippets/data_ddl
271
+ - spec/unit/mcollective/log_spec.rb
289
272
  - spec/unit/mcollective/logger/base_spec.rb
290
273
  - spec/unit/mcollective/logger/console_logger_spec.rb
291
274
  - spec/unit/mcollective/logger/file_logger_spec.rb
292
275
  - spec/unit/mcollective/logger/syslog_logger_spec.rb
293
- - spec/unit/mcollective/shell_spec.rb
294
- - spec/unit/mcollective/data_spec.rb
295
- - spec/unit/mcollective/packagers/modulepackage_packager_spec.rb
276
+ - spec/unit/mcollective/matcher/parser_spec.rb
277
+ - spec/unit/mcollective/matcher/scanner_spec.rb
278
+ - spec/unit/mcollective/matcher_spec.rb
279
+ - spec/unit/mcollective/message_spec.rb
280
+ - spec/unit/mcollective/monkey_patches_spec.rb
281
+ - spec/unit/mcollective/optionparser_spec.rb
296
282
  - spec/unit/mcollective/packagers/debpackage_packager_spec.rb
283
+ - spec/unit/mcollective/packagers/modulepackage_packager_spec.rb
297
284
  - spec/unit/mcollective/packagers/ospackage_spec.rb
298
285
  - spec/unit/mcollective/packagers/rpmpackage_packager_spec.rb
299
- - spec/unit/mcollective/client_spec.rb
300
- - spec/unit/mcollective/pluginpackager/standard_definition_spec.rb
286
+ - spec/unit/mcollective/pluginmanager_spec.rb
301
287
  - spec/unit/mcollective/pluginpackager/agent_definition_spec.rb
302
- - spec/unit/mcollective/agent/rpcutil_spec.rb
303
- - spec/unit/mcollective/aggregate_spec.rb
304
- - spec/unit/mcollective/array_spec.rb
305
- - spec/unit/mcollective/optionparser_spec.rb
306
- - spec/unit/mcollective/message_spec.rb
288
+ - spec/unit/mcollective/pluginpackager/standard_definition_spec.rb
307
289
  - spec/unit/mcollective/pluginpackager_spec.rb
308
- - spec/unit/mcollective/connector/rabbitmq_spec.rb
309
- - spec/unit/mcollective/connector/base_spec.rb
310
- - spec/unit/mcollective/connector/activemq_spec.rb
311
- - spec/unit/mcollective/generators/snippets/data_ddl
312
- - spec/unit/mcollective/generators/snippets/agent_ddl
313
- - spec/unit/mcollective/generators/base_spec.rb
314
- - spec/unit/mcollective/generators/data_generator_spec.rb
315
- - spec/unit/mcollective/generators/agent_generator_spec.rb
316
- - spec/unit/mcollective/runner_spec.rb
317
- - spec/unit/mcollective/util_spec.rb
318
- - spec/unit/mcollective/agents_spec.rb
319
- - spec/unit/mcollective/monkey_patches_spec.rb
320
- - spec/unit/mcollective/unix_daemon_spec.rb
290
+ - spec/unit/mcollective/registration/base_spec.rb
291
+ - spec/unit/mcollective/rpc/actionrunner_spec.rb
292
+ - spec/unit/mcollective/rpc/agent_spec.rb
293
+ - spec/unit/mcollective/rpc/client_spec.rb
294
+ - spec/unit/mcollective/rpc/helpers_spec.rb
295
+ - spec/unit/mcollective/rpc/reply_spec.rb
296
+ - spec/unit/mcollective/rpc/request_spec.rb
297
+ - spec/unit/mcollective/rpc/result_spec.rb
298
+ - spec/unit/mcollective/rpc/stats_spec.rb
321
299
  - spec/unit/mcollective/rpc_spec.rb
322
- - spec/unit/mcollective/facts_spec.rb
323
- - spec/unit/mcollective/symbol_spec.rb
300
+ - spec/unit/mcollective/runner_spec.rb
301
+ - spec/unit/mcollective/runnerstats_spec.rb
324
302
  - spec/unit/mcollective/security/aes_security_spec.rb
325
303
  - spec/unit/mcollective/security/base_spec.rb
326
304
  - spec/unit/mcollective/security/psk_spec.rb
327
- - spec/spec_helper.rb
305
+ - spec/unit/mcollective/shell_spec.rb
306
+ - spec/unit/mcollective/ssl_spec.rb
307
+ - spec/unit/mcollective/string_spec.rb
308
+ - spec/unit/mcollective/symbol_spec.rb
309
+ - spec/unit/mcollective/unix_daemon_spec.rb
310
+ - spec/unit/mcollective/util_spec.rb
311
+ - spec/unit/mcollective/validator/array_validator_spec.rb
312
+ - spec/unit/mcollective/validator/ipv4address_validator_spec.rb
313
+ - spec/unit/mcollective/validator/ipv6address_validator_spec.rb
314
+ - spec/unit/mcollective/validator/length_validator_spec.rb
315
+ - spec/unit/mcollective/validator/regex_validator_spec.rb
316
+ - spec/unit/mcollective/validator/shellsafe_validator_spec.rb
317
+ - spec/unit/mcollective/validator/typecheck_validator_spec.rb
318
+ - spec/unit/mcollective/validator_spec.rb
319
+ - spec/unit/mcollective/vendor_spec.rb
320
+ - spec/unit/mcollective/windows_daemon_spec.rb
328
321
  - spec/windows_spec.opts
329
322
  homepage: https://docs.puppetlabs.com/mcollective/
330
323
  licenses: []
324
+ metadata: {}
331
325
  post_install_message:
332
326
  rdoc_options:
333
327
  - --line-numbers
@@ -346,133 +340,131 @@ rdoc_options:
346
340
  require_paths:
347
341
  - lib
348
342
  required_ruby_version: !ruby/object:Gem::Requirement
349
- none: false
350
343
  requirements:
351
- - - ! '>='
344
+ - - '>='
352
345
  - !ruby/object:Gem::Version
353
346
  version: '0'
354
347
  required_rubygems_version: !ruby/object:Gem::Requirement
355
- none: false
356
348
  requirements:
357
- - - ! '>='
349
+ - - '>='
358
350
  - !ruby/object:Gem::Version
359
351
  version: '0'
360
352
  requirements: []
361
353
  rubyforge_project:
362
- rubygems_version: 1.8.23
354
+ rubygems_version: 2.0.14
363
355
  signing_key:
364
- specification_version: 3
356
+ specification_version: 4
365
357
  summary: Client libraries for the Mcollective Application Server
366
358
  test_files:
367
- - spec/fixtures/util/3.out
359
+ - spec/Rakefile
360
+ - spec/fixtures/application/test.rb
361
+ - spec/fixtures/test-cert.pem
362
+ - spec/fixtures/test-private.pem
363
+ - spec/fixtures/test-public.pem
368
364
  - spec/fixtures/util/1.in
369
- - spec/fixtures/util/4.in
370
365
  - spec/fixtures/util/1.out
371
- - spec/fixtures/util/3.in
372
- - spec/fixtures/util/4.out
373
366
  - spec/fixtures/util/2.in
374
367
  - spec/fixtures/util/2.out
375
- - spec/fixtures/application/test.rb
376
- - spec/fixtures/test-cert.pem
377
- - spec/fixtures/test-public.pem
378
- - spec/fixtures/test-private.pem
368
+ - spec/fixtures/util/3.in
369
+ - spec/fixtures/util/3.out
370
+ - spec/fixtures/util/4.in
371
+ - spec/fixtures/util/4.out
379
372
  - spec/monkey_patches/instance_variable_defined.rb
380
373
  - spec/spec.opts
381
- - spec/Rakefile
382
- - spec/unit/mcollective/application_spec.rb
383
- - spec/unit/mcollective/runnerstats_spec.rb
384
- - spec/unit/mcollective/validator_spec.rb
385
- - spec/unit/mcollective/rpc/agent_spec.rb
386
- - spec/unit/mcollective/rpc/helpers_spec.rb
387
- - spec/unit/mcollective/rpc/stats_spec.rb
388
- - spec/unit/mcollective/rpc/actionrunner_spec.rb
389
- - spec/unit/mcollective/rpc/request_spec.rb
390
- - spec/unit/mcollective/rpc/result_spec.rb
391
- - spec/unit/mcollective/rpc/client_spec.rb
392
- - spec/unit/mcollective/rpc/reply_spec.rb
393
- - spec/unit/mcollective/facts/base_spec.rb
394
- - spec/unit/mcollective/facts/yaml_facts_spec.rb
395
- - spec/unit/mcollective/vendor_spec.rb
396
- - spec/unit/mcollective/ssl_spec.rb
397
- - spec/unit/mcollective/application/plugin_spec.rb
398
- - spec/unit/mcollective/validator/ipv6address_validator_spec.rb
399
- - spec/unit/mcollective/validator/ipv4address_validator_spec.rb
400
- - spec/unit/mcollective/validator/regex_validator_spec.rb
401
- - spec/unit/mcollective/validator/array_validator_spec.rb
402
- - spec/unit/mcollective/validator/length_validator_spec.rb
403
- - spec/unit/mcollective/validator/typecheck_validator_spec.rb
404
- - spec/unit/mcollective/validator/shellsafe_validator_spec.rb
405
- - spec/unit/mcollective/aggregate/base_spec.rb
374
+ - spec/spec_helper.rb
375
+ - spec/unit/mcollective/agent/rpcutil_spec.rb
376
+ - spec/unit/mcollective/agents_spec.rb
406
377
  - spec/unit/mcollective/aggregate/average_spec.rb
378
+ - spec/unit/mcollective/aggregate/base_spec.rb
407
379
  - spec/unit/mcollective/aggregate/result/base_spec.rb
408
380
  - spec/unit/mcollective/aggregate/result/collection_result_spec.rb
409
381
  - spec/unit/mcollective/aggregate/result/numeric_result_spec.rb
410
382
  - spec/unit/mcollective/aggregate/sum_spec.rb
411
383
  - spec/unit/mcollective/aggregate/summary_spec.rb
412
- - spec/unit/mcollective/matcher_spec.rb
413
- - spec/unit/mcollective/windows_daemon_spec.rb
414
- - spec/unit/mcollective/config_spec.rb
384
+ - spec/unit/mcollective/aggregate_spec.rb
385
+ - spec/unit/mcollective/application/plugin_spec.rb
386
+ - spec/unit/mcollective/application_spec.rb
415
387
  - spec/unit/mcollective/applications_spec.rb
416
- - spec/unit/mcollective/cache_spec.rb
417
- - spec/unit/mcollective/matcher/scanner_spec.rb
418
- - spec/unit/mcollective/matcher/parser_spec.rb
388
+ - spec/unit/mcollective/array_spec.rb
419
389
  - spec/unit/mcollective/audit/logfile_spec.rb
420
- - spec/unit/mcollective/string_spec.rb
421
- - spec/unit/mcollective/ddl_spec.rb
422
- - spec/unit/mcollective/log_spec.rb
423
- - spec/unit/mcollective/pluginmanager_spec.rb
424
- - spec/unit/mcollective/registration/base_spec.rb
425
- - spec/unit/mcollective/discovery/flatfile_spec.rb
426
- - spec/unit/mcollective/discovery/stdin_spec.rb
427
- - spec/unit/mcollective/discovery/mc_spec.rb
428
- - spec/unit/mcollective/data/collective_data_spec.rb
429
- - spec/unit/mcollective/data/base_spec.rb
390
+ - spec/unit/mcollective/cache_spec.rb
391
+ - spec/unit/mcollective/client_spec.rb
392
+ - spec/unit/mcollective/config_spec.rb
393
+ - spec/unit/mcollective/connector/activemq_spec.rb
394
+ - spec/unit/mcollective/connector/base_spec.rb
395
+ - spec/unit/mcollective/connector/rabbitmq_spec.rb
430
396
  - spec/unit/mcollective/data/agent_data_spec.rb
431
- - spec/unit/mcollective/data/result_spec.rb
432
- - spec/unit/mcollective/data/fstat_data_spec.rb
397
+ - spec/unit/mcollective/data/base_spec.rb
398
+ - spec/unit/mcollective/data/collective_data_spec.rb
433
399
  - spec/unit/mcollective/data/fact_data_spec.rb
400
+ - spec/unit/mcollective/data/fstat_data_spec.rb
401
+ - spec/unit/mcollective/data/result_spec.rb
402
+ - spec/unit/mcollective/data_spec.rb
403
+ - spec/unit/mcollective/ddl/agentddl_spec.rb
434
404
  - spec/unit/mcollective/ddl/base_spec.rb
435
405
  - spec/unit/mcollective/ddl/dataddl_spec.rb
436
406
  - spec/unit/mcollective/ddl/discoveryddl_spec.rb
437
- - spec/unit/mcollective/ddl/agentddl_spec.rb
407
+ - spec/unit/mcollective/ddl_spec.rb
408
+ - spec/unit/mcollective/discovery/flatfile_spec.rb
409
+ - spec/unit/mcollective/discovery/mc_spec.rb
410
+ - spec/unit/mcollective/discovery/stdin_spec.rb
438
411
  - spec/unit/mcollective/discovery_spec.rb
412
+ - spec/unit/mcollective/facts/base_spec.rb
413
+ - spec/unit/mcollective/facts/yaml_facts_spec.rb
414
+ - spec/unit/mcollective/facts_spec.rb
415
+ - spec/unit/mcollective/generators/agent_generator_spec.rb
416
+ - spec/unit/mcollective/generators/base_spec.rb
417
+ - spec/unit/mcollective/generators/data_generator_spec.rb
418
+ - spec/unit/mcollective/generators/snippets/agent_ddl
419
+ - spec/unit/mcollective/generators/snippets/data_ddl
420
+ - spec/unit/mcollective/log_spec.rb
439
421
  - spec/unit/mcollective/logger/base_spec.rb
440
422
  - spec/unit/mcollective/logger/console_logger_spec.rb
441
423
  - spec/unit/mcollective/logger/file_logger_spec.rb
442
424
  - spec/unit/mcollective/logger/syslog_logger_spec.rb
443
- - spec/unit/mcollective/shell_spec.rb
444
- - spec/unit/mcollective/data_spec.rb
445
- - spec/unit/mcollective/packagers/modulepackage_packager_spec.rb
425
+ - spec/unit/mcollective/matcher/parser_spec.rb
426
+ - spec/unit/mcollective/matcher/scanner_spec.rb
427
+ - spec/unit/mcollective/matcher_spec.rb
428
+ - spec/unit/mcollective/message_spec.rb
429
+ - spec/unit/mcollective/monkey_patches_spec.rb
430
+ - spec/unit/mcollective/optionparser_spec.rb
446
431
  - spec/unit/mcollective/packagers/debpackage_packager_spec.rb
432
+ - spec/unit/mcollective/packagers/modulepackage_packager_spec.rb
447
433
  - spec/unit/mcollective/packagers/ospackage_spec.rb
448
434
  - spec/unit/mcollective/packagers/rpmpackage_packager_spec.rb
449
- - spec/unit/mcollective/client_spec.rb
450
- - spec/unit/mcollective/pluginpackager/standard_definition_spec.rb
435
+ - spec/unit/mcollective/pluginmanager_spec.rb
451
436
  - spec/unit/mcollective/pluginpackager/agent_definition_spec.rb
452
- - spec/unit/mcollective/agent/rpcutil_spec.rb
453
- - spec/unit/mcollective/aggregate_spec.rb
454
- - spec/unit/mcollective/array_spec.rb
455
- - spec/unit/mcollective/optionparser_spec.rb
456
- - spec/unit/mcollective/message_spec.rb
437
+ - spec/unit/mcollective/pluginpackager/standard_definition_spec.rb
457
438
  - spec/unit/mcollective/pluginpackager_spec.rb
458
- - spec/unit/mcollective/connector/rabbitmq_spec.rb
459
- - spec/unit/mcollective/connector/base_spec.rb
460
- - spec/unit/mcollective/connector/activemq_spec.rb
461
- - spec/unit/mcollective/generators/snippets/data_ddl
462
- - spec/unit/mcollective/generators/snippets/agent_ddl
463
- - spec/unit/mcollective/generators/base_spec.rb
464
- - spec/unit/mcollective/generators/data_generator_spec.rb
465
- - spec/unit/mcollective/generators/agent_generator_spec.rb
466
- - spec/unit/mcollective/runner_spec.rb
467
- - spec/unit/mcollective/util_spec.rb
468
- - spec/unit/mcollective/agents_spec.rb
469
- - spec/unit/mcollective/monkey_patches_spec.rb
470
- - spec/unit/mcollective/unix_daemon_spec.rb
439
+ - spec/unit/mcollective/registration/base_spec.rb
440
+ - spec/unit/mcollective/rpc/actionrunner_spec.rb
441
+ - spec/unit/mcollective/rpc/agent_spec.rb
442
+ - spec/unit/mcollective/rpc/client_spec.rb
443
+ - spec/unit/mcollective/rpc/helpers_spec.rb
444
+ - spec/unit/mcollective/rpc/reply_spec.rb
445
+ - spec/unit/mcollective/rpc/request_spec.rb
446
+ - spec/unit/mcollective/rpc/result_spec.rb
447
+ - spec/unit/mcollective/rpc/stats_spec.rb
471
448
  - spec/unit/mcollective/rpc_spec.rb
472
- - spec/unit/mcollective/facts_spec.rb
473
- - spec/unit/mcollective/symbol_spec.rb
449
+ - spec/unit/mcollective/runner_spec.rb
450
+ - spec/unit/mcollective/runnerstats_spec.rb
474
451
  - spec/unit/mcollective/security/aes_security_spec.rb
475
452
  - spec/unit/mcollective/security/base_spec.rb
476
453
  - spec/unit/mcollective/security/psk_spec.rb
477
- - spec/spec_helper.rb
454
+ - spec/unit/mcollective/shell_spec.rb
455
+ - spec/unit/mcollective/ssl_spec.rb
456
+ - spec/unit/mcollective/string_spec.rb
457
+ - spec/unit/mcollective/symbol_spec.rb
458
+ - spec/unit/mcollective/unix_daemon_spec.rb
459
+ - spec/unit/mcollective/util_spec.rb
460
+ - spec/unit/mcollective/validator/array_validator_spec.rb
461
+ - spec/unit/mcollective/validator/ipv4address_validator_spec.rb
462
+ - spec/unit/mcollective/validator/ipv6address_validator_spec.rb
463
+ - spec/unit/mcollective/validator/length_validator_spec.rb
464
+ - spec/unit/mcollective/validator/regex_validator_spec.rb
465
+ - spec/unit/mcollective/validator/shellsafe_validator_spec.rb
466
+ - spec/unit/mcollective/validator/typecheck_validator_spec.rb
467
+ - spec/unit/mcollective/validator_spec.rb
468
+ - spec/unit/mcollective/vendor_spec.rb
469
+ - spec/unit/mcollective/windows_daemon_spec.rb
478
470
  - spec/windows_spec.opts