def apply
raise InternalError.new( "@class_to_add empty for #{self.class}" ) if "#{@class_to_add}".empty?
@applied_status = :failed
fqdn = get_item( 'cli::network::hostname' ).value
@file = File.join( @dir, "#{fqdn}.yaml")
if File.exists?(@file)
debug( "Adding #{@class_to_add} to the class list in #{fqdn}.yaml file", [:GREEN] )
yaml = IO.readlines(@file)
File.open(@file, "w") do |f|
yaml.each do |line|
line.chomp!
if line =~ /^classes\s*:/
f.puts line
f.puts " - '#{@class_to_add}'"
else
f.puts line unless contains_class?(line)
end
end
end
@applied_status = :succeeded
else
error( "\nERROR: file not found: #{@file}", [:RED] )
end
end