summaryrefslogtreecommitdiff
path: root/cloudinit/sources/DataSourceAzure.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/sources/DataSourceAzure.py')
-rw-r--r--cloudinit/sources/DataSourceAzure.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
index 2818408c..c90d7b07 100644
--- a/cloudinit/sources/DataSourceAzure.py
+++ b/cloudinit/sources/DataSourceAzure.py
@@ -104,7 +104,9 @@ class DataSourceAzureNet(sources.DataSource):
if value is not None:
mycfg[name] = value
- write_files(mycfg['datadir'], files)
+ # walinux agent writes files world readable, but expects
+ # the directory to be protected.
+ write_files(mycfg['datadir'], files, dirmode=0700)
try:
invoke_agent(mycfg['cmd'])
@@ -171,11 +173,12 @@ def wait_for_files(flist, maxwait=60, naplen=.5):
return need
-def write_files(datadir, files):
+def write_files(datadir, files, dirmode=None):
if not datadir:
return
if not files:
files = {}
+ util.ensure_dir(datadir, dirmode)
for (name, content) in files.items():
util.write_file(filename=os.path.join(datadir, name),
content=content, mode=0600)
@@ -313,7 +316,7 @@ def read_azure_ovf(contents):
elif name == "ssh":
cfg['_pubkeys'] = load_azure_ovf_pubkeys(child)
elif name == "disablesshpasswordauthentication":
- cfg['ssh_pwauth'] = util.is_true(value)
+ cfg['ssh_pwauth'] = util.is_false(value)
elif simple:
if name in md_props:
md[name] = value