Set Debian snapshots URL to CENGN
* Set default Debian snapshots URL to CENGN * Upgrade existing stx.conf file to match TESTS ======================= Run "stx config --upgrade" with various combinations of the old, new & missing values of debian_snapshot_base and debian_security_snapshot_base Story: 2010055 Task: 46096 Signed-off-by: Davlet Panech <davlet.panech@windriver.com> Change-Id: Id5dd6a8054a8ac5b1a89f5bdd355450d6a7e3b1a
This commit is contained in:
parent
2a3cdf47d8
commit
1b2bcc8010
@ -14,8 +14,10 @@ debian_version = 11.3
|
|||||||
# These URLs must contain snapshots of debian & debian-security repos.
|
# These URLs must contain snapshots of debian & debian-security repos.
|
||||||
# We will append debian_snapshot_timestamp to each of them when creating
|
# We will append debian_snapshot_timestamp to each of them when creating
|
||||||
# apt.sources lists
|
# apt.sources lists
|
||||||
debian_snapshot_base = http://snapshot.debian.org/archive/debian
|
#debian_snapshot_base = http://snapshot.debian.org/archive/debian
|
||||||
debian_security_snapshot_base = http://snapshot.debian.org/archive/debian-security
|
debian_snapshot_base = http://mirror.starlingx.cengn.ca/mirror/debian/debian/snapshot.debian.org/archive/debian
|
||||||
|
#debian_security_snapshot_base = http://snapshot.debian.org/archive/debian-security
|
||||||
|
debian_security_snapshot_base = http://mirror.starlingx.cengn.ca/mirror/debian/debian/snapshot.debian.org/archive/debian-security
|
||||||
debian_snapshot_timestamp = 20220331T000000Z
|
debian_snapshot_timestamp = 20220331T000000Z
|
||||||
|
|
||||||
[builder]
|
[builder]
|
||||||
|
@ -125,6 +125,16 @@ class STXConfigParser:
|
|||||||
def syncConfigFile(self):
|
def syncConfigFile(self):
|
||||||
self.cf.write(open(self.configpath, "w"))
|
self.cf.write(open(self.configpath, "w"))
|
||||||
|
|
||||||
|
def __get(self, section, option, fallback=None):
|
||||||
|
if self.cf.has_section(section):
|
||||||
|
return self.cf.get(section, option, fallback=fallback)
|
||||||
|
return fallback
|
||||||
|
|
||||||
|
def __set(self, section, option, value):
|
||||||
|
if not self.cf.has_section(section):
|
||||||
|
self.cf.add_section(section)
|
||||||
|
self.cf.set(section, option, value)
|
||||||
|
|
||||||
def __delete_key(self, section, option):
|
def __delete_key(self, section, option):
|
||||||
if self.cf.has_option(section, option):
|
if self.cf.has_option(section, option):
|
||||||
self.cf.remove_option(section, option)
|
self.cf.remove_option(section, option)
|
||||||
@ -141,7 +151,16 @@ class STXConfigParser:
|
|||||||
logger.error("Please upgrade %s manually", self.configpath)
|
logger.error("Please upgrade %s manually", self.configpath)
|
||||||
raise RuntimeError("Failed to upgrade %s" % self.configpath)
|
raise RuntimeError("Failed to upgrade %s" % self.configpath)
|
||||||
|
|
||||||
|
def __upgrade_id_exists(self, upgrade_id):
|
||||||
|
return self.__get('upgrade_ids', upgrade_id, "").lower() in ['1', 'true', 'yes']
|
||||||
|
|
||||||
|
def __save_upgrade_id(self, upgrade_id):
|
||||||
|
self.__set('upgrade_ids', upgrade_id, "1")
|
||||||
|
|
||||||
def upgradeConfigFile(self):
|
def upgradeConfigFile(self):
|
||||||
|
|
||||||
|
need_restart = False
|
||||||
|
|
||||||
ref_config_path = os.path.join(os.environ['PRJDIR'], "stx.conf.sample")
|
ref_config_path = os.path.join(os.environ['PRJDIR'], "stx.conf.sample")
|
||||||
ref_config = configparser.ConfigParser()
|
ref_config = configparser.ConfigParser()
|
||||||
ref_config.read(ref_config_path, encoding="utf-8")
|
ref_config.read(ref_config_path, encoding="utf-8")
|
||||||
@ -195,9 +214,35 @@ class STXConfigParser:
|
|||||||
# delete old key
|
# delete old key
|
||||||
self.__delete_key('project', 'debian_security_snapshot')
|
self.__delete_key('project', 'debian_security_snapshot')
|
||||||
|
|
||||||
|
# Change debian_snapshot_* to CENGN
|
||||||
|
if not self.__upgrade_id_exists('debian_snapshot_cengn'):
|
||||||
|
debian_snapshot_cengn_upgraded = False
|
||||||
|
# debian_snapshot_base
|
||||||
|
old_value = 'http://snapshot.debian.org/archive/debian'
|
||||||
|
new_value = 'http://mirror.starlingx.cengn.ca/mirror/debian/debian/snapshot.debian.org/archive/debian'
|
||||||
|
current_value = self.__get('project', 'debian_snapshot_base')
|
||||||
|
if current_value == old_value:
|
||||||
|
self.__upgrade_nonempty_key('project', 'debian_snapshot_base', new_value)
|
||||||
|
debian_snapshot_cengn_upgraded = True
|
||||||
|
# debian_security_snapshot_base
|
||||||
|
old_value = 'http://snapshot.debian.org/archive/debian-security'
|
||||||
|
new_value = 'http://mirror.starlingx.cengn.ca/mirror/debian/debian/snapshot.debian.org/archive/debian-security'
|
||||||
|
current_value = self.__get('project', 'debian_security_snapshot_base')
|
||||||
|
if current_value == old_value:
|
||||||
|
self.__upgrade_nonempty_key('project', 'debian_security_snapshot_base', new_value)
|
||||||
|
debian_snapshot_cengn_upgraded = True
|
||||||
|
|
||||||
|
if debian_snapshot_cengn_upgraded:
|
||||||
|
self.__save_upgrade_id('debian_snapshot_cengn')
|
||||||
|
need_restart = True
|
||||||
|
|
||||||
# Save changes
|
# Save changes
|
||||||
self.syncConfigFile()
|
self.syncConfigFile()
|
||||||
|
|
||||||
|
if need_restart:
|
||||||
|
logger.warning("One or more configuration keeys have been upgraded")
|
||||||
|
logger.warning("These changes will take effect after you restart your builder containers")
|
||||||
|
|
||||||
|
|
||||||
class HandleConfigTask:
|
class HandleConfigTask:
|
||||||
'''Handle the task for the config sub-command'''
|
'''Handle the task for the config sub-command'''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user