示例#1
0
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
示例#2
0
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
示例#3
0
    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
示例#4
0
    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