summaryrefslogtreecommitdiff
path: root/oslo_policy/generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_policy/generator.py')
-rw-r--r--oslo_policy/generator.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/oslo_policy/generator.py b/oslo_policy/generator.py
index fd9f159..48a9972 100644
--- a/oslo_policy/generator.py
+++ b/oslo_policy/generator.py
@@ -277,6 +277,9 @@ def _generate_sample(namespaces, output_file=None, output_format='yaml',
',\n '.join(sections_text),
'\n}\n'))
+ if output_file != sys.stdout:
+ output_file.close()
+
def _generate_policy(namespace, output_file=None):
"""Generate a policy file showing what will be used.
@@ -304,6 +307,9 @@ def _generate_policy(namespace, output_file=None):
for section in _sort_and_format_by_section(policies, include_help=False):
output_file.write(section)
+ if output_file != sys.stdout:
+ output_file.close()
+
def _list_redundant(namespace):
"""Generate a list of configured policies which match defaults.
@@ -396,12 +402,11 @@ def upgrade_policy(args=None, conf=None):
_upgrade_policies(policies, default_policies)
if conf.output_file:
- if conf.format == 'yaml':
- yaml.safe_dump(policies, open(conf.output_file, 'w'),
- default_flow_style=False)
- elif conf.format == 'json':
- jsonutils.dump(policies, open(conf.output_file, 'w'),
- indent=4)
+ with open(conf.output_file, 'w') as fh:
+ if conf.format == 'yaml':
+ yaml.safe_dump(policies, fh, default_flow_style=False)
+ elif conf.format == 'json':
+ jsonutils.dump(policies, fh, indent=4)
else:
if conf.format == 'yaml':
sys.stdout.write(yaml.safe_dump(policies,