filecluster 0.1.5 → 0.1.6
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.
- data/TODO +0 -1
- data/lib/daemon/base_thread.rb +3 -2
- data/lib/daemon/global_daemon_thread.rb +14 -2
- data/lib/fc/db.rb +1 -1
- data/lib/fc/version.rb +1 -1
- data/test/daemon_test.rb +4 -1
- metadata +4 -4
data/TODO
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
! что делать с error is?
|
2
2
|
периодически удалять пустые папки
|
3
3
|
при создании item-а по папке проверять что папка не пустая
|
4
|
-
проработать item-ы папки
|
5
4
|
добавить в check storage проверку на дорступность урла
|
6
5
|
|
7
6
|
алерт на доступность в каждоый политике стораджа на запись
|
data/lib/daemon/base_thread.rb
CHANGED
@@ -5,9 +5,10 @@ class BaseThread < Thread
|
|
5
5
|
self.go(*p)
|
6
6
|
rescue Exception => e
|
7
7
|
error "#{self.class}: #{e.message}; #{e.backtrace.join(', ')}"
|
8
|
+
ensure
|
9
|
+
FC::DB.close
|
10
|
+
$log.debug("close #{self.class}")
|
8
11
|
end
|
9
|
-
FC::DB.close
|
10
|
-
$log.debug("close #{self.class}")
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -16,9 +16,9 @@ class GlobalDaemonThread < BaseThread
|
|
16
16
|
end
|
17
17
|
|
18
18
|
make_item_copies
|
19
|
-
|
19
|
+
delete_deleted_items
|
20
20
|
#периодическая проверка на item со статусом delete, последним обновлением дольше суток (NOW - time > 86400) и без связанных is - удаление таких из базы
|
21
|
-
|
21
|
+
#TODO: периодически удалять (проставлять статус delete) для лиших is (число копий больше необходимого)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -57,4 +57,16 @@ class GlobalDaemonThread < BaseThread
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
60
|
+
|
61
|
+
def delete_deleted_items
|
62
|
+
$log.debug("GlobalDaemonThread: delete_deleted_items")
|
63
|
+
|
64
|
+
r = FC::DB.connect.query("SELECT i.id FROM #{FC::Item.table_name} as i LEFT JOIN #{FC::ItemStorage.table_name} as ist ON i.id=ist.item_id WHERE i.status = 'delete' AND ist.id IS NULL")
|
65
|
+
ids = r.map{|row| row['id']}
|
66
|
+
if ids.count > 0
|
67
|
+
ids = ids.join(',')
|
68
|
+
FC::DB.connect.query("DELETE FROM #{FC::Item.table_name} WHERE id in (#{ids})")
|
69
|
+
$log.info("GlobalDaemonThread: delete items #{ids}")
|
70
|
+
end
|
71
|
+
end
|
60
72
|
end
|
data/lib/fc/db.rb
CHANGED
@@ -161,7 +161,7 @@ module FC
|
|
161
161
|
item_id int DEFAULT NULL,
|
162
162
|
item_storage_id int DEFAULT NULL,
|
163
163
|
host varchar(255) DEFAULT NULL,
|
164
|
-
message
|
164
|
+
message text DEFAULT NULL,
|
165
165
|
time int DEFAULT NULL,
|
166
166
|
PRIMARY KEY (id), KEY (item_id), KEY (item_storage_id), KEY (host), KEY (time)
|
167
167
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
data/lib/fc/version.rb
CHANGED
data/test/daemon_test.rb
CHANGED
@@ -98,7 +98,10 @@ class DaemonTest < Test::Unit::TestCase
|
|
98
98
|
item_storage.save
|
99
99
|
sleep 2
|
100
100
|
assert_equal 0, `du -sb /tmp/host1-sdc/bla/bla/test1 2>&1`.to_i
|
101
|
-
|
102
101
|
assert_equal @@errors_count, FC::Error.where.count, "new errors in errors table"
|
102
|
+
|
103
|
+
@item1.mark_deleted
|
104
|
+
sleep 2
|
105
|
+
assert_raise(RuntimeError, 'Item not deleted after mark_deleted') {@item1.reload}
|
103
106
|
end
|
104
107
|
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.1.
|
4
|
+
version: 0.1.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: 2013-05-
|
12
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rb-readline
|
@@ -186,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
186
|
version: '0'
|
187
187
|
segments:
|
188
188
|
- 0
|
189
|
-
hash:
|
189
|
+
hash: 789694035
|
190
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
191
|
none: false
|
192
192
|
requirements:
|
@@ -195,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
195
|
version: '0'
|
196
196
|
segments:
|
197
197
|
- 0
|
198
|
-
hash:
|
198
|
+
hash: 789694035
|
199
199
|
requirements: []
|
200
200
|
rubyforge_project:
|
201
201
|
rubygems_version: 1.8.24
|