Class: Aspera::SyncAdmin
- Inherits:
-
Object
- Object
- Aspera::SyncAdmin
- Defined in:
- lib/aspera/sync.rb
Overview
end Sync
Instance Method Summary collapse
-
#initialize(sync_params, session_name) ⇒ SyncAdmin
constructor
A new instance of SyncAdmin.
- #status ⇒ Object
Constructor Details
#initialize(sync_params, session_name) ⇒ SyncAdmin
Returns a new instance of SyncAdmin.
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/aspera/sync.rb', line 176 def initialize(sync_params, session_name) @cmdline = [ASYNC_ADMIN_EXECUTABLE, '--quiet'] if sync_params.key?('local') raise 'Missing session name' if sync_params['name'].nil? raise 'Session not found' unless session_name.nil? || session_name.eql?(sync_params['name']) @cmdline.push("--name=#{sync_params['name']}") if sync_params.key?('local_db_dir') @cmdline.push("--local-db-dir=#{sync_params['local_db_dir']}") elsif sync_params.dig('local', 'path') @cmdline.push("--local-dir=#{sync_params.dig('local', 'path')}") else raise 'Missing either local_db_dir or local.path' end elsif sync_params.key?('sessions') session = session_name.nil? ? sync_params['sessions'].first : sync_params['sessions'].find{|s|s['name'].eql?(session_name)} raise 'Session not found' if session.nil? raise 'Missing session name' if session['name'].nil? @cmdline.push("--name=#{session['name']}") if session.key?('local_db_dir') @cmdline.push("--local-db-dir=#{session['local_db_dir']}") elsif session.key?('local_dir') @cmdline.push("--local-dir=#{session['local_dir']}") else raise 'Missing either local_db_dir or local_dir' end else raise 'At least one of `local` or `sessions` must be present in async parameters' end end |
Instance Method Details
#status ⇒ Object
206 207 208 209 210 211 |
# File 'lib/aspera/sync.rb', line 206 def status stdout, stderr, status = Open3.capture3(*@cmdline) Log.log.debug{"status=#{status}, stderr=#{stderr}"} raise "Sync failed: #{status.exitstatus} : #{stderr}" unless status.success? return stdout.split("\n").each_with_object({}){|l, m|i = l.split(/: */); m[i.first.lstrip] = i.last.lstrip} # rubocop:disable Style/Semicolon end |