filecluster 0.5.14 → 0.5.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/.ssh/.keep +0 -0
- data/Dockerfile +40 -0
- data/Gemfile +1 -0
- data/README_RU.md +32 -0
- data/bin/fc-daemon +4 -1
- data/bin/fc-manage +8 -0
- data/bin/fc-setup-db +2 -2
- data/docker-compose-mysql56.yaml +35 -0
- data/docker-compose.yaml +35 -0
- data/docker/Dockerfile.sshd +17 -0
- data/docker/development.env +7 -0
- data/entrypoint.sh +19 -0
- data/filecluster.gemspec +2 -0
- data/lib/autosync.rb +149 -0
- data/lib/daemon.rb +17 -1
- data/lib/daemon/autosync_thread.rb +16 -0
- data/lib/daemon/global_daemon_thread.rb +1 -1
- data/lib/daemon/update_tasks_thread.rb +1 -1
- data/lib/fc/db.rb +5 -1
- data/lib/fc/storage.rb +3 -3
- data/lib/fc/var.rb +20 -1
- data/lib/fc/version.rb +1 -1
- data/lib/iostat.rb +48 -0
- data/lib/manage.rb +3 -1
- data/lib/manage/autosync.rb +53 -0
- data/lib/manage/copy_speed.rb +1 -1
- data/lib/manage/storages.rb +57 -1
- data/test/autosync_test.rb +186 -0
- data/test/daemon_test.rb +44 -31
- data/test/db_test.rb +28 -21
- data/test/error_test.rb +3 -3
- data/test/functional_test.rb +21 -20
- data/test/helper.rb +8 -2
- data/test/storage_sync_test.rb +7 -7
- metadata +44 -2
data/test/helper.rb
CHANGED
@@ -5,14 +5,20 @@ require "test/unit"
|
|
5
5
|
require "shoulda-context"
|
6
6
|
require "filecluster"
|
7
7
|
require "mocha/setup"
|
8
|
+
require "byebug"
|
8
9
|
|
9
10
|
TEST_DATABASE = 'fc_test'
|
10
11
|
TEST_USER = 'root'
|
11
12
|
TEST_PASSWORD = ''
|
12
|
-
|
13
|
-
FC::DB.connect_by_config(:username =>
|
13
|
+
# $MYSQL_HOST -u $MYSQL_USER -p $MYSQL_PASSWORD -d $MYSQL_DATABASE
|
14
|
+
FC::DB.connect_by_config(:username => TEST_USER, :password => TEST_PASSWORD, :host => ENV['MYSQL_HOST'] )
|
14
15
|
FC::DB.query("DROP DATABASE IF EXISTS #{TEST_DATABASE}")
|
15
16
|
FC::DB.query("CREATE DATABASE #{TEST_DATABASE}")
|
16
17
|
FC::DB.query("USE #{TEST_DATABASE}")
|
17
18
|
FC::DB.init_db(true)
|
18
19
|
FC::DB.options[:database] = TEST_DATABASE
|
20
|
+
|
21
|
+
|
22
|
+
def ssh_hostname
|
23
|
+
ENV['SSH_HOST'] || 'localhost'
|
24
|
+
end
|
data/test/storage_sync_test.rb
CHANGED
@@ -7,17 +7,17 @@ class StorageSyncTest < Test::Unit::TestCase
|
|
7
7
|
# tmp fake storage dir
|
8
8
|
`rm -rf /tmp/host*-sd*`
|
9
9
|
`mkdir -p /tmp/host1-sda/`
|
10
|
-
|
10
|
+
|
11
11
|
# test files to copy
|
12
12
|
@@test_file_path = '/tmp/fc_test_file'
|
13
13
|
`dd if=/dev/urandom of=#{@@test_file_path} bs=1M count=1 2>&1`
|
14
|
-
|
15
|
-
@@storage = FC::Storage.new(:name => 'host1-sda', :host =>
|
14
|
+
|
15
|
+
@@storage = FC::Storage.new(:name => 'host1-sda', :host => ssh_hostname, :path => '/tmp/host1-sda/', :size_limit => 1000000000, :check_time => Time.new.to_i)
|
16
16
|
@@storage.save
|
17
17
|
@@policy = FC::Policy.new(:create_storages => 'host1-sda', :copies => 1, :name => 'policy 1')
|
18
18
|
@@policy.save
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def shutdown
|
22
22
|
FC::DB.query("DELETE FROM items_storages")
|
23
23
|
FC::DB.query("DELETE FROM items")
|
@@ -27,7 +27,7 @@ class StorageSyncTest < Test::Unit::TestCase
|
|
27
27
|
`rm -rf #{@@test_file_path}`
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
should "sync_all" do
|
32
32
|
assert_nothing_raised { @item1 = FC::Item.create_from_local(@@test_file_path, 'a/test1', @@policy, {:tag => 'test'}) }
|
33
33
|
assert_nothing_raised { @item2 = FC::Item.create_from_local(@@test_file_path, 'a/b/test2', @@policy, {:tag => 'test'}) }
|
@@ -42,9 +42,9 @@ class StorageSyncTest < Test::Unit::TestCase
|
|
42
42
|
`mkdir /tmp/host1-sda/test_dir`
|
43
43
|
`cp #{@@test_file_path} /tmp/host1-sda/test_dir/t1`
|
44
44
|
`cp #{@@test_file_path} /tmp/host1-sda/test_dir/t2`
|
45
|
-
|
45
|
+
|
46
46
|
make_storages_sync(@@storage, true, true, true)
|
47
|
-
|
47
|
+
|
48
48
|
@item1.reload
|
49
49
|
@item2.reload
|
50
50
|
@item3.reload
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filecluster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mysql2
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.13.3
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: byebug
|
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: rubocop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description: Distributed storage
|
98
126
|
email:
|
99
127
|
- cntyrf@gmail.com
|
@@ -105,16 +133,26 @@ extensions: []
|
|
105
133
|
extra_rdoc_files: []
|
106
134
|
files:
|
107
135
|
- ".gitignore"
|
136
|
+
- ".ssh/.keep"
|
137
|
+
- Dockerfile
|
108
138
|
- Gemfile
|
109
139
|
- LICENSE
|
110
140
|
- README.md
|
141
|
+
- README_RU.md
|
111
142
|
- Rakefile
|
112
143
|
- TODO
|
113
144
|
- bin/fc-daemon
|
114
145
|
- bin/fc-manage
|
115
146
|
- bin/fc-setup-db
|
147
|
+
- docker-compose-mysql56.yaml
|
148
|
+
- docker-compose.yaml
|
149
|
+
- docker/Dockerfile.sshd
|
150
|
+
- docker/development.env
|
151
|
+
- entrypoint.sh
|
116
152
|
- filecluster.gemspec
|
153
|
+
- lib/autosync.rb
|
117
154
|
- lib/daemon.rb
|
155
|
+
- lib/daemon/autosync_thread.rb
|
118
156
|
- lib/daemon/base_thread.rb
|
119
157
|
- lib/daemon/check_thread.rb
|
120
158
|
- lib/daemon/copy_task_thread.rb
|
@@ -133,7 +171,9 @@ files:
|
|
133
171
|
- lib/fc/var.rb
|
134
172
|
- lib/fc/version.rb
|
135
173
|
- lib/filecluster.rb
|
174
|
+
- lib/iostat.rb
|
136
175
|
- lib/manage.rb
|
176
|
+
- lib/manage/autosync.rb
|
137
177
|
- lib/manage/copy_rules.rb
|
138
178
|
- lib/manage/copy_speed.rb
|
139
179
|
- lib/manage/item.rb
|
@@ -142,6 +182,7 @@ files:
|
|
142
182
|
- lib/manage/storages.rb
|
143
183
|
- lib/manage/var.rb
|
144
184
|
- lib/utils.rb
|
185
|
+
- test/autosync_test.rb
|
145
186
|
- test/base_test.rb
|
146
187
|
- test/copy_rule_test.rb
|
147
188
|
- test/daemon_test.rb
|
@@ -179,6 +220,7 @@ signing_key:
|
|
179
220
|
specification_version: 4
|
180
221
|
summary: Distributed storage
|
181
222
|
test_files:
|
223
|
+
- test/autosync_test.rb
|
182
224
|
- test/base_test.rb
|
183
225
|
- test/copy_rule_test.rb
|
184
226
|
- test/daemon_test.rb
|