Commit Graph

8901 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