diff options
| -rw-r--r-- | lib/leap_cli/commands/facts.rb | 2 | ||||
| -rw-r--r-- | lib/leap_cli/config/manager.rb | 11 | 
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/leap_cli/commands/facts.rb b/lib/leap_cli/commands/facts.rb index 43a04df..d607086 100644 --- a/lib/leap_cli/commands/facts.rb +++ b/lib/leap_cli/commands/facts.rb @@ -79,7 +79,7 @@ module LeapCli; module Commands    private    def update_facts(global_options, options, args) -    nodes = manager.filter(args) +    nodes = manager.filter(args, :local => false)      new_facts = {}      ssh_connect(nodes) do |ssh|        ssh.leap.run_with_progress(facter_cmd) do |response| diff --git a/lib/leap_cli/config/manager.rb b/lib/leap_cli/config/manager.rb index 1a66bff..00d2f97 100644 --- a/lib/leap_cli/config/manager.rb +++ b/lib/leap_cli/config/manager.rb @@ -182,9 +182,16 @@ module LeapCli        #        # if conditions is prefixed with +, then it works like an AND. Otherwise, it works like an OR.        # -      def filter(filters) +      # options: +      # :local -- if :local is false and the filter is empty, then local nodes are excluded. +      # +      def filter(filters, options={})          if filters.empty? -          return nodes +          if options[:local] === false +            return nodes[:environment => '!local'] +          else +            return nodes +          end          end          if filters[0] =~ /^\+/            # don't let the first filter have a + prefix  | 
