|
|
@ -18,7 +18,6 @@ from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
|
|
|
|
|
|
from ansible.errors import AnsibleError
|
|
|
|
from ansible.errors import AnsibleError
|
|
|
|
from ansible.utils.vars import combine_vars
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Group:
|
|
|
|
class Group:
|
|
|
@ -31,7 +30,7 @@ class Group:
|
|
|
|
self.depth = 0
|
|
|
|
self.depth = 0
|
|
|
|
self.name = name
|
|
|
|
self.name = name
|
|
|
|
self.hosts = []
|
|
|
|
self.hosts = []
|
|
|
|
self._hosts = set()
|
|
|
|
self._hosts = None
|
|
|
|
self.vars = {}
|
|
|
|
self.vars = {}
|
|
|
|
self.child_groups = []
|
|
|
|
self.child_groups = []
|
|
|
|
self.parent_groups = []
|
|
|
|
self.parent_groups = []
|
|
|
@ -72,9 +71,8 @@ class Group:
|
|
|
|
self.name = data.get('name')
|
|
|
|
self.name = data.get('name')
|
|
|
|
self.vars = data.get('vars', dict())
|
|
|
|
self.vars = data.get('vars', dict())
|
|
|
|
self.depth = data.get('depth', 0)
|
|
|
|
self.depth = data.get('depth', 0)
|
|
|
|
self.hosts = data.get('hosts', {})
|
|
|
|
self.hosts = data.get('hosts', [])
|
|
|
|
|
|
|
|
self._hosts = None
|
|
|
|
self._hosts = set(self.hosts)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
parent_groups = data.get('parent_groups', [])
|
|
|
|
parent_groups = data.get('parent_groups', [])
|
|
|
|
for parent_data in parent_groups:
|
|
|
|
for parent_data in parent_groups:
|
|
|
@ -82,6 +80,12 @@ class Group:
|
|
|
|
g.deserialize(parent_data)
|
|
|
|
g.deserialize(parent_data)
|
|
|
|
self.parent_groups.append(g)
|
|
|
|
self.parent_groups.append(g)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
|
|
|
def host_names(self):
|
|
|
|
|
|
|
|
if self._hosts is None:
|
|
|
|
|
|
|
|
self._hosts = set(self.hosts)
|
|
|
|
|
|
|
|
return self._hosts
|
|
|
|
|
|
|
|
|
|
|
|
def get_name(self):
|
|
|
|
def get_name(self):
|
|
|
|
return self.name
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
|
@ -119,7 +123,7 @@ class Group:
|
|
|
|
raise AnsibleError("The group named '%s' has a recursive dependency loop." % self.name)
|
|
|
|
raise AnsibleError("The group named '%s' has a recursive dependency loop." % self.name)
|
|
|
|
|
|
|
|
|
|
|
|
def add_host(self, host):
|
|
|
|
def add_host(self, host):
|
|
|
|
if host.name not in self._hosts:
|
|
|
|
if host.name not in self.host_names:
|
|
|
|
self.hosts.append(host)
|
|
|
|
self.hosts.append(host)
|
|
|
|
self._hosts.add(host.name)
|
|
|
|
self._hosts.add(host.name)
|
|
|
|
host.add_group(self)
|
|
|
|
host.add_group(self)
|
|
|
@ -127,7 +131,7 @@ class Group:
|
|
|
|
|
|
|
|
|
|
|
|
def remove_host(self, host):
|
|
|
|
def remove_host(self, host):
|
|
|
|
|
|
|
|
|
|
|
|
if host.name in self._hosts:
|
|
|
|
if host.name in self.host_names:
|
|
|
|
self.hosts.remove(host)
|
|
|
|
self.hosts.remove(host)
|
|
|
|
self._hosts.remove(host.name)
|
|
|
|
self._hosts.remove(host.name)
|
|
|
|
host.remove_group(self)
|
|
|
|
host.remove_group(self)
|
|
|
|