cl-update: remove inner var; fix cache logic for calculating

dep
master
root 1 year ago
parent c0e82e8a7b
commit 231512dd49

@ -259,6 +259,8 @@ class Update(MethodsInterface):
def raiseOutdate(self): def raiseOutdate(self):
self.clVars.Set('cl_update_outdate_set', 'on', force=True) self.clVars.Set('cl_update_outdate_set', 'on', force=True)
if self.clVars.Get('cl_update_other_set') == 'auto':
self.clVars.Set('cl_update_other_set', 'on')
def setAutocheckParams(self, status, interval, update_other, cleanpkg): def setAutocheckParams(self, status, interval, update_other, cleanpkg):
""" """
@ -402,9 +404,9 @@ class Update(MethodsInterface):
saved_host = dv.Get('cl_update_rep_hosting') if 'cl_update_rep_hosting' in dv.allVars else '' saved_host = dv.Get('cl_update_rep_hosting') if 'cl_update_rep_hosting' in dv.allVars else ''
working_host = '' working_host = ''
# проверка необходимости синхронизации других оверлеев # проверка необходимости синхронизации других оверлеев
if dv.Get("cl_update_inner_other_set") != 'auto': #if dv.Get("cl_update_other_set") != 'auto':
dv.Write("cl_update_other_set", dv.Get("cl_update_inner_other_set"), header="update") #dv.Write("cl_update_other_set", dv.Get("cl_update_inner_other_set"), header="update")
dv.Set("cl_update_other_set", dv.Get("cl_update_inner_other_set")) #dv.Set("cl_update_other_set", dv.Get("cl_update_inner_other_set"))
if 'cl_update_rep_list' in dv.allVars and dv.Get('cl_update_rep_list'): if 'cl_update_rep_list' in dv.allVars and dv.Get('cl_update_rep_list'):
chosen_hosting = dv.Get("cl_update_rep_hosting_choice") chosen_hosting = dv.Get("cl_update_rep_hosting_choice")
if chosen_hosting: if chosen_hosting:
@ -590,6 +592,9 @@ class Update(MethodsInterface):
self.stash_cache(rpath, repdirname) self.stash_cache(rpath, repdirname)
rpath_old = f"{rpath}_old" rpath_old = f"{rpath}_old"
makeDirectory(rpath_old) makeDirectory(rpath_old)
old_hash = PortageState()
old_hash.paths = [f'{rpath}']
old_hash = old_hash.get_state()
try: try:
if Git.is_git(rpath): if Git.is_git(rpath):
self.addProgress() self.addProgress()
@ -617,6 +622,8 @@ class Update(MethodsInterface):
finally: finally:
removeDir(rpath_old) removeDir(rpath_old)
self.unstash_cache(rpath, repdirname) self.unstash_cache(rpath, repdirname)
new_hash = PortageState()
new_hash.paths = [f'{rpath}']
return True return True
def _regenCache_process(self, progname, repname, cpu_num): def _regenCache_process(self, progname, repname, cpu_num):

