cantemo-portal-agent 1.2.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d670e7ef575f0152b7bf5d77d2763de6a64e363
4
- data.tar.gz: e76ed955968ebd2182b49e29badbbff6e7b606bd
3
+ metadata.gz: e171c53876f59041d8c032a5ec5603b5f25a962b
4
+ data.tar.gz: 19e7b87575175471a9484439aee1d23b8b211491
5
5
  SHA512:
6
- metadata.gz: 4e52761626f536e564d71856e361f16b3d2d1418da3e464723256ffad5459cf512a67b684e9628da912c78031ca520e407748881c1804eb79123cac37846c917
7
- data.tar.gz: f8a9a3ba1f3621feb3e8958c51a0068bcaf6e81264bca425605e1d2ade8fe75adcf3891a04a2ae353296138401457b330ce59278650a54491d99e93ecc6790af
6
+ metadata.gz: e72d5bfc3ed43872318954bacf30bbc140d2f884bd67419c64fc8568dc2fdd78c628f25a4b95fb942b33494b41d09afaa46ea4798e1b303271337178c966f296
7
+ data.tar.gz: 1e211ac9951ad604a900068e0b4d85b5d36fcc685660c9288d25855da209cf787145940d87c4673fedfc2b3ca93c72b220c4e4fe526819ed40b8d32d0be62b93
@@ -1,7 +1,7 @@
1
1
  module Cantemo
2
2
  module Portal
3
3
  class Agent
4
- VERSION = '1.2.0'.freeze
4
+ VERSION = '1.2.1'.freeze
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,75 @@
1
+ require 'vidispine/api/utilities'
2
+ require 'cantemo/portal/agent/version'
3
+
4
+ module Cantemo
5
+ module Portal
6
+ module API
7
+
8
+ class Client
9
+
10
+ def initialize(args = { })
11
+ api_host = args[:host]
12
+ api_port = args[:port]
13
+ api_host_use_ssl = args[:ssl]
14
+ api_username = args[:username]
15
+ api_password = args[:password]
16
+ api_auth_token = args[:api_auth_token]
17
+ api_base_path = args[:api_base_path]
18
+ api_default_query_data = args[:default_query_data]
19
+
20
+ api_url = args[:url] || args[:uri]
21
+ if api_url
22
+ api_uri = URI(api_url)
23
+ api_host ||= api_uri.host
24
+ api_port ||= api_uri.port
25
+ api_userinfo = api_uri.userinfo
26
+ if api_userinfo
27
+ _api_username, _api_password = api_userinfo.split(':')
28
+ api_username ||= _api_username
29
+ api_password ||= _api_password
30
+ end
31
+ api_host_use_ssl = api_uri.scheme == 'https' if api_host_use_ssl.nil?
32
+ api_uri_query = api_uri.query
33
+ api_default_query_data ||= Hash[api_uri_query.split('&').map { |kp| kp.split('=') }]
34
+ api_base_path ||= api_uri.path
35
+ end
36
+
37
+ api_port ||= (api_host_use_ssl ? 443 : 80)
38
+ api_base_path ||= '/'
39
+
40
+ api_endpoint_prefix = 'VSAPI'
41
+ api_noauth_endpoint_prefix = 'APInoauth'
42
+
43
+ client_args = {}
44
+ client_args[:http_host_address] = api_host if api_host
45
+ client_args[:http_host_port] = api_port if api_port
46
+ client_args[:http_host_use_ssl] = api_host_use_ssl if api_host_use_ssl
47
+ client_args[:username] = api_username if api_username
48
+ client_args[:password] = api_password if api_password
49
+ client_args[:default_base_path] = api_base_path if api_base_path
50
+ client_args[:default_query_data] = api_default_query_data if api_default_query_data
51
+ client_args[:api_endpoint_prefix] = api_endpoint_prefix
52
+ client_args[:api_noauth_endpoint_prefix] = api_noauth_endpoint_prefix
53
+
54
+ if api_auth_token
55
+ # Cantemo Portal supports an auth token for authentication, replace basic auth with auth-token
56
+ client_args[:authorization_header_key] = 'Auth-Token'
57
+ client_args[:authorization_header_value] = api_auth_token
58
+ end
59
+ _client = ::Vidispine::API::Utilities.new(client_args)
60
+ _client.http_client.user_agent = "Cantemo Portal Agent v#{Cantemo::Portal::Agent::VERSION} - #{_client.http_client.user_agent}"
61
+ _client
62
+ end
63
+
64
+
65
+ # Client
66
+ end
67
+
68
+ # API
69
+ end
70
+
71
+ # Portal
72
+ end
73
+
74
+ # Cantemo
75
+ end
@@ -36,7 +36,13 @@ module Envoi
36
36
  return if @notifiers.empty?
