tn_s3_file_uploader 0.1.12 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fbed96e337f63f8b7f21223de775580420d74880
4
- data.tar.gz: 94763af3e28c29ed1532aac1f0e4de7d15406f7b
3
+ metadata.gz: 2062bc0a4484eda4e75c513648636a5845e94ee8
4
+ data.tar.gz: 174f02613f6c19f6b066b2023cb6ddad7d307e64
5
5
  SHA512:
6
- metadata.gz: 68c342d6036ffbd3f34ea6845a6a245114a7168459cb38a44e7d3154394b74988864d967e5b15f85a578ec6491c2f1e7514816336053bf3610fdbfcfe66d15d9
7
- data.tar.gz: 3395dee887e1b88297167d40a98fa95027485e5346f28dc9d04415593cdca4fa35e208e1addeec468e62ab1428c0d1b8d3c95514e09788dc226d8982c84abaa8
6
+ metadata.gz: 2e288891e8d56061f2de39048d9326077b9ddc7c6e185b786b8cddae040ffbf7dae5adbac27da76ed45ad3451f0609a5eb5720048d1233fb225277e97b6d5c88
7
+ data.tar.gz: 5a172c4b7f2a0da1a08967aa79ad69c120cc6e87163bfe7a5f4d8dbbe38ae432a0db770aa112c7c2e05e70278d0ebd4dce5b31c41f8427d74143daff1f3dd79e
@@ -3,6 +3,7 @@ require 'tn_s3_file_uploader/cli_parser'
3
3
  require 'tn_s3_file_uploader/file_path_generator'
4
4
  require 'tn_s3_file_uploader/log_uploader'
5
5
  require 'tn_s3_file_uploader/s3'
6
+ require 'tn_s3_file_uploader/log'
6
7
 
7
8
  require 'tn_s3_file_uploader/error_reporting/error_report_manager'
8
9
  require 'tn_s3_file_uploader/error_reporting/honeybadger_error_reporter'
@@ -31,6 +31,12 @@ module TnS3FileUploader
31
31
  options[:delete_log_files_flag] = delete_log_files_flag
32
32
  end
33
33
 
34
+ options[:fixed_time] = ""
35
+ opts.on("-t", "--fixed-time [FIXED_TIME]", "The time which will be added to generated log name"\
36
+ "It is an optional parameter. Use this argument to override time used to specify the resolution for the timestamp, if this option is not provided the time to use will be script run time.") do |fixed_time|
37
+ options[:fixed_time] = fixed_time
38
+ end
39
+
34
40
  options[:file_timestamp_resolution] = 300
35
41
  opts.on("--file-timestamp-resolution RES", Integer, "The resolution of the destination filename in seconds (positive non-zero integer)") do |file_timestamp_resolution|
36
42
  if valid_seconds?(file_timestamp_resolution)
@@ -0,0 +1,6 @@
1
+ class Log
2
+ def self.log(str)
3
+ puts "#{Time.now.strftime("%d/%m/%Y %H:%M:%S")} #{str}"
4
+ end
5
+ end
6
+
@@ -26,10 +26,14 @@ module TnS3FileUploader
26
26
  file_path_generator = FilePathGenerator.new(options)
27
27
 
28
28
  log_files.each do |log_file|
29
- time = last_modified_time(log_file)
29
+ if options[:fixed_time].nil? || options[:fixed_time].empty?
30
+ time = last_modified_time(log_file)
31
+ else
32
+ time = DateTime.strptime(options[:fixed_time], '%Y-%m-%d_%H:%M:%S').to_time
33
+ end
30
34
  destination_full_path = file_path_generator.dest_full_path_for(time, log_file)
31
35
 
32
- puts "Found log file #{ log_file }, formatting file name for upload to S3 bucket #{ bucket } into folder #{ destination_full_path }"
36
+ Log.log "Found log file #{ log_file }, formatting file name for upload to S3 bucket #{ bucket } into folder #{ destination_full_path }"
33
37
 
34
38
  # Note no leading or trailing slashes - this will break the upload to S3 (see our s3.rb)
35
39
  begin
