mirror of
https://github.com/ansible/awx.git
synced 2026-01-17 04:31:21 -03:30
Fix an openshift issue writing the inventory file
Openshift was throwing an error here, though I'm not sure why it makes a whole lot of difference to call fdopen() vs open(). This was introduced when this method was unified under the new ansible-inventory system. This fixes it for all cases. mkstemp(), while not necessary, is a useful addition to keep from leaking inventory details unnecessarily.
This commit is contained in:
parent
65d01d508b
commit
03eca250d9
@ -678,11 +678,12 @@ class BaseTask(LogErrorsTask):
|
||||
return False
|
||||
|
||||
def build_inventory(self, instance, **kwargs):
|
||||
path = os.path.join(kwargs['private_data_dir'], 'inventory')
|
||||
with open(path, 'w') as f:
|
||||
json_data = json.dumps(instance.inventory.get_script_data(hostvars=True))
|
||||
f.write('#! /usr/bin/env python\n# -*- coding: utf-8 -*-\nprint %r\n' % json_data)
|
||||
os.chmod(path, stat.S_IRUSR | stat.S_IXUSR)
|
||||
json_data = json.dumps(instance.inventory.get_script_data(hostvars=True))
|
||||
handle, path = tempfile.mkstemp(dir=kwargs.get('private_data_dir', None))
|
||||
f = os.fdopen(handle, 'w')
|
||||
f.write('#! /usr/bin/env python\n# -*- coding: utf-8 -*-\nprint %r\n' % json_data)
|
||||
f.close()
|
||||
os.chmod(path, stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR)
|
||||
return path
|
||||
|
||||
def build_args(self, instance, **kwargs):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user