summaryrefslogtreecommitdiff
path: root/python/vyos/util.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-12-28 20:07:52 +0100
committerGitHub <noreply@github.com>2020-12-28 20:07:52 +0100
commit829e76f7392e348ccc01c56e9680efb4eba80440 (patch)
tree282dac56ecfccf381fa92ad9027df6779d16ae2f /python/vyos/util.py
parentc1fcbba9cb45f981e5bd8decf3ebbc1e17d9fbd9 (diff)
parenteeb78e842423319169b036d16601e73227dbffdd (diff)
downloadvyos-1x-829e76f7392e348ccc01c56e9680efb4eba80440.tar.gz
vyos-1x-829e76f7392e348ccc01c56e9680efb4eba80440.zip
Merge pull request #643 from c-po/t563-webproxy
webproxy: T563: migrate from old Perl code to XML and get_config_dict()
Diffstat (limited to 'python/vyos/util.py')
-rw-r--r--python/vyos/util.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/python/vyos/util.py b/python/vyos/util.py
index fc6915687..494c8155e 100644
--- a/python/vyos/util.py
+++ b/python/vyos/util.py
@@ -215,6 +215,30 @@ def read_file(fname, defaultonfailure=None):
return defaultonfailure
raise e
+def write_file(fname, data, defaultonfailure=None, user=None, group=None):
+ """
+ Write content of data to given fname, should defaultonfailure be not None,
+ it is returned on failure to read.
+
+ If directory of file is not present, it is auto-created.
+ """
+ dirname = os.path.dirname(fname)
+ if not os.path.isdir(dirname):
+ os.makedirs(dirname, mode=0o755, exist_ok=False)
+ chown(dirname, user, group)
+
+ try:
+ """ Write a file to string """
+ bytes = 0
+ with open(fname, 'w') as f:
+ bytes = f.write(data)
+ chown(fname, user, group)
+ return bytes
+ except Exception as e:
+ if defaultonfailure is not None:
+ return defaultonfailure
+ raise e
+
def read_json(fname, defaultonfailure=None):
"""