ansible-vault view - new command

This commit is contained in:
Jakub Paweł Głazik 2014-04-17 21:13:48 +02:00 committed by Michael DeHaan
commit 58feee0f45
2 changed files with 42 additions and 1 deletions

View file

@ -254,6 +254,22 @@ class VaultEditor(object):
# and restore the old umask
os.umask(old_mask)
def view_file(self):
if not HAS_AES or not HAS_COUNTER or not HAS_PBKDF2 or not HAS_HASH:
raise errors.AnsibleError(CRYPTO_UPGRADE)
# decrypt to tmpfile
tmpdata = self.read_data(self.filename)
this_vault = VaultLib(self.password)
dec_data = this_vault.decrypt(tmpdata)
_, tmp_path = tempfile.mkstemp()
self.write_data(dec_data, tmp_path)
# drop the user into vim on the tmp file
call(self._pager_shell_command(tmp_path))
os.remove(tmp_path)
def encrypt_file(self):
if not HAS_AES or not HAS_COUNTER or not HAS_PBKDF2 or not HAS_HASH:
@ -317,6 +333,13 @@ class VaultEditor(object):
return editor
def _pager_shell_command(self, filename):
PAGER = os.environ.get('PAGER','less')
pager = shlex.split(PAGER)
pager.append(filename)
return pager
########################################
# CIPHERS #
########################################