@@ -86,7 +90,10 @@ module TnS3FileUploader
86
90
 
87
91
  def delete_file(file)
88
92
  file_path = Pathname.new(file)
89
- File.delete(file) if file_path.file?
93
+ if file_path.file?
94
+ File.delete(file)
95
+ Log.log "Deleted file #{file}"
96
+ end
90
97
  end
91
98
  end
92
99
 
@@ -14,21 +14,24 @@ module TnS3FileUploader
14
14
  def run
15
15
  add_log_error_reporter
16
16
  add_honeybadger
17
- puts "Running TnS3FileUploader..." if @options[:verbose]
17
+ Log.log "Running TnS3FileUploader..." if @options[:verbose]
18
18
 
19
19
  upload
20
+ rescue => e
21
+ @error_report_manager.report_error(e, { :options => @options } )
20
22
  rescue Exception => e
21
23
  @error_report_manager.report_error(e, { :options => @options } )
24
+ raise
22
25
  end
23
26
 
24
27
  private
25
28
 
26
29
  def upload
27
30
  if @options[:verbose]
28
- puts "Using:"
29
- puts "log file pattern = #{ @options[:input_file_pattern] }"
30
- puts "s3 dest folder = #{ @options[:s3_output_pattern] }"
31
- puts "file timestamp resolution = #{ @options[:file_timestamp_resolution] }"
31
+ Log.log "Using:"
32
+ Log.log "log file pattern = #{ @options[:input_file_pattern] }"
33
+ Log.log "s3 dest folder = #{ @options[:s3_output_pattern] }"
34
+ Log.log "file timestamp resolution = #{ @options[:file_timestamp_resolution] }"
32
35
  end
33
36
 
34
37
  s3_client = create_s3_client
@@ -37,9 +37,11 @@ module TnS3FileUploader
37
37
  s3_bucket = @s3_client.buckets[bucket]
38
38
  s3_file_path = s3_bucket.objects[dest_full_path]
39
39
 
40
- puts "Uploading file #{file} to S3 bucket #{bucket} and path #{dest_full_path}"
40
+ Log.log "Uploading file #{file} to S3 bucket #{bucket} and path #{dest_full_path}"
41
41
 
42
42
  s3_file_path.write(File.open(file, 'rb'))
43
+
44
+ Log.log "Finished Uploading file #{file} to S3 bucket #{bucket} and path #{dest_full_path}"
43
45
  rescue StandardError, Timeout::Error => e
44
46
  if retry_count < MAX_RETRIES
45
47
  #This fixes a bug where the credentials may have rotated on the EC2 instance but the old values
@@ -1,3 +1,3 @@
1
1
  module TnS3FileUploader
2
- VERSION = '0.1.12'
2
+ VERSION = '0.1.15'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tn_s3_file_uploader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thinknear.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-29 00:00:00.000000000 Z
11
+ date: 2018-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: honeybadger
@@ -38,6 +38,90 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.35'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: timecop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-expectations
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: cucumber
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: fakes3
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.1.5.2
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 0.1.5.2
41
125
  description: Amazon S3 file uploader that can build folder structures based on timestamp.
42
126
  Typically used in conjunction with Unix's logrotate.
43
127
  email: opensource@thinknear.com
@@ -55,6 +139,7 @@ files:
55
139
  - lib/tn_s3_file_uploader/error_reporting/honeybadger_error_reporter.rb
56
140
  - lib/tn_s3_file_uploader/error_reporting/log_error_reporter.rb
57
141
  - lib/tn_s3_file_uploader/file_path_generator.rb
142
+ - lib/tn_s3_file_uploader/log.rb
58
143
  - lib/tn_s3_file_uploader/log_uploader.rb
59
144
  - lib/tn_s3_file_uploader/runner.rb
60
145
  - lib/tn_s3_file_uploader/s3.rb
@@ -79,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
164
  version: '0'
80
165
  requirements: []
81
166
  rubyforge_project:
82
- rubygems_version: 2.4.8
167
+ rubygems_version: 2.4.6
83
168
  signing_key:
84
169
  specification_version: 4
85
170
  summary: Amazon S3 file uploader