37
37
  args[:level] ||= :info
38
38
  args[:message] ||= message
39
- @notifiers.each { |notifier| notifier.notify(args) }
39
+ @notifiers.each do |notifier|
40
+ begin
41
+ notifier.notify(args) rescue nil
42
+ rescue => e
43
+ logger.warn { "Notification Failed: #{e.message} "}
44
+ end
45
+ end
40
46
  end
41
47
 
42
48
  # @param [Hash] args {}
@@ -82,8 +88,7 @@ module Envoi
82
88
 
83
89
  def self.load_config_from_file(args)
84
90
  config_file_path = args[:config_file_path]
85
- config_file_path = File.expand_path(config_file_path)
86
- config_file_path = config_file_path.find { |v| File.exists?(v) } if config_file_path.is_a?(Array)
91
+ config_file_path = [*config_file_path].find { |v| File.exists?(File.expand_path(v)) }
87
92
  raise "Missing Config File. '#{config_file_path}'" unless config_file_path && !config_file_path.empty? && File.exists?(config_file_path)
88
93
 
89
94
  begin
@@ -1,3 +1,4 @@
1
+ require 'cantemo/portal/api/client'
1
2
  require 'envoi/mam/agent/transfer_client/aspera'
2
3
  require 'envoi/mam/agent/transfer_client/s3'
3
4
 
@@ -42,57 +43,8 @@ module Envoi
42
43
  def initialize_api_client(args = {})
43
44
  api_config = agent_config
44
45
  @api_client = args[:api_client] || begin
45
-
46
- api_host = api_config['host']
47
- api_port = api_config['port']
48
- api_host_use_ssl = api_config['ssl']
49
- api_username = api_config['username']
50
- api_password = api_config['password']
51
- api_auth_token = api_config['api_auth_token']
52
- api_base_path = api_config['api_base_path']
53
- api_default_query_data = api_config['default_query_data']
54
-
55
- api_url = api_config['url'] || api_config['uri']
56
- if api_url
57
- api_uri = URI(api_url)
58
- api_host ||= api_uri.host
59
- api_port ||= api_uri.port
60
- api_userinfo = api_uri.userinfo
61
- if api_userinfo
62
- _api_username, _api_password = api_userinfo.split(':')
63
- api_username ||= _api_username
64
- api_password ||= _api_password
65
- end
66
- api_host_use_ssl = api_uri.scheme == 'https' if api_host_use_ssl.nil?
67
- api_uri_query = api_uri.query
68
- api_default_query_data ||= Hash[api_uri_query.split('&').map { |kp| kp.split('=') }]
69
- api_base_path ||= api_uri.path
70
- end
71
-
72
- api_port ||= (api_host_use_ssl ? 443 : 80)
73
- api_base_path ||= '/'
74
-
75
- api_endpoint_prefix = 'VSAPI'
76
- api_noauth_endpoint_prefix = 'APInoauth'
77
-
78
- client_args = {}
79
- client_args[:http_host_address] = api_host if api_host
80
- client_args[:http_host_port] = api_port if api_port
81
- client_args[:http_host_use_ssl] = api_host_use_ssl if api_host_use_ssl
82
- client_args[:username] = api_username if api_username
83
- client_args[:password] = api_password if api_password
84
- client_args[:default_base_path] = api_base_path if api_base_path
85
- client_args[:default_query_data] = api_default_query_data if api_default_query_data
86
- client_args[:api_endpoint_prefix] = api_endpoint_prefix
87
- client_args[:api_noauth_endpoint_prefix] = api_noauth_endpoint_prefix
88
-
89
- if api_auth_token
90
- # Cantemo Portal supports an auth token for authentication, replace basic auth with auth-token
91
- client_args[:authorization_header_key] = 'Auth-Token'
92
- client_args[:authorization_header_value] = api_auth_token
93
- end
94
-
95
- _client = ::Vidispine::API::Utilities.new(client_args)
46
+ client_args = Hash[api_config.map { |k,v| [ k.respond_to?(:to_sym) ? k.to_sym.downcase : k, v ]}]
47
+ _client = Cantemo::Portal::API::Client.new(client_args)
96
48
 
