diff --git a/lib/datacollector/fcollector.rb b/lib/datacollector/fcollector.rb index 1c774690b8..44433beb2b 100644 --- a/lib/datacollector/fcollector.rb +++ b/lib/datacollector/fcollector.rb @@ -18,12 +18,11 @@ def execute(use_sftp) devices(use_sftp).each do |device| # rubocop:disable Metrics/BlockLength @current_collector = nil - method_params = device.profile.data['method_params'] - host = method_params['host'] - case method_params['authen'] + host = device.datacollector_host + case device.datacollector_authentication when 'keyfile' - user = method_params['user'] - kp = key_path(method_params['key_name']) + user = device.datacollector_user + kp = key_path(device.datacollector_key_name) unless kp.file? && kp.exist? log_info "No key file found <<< #{device.info}" unless kp.file? && kp.exist? next @@ -38,10 +37,10 @@ def execute(use_sftp) } when 'password', nil credentials = Rails.configuration.datacollectors.sftpusers.find do |user_attr| - user_attr[:user] == method_params['user'] + user_attr[:user] == device.datacollector_user end unless credentials - log_info("No match user credentials! user: #{method_params['user']} >>> #{device.info}") + log_info("No match user credentials! user: #{device.datacollector_user} >>> #{device.info}") next end user = credentials[:user] @@ -77,10 +76,7 @@ def execute(use_sftp) private def devices(use_sftp) - sql = <<~SQL.squish - profiles."data"->>'method' = '#{self.class::FCOLL}watcher#{use_sftp ? 'sftp' : 'local'}' - SQL - Device.joins(:profile).where(sql).includes(:profile) + Device.where(datacollector_method: "#{self.class::FCOLL}watcher#{use_sftp ? 'sftp' : 'local'}") end def key_path(key_name) diff --git a/lib/datacollector/filecollector.rb b/lib/datacollector/filecollector.rb index c9088530d9..d0518f1326 100644 --- a/lib/datacollector/filecollector.rb +++ b/lib/datacollector/filecollector.rb @@ -9,7 +9,7 @@ class Filecollector < Fcollector # rubocop:disable Metrics/AbcSize def inspect_folder(device) - directory = device.profile.data['method_params']['dir'] + directory = device.datacollector_dir new_files(directory).each do |new_file_p| # rubocop:disable Metrics/BlockLength @current_collector = DatacollectorFile.new(new_file_p, @sftp) error = CollectorError.find_by error_code: CollectorHelper.hash( diff --git a/lib/datacollector/foldercollector.rb b/lib/datacollector/foldercollector.rb index 4c78cee117..f8350b8ea1 100644 --- a/lib/datacollector/foldercollector.rb +++ b/lib/datacollector/foldercollector.rb @@ -17,7 +17,7 @@ def sleep_seconds(device) def modification_time_diff(device, folder_p) time_now = Time.zone.now - case device.profile.data['method'] + case device.datacollector_method when 'folderwatcherlocal' then time_now - File.mtime(folder_p) when 'folderwatchersftp' time_now - (Time.zone.at @sftp.file.open(folder_p).stat.attributes[:mtime]) @@ -31,10 +31,9 @@ def modification_time_diff(device, folder_p) # rubocop:disable Metrics/PerceivedComplexity def inspect_folder(device) - params = device.profile.data['method_params'] sleep_time = sleep_seconds(device).to_i - new_folders(params['dir']).each do |new_folder_p| # rubocop:disable Metrics/BlockLength - if (params['number_of_files'].blank? || (params['number_of_files']).to_i.zero?) && + new_folders(device.datacollector_dir).each do |new_folder_p| # rubocop:disable Metrics/BlockLength + if (device.datacollector_number_of_files.blank? || device.datacollector_number_of_files.to_i.zero?) && modification_time_diff(device, new_folder_p) < 30 sleep sleep_time end @@ -48,8 +47,8 @@ def inspect_folder(device) begin stored = false if @current_collector.recipient - if params['number_of_files'].present? && params['number_of_files'].to_i != 0 && - @current_collector.files.length != params['number_of_files'].to_i + if device.datacollector_number_of_files.present? && device.datacollector_number_of_files.to_i != 0 && + @current_collector.files.length != device.datacollector_number_of_files.to_i log_info("Wrong number of files! >>> #{device.info}") next end