diff options
Diffstat (limited to 'lib/leap_cli')
| -rw-r--r-- | lib/leap_cli/config/manager.rb | 36 | 
1 files changed, 25 insertions, 11 deletions
| diff --git a/lib/leap_cli/config/manager.rb b/lib/leap_cli/config/manager.rb index dc74b6c..a88f7d0 100644 --- a/lib/leap_cli/config/manager.rb +++ b/lib/leap_cli/config/manager.rb @@ -47,18 +47,8 @@ module LeapCli            @nodes[name] = apply_inheritance(node)          end -        # remove disabled nodes -        @disabled_nodes = Config::ObjectList.new          unless options[:include_disabled] -          @nodes.select! do |name, node| -            if node.enabled -              true -            else -              log 2, :skipping, "disabled node #{name}." -              @disabled_nodes[name] = node -              false -            end -          end +          remove_disabled_nodes          end          # validate @@ -293,6 +283,30 @@ module LeapCli          return new_node        end +      def remove_disabled_nodes +        @disabled_nodes = Config::ObjectList.new +        @nodes.select! do |name, node| +          if node.enabled +            true +          else +            log 2, :skipping, "disabled node #{name}." +            @disabled_nodes[name] = node +            if node['services'] +              node['services'].to_a.each do |node_service| +                @services[node_service].node_list.delete(node.name) +              end +            end +            if node['tags'] +              node['tags'].to_a.each do |node_tag| +                @tags[node_tag].node_list.delete(node.name) +              end +            end +            false +          end +        end +      end + +        #        # returns a set of nodes corresponding to a single name, where name could be a node name, service name, or tag name.        # | 
