filecluster 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/lib/fc/storage.rb +2 -2
- data/lib/fc/version.rb +1 -1
- data/test/functional_test.rb +14 -17
- metadata +5 -4
data/.gitignore
CHANGED
data/lib/fc/storage.rb
CHANGED
@@ -112,8 +112,8 @@ module FC
|
|
112
112
|
def md5_sum(file_name)
|
113
113
|
dst_path = "#{self.path}#{file_name}"
|
114
114
|
cmd = self.class.curr_host == host ?
|
115
|
-
"find #{dst_path} -type f -exec md5sum {} \\; | awk '{print $1}' | sort | md5sum" :
|
116
|
-
"ssh -oBatchMode=yes -oStrictHostKeyChecking=no #{self.host} \"find #{dst_path} -type f -exec md5sum {} \\; | awk '{print \\$1}' | sort | md5sum\""
|
115
|
+
"find #{dst_path.shellescape} -type f -exec md5sum {} \\; | awk '{print $1}' | sort | md5sum" :
|
116
|
+
"ssh -oBatchMode=yes -oStrictHostKeyChecking=no #{self.host} \"find #{dst_path.shellescape} -type f -exec md5sum {} \\; | awk '{print \\$1}' | sort | md5sum\""
|
117
117
|
r = `#{cmd} 2>&1`
|
118
118
|
raise r if $?.exitstatus != 0
|
119
119
|
r.to_s[0..31]
|
data/lib/fc/version.rb
CHANGED
data/test/functional_test.rb
CHANGED
@@ -6,16 +6,14 @@ class FunctionalTest < Test::Unit::TestCase
|
|
6
6
|
# tmp fake storages dirs
|
7
7
|
`rm -rf /tmp/host*-sd*`
|
8
8
|
`mkdir -p /tmp/host1-sda/ /tmp/host2-sda/`
|
9
|
-
`rm -rf /tmp/fc_test_dir`
|
10
|
-
`mkdir -p /tmp/fc_test_dir`
|
11
9
|
|
12
10
|
# test file to copy
|
13
|
-
@@test_file_path = '/tmp/
|
14
|
-
`dd if=/dev/urandom of=#{@@test_file_path} bs=100K count=1 2>&1`
|
15
|
-
@@test_dir_path = '/tmp/
|
16
|
-
`mkdir -p #{@@test_dir_path}/aaa #{@@test_dir_path}/bbb`
|
17
|
-
`cp #{@@test_file_path} #{@@test_dir_path}/aaa/test1`
|
18
|
-
`cp #{@@test_file_path} #{@@test_dir_path}/bbb/test2`
|
11
|
+
@@test_file_path = '/tmp/fc test_file "~!@#$%^&*()_+|\';'
|
12
|
+
`dd if=/dev/urandom of=#{@@test_file_path.shellescape} bs=100K count=1 2>&1`
|
13
|
+
@@test_dir_path = '/tmp/fc test_dir'
|
14
|
+
`mkdir -p #{@@test_dir_path.shellescape}/aaa #{@@test_dir_path.shellescape}/bbb`
|
15
|
+
`cp #{@@test_file_path.shellescape} #{@@test_dir_path.shellescape}/aaa/test1`
|
16
|
+
`cp #{@@test_file_path.shellescape} #{@@test_dir_path.shellescape}/bbb/test2`
|
19
17
|
|
20
18
|
@@storages = []
|
21
19
|
@@storages << FC::Storage.new(:name => 'host1-sda', :host => 'host1', :path => '/tmp/host1-sda/', :size_limit => 1000000, :check_time => Time.new.to_i)
|
@@ -37,9 +35,9 @@ class FunctionalTest < Test::Unit::TestCase
|
|
37
35
|
FC::DB.query("DELETE FROM items")
|
38
36
|
FC::DB.query("DELETE FROM policies")
|
39
37
|
FC::DB.query("DELETE FROM storages")
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
#`rm -rf /tmp/host*-sd*`
|
39
|
+
#`rm -rf #{@@test_file_path.shellescape}`
|
40
|
+
#`rm -rf #{@@test_dir_path.shellescape}`
|
43
41
|
end
|
44
42
|
end
|
45
43
|
|
@@ -51,7 +49,7 @@ class FunctionalTest < Test::Unit::TestCase
|
|
51
49
|
should "item create_from_local successful" do
|
52
50
|
assert_nothing_raised { @item = FC::Item.create_from_local(@@test_file_path, '/bla/bla/test1', @@policies[0], {:tag => 'test'}) }
|
53
51
|
assert_kind_of FC::Item, @item
|
54
|
-
assert_equal `du -sb /tmp/host1-sda/bla/bla/test1 2>&1`.to_i, `du -sb #{@@test_file_path} 2>&1`.to_i
|
52
|
+
assert_equal `du -sb /tmp/host1-sda/bla/bla/test1 2>&1`.to_i, `du -sb #{@@test_file_path.shellescape} 2>&1`.to_i
|
55
53
|
assert_equal `du -sb /tmp/host1-sda/bla/bla/test1 2>&1`.to_i, @item.size
|
56
54
|
assert_equal 'ready', @item.status
|
57
55
|
item_storages = @item.get_item_storages
|
@@ -65,7 +63,7 @@ class FunctionalTest < Test::Unit::TestCase
|
|
65
63
|
assert_nothing_raised { @item = FC::Item.create_from_local(@@test_dir_path, '/bla/bla/test_dir', @@policies[0], {:tag => 'test_dir'}) }
|
66
64
|
assert_kind_of FC::Item, @item
|
67
65
|
assert_equal true, @item.dir?
|
68
|
-
assert_equal `du -sb /tmp/host1-sda/bla/bla/test_dir 2>&1`.to_i, `du -sb #{@@test_dir_path} 2>&1`.to_i
|
66
|
+
assert_equal `du -sb /tmp/host1-sda/bla/bla/test_dir 2>&1`.to_i, `du -sb #{@@test_dir_path.shellescape} 2>&1`.to_i
|
69
67
|
assert_equal `du -sb /tmp/host1-sda/bla/bla/test_dir 2>&1`.to_i, @item.size
|
70
68
|
assert_equal 'ready', @item.status
|
71
69
|
item_storages = @item.get_item_storages
|
@@ -108,14 +106,13 @@ class FunctionalTest < Test::Unit::TestCase
|
|
108
106
|
@item = FC::Item.create_from_local(@@test_file_path, 'test5', @@policies[0], {:tag => 'test'})
|
109
107
|
item_storage = @item.make_item_storage(@@storages[0], status = 'copy')
|
110
108
|
`dd if=/dev/urandom of=#{@@storages[0].path}#{@item.name} bs=100K count=1 2>&1`
|
111
|
-
#`dd if=/dev/urandom of=#{@@storages[0].path}#{@item.name} bs=100K count=1 2>&1`
|
112
109
|
assert_raise(RuntimeError) { @item.copy_item_storage(@@storages[0], @@storages[1], item_storage) }
|
113
110
|
assert_equal errors_count+1, FC::Error.where.count, "Error not saved after check md5"
|
114
111
|
end
|
115
112
|
|
116
113
|
should "item create_from_local inplace" do
|
117
|
-
tmp_file_path = "/tmp/host2-sda/
|
118
|
-
`cp #{@@test_file_path} #{tmp_file_path}`
|
119
|
-
assert_nothing_raised { @item = FC::Item.create_from_local(tmp_file_path, '
|
114
|
+
tmp_file_path = "/tmp/host2-sda/inplace test"
|
115
|
+
`cp #{@@test_file_path.shellescape} #{tmp_file_path.shellescape}`
|
116
|
+
assert_nothing_raised { @item = FC::Item.create_from_local(tmp_file_path, 'inplace test', @@policies[0]) }
|
120
117
|
end
|
121
118
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filecluster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rb-readline
|
@@ -134,6 +134,7 @@ extensions: []
|
|
134
134
|
extra_rdoc_files: []
|
135
135
|
files:
|
136
136
|
- .gitignore
|
137
|
+
- .idea/dataSources.xml
|
137
138
|
- Gemfile
|
138
139
|
- LICENSE
|
139
140
|
- README.md
|
@@ -193,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
193
194
|
version: '0'
|
194
195
|
segments:
|
195
196
|
- 0
|
196
|
-
hash:
|
197
|
+
hash: 1955679762041563204
|
197
198
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
198
199
|
none: false
|
199
200
|
requirements:
|
@@ -202,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
203
|
version: '0'
|
203
204
|
segments:
|
204
205
|
- 0
|
205
|
-
hash:
|
206
|
+
hash: 1955679762041563204
|
206
207
|
requirements: []
|
207
208
|
rubyforge_project:
|
208
209
|
rubygems_version: 1.8.24
|