1879: def initialize(resource)
1880: raise Puppet::DevError, "Got TransObject instead of Resource or hash" if resource.is_a?(Puppet::TransObject)
1881: resource = self.class.hash2resource(resource) unless resource.is_a?(Puppet::Resource)
1882:
1883:
1884: @parameters = {}
1885:
1886:
1887: if resource.type.to_s.downcase.to_sym == self.class.name
1888: self.title = resource.title
1889: else
1890:
1891: self.title = resource.ref
1892: end
1893:
1894: [:file, :line, :catalog, :exported, :virtual].each do |getter|
1895: setter = getter.to_s + "="
1896: if val = resource.send(getter)
1897: self.send(setter, val)
1898: end
1899: end
1900:
1901: @tags = resource.tags
1902:
1903: @original_parameters = resource.to_hash
1904:
1905: set_name(@original_parameters)
1906:
1907: set_default(:provider)
1908:
1909: set_parameters(@original_parameters)
1910:
1911: self.validate if self.respond_to?(:validate)
1912: end