filecluster 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ require 'helper'
2
+
3
+ class PolicyTest < Test::Unit::TestCase
4
+ class << self
5
+ def startup
6
+ @@storages = []
7
+ @@storages << FC::Storage.new(:name => 'rec1-sda', :host => 'rec1', :size => 0, :size_limit => 10)
8
+ @@storages << FC::Storage.new(:name => 'rec2-sda', :host => 'rec2', :size => 0, :size_limit => 100)
9
+ @@storages.each {|storage| storage.save}
10
+
11
+ @@policy = FC::Policy.new(:storages => 'rec1-sda,rec2-sda', :copies => 1)
12
+ @@policy.save
13
+ end
14
+ def shutdown
15
+ FC::DB.connect.query("DELETE FROM policies")
16
+ FC::DB.connect.query("DELETE FROM storages")
17
+ end
18
+ end
19
+
20
+ should "get_storages" do
21
+ assert_same_elements @@storages.map(&:id), @@policy.get_storages.map(&:id)
22
+ end
23
+
24
+ should "get_proper_storage" do
25
+ assert_nil @@policy.get_proper_storage(1), 'all storages down'
26
+ @@storages[0].update_check_time
27
+ assert_equal @@storages[0].id, @@policy.get_proper_storage(1).id, 'first storages up'
28
+ assert_nil @@policy.get_proper_storage(20), 'first storage full'
29
+ @@storages[1].update_check_time
30
+ assert_equal @@storages[1].id, @@policy.get_proper_storage(20).id, 'second storages up'
31
+ assert_nil @@policy.get_proper_storage(1000), 'all storages full'
32
+ end
33
+
34
+ end
@@ -0,0 +1,29 @@
1
+ require 'helper'
2
+
3
+ class StorageTest < Test::Unit::TestCase
4
+ should "curr_host" do
5
+ assert ! FC::Storage.curr_host.to_s.empty?
6
+ end
7
+
8
+ should "initialize" do
9
+ assert_raise(RuntimeError) { FC::Storage.new :path => 'test' }
10
+ assert_raise(RuntimeError) { FC::Storage.new :path => '/test' }
11
+ assert_raise(RuntimeError) { FC::Storage.new :path => 'test/' }
12
+ assert_nothing_raised { FC::Storage.new :path => '/test/' }
13
+ end
14
+
15
+ should "update_check_time and up?" do
16
+ storage = FC::Storage.new(:name => 'rec1-sda', :host => 'rec1')
17
+ storage.save
18
+ assert_equal false, storage.up?
19
+ storage.update_check_time
20
+ assert_equal true, storage.up?
21
+ storage.reload
22
+ assert_equal true, storage.up?
23
+ storage.check_time = Time.now.to_i - FC::Storage.check_time_limit - 1
24
+ storage.save
25
+ assert_equal false, storage.up?
26
+ storage.delete
27
+ end
28
+
29
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class VersionTest < Test::Unit::TestCase
4
+ should "version exist" do
5
+ assert FC::VERSION
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: filecluster
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - sh
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: test-unit
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: mysql2
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: shoulda-context
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: mocha
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 0.13.3
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.13.3
110
+ description: Distributed storage
111
+ email:
112
+ - cntyrf@gmail.com
113
+ executables:
114
+ - fc-daemon
115
+ - fc-manage
116
+ - fc-setup-db
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - .gitignore
121
+ - Gemfile
122
+ - LICENSE
123
+ - README.md
124
+ - Rakefile
125
+ - TODO
126
+ - bin/fc-daemon
127
+ - bin/fc-manage
128
+ - bin/fc-setup-db
129
+ - filecluster.gemspec
130
+ - lib/daemon.rb
131
+ - lib/daemon/base_thread.rb
132
+ - lib/daemon/check_thread.rb
133
+ - lib/daemon/global_daemon_thread.rb
134
+ - lib/daemon/task_thread.rb
135
+ - lib/fc/base.rb
136
+ - lib/fc/db.rb
137
+ - lib/fc/error.rb
138
+ - lib/fc/item.rb
139
+ - lib/fc/item_storage.rb
140
+ - lib/fc/policy.rb
141
+ - lib/fc/storage.rb
142
+ - lib/fc/version.rb
143
+ - lib/filecluster.rb
144
+ - lib/manage.rb
145
+ - lib/manage/policies.rb
146
+ - lib/manage/show.rb
147
+ - lib/manage/storages.rb
148
+ - lib/utils.rb
149
+ - test/base_test.rb
150
+ - test/daemon_test.rb
151
+ - test/db_test.rb
152
+ - test/error_test.rb
153
+ - test/functional_test.rb
154
+ - test/helper.rb
155
+ - test/item_test.rb
156
+ - test/policy_test.rb
157
+ - test/storage_test.rb
158
+ - test/version_test.rb
159
+ homepage: ''
160
+ licenses: []
161
+ post_install_message:
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ segments:
172
+ - 0
173
+ hash: 3834246548057884252
174
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ segments:
181
+ - 0
182
+ hash: 3834246548057884252
183
+ requirements: []
184
+ rubyforge_project:
185
+ rubygems_version: 1.8.24
186
+ signing_key:
187
+ specification_version: 3
188
+ summary: Distributed storage
189
+ test_files:
190
+ - test/base_test.rb
191
+ - test/daemon_test.rb
192
+ - test/db_test.rb
193
+ - test/error_test.rb
194
+ - test/functional_test.rb
195
+ - test/helper.rb
196
+ - test/item_test.rb
197
+ - test/policy_test.rb
198
+ - test/storage_test.rb
199
+ - test/version_test.rb