Entropy/Spritz:
- add fetch (download) only support git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@2764 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
@@ -51,7 +51,7 @@ class QueueExecutor:
|
||||
else:
|
||||
return 0,licenses
|
||||
|
||||
def run(self, install_queue, removal_queue, do_purge_cache = []):
|
||||
def run(self, install_queue, removal_queue, do_purge_cache = [], fetch_only = False):
|
||||
|
||||
# unmask packages
|
||||
for match in self.Spritz.etpbase.unmaskingPackages:
|
||||
@@ -79,7 +79,9 @@ class QueueExecutor:
|
||||
self.Entropy.clientDbconn.acceptLicense(lic)
|
||||
|
||||
totalqueue = len(runQueue)
|
||||
progress_step = float(1)/((totalqueue*2)+len(removalQueue))
|
||||
steps_here = 2
|
||||
if fetch_only: steps_here = 1
|
||||
progress_step = float(1)/((totalqueue*steps_here)+len(removalQueue))
|
||||
step = progress_step
|
||||
myrange = []
|
||||
while progress_step < 1.0:
|
||||
@@ -134,6 +136,9 @@ class QueueExecutor:
|
||||
|
||||
self.Spritz.ui.skipMirror.hide()
|
||||
|
||||
if fetch_only:
|
||||
return 0,0
|
||||
|
||||
# then removalQueue
|
||||
# NOT conflicts! :-)
|
||||
totalremovalqueue = len(removalQueue)
|
||||
|
||||
+39
-2
@@ -1602,10 +1602,46 @@
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox109">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="queueProcessFetchOnly">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="tooltip" translatable="yes">If selected, packages will be downloaded only</property>
|
||||
<property name="label" translatable="yes">Download only</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbutton2">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Download source code</property>
|
||||
<property name="response_id">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="padding">8</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox19">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">5</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="queueProcess">
|
||||
@@ -1653,7 +1689,8 @@
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
+25
-20
@@ -1283,7 +1283,7 @@ class SpritzApplication(Controller):
|
||||
self.resetQueueProgressBars()
|
||||
self.disable_ugc = False
|
||||
|
||||
def processPackageQueue(self, pkgs, remove_repos = []):
|
||||
def processPackageQueue(self, pkgs, remove_repos = [], fetch_only = False):
|
||||
|
||||
# preventive check against other instances
|
||||
locked = self.Equo.application_lock_check()
|
||||
@@ -1298,6 +1298,7 @@ class SpritzApplication(Controller):
|
||||
total = len( pkgs['i'] )+len( pkgs['u'] )+len( pkgs['r'] ) +len( pkgs['rr'] )
|
||||
state = True
|
||||
if total > 0:
|
||||
|
||||
self.startWorking(do_busy = True)
|
||||
normalCursor(self.ui.main)
|
||||
self.progress.show()
|
||||
@@ -1308,9 +1309,10 @@ class SpritzApplication(Controller):
|
||||
removal_queue = [x.matched_atom[0] for x in pkgs['r']]
|
||||
do_purge_cache = set([x.matched_atom[0] for x in pkgs['r'] if x.do_purge])
|
||||
if install_queue or removal_queue:
|
||||
|
||||
controller = QueueExecutor(self)
|
||||
try:
|
||||
e,i = controller.run(install_queue[:], removal_queue[:], do_purge_cache)
|
||||
e,i = controller.run(install_queue[:], removal_queue[:], do_purge_cache, fetch_only = fetch_only)
|
||||
except exceptionTools.QueueError:
|
||||
e = 1
|
||||
self.ui.skipMirror.hide()
|
||||
@@ -1320,25 +1322,24 @@ class SpritzApplication(Controller):
|
||||
_("Attention. An error occured when processing the queue."
|
||||
"\nPlease have a look in the processing terminal.")
|
||||
)
|
||||
self.endWorking()
|
||||
self.etpbase.clearPackages()
|
||||
time.sleep(5)
|
||||
|
||||
self.endWorking()
|
||||
self.progress.reset_progress()
|
||||
self.etpbase.clearPackages()
|
||||
self.etpbase.clearCache()
|
||||
for myrepo in remove_repos:
|
||||
self.Equo.removeRepository(myrepo)
|
||||
self.Equo.closeAllRepositoryDatabases()
|
||||
self.Equo.reopenClientDbconn()
|
||||
# regenerate packages information
|
||||
|
||||
self.setupSpritz()
|
||||
self.Equo.FileUpdates.scanfs(dcache = False)
|
||||
if self.Equo.FileUpdates.scandata:
|
||||
if len(self.Equo.FileUpdates.scandata) > 0:
|
||||
self.setPage('filesconf')
|
||||
#self.progress.hide()
|
||||
if not fetch_only:
|
||||
self.etpbase.clearPackages()
|
||||
self.etpbase.clearCache()
|
||||
for myrepo in remove_repos:
|
||||
self.Equo.removeRepository(myrepo)
|
||||
self.Equo.closeAllRepositoryDatabases()
|
||||
self.Equo.reopenClientDbconn()
|
||||
# regenerate packages information
|
||||
self.setupSpritz()
|
||||
self.Equo.FileUpdates.scanfs(dcache = False)
|
||||
if self.Equo.FileUpdates.scandata:
|
||||
if len(self.Equo.FileUpdates.scandata) > 0:
|
||||
self.setPage('filesconf')
|
||||
|
||||
else:
|
||||
self.setStatus( _( "No packages selected" ) )
|
||||
|
||||
@@ -2013,11 +2014,15 @@ class SpritzApplication(Controller):
|
||||
self.setStatus(_('No packages in queue'))
|
||||
return
|
||||
|
||||
rc = self.processPackageQueue(self.queue.packages)
|
||||
fetch_only = self.ui.queueProcessFetchOnly.get_active()
|
||||
|
||||
rc = self.processPackageQueue(self.queue.packages, fetch_only = fetch_only)
|
||||
self.resetQueueProgressBars()
|
||||
if rc:
|
||||
if rc and not fetch_only:
|
||||
self.queue.clear() # Clear package queue
|
||||
self.queueView.refresh() # Refresh Package Queue
|
||||
#if fetch_only:
|
||||
# self.setPage('queue')
|
||||
|
||||
def on_queueSave_clicked( self, widget ):
|
||||
fn = FileChooser(action = gtk.FILE_CHOOSER_ACTION_SAVE, buttons = (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK))
|
||||
|
||||
Reference in New Issue
Block a user