def list_all_nodes(): # type: () -> None '''display a list of all nodes''' nodes = config.get_all_nodes() nodes.sort() for node in nodes: ignored = set(config.get_groups(node)) ignored &= param.IGNORE_GROUPS if OPT_FILTER_IGNORED and ignored: continue if OPT_IPADDRESS: node += ' ' + config.get_node_ipaddress(node) if OPT_RSYNC: if node in param.NO_RSYNC: node += ' no' else: node += ' yes' if ignored: node += ' (ignored)' print node
def list_all_nodes(): '''display a list of all nodes''' nodes = config.get_all_nodes() nodes.sort() for node in nodes: ignored = set(config.get_groups(node)) ignored &= param.IGNORE_GROUPS if OPT_FILTER_IGNORED and len(ignored) > 0: continue if OPT_IPADDRESS: node += ' ' + config.get_node_ipaddress(node) if OPT_RSYNC: if node in param.NO_RSYNC: node += ' no' else: node += ' yes' if len(ignored) > 0: node += ' (ignored)' print node
def addresses(self, silent=False): '''return list of addresses of relevant nodes''' # by default, work on default_nodeset if not self.nodelist and not self.grouplist: if not param.DEFAULT_NODESET: return [] self.nodelist = param.DEFAULT_NODESET # check if the nodes exist at all # the user may have given bogus names all_nodes = set(config.get_all_nodes()) unknown = (self.nodelist | self.exclude_nodes) - all_nodes if len(unknown) > 0: # it's nice to display "the first" unknown node # (at least, for numbered nodes) arr = list(unknown) arr.sort() stderr("no such node '%s'" % arr[0]) return None # check if the groups exist at all unknown = ((self.grouplist | self.exclude_groups) - param.ALL_GROUPS) for group in unknown: stderr("no such group '%s'" % group) return None self.nodelist |= config.get_nodes_in_groups(self.grouplist) self.exclude_nodes |= config.get_nodes_in_groups(self.exclude_groups) # remove excluded nodes from nodelist self.nodelist -= self.exclude_nodes if not self.nodelist: return [] addrs = [] ignored_nodes = self.nodelist & param.IGNORE_GROUPS self.nodelist -= ignored_nodes for node in self.nodelist: # ignoring a group results in also ignoring the node my_groups = set(config.get_groups(node)) my_groups &= param.IGNORE_GROUPS if len(my_groups) > 0: verbose('node %s is ignored due to an ignored group' % node) ignored_nodes.add(node) continue addr = config.get_node_ipaddress(node) self.namemap[addr] = node # make sure we do not have duplicates if addr not in addrs: addrs.append(addr) # print message about ignored nodes if not silent and len(ignored_nodes) > 0 and not synctool.lib.QUIET: if param.TERSE: synctool.lib.terse(synctool.lib.TERSE_WARNING, 'ignored nodes') else: arr = list(ignored_nodes) arr.sort() ignored_str = ('ignored: ' + synctool.range.compress(arr)) if len(ignored_str) < 70: warning(ignored_str) else: warning('some nodes are ignored') if synctool.lib.VERBOSE: for node in ignored_nodes: verbose('ignored: %s' % node) return addrs