diff options
author | Scott Moser <smoser@ubuntu.com> | 2010-03-02 14:10:55 -0500 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2010-03-02 14:10:55 -0500 |
commit | 91e423a36928ee5ea52de0b6836d0c34cc20fdd2 (patch) | |
tree | 4a60cdf0eb60da0b5c8132388bc7e7ef275df80e | |
parent | 385802bf3396b149cfd61e20ea4c7e2c7974b307 (diff) | |
download | vyos-cloud-init-91e423a36928ee5ea52de0b6836d0c34cc20fdd2.tar.gz vyos-cloud-init-91e423a36928ee5ea52de0b6836d0c34cc20fdd2.zip |
purge cache in cloud-init so it doesn't end up persisting across instances
The cache file location is not instance specific. As such, if it is
not cleaned from the image, a re-bundle would get the old data. To avoid
that, clear the cache in cloud-init.
-rwxr-xr-x | cloud-init.py | 3 | ||||
-rw-r--r-- | cloudinit/__init__.py | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/cloud-init.py b/cloud-init.py index 1db2ea60..c92f07cd 100755 --- a/cloud-init.py +++ b/cloud-init.py @@ -26,6 +26,9 @@ def warn(str): sys.stderr.write(str) def main(): + # cache is not instance specific, so it has to be purged + cloudinit.purge_cache() + cloud = cloudinit.CloudInit() try: diff --git a/cloudinit/__init__.py b/cloudinit/__init__.py index 8d6ec59e..1d8a1898 100644 --- a/cloudinit/__init__.py +++ b/cloudinit/__init__.py @@ -318,3 +318,13 @@ class CloudInit: def device_name_to_device(self,name): return(self.datasource.device_name_to_device(name)) + + +def purge_cache(): + try: + os.unlink(data_source_cache) + except OSError as e: + if e.errno != errno.ENOENT: return(False) + except: + return(False) + return(True) |