Tweaks on previous refactoring of playbook, version bump a 0.4 reference, remove some debug, etc
This commit is contained in:
parent
b9b53d1941
commit
ecb944892d
6 changed files with 27 additions and 27 deletions
|
@ -14,5 +14,5 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
__version__ = '0.4'
|
||||
__version__ = '0.5'
|
||||
__author__ = 'Michael DeHaan'
|
||||
|
|
|
@ -33,6 +33,9 @@ class Play(object):
|
|||
# *************************************************
|
||||
|
||||
def __init__(self, playbook, ds):
|
||||
''' constructor loads from a play datastructure '''
|
||||
|
||||
# TODO: more error handling
|
||||
|
||||
self._ds = ds
|
||||
self.playbook = playbook
|
||||
|
@ -90,16 +93,20 @@ class Play(object):
|
|||
|
||||
# *************************************************
|
||||
|
||||
def handlers(self):
|
||||
return self._handlers
|
||||
|
||||
def tasks(self):
|
||||
''' return task objects for this play '''
|
||||
return self._tasks
|
||||
|
||||
def handlers(self):
|
||||
''' return handler objects for this play '''
|
||||
return self._handlers
|
||||
|
||||
# *************************************************
|
||||
|
||||
def _get_vars(self, dirname):
|
||||
''' load the vars section from a play '''
|
||||
''' load the vars section from a play, accounting for all sorts of variable features
|
||||
including loading from yaml files, prompting, and conditional includes of the first
|
||||
file found in a list. '''
|
||||
|
||||
if self.vars is None:
|
||||
self.vars = {}
|
||||
|
@ -120,8 +127,7 @@ class Play(object):
|
|||
if type(self.vars_prompt) != dict:
|
||||
raise errors.AnsibleError("'vars_prompt' section must contain only key/value pairs")
|
||||
for vname in self.vars_prompt:
|
||||
# TODO: make this prompt one line and consider double entry
|
||||
vars[vname] = self.callbacks.on_vars_prompt(vname)
|
||||
vars[vname] = self.playbook.callbacks.on_vars_prompt(vname)
|
||||
|
||||
results = self.playbook.extra_vars.copy()
|
||||
results.update(vars)
|
||||
|
@ -132,18 +138,17 @@ class Play(object):
|
|||
def update_vars_files(self, hosts):
|
||||
''' calculate vars_files, which requires that setup runs first so ansible facts can be mixed in '''
|
||||
for h in hosts:
|
||||
self.update_vars_files_for_host(h)
|
||||
self._update_vars_files_for_host(h)
|
||||
|
||||
# *************************************************
|
||||
|
||||
def update_vars_files_for_host(self, host):
|
||||
def _update_vars_files_for_host(self, host):
|
||||
|
||||
if not host in self.playbook.SETUP_CACHE:
|
||||
# no need to process failed hosts or hosts not in this play
|
||||
return
|
||||
|
||||
for filename in self.vars_files:
|
||||
# TODO: maybe have to template the path here...
|
||||
|
||||
if type(filename) == list:
|
||||
|
||||
|
|
|
@ -17,11 +17,7 @@
|
|||
|
||||
#############################################
|
||||
|
||||
#import ansible.inventory
|
||||
#import ansible.runner
|
||||
#import ansible.constants as C
|
||||
#from ansible import utils
|
||||
#from ansible import errors
|
||||
from ansible import errors
|
||||
|
||||
class Task(object):
|
||||
|
||||
|
@ -31,14 +27,13 @@ class Task(object):
|
|||
]
|
||||
|
||||
def __init__(self, play, ds):
|
||||
''' constructor loads from a task or handler datastructure '''
|
||||
|
||||
self.play = play
|
||||
# TODO: more error handling
|
||||
|
||||
# FIXME: error handling on invalid fields
|
||||
# action...
|
||||
|
||||
self.name = ds.get('name', None)
|
||||
self.action = ds.get('action', '')
|
||||
self.play = play
|
||||
self.name = ds.get('name', None)
|
||||
self.action = ds.get('action', '')
|
||||
self.notified_by = []
|
||||
|
||||
if self.name is None:
|
||||
|
@ -53,8 +48,7 @@ class Task(object):
|
|||
|
||||
tokens = self.action.split(None, 1)
|
||||
if len(tokens) < 1:
|
||||
# FIXME: better error handling
|
||||
raise Exception("invalid action in task: %s" % ds)
|
||||
raise errors.AnsibleError("invalid/missing action in task")
|
||||
|
||||
self.module_name = tokens[0]
|
||||
self.module_args = ''
|
||||
|
@ -63,6 +57,7 @@ class Task(object):
|
|||
|
||||
# include task specific vars
|
||||
self.module_vars = ds.get('vars', {})
|
||||
|
||||
if 'first_available_file' in ds:
|
||||
self.module_vars['first_available_file'] = ds.get('first_available_file')
|
||||
|
||||
|
|
|
@ -549,6 +549,9 @@ class Runner(object):
|
|||
return ReturnData(host=conn.host, comm_ok=False, result=result)
|
||||
|
||||
|
||||
if self.module_vars is not None:
|
||||
inject.update(self.module_vars)
|
||||
|
||||
source = utils.template(source, inject, self.setup_cache)
|
||||
|
||||
#(host, ok, data, err) = (None, None, None, None)
|
||||
|
|
|
@ -42,15 +42,13 @@ with warnings.catch_warnings():
|
|||
class Connection(object):
|
||||
''' Handles abstract connections to remote hosts '''
|
||||
|
||||
_LOCALHOSTRE = re.compile(r"^(127.0.0.1|localhost|%s)$" % os.uname()[1])
|
||||
|
||||
def __init__(self, runner, transport,sudo_user):
|
||||
self.runner = runner
|
||||
self.transport = transport
|
||||
self.sudo_user = sudo_user
|
||||
def connect(self, host, port=None):
|
||||
conn = None
|
||||
if self.transport == 'local' and self._LOCALHOSTRE.search(host):
|
||||
if self.transport == 'local':
|
||||
conn = LocalConnection(self.runner, host)
|
||||
elif self.transport == 'paramiko':
|
||||
conn = ParamikoConnection(self.runner, host, port)
|
||||
|
|
|
@ -124,7 +124,6 @@ class LibvirtConnection(object):
|
|||
|
||||
def get_status2(self, vm):
|
||||
state = vm.info()[0]
|
||||
# print "DEBUG: state: %s" % state
|
||||
return VIRT_STATE_NAME_MAP.get(state,"unknown")
|
||||
|
||||
def get_status(self, vmid):
|
||||
|
|
Loading…
Reference in a new issue