sluice 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +18 -0
- data/lib/sluice/storage/s3.rb +9 -5
- data/lib/sluice.rb +1 -1
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
Version 0.1.3 (2013-10-02)
|
2
|
+
--------------------------
|
3
|
+
Added Ruby thread timeout monitoring (#4)
|
4
|
+
|
5
|
+
Version 0.1.2 (2013-09-10)
|
6
|
+
--------------------------
|
7
|
+
Fixed bug in manifest copy code
|
8
|
+
|
9
|
+
Version 0.1.1 (2013-09-10)
|
10
|
+
--------------------------
|
11
|
+
Fixed warning from Fog::Storage::AWS::File alias
|
12
|
+
|
13
|
+
Version 0.1.0 (2013-09-09)
|
14
|
+
--------------------------
|
15
|
+
Added ability to copy using a manifest
|
16
|
+
Added thread index to file operation puts
|
17
|
+
Added Contracts for some initial contract assertions
|
18
|
+
|
1
19
|
Version 0.0.9 (2013-08-14)
|
2
20
|
--------------------------
|
3
21
|
Added ability to move and copy files between two different AWS accounts
|
data/lib/sluice/storage/s3.rb
CHANGED
@@ -17,6 +17,7 @@ require 'set'
|
|
17
17
|
require 'tmpdir'
|
18
18
|
require 'fog'
|
19
19
|
require 'thread'
|
20
|
+
require 'timeout'
|
20
21
|
|
21
22
|
require 'contracts'
|
22
23
|
include Contracts
|
@@ -32,6 +33,7 @@ module Sluice
|
|
32
33
|
CONCURRENCY = 10 # Threads
|
33
34
|
RETRIES = 3 # Attempts
|
34
35
|
RETRY_WAIT = 10 # Seconds
|
36
|
+
TIMEOUT_WAIT = 100 # Waiting longer reduces the chance that whatever caused the timeout recurs
|
35
37
|
|
36
38
|
# Aliases for Contracts
|
37
39
|
FogStorage = Fog::Storage::AWS::Real
|
@@ -737,20 +739,22 @@ module Sluice
|
|
737
739
|
end
|
738
740
|
module_function :glob_files
|
739
741
|
|
740
|
-
|
741
742
|
# A helper function to attempt to run a
|
742
743
|
# function retries times
|
743
744
|
#
|
744
745
|
# Parameters:
|
745
|
-
# +
|
746
|
+
# +object+:: Object to send our function to
|
747
|
+
# +send_args+:: Function plus arguments
|
746
748
|
# +retries+:: Number of retries to attempt
|
747
749
|
# +attempt_msg+:: Message to puts on each attempt
|
748
750
|
# +failure_msg+:: Message to puts on each failure
|
749
751
|
def retry_x(object, send_args, retries, attempt_msg, failure_msg)
|
750
752
|
i = 0
|
751
753
|
begin
|
752
|
-
|
753
|
-
|
754
|
+
Timeout::timeout(TIMEOUT_WAIT) do # In case our operation times out
|
755
|
+
object.send(*send_args)
|
756
|
+
puts attempt_msg
|
757
|
+
end
|
754
758
|
rescue
|
755
759
|
raise unless i < retries
|
756
760
|
puts failure_msg
|
@@ -774,7 +778,7 @@ module Sluice
|
|
774
778
|
# +add_path+:: If this is set, add this to the front of the path
|
775
779
|
# +flatten+:: strips off any sub-folders below the from_location
|
776
780
|
#
|
777
|
-
# TODO: this
|
781
|
+
# TODO: this badly needs unit tests
|
778
782
|
def name_file(filepath, new_filename, remove_path=nil, add_path=nil, flatten=false)
|
779
783
|
|
780
784
|
# First, replace the filename in filepath with new one
|
data/lib/sluice.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sluice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-10-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: fog
|