Sha256: fb6e712243e359efab73bc1b7b72cacc8742ffe4031c77af08c354dba8547ae5

Contents?: true

Size: 1.32 KB

Versions: 20

Compression:

Stored size: 1.32 KB

Contents

require "yaml"

module MCollective
  module Util
    class Playbook
      class Nodes
        class YamlNodes
          def initialize
            @group = nil
            @file = nil
          end

          def prepare; end

          def validate_configuration!
            raise("No node group YAML source file specified") unless @file
            raise("Node group YAML source file %s is not readable" % @file) unless File.readable?(@file)
            raise("No node group name specified") unless @group
            raise("No data group %s defined in the data file %s" % [@group, @file]) unless data.include?(@group)
            raise("Data group %s is not an array" % @group) unless data[@group].is_a?(Array)
            raise("Data group %s is empty" % @group) if data[@group].empty?
          end

          # Initialize the nodes source from a hash
          #
          # @param data [Hash] input with `group` and `source` keys
          # @return [PqlNodes]
          def from_hash(data)
            @group = data["group"]
            @file = data["source"]

            self
          end

          def data
            @_data ||= YAML.safe_load(File.read(@file))
          end

          # Performs the PQL query and extracts certnames
          def discover
            data[@group]
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
choria-mcorpc-support-2.26.5 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.26.4 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.26.3 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.26.2 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.26.1 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.26.0 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.25.3 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.25.2 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.25.1 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.25.0 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.24.4 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.24.3 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.24.2 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.24.1 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.24.0 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.23.3 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.23.2 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.23.1 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.23.0 lib/mcollective/util/playbook/nodes/yaml_nodes.rb
choria-mcorpc-support-2.23.0.pre lib/mcollective/util/playbook/nodes/yaml_nodes.rb