summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/CloudConfig.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/cloudinit/CloudConfig.py b/cloudinit/CloudConfig.py
index 487e9872..3f965f39 100644
--- a/cloudinit/CloudConfig.py
+++ b/cloudinit/CloudConfig.py
@@ -115,6 +115,9 @@ class CloudConfig():
else:
mirror = self.cloud.get_mirror()
generate_sources_list(mirror)
+ old_mir = util.get_cfg_option_str(self.cfg,'apt_old_mirror', \
+ "archive.ubuntu.com/ubuntu")
+ rename_apt_lists(old_mir, mirror)
# process 'apt_sources'
if self.cfg.has_key('apt_sources'):
@@ -539,3 +542,22 @@ def handle_runcmd(cfg):
util.write_file(outfile,content,0700)
except:
warn("failed to open %s for runcmd" % outfile)
+
+def mirror2lists_fileprefix(mirror):
+ file=mirror
+ # take of http:// or ftp://
+ if file.endswith("/"): file=file[0:-1]
+ pos=file.find("://")
+ if pos >= 0:
+ file=file[pos+3:]
+ file=file.replace("/","_")
+ return file
+
+def rename_apt_lists(omirror,new_mirror,lists_d="/var/lib/apt/lists"):
+
+ oprefix="%s/%s" % (lists_d,mirror2lists_fileprefix(omirror))
+ nprefix="%s/%s" % (lists_d,mirror2lists_fileprefix(new_mirror))
+ if(oprefix==nprefix): return
+ olen=len(oprefix)
+ for file in glob.glob("%s_*" % oprefix):
+ os.rename(file,"%s%s" % (nprefix, file[olen:]))