Commit bcef25f7 by Seth Vidal

add vars_prompt to playbooks

- this allows some vars to be prompted for at the start of the playbook
  setup
- defaults to no output since this would mostly be used for passwords
parent 04aecdcf
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
import utils import utils
import sys import sys
import getpass
####################################################### #######################################################
...@@ -176,6 +177,12 @@ class PlaybookCallbacks(object): ...@@ -176,6 +177,12 @@ class PlaybookCallbacks(object):
def on_task_start(self, name, is_conditional): def on_task_start(self, name, is_conditional):
print utils.task_start_msg(name, is_conditional) print utils.task_start_msg(name, is_conditional)
def on_vars_prompt(self, varname, private=True):
msg = 'input for %s: ' % varname
if private:
return getpass.getpass(msg)
return raw_input(msg)
def on_setup_primary(self): def on_setup_primary(self):
print "SETUP PHASE ****************************\n" print "SETUP PHASE ****************************\n"
......
...@@ -95,6 +95,13 @@ class PlayBook(object): ...@@ -95,6 +95,13 @@ class PlayBook(object):
vars = play.get('vars', {}) vars = play.get('vars', {})
if type(vars) != dict: if type(vars) != dict:
raise errors.AnsibleError("'vars' section must contain only key/value pairs") raise errors.AnsibleError("'vars' section must contain only key/value pairs")
vars_prompt = play.get('vars_prompt', {})
if type(vars_prompt) != dict:
raise errors.AnsibleError("'vars_prompt' section must contain only key/value pairs")
for vname in vars_prompt:
print vars_prompt[vname]
# FIXME - need some way to know that this prompt should be getpass or raw_input
vars[vname] = self.callbacks.on_vars_prompt(vname)
return vars return vars
# ***************************************************** # *****************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment