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