cantemo-portal-agent 1.3.1 → 1.3.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 941c3be4e0b16164d64637173764d3fcaacc01f1
|
4
|
+
data.tar.gz: 1531dde6210f28ce51e5c7bdd514c85d03910f3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 114af11cb4e03732296cd5d5c39727042bedc457440d7cbd89b5842233004da96c0442a97df73cc8fed297745b3ea2a1a87f9a67539a2ebab7c18c2038cdadbd
|
7
|
+
data.tar.gz: ff6261efd8fc22cc8019b7bee7a36fba60f61d22d87202604f39d9dc39a610feb0965500dd5ba5f338ca3f6469651f98373c786ba0278e4e8ef720e1f545c679
|
@@ -52,12 +52,18 @@ if sub_command == 'help'
|
|
52
52
|
exit
|
53
53
|
end
|
54
54
|
|
55
|
+
|
55
56
|
config_file_path = args[:config_file_path]
|
56
57
|
if config_file_path.is_a?(Array)
|
57
58
|
args[:config_file_path].map! { |v| File.expand_path(v) }
|
58
59
|
config_file_path = config_file_path.find { |file_path| File.exist?(file_path) }
|
60
|
+
else
|
61
|
+
args[:config_file_path] = config_file_path = File.expand_path(config_file_path)
|
59
62
|
end
|
60
63
|
|
64
|
+
unless config_file_path && File.exist?(config_file_path)
|
65
|
+
abort("Configuration file not found. Path(s): #{args[:config_file_path]}")
|
66
|
+
end
|
61
67
|
|
62
68
|
# daemon_control_command_present = sub_command && begin
|
63
69
|
# sub_command = sub_command.dup.downcase if sub_command
|
@@ -79,25 +85,10 @@ end
|
|
79
85
|
module Application
|
80
86
|
|
81
87
|
module OS
|
82
|
-
def OS.windows
|
83
|
-
(/
|
84
|
-
end
|
85
|
-
|
86
|
-
def OS.mac?
|
87
|
-
(/darwin/ =~ RUBY_PLATFORM) != nil
|
88
|
-
end
|
89
|
-
|
90
|
-
def OS.unix?
|
91
|
-
!OS.windows?
|
92
|
-
end
|
93
|
-
|
94
|
-
def OS.linux?
|
95
|
-
OS.unix? and not OS.mac?
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
class ProcessManager
|
100
|
-
|
88
|
+
def OS.windows?; (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil end
|
89
|
+
def OS.mac?; (/darwin/ =~ RUBY_PLATFORM) != nil end
|
90
|
+
def OS.unix?; !OS.windows? end
|
91
|
+
def OS.linux?; OS.unix? and not OS.mac? end
|
101
92
|
end
|
102
93
|
|
103
94
|
if OS.windows?
|
@@ -109,7 +100,8 @@ module Application
|
|
109
100
|
end
|
110
101
|
|
111
102
|
def service_main(*args)
|
112
|
-
@WatchFolderManager = WATCH_FOLDER_MANAGER_CLASS.
|
103
|
+
@WatchFolderManager = WATCH_FOLDER_MANAGER_CLASS.new(args)
|
104
|
+
@WatchFolderManager.run
|
113
105
|
end
|
114
106
|
|
115
107
|
def service_stop
|
@@ -117,11 +109,11 @@ module Application
|
|
117
109
|
end
|
118
110
|
|
119
111
|
def service_pause
|
120
|
-
|
112
|
+
@WatchFolderManager.pause
|
121
113
|
end
|
122
114
|
|
123
115
|
def service_resume
|
124
|
-
|
116
|
+
@WatchFolderManager.resume
|
125
117
|
end
|
126
118
|
|
127
119
|
# Watcher - Windows
|
@@ -176,7 +168,6 @@ module Application
|
|
176
168
|
|
177
169
|
def self.run_with_process_manager(args, options = {})
|
178
170
|
# ARGV.unshift 'run' unless %w(start stop restart run zap killall status).include? ARGV.first
|
179
|
-
self.run(args)
|
180
171
|
require 'daemons'
|
181
172
|
proc = Proc.new { self.run(args) }
|
182
173
|
app_name = APP_NAME
|
@@ -200,18 +191,26 @@ module Application
|
|
200
191
|
|
201
192
|
end
|
202
193
|
|
203
|
-
def run_in_foreground(args)
|
194
|
+
def self.run_in_foreground(args)
|
204
195
|
Watcher.run(args)
|
205
196
|
end
|
206
197
|
|
207
|
-
def
|
198
|
+
def self.run_with_process_manager(args)
|
199
|
+
Watcher.run_with_process_manager(args)
|
200
|
+
end
|
201
|
+
|
202
|
+
def self.run(args)
|
208
203
|
|
209
204
|
end
|
210
205
|
|
211
206
|
end
|
212
207
|
|
208
|
+
# puts "ARGV: #{ARGV}"
|
209
|
+
# exit
|
210
|
+
|
213
211
|
if !Application::OS.windows?
|
214
212
|
begin
|
213
|
+
ARGV.unshift sub_command unless ARGV.first == sub_command
|
215
214
|
Application.run_with_process_manager(args)
|
216
215
|
exit
|
217
216
|
rescue => e
|
@@ -219,6 +218,18 @@ if !Application::OS.windows?
|
|
219
218
|
end
|
220
219
|
end
|
221
220
|
|
221
|
+
|
222
|
+
module Application
|
223
|
+
|
224
|
+
class WindowsDaemon
|
225
|
+
|
226
|
+
end
|
227
|
+
|
228
|
+
class WindowsService
|
229
|
+
|
230
|
+
end
|
231
|
+
|
232
|
+
end
|
222
233
|
# Options:
|
223
234
|
# install - Installs the service.
|
224
235
|
# start - Starts the service.
|
@@ -239,11 +250,12 @@ EXECUTABLE_NAME = __FILE__
|
|
239
250
|
|
240
251
|
# You must provide at least one argument.
|
241
252
|
abort('No argument provided.') unless sub_command
|
242
|
-
abort('Service not installed.') unless Service.exists?(SERVICE_NAME)
|
253
|
+
abort('Service not installed.') unless Service.exists?(SERVICE_NAME) || sub_command == 'install'
|
243
254
|
|
244
255
|
|
245
256
|
case sub_command
|
246
257
|
when 'runasservice'
|
258
|
+
Application::Watcher.mainloop(args)
|
247
259
|
when 'start'
|
248
260
|
if Service.status(SERVICE_NAME).current_state != 'running'
|
249
261
|
Service.start(SERVICE_NAME, nil)
|
@@ -344,125 +344,6 @@ module Envoi
|
|
344
344
|
handler.stable_files
|
345
345
|
end
|
346
346
|
|
347
|
-
def process_stable_files
|
348
|
-
active_processors = @processors_by_watch_folder[wf]
|
349
|
-
maximum_active_processors = definition['maximum_active_processors']
|
350
|
-
|
351
|
-
includes = definition['includes']
|
352
|
-
excludes = definition['excludes']
|
353
|
-
|
354
|
-
unless ignored_file_paths
|
355
|
-
ignored_file_paths = @ignored_file_paths_by_watch_folder[wf]
|
356
|
-
end
|
357
|
-
|
358
|
-
stable_files.each do |file|
|
359
|
-
file.watch_folder ||= wf
|
360
|
-
next if file.respond_to?(:ignore?) ? file.ignore? : ignored_file_paths.include?(file.path)
|
361
|
-
next if file.processing || file.processed
|
362
|
-
|
363
|
-
if includes && !includes.empty?
|
364
|
-
should_include = find_in_patterns(includes, file)
|
365
|
-
unless should_include
|
366
|
-
add_to_ignore(file)
|
367
|
-
next
|
368
|
-
end
|
369
|
-
end
|
370
|
-
|
371
|
-
should_exclude = find_in_patterns(excludes, file)
|
372
|
-
if should_exclude
|
373
|
-
add_to_ignore(file)
|
374
|
-
next
|
375
|
-
end
|
376
|
-
|
377
|
-
if @threaded
|
378
|
-
active_processors.keep_if { |k, v| k.processing }
|
379
|
-
if active_processors.length >= maximum_active_processors
|
380
|
-
logger.debug { "Maximum number of active processors reached for watch folder. #{wf.name || wf.paths}" }
|
381
|
-
break
|
382
|
-
end
|
383
|
-
t = Thread.new(file) do |file|
|
384
|
-
wf = file.watch_folder
|
385
|
-
begin
|
386
|
-
process_file(file)
|
387
|
-
rescue => e
|
388
|
-
logger.error { "Exception '#{e.message}' in thread for `#{wf.name || wf.paths}` `#{file.path}`. " }
|
389
|
-
raise e
|
390
|
-
ensure
|
391
|
-
file.processing = false rescue nil
|
392
|
-
end
|
393
|
-
end
|
394
|
-
t.join
|
395
|
-
active_processors[file] = t if file.processing
|
396
|
-
else
|
397
|
-
process_file(file)
|
398
|
-
end
|
399
|
-
|
400
|
-
end
|
401
|
-
end
|
402
|
-
|
403
|
-
# @param [Object] file
|
404
|
-
# @return [Hash]
|
405
|
-
def process_file(file)
|
406
|
-
file.processing = true
|
407
|
-
file_name = file.name || file.path
|
408
|
-
logger.debug { "Processing File '#{file_name}'" }
|
409
|
-
|
410
|
-
storage_id = watch_folder.definition['upload_to_storage_id']
|
411
|
-
|
412
|
-
unless storage_id
|
413
|
-
logger.warn { "Skipping processing of file because of missing storage ID." }
|
414
|
-
return { success: false, message: 'Missing storage ID.' }
|
415
|
-
end
|
416
|
-
|
417
|
-
quarantine_directory_path = definition['quarantine_directory_path']
|
418
|
-
completed_directory_path = definition['completed_directory_path']
|
419
|
-
watch_folder_upload_args = definition['upload_args']
|
420
|
-
|
421
|
-
# full_file_path = File.join(watch_folder.path, file.path)
|
422
|
-
full_file_path = file.path
|
423
|
-
|
424
|
-
upload_args = {
|
425
|
-
file_path: full_file_path,
|
426
|
-
storage_id: storage_id
|
427
|
-
}
|
428
|
-
upload_args.merge!(watch_folder_upload_args) if watch_folder_upload_args.is_a?(Hash)
|
429
|
-
|
430
|
-
logger.debug { "Executing Upload. #{upload_args}" }
|
431
|
-
_response = agent.upload(upload_args)
|
432
|
-
_response = { success: _response } if _response == true || _response == false
|
433
|
-
|
434
|
-
if _response[:success]
|
435
|
-
if completed_directory_path
|
436
|
-
if Dir.exist?(completed_directory_path)
|
437
|
-
logger.debug { "Moving '#{full_file_path}' to completed directory path '#{completed_directory_path}'" }
|
438
|
-
FileUtils.mv full_file_path, completed_directory_path
|
439
|
-
else
|
440
|
-
logger.warn { "Completed directory path not found: '#{completed_directory_path}'" }
|
441
|
-
add_to_ignore(file)
|
442
|
-
end
|
443
|
-
else
|
444
|
-
FileUtils.rm full_file_path
|
445
|
-
end
|
446
|
-
else
|
447
|
-
if quarantine_directory_path && Dir.exist?(quarantine_directory_path)
|
448
|
-
logger.warn { "Moving '#{full_file_path}' to quarantine directory path '#{quarantine_directory_path}'" }
|
449
|
-
FileUtils.mv full_file_path, quarantine_directory_path
|
450
|
-
else
|
451
|
-
logger.warn { "Adding '#{full_file_path}' to the temporary ignore list." }
|
452
|
-
add_to_ignore(file)
|
453
|
-
end
|
454
|
-
end
|
455
|
-
|
456
|
-
file.processed = true
|
457
|
-
|
458
|
-
_response
|
459
|
-
rescue => e
|
460
|
-
file.exception = e
|
461
|
-
raise e
|
462
|
-
ensure
|
463
|
-
file.processing = false
|
464
|
-
end
|
465
|
-
|
466
347
|
# Converts hash keys to symbols
|
467
348
|
#
|
468
349
|
# @param [Hash] value hash
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cantemo-portal-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Whitson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asperalm
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.3'
|
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
|
-
version: '
|
54
|
+
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: listen
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.6.
|
75
|
+
version: 1.6.5
|
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
|
-
version: 1.6.
|
82
|
+
version: 1.6.5
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- lib/envoi/mam/agent/client/mediasilo.rb
|
159
159
|
- lib/envoi/mam/agent/client/vidispine.rb
|
160
160
|
- lib/envoi/mam/agent/config_service_client.rb
|
161
|
+
- lib/envoi/mam/agent/daemon/service_wrapper.rb
|
161
162
|
- lib/envoi/mam/agent/generic.rb
|
162
163
|
- lib/envoi/mam/agent/notifier.rb
|
163
164
|
- lib/envoi/mam/agent/notifier/sns.rb
|