@ -345,7 +345,9 @@ class ClUpdateAction(Action):
'"-uDN","@world")', '"-uDN","@world")',
} }
], ],
'condition': lambda Get: Get('cl_update_sync_only_set') == 'off' 'condition': lambda Get: (Get('cl_update_sync_only_set') == 'off' and
(Get('update.cl_update_outdate_set') == 'on' or
Get('cl_update_settings_changes_set') == 'on'))
}, },
{'name': 'update_other:update_perl', {'name': 'update_other:update_perl',
'group': __("Updating Perl modules"), 'group': __("Updating Perl modules"),
@ -441,7 +443,7 @@ class ClUpdateAction(Action):
'essential': False, 'essential': False,
'condition': lambda Get: (Get('cl_update_sync_only_set') == 'off' and \ 'condition': lambda Get: (Get('cl_update_sync_only_set') == 'off' and \
Get('cl_update_pretend_set') == 'off' and \ Get('cl_update_pretend_set') == 'off' and \
UpdateConditions.check_world_updated_after_tag_save()()) UpdateConditions.check_world_updated_after_tag_save()())
}, },
] + get_synchronization_tasks("Update") + [ ] + get_synchronization_tasks("Update") + [
{'name': 'system_configuration', {'name': 'system_configuration',
@ -483,10 +485,7 @@ class ClUpdateAction(Action):
'depend': Tasks.failed_all("check_schedule") 'depend': Tasks.failed_all("check_schedule")
}, },
# сообщение удачного завершения при обновлении ревизии # сообщение удачного завершения при обновлении ревизии
{'name': 'update:save_portage_hash',
'method': 'Update.save_portage_state_hash()',
'condition': lambda Get: Get('cl_update_sync_only_set') == 'off'
},
{'name': 'drop_portage_hash', {'name': 'drop_portage_hash',
'method': 'Update.drop_portage_state_hash()', 'method': 'Update.drop_portage_state_hash()',
'depend': Tasks.failed() 'depend': Tasks.failed()
@ -507,6 +506,10 @@ class ClUpdateAction(Action):
Get('cl_update_pretend_set') == 'off', Get('cl_update_pretend_set') == 'off',
'decoration': 'Update.update_task("%s")' % EmergeMark.SaveTag 'decoration': 'Update.update_task("%s")' % EmergeMark.SaveTag
}, },
{'name': 'update:save_portage_hash',
'method': 'Update.save_portage_state_hash()',
'condition': lambda Get: Get('cl_update_sync_only_set') == 'off'
},
{'name': 'clear_migration_host', {'name': 'clear_migration_host',
'method': 'Update.delete_binhost()', 'method': 'Update.delete_binhost()',
'depend': (Tasks.hasnot("check_schedule")), 'depend': (Tasks.hasnot("check_schedule")),

@ -448,15 +448,36 @@ class VariableClUpdateSettingsChangesSet(Variable):
Определить были ли изменения в /etc/portage, /var/log/emerge.log Определить были ли изменения в /etc/portage, /var/log/emerge.log
""" """
type = Variable.Types.Boolean type = Variable.Types.Boolean
value = ''
def get(self): def get(self):
if self.value:
return self.value
ini = SystemIni(self.parent) ini = SystemIni(self.parent)
old_portage_state_hash = ini.getVar('system', 'portage_hash') or "" old_portage_state_hash = ini.getVar('system', 'portage_hash') or ""
ps = PortageState() ps = PortageState()
new_portage_state_hash = ps.get_state() new_portage_state_hash = ps.get_state()
a = new_portage_state_hash != old_portage_state_hash
return "on" if new_portage_state_hash != old_portage_state_hash else "off" return "on" if new_portage_state_hash != old_portage_state_hash else "off"
class VariableClUpdateSettingsPortageSet(Variable):
"""
Определить были ли изменения в /etc/portage
"""
type = Variable.Types.Boolean
value = ''
def get(self):
if self.value:
return self.value
ini = SystemIni(self.parent)
old_portage_state_hash = ini.getVar('system', 'portage_hash') or ""
ps = PortageState()
new_portage_state_hash = ps.get_state()
a = new_portage_state_hash != old_portage_state_hash
return "on" if new_portage_state_hash != old_portage_state_hash else "off"
class VariableClUpdateBranchName(Variable): class VariableClUpdateBranchName(Variable):
""" """
Список доступных репозиторием Список доступных репозиторием
@ -532,9 +553,9 @@ class VariableClUpdateOutdateSet(ReadonlyVariable):
type = "bool" type = "bool"
def get(self): def get(self):
if (self.Get('cl_update_other_set') == 'on' and # if (self.Get('cl_update_other_set') == 'on' and
self.Get('cl_update_other_rep_name')): # self.Get('cl_update_other_rep_name')):
return "on" # return "on"
return "off" return "off"
@ -636,37 +657,19 @@ class VariableClUpdateOtherSet(Variable):
""" """
Обновить остальные оверлеи Обновить остальные оверлеи
""" """
type = "bool" type = "boolauto"
value = "on" opt = ["-o", "--update-other"]
metavalue = _("Other overlays") metavalue = _("ON/OFF/AUTO")
value = Variable.Auto
def init(self): def init(self):
self.label = _("Update other overlays") self.label = _("Update other overlays")
self.help = _("Update other overlays") self.help = _("Update other overlays. Updates other overlays while updating default overlays if value is not specified")
def get(self): def get(self):
if self.Get('cl_update_inner_other_set') != 'auto':
return self.Get('cl_update_inner_other_set')
return self.value return self.value
class VariableClUpdateInnerOtherSet(Variable):
type = "bool3"
value = Variable.Auto
metavalue = 'ON/OFF'
opt = ["-o", "--update-other"]
def init(self):
self.help = _("update other overlays")
self.label = _("Update other overlays")
# def get(self):
# if self.value in ["on", "off"]:
# return True
# return False
class VariableClUpdateOtherRepData(ReadonlyTableVariable): class VariableClUpdateOtherRepData(ReadonlyTableVariable):
""" """
Информация о прочих репозиториях Информация о прочих репозиториях
@ -2046,4 +2049,4 @@ class VariableClUpdateSavedTag(Variable):
""" """
Сохраняемый тэг репозитория calculate Сохраняемый тэг репозитория calculate
""" """
type = "int" type = "int"

@ -73,7 +73,7 @@ class Wsdl(WsdlBase):
'cl_update_rep_hosting_choice', 'cl_update_rep_hosting_choice',
), ),
expert=( expert=(
'cl_update_inner_other_set', 'cl_update_other_set',
'cl_update_sync_only_set', 'cl_update_sync_only_set',
'cl_update_pretend_set', 'cl_update_pretend_set',
'cl_update_sync_rep', 'cl_update_sync_rep',
@ -93,7 +93,6 @@ class Wsdl(WsdlBase):
'cl_update_cleanpkg_set', 'cl_update_cleanpkg_set',
'cl_update_branch_data', 'cl_update_branch_data',
'cl_templates_locate', 'cl_templates_locate',
'cl_update_inner_other_set',
'cl_verbose_set', 'cl_dispatch_conf'), 'cl_verbose_set', 'cl_dispatch_conf'),
next_label=_("Run"))]}, next_label=_("Run"))]},
# #

Loading…
Cancel
Save