From: Travis Rhoden Date: Fri, 22 May 2015 14:33:07 +0000 (-0400) Subject: [RM-11694] Add optional directory to write_file() X-Git-Tag: v1.5.25~4^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=628bd9ed6bfb84821ba7d2240cc41a8783cc4617;p=ceph-deploy.git [RM-11694] Add optional directory to write_file() This is mostly for testing purposes. The method has no way to specify a directory independently from the file name, which it makes it difficult to use with automated tests. It will get refactored more later, but for now add a new kwarg that pass in a dir to write to. Since a lot of callers are passing in absolute paths (.e.g. "/etc/ceph/keyring"), we look for the beginning slash and chop it off so that we can use os.path.join() and write into something like /tmp/etc/ceph. Signed-off-by: Travis Rhoden --- diff --git a/ceph_deploy/hosts/remotes.py b/ceph_deploy/hosts/remotes.py index 6c8e63a..19be3e4 100644 --- a/ceph_deploy/hosts/remotes.py +++ b/ceph_deploy/hosts/remotes.py @@ -200,7 +200,11 @@ def write_monitor_keyring(keyring, monitor_keyring): write_file(keyring, monitor_keyring) -def write_file(path, content): +def write_file(path, content, directory=None): + if directory: + if path.startswith("/"): + path = path[1:] + path = os.path.join(directory, path) with file(path, 'w') as f: f.write(content)