1719: def initialize(resource)
1720: raise Puppet::DevError, "Got TransObject instead of Resource or hash" if resource.is_a?(Puppet::TransObject)
1721: resource = self.class.hash2resource(resource) unless resource.is_a?(Puppet::Resource)
1722:
1723:
1724: @parameters = {}
1725:
1726:
1727: if resource.type.to_s.downcase.to_sym == self.class.name
1728: self.title = resource.title
1729: else
1730:
1731: self.title = resource.ref
1732: end
1733:
1734: [:file, :line, :catalog, :exported, :virtual].each do |getter|
1735: setter = getter.to_s + "="
1736: if val = resource.send(getter)
1737: self.send(setter, val)
1738: end
1739: end
1740:
1741: @tags = resource.tags
1742:
1743: @original_parameters = resource.to_hash
1744:
1745: set_name(@original_parameters)
1746:
1747: set_default(:provider)
1748:
1749: set_parameters(@original_parameters)
1750:
1751: self.validate if self.respond_to?(:validate)
1752: end