summaryrefslogtreecommitdiff
path: root/cloudinit/distros/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/distros/__init__.py')
-rw-r--r--cloudinit/distros/__init__.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 8cffb0ee..5642b529 100644
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -52,7 +52,7 @@ class Distro(object):
ci_sudoers_fn = "/etc/sudoers.d/90-cloud-init-users"
hostname_conf_fn = "/etc/hostname"
tz_zone_dir = "/usr/share/zoneinfo"
- random_seed_fn = None
+ random_seed_fn = '/dev/urandom'
def __init__(self, name, cfg, paths):
self._paths = paths
@@ -171,11 +171,13 @@ class Distro(object):
return distros
def set_random_seed(self, seed):
- if not self.random_seed_fn:
+ if not self.random_seed_fn or not os.path.exists(self.random_seed_fn):
raise IOError("No random seed filename provided for %s"
% (self.name))
+ if not seed:
+ raise IOError("Unable to set empty random seed")
# Ensure we only write 512 bytes worth
- util.write_file(self.random_seed_fn, seed[0:512], mode=0600)
+ util.append_file(self.random_seed_fn, seed[0:512])
def update_hostname(self, hostname, fqdn, prev_hostname_fn):
applying_hostname = hostname