97
49
  begin
98
50
  _client.version
@@ -207,14 +207,14 @@ module Envoi::Mam::Cantemo
207
207
  if includes && !includes.empty?
208
208
  should_include = find_in_patterns(includes, file)
209
209
  unless should_include
210
- add_to_ignore(wf, file)
210
+ add_to_ignore(file)
211
211
  next
212
212
  end
213
213
  end
214
214
 
215
215
  should_exclude = find_in_patterns(excludes, file)
216
216
  if should_exclude
217
- add_to_ignore(wf, file)
217
+ add_to_ignore(file)
218
218
  next
219
219
  end
220
220
 
@@ -226,7 +226,7 @@ module Envoi::Mam::Cantemo
226
226
  end
227
227
  t = Thread.new(wf, file) do |wf, file|
228
228
  begin
229
- process_file(wf, file)
229
+ process_file(file)
230
230
  rescue => e
231
231
  logger.error { "Exception '#{e.message}' in thread for `#{wf.name || wf.paths}` `#{file.path}`. " }
232
232
  raise e
@@ -237,7 +237,7 @@ module Envoi::Mam::Cantemo
237
237
  t.join
238
238
  active_processors[file] = t if file.processing
239
239
  else
240
- process_file(wf, file)
240
+ process_file(file)
241
241
  end
242
242
 
243
243
  end
@@ -222,6 +222,8 @@ module Envoi
222
222
  logger.debug { "Initializing parameter 'import args'." }
223
223
  import_args = watch_folder_def['import_args'] || { }
224
224
  import_options = watch_folder_def['import_options'] || { }
225
+ import_args = Hash[import_args.map { |k,v| [ k.respond_to?(:to_sym) ? k.to_sym.downcase : k, v ] }]
226
+ import_options = Hash[import_options.map { |k,v| [ k.respond_to?(:to_sym) ? k.to_sym.downcase : k, v ] }]
225
227
 
226
228
  add_item_to_collection = import_options.fetch(:add_item_to_collection, import_args[:add_item_to_collection])
227
229
  if add_item_to_collection.nil? || add_item_to_collection
@@ -92,6 +92,7 @@ module Envoi
92
92
  process_definition(@definition)
93
93
  initialize_listener
94
94
  logger.debug ( "Watch Folder Handler '#{self.class.name}' Initialized. ")
95
+ perform_initial_inventory
95
96
  end
96
97
 
97
98
  def initialize_logger(args = { })
@@ -187,7 +188,7 @@ module Envoi
187
188
  end
188
189
 
189
190
  def add_to_ignore(file)
190
- @ignored_files_map[file.path] = file
191
+ ignored_files_map[file.path] = file
191
192
  end
192
193
 
193
194
  # Really this is just for debugging as polling isn't used to determine file stability
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.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Whitson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-08 00:00:00.000000000 Z
11
+ date: 2018-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asperalm
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.5'
89
+ version: '1.6'
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
- version: '1.5'
96
+ version: '1.6'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -151,6 +151,7 @@ files:
151
151
  - lib/cantemo/portal/agent/cli/commands/watch_folders-working.rb
152
152
  - lib/cantemo/portal/agent/cli/commands/watch_folders.rb
153
153
  - lib/cantemo/portal/agent/version.rb
154
+ - lib/cantemo/portal/api/client.rb
154
155
  - lib/envoi/aspera/watch_service/client.rb
155
156
  - lib/envoi/aspera/watch_service/snapshot.rb
156
157
  - lib/envoi/aspera/watch_service/subscription.rb