Project

General

Profile

Download (763 Bytes) Statistics
| Branch: | Tag: | Revision:
class Puppetclass < ActiveRecord::Base
has_and_belongs_to_many :environments
has_and_belongs_to_many :operatingsystems
has_and_belongs_to_many :hosts
has_and_belongs_to_many :hostgroups

validates_uniqueness_of :name
validates_presence_of :name
validates_associated :environments

# scans for puppet classes
# parameter is the module path
# returns an array of puppetclasses objects
def self.scanForClasses(path)
klasses=Array.new
Dir.glob("#{path}/*/manifests/**/*.pp").each do |manifest|
File.read(manifest).each_line do |line|
klass=line.match(/^class (\S+).*\{/)
klasses << Puppetclass.find_or_create_by_name(klass[1]) if klass
end
end
return klasses
end

def to_label
name
end
end
(19-19/22)