filecluster 0.5.14 → 0.5.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|