Commit Graph

9601 Commits

Author SHA1 Message Date
Fabio Erculiani
7d262a71e2 [Rigo] implement resume support on Repositories Update 2012-03-13 23:35:50 +01:00
Fabio Erculiani
5d42022464 [RigoDaemon] wait on activity_mutex before releasing resources lock 2012-03-13 23:34:42 +01:00
Fabio Erculiani
6a4da6c261 [rigo] fifth architectural design iteration, things should work now 2012-03-13 16:05:40 +01:00
Fabio Erculiani
7d2633f2a0 [entropy.client] _lock_resource: avoid to deadlock when _unlock_resource is called 2012-03-13 16:05:40 +01:00
Fabio Erculiani
63e9764bfa [entropy.db] EntropyRepository: mtime() can return OSError, need to cope with it 2012-03-13 16:05:40 +01:00
Fabio Erculiani
4816c90e80 [rigo] trivial comment fix 2012-03-13 14:31:20 +01:00
Fabio Erculiani
6bb4f6b28c [entropy.db] EntropyRepository: validate Live cache against mtime()
Scenario: Process A is writing to EntropyRepository, adding new
package entries. Process B is reading from EntropyRepository,
querying for the same package entries, for example by using
retrieveKeySlot(). This method uses a dict-based cache to speed
up things, but this should be invalidated also when the mtime()
value changes.
2012-03-13 09:01:49 +01:00
Fabio Erculiani
40343d0719 [rigo] fifth RigoDaemon architecture iteration, let's see... 2012-03-12 23:47:29 +01:00
Fabio Erculiani
cd9a2b1220 [rigo] only connect signals when needed, fix YES/NO dialog on exit during activity 2012-03-12 17:05:53 +01:00
Fabio Erculiani
9584c0ae71 [entropy.cache] better handle sleeping in EntropyCacheWriter thread
Make sure we never block on stop() but also we never run for nothing.
Now calling release() as many times as calling acquire()
2012-03-12 16:50:40 +01:00
Fabio Erculiani
5649c1dc80 [entropy.cache] trivial tweaks to cacher thread 2012-03-12 16:26:15 +01:00
Fabio Erculiani
1270c28fd9 [rigo] first chunk of RigoDaemon integration code, still WIP 2012-03-12 00:36:16 +01:00
Fabio Erculiani
d2ef8c8005 [todo] update TODO 2012-03-12 00:36:15 +01:00
Fabio Erculiani
50ebb63cc7 [rigo-daemon] third architectural design iteration, still WIP 2012-03-12 00:36:15 +01:00
Fabio Erculiani
caf2e2192d [entropy.db] atomMatch: versions can be an empty set
When matching >=dev-lang/python-2.6 having some weird mask, it
can happen to end up having no matches left after the last
checkpoint. Make sure to handle the case even on the very last mile
2012-03-11 19:36:41 +01:00
Fabio Erculiani
1f334138fb [entropy.client] reorder_mirrors: hostname property can be None
If mirror string (URL string) is malformed, the hostname object
property can be None.
2012-03-11 18:53:42 +01:00
Fabio Erculiani
f294ec3c1d [rigo-daemon] second architectural design iteration, starting to look good 2012-03-11 17:54:10 +01:00
Fabio Erculiani
0e9491082b [entropy.misc] introduce ReadersWritersSemaphore object 2012-03-11 12:33:29 +01:00
Fabio Erculiani
62a67600d8 [entropy.misc] drop MasterSlaveLock, no longer used 2012-03-11 12:14:52 +01:00
Fabio Erculiani
912bf15702 [rigo] emphasize the App View exit button 2012-03-09 18:00:21 +01:00
Fabio Erculiani
7fb23c224f [rigo-daemon] first commit, introduce RigoDaemon dbus service 2012-03-09 17:29:55 +01:00
Fabio Erculiani
37133e2ab2 [entropy.client] add Client.promote_resources()
Promoting a previously acquired shared Entropy Resources Lock to
an exclusive one is now possible via Client.promote_resources().
2012-03-09 09:42:27 +01:00
Fabio Erculiani
9b52c0f04a [entropy.client.interfaces.repository] provide unlocked_sync() method
As done with entropy.security, unlocked_sync() will make possible
for callers to handle the Entropy Resources Lock on their own.
2012-03-09 09:32:06 +01:00
Fabio Erculiani
922fc34d7e [entropy.client.interfaces.db] do not touch lock files permissions
Entropy Resources Lock file is in the etpConst['etpdatabaseclientdir']
directory. For this reason, it is better to not touch the whole
directory but just the subdirs.
2012-03-08 22:49:38 +01:00
Fabio Erculiani
3195a23689 [entropy.security] add Security.unlocked_sync()
unlocked_sync() works just like sync() but without acquiring the
Entropy Resources Lock. This way it's possible to externally control
the mutual exclusion.
2012-03-08 21:44:13 +01:00
Fabio Erculiani
b379bbc8ad [entropy.misc] FlockFile: add try_promote() method 2012-03-08 21:43:29 +01:00
Fabio Erculiani
6ba23248ff [rigo] properly clean ImageBoxes from app view on hide 2012-03-07 18:10:29 +01:00
Fabio Erculiani
9659ce6633 [rigo] fix misc, trivial bugs 2012-03-07 17:12:55 +01:00
Fabio Erculiani
ed37f776c4 [rigo] add Install/Update/Remove/Reinstall buttons to AppView and config signals 2012-03-07 08:13:57 +01:00
Fabio Erculiani
83ea693196 [rigo] replace "remove ?" with "remove" in CommentBox removal link area 2012-03-07 08:11:44 +01:00
Fabio Erculiani
a36209f0d1 [rigo.models] add Application.is_updatable() method 2012-03-07 08:11:21 +01:00
Fabio Erculiani
de7e0287c4 [rigo.enums] drop unused enums (not all) 2012-03-07 08:11:03 +01:00
Fabio Erculiani
72d326c35a [rigo] enable filtering support in Application View TreeView 2012-03-05 23:37:20 +01:00
Fabio Erculiani
87e984b303 [entropy.client.services] make get_document_url() fetch atomic
This avoids other instances to pull in invalid/partial data
2012-03-05 23:35:34 +01:00
Fabio Erculiani
234907f606 [rigo] use prepare_markup() and escape_markup() when needed 2012-03-04 21:43:39 +01:00
Fabio Erculiani
18e1744607 [rigo.entropyapi] Enable WebService cache aging, default to 14 days 2012-03-04 18:14:28 +01:00
Fabio Erculiani
058e448ebd [entropy.dump] do not unlink() old cache files if aging threshold is reached
Other cache consumers may still find the cache file valid, even if
for others it's old. So, don't remove the file but just return None.
This way it works more like an "overlay".
2012-03-04 18:10:22 +01:00
Fabio Erculiani
bf01329f4d [entropy.services] WebService: make possible to configure cache aging
Configuring cache aging makes possible to automatically throw away
old metadata, like package votes and number of downloads.
Usually, this information is still valid, from user POV, even if
quite old. But how much old? This can be tuned via enable_cache_aging()
from outside WebService class, depending on the scenario.
2012-03-04 18:06:50 +01:00
Fabio Erculiani
a48cb985c6 [entropy.cache] EntropyCacher: add cache aging support
Following entropy.dump cache aging suport, this commit exports the
same functionality to Cacher.pop()
2012-03-04 18:05:54 +01:00
Fabio Erculiani
623930ee4b [entropy.dump] add cache aging support to deserializer
If cached file is older than aging_days, it will be removed from
disk (if possible) and None shall be returned
2012-03-04 18:05:37 +01:00
Fabio Erculiani
63947241b4 [entropy.const] do not hardcode "raw_unicode_escape" 2012-03-04 17:57:57 +01:00
Fabio Erculiani
7e3c89f3d6 [entropy.dump] trivial code style update 2012-03-04 17:57:37 +01:00
Fabio Erculiani
527cbbbaa9 [entropy.dump] getobjmtime: fix possible race wrt file removal 2012-03-04 17:56:51 +01:00
Fabio Erculiani
3f45623ab5 [entropy.dump] use etpConst['conf_raw_encoding'] 2012-03-04 17:56:15 +01:00
Fabio Erculiani
fcf07b0d59 [rigo] beautify download stats in Application View 2012-03-04 17:31:21 +01:00
Fabio Erculiani
0a6d1b081d [rigo.utils] add prepare_markup() function 2012-03-04 17:31:02 +01:00
Fabio Erculiani
0a5c263c3f [rigo] beautify downloads amount representation in the TreeView 2012-03-04 17:15:05 +01:00
Fabio Erculiani
ee14030a30 [rigo] ApplicationMetadata: dispatch events as soon as they are ready 2012-03-04 16:41:02 +01:00
Fabio Erculiani
66089d4b29 [rigo] always emit() in the MainThread 2012-03-04 16:38:30 +01:00
Fabio Erculiani
5d04371ddf [rigo] make sure to call queue_draw() when answering to redraw-request event 2012-03-04 16:37:03 +01:00