summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/interface/sunos.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider/interface/sunos.rb')
-rw-r--r--lib/puppet/provider/interface/sunos.rb133
1 files changed, 0 insertions, 133 deletions
diff --git a/lib/puppet/provider/interface/sunos.rb b/lib/puppet/provider/interface/sunos.rb
deleted file mode 100644
index eda21ca3d..000000000
--- a/lib/puppet/provider/interface/sunos.rb
+++ /dev/null
@@ -1,133 +0,0 @@
-require 'puppet/provider/parsedfile'
-require 'erb'
-
-Puppet::Type.type(:interface).provide(:sunos) do
- confine :kernel => "SunOS"
-
- # Add accessor/getter methods for each property/parameter; these methods
- # modify @property_hash.
- mk_resource_methods
-
- # Get a list of interface instances.
- def self.instances
- Dir.glob("/etc/hostname.*").collect do |file|
- device = File.basename(file).split(".").pop
-
- instance = new(:interface => device)
- instance.parse
- instance
- end
- end
-
- def self.match(hash)
- # see if we can match the has against an existing object
- if model.find { |obj| obj.value(:name) == hash[:name] }
- return obj
- else
- return false
- end
- end
-
- # Prefetch our interface list, yo.
- def self.prefetch(resources)
- instances.each do |prov|
- if resource = resources[prov.name]
- resource.provider = prov
- end
- end
- end
-
- def initialize(*args)
- @property_hash = {}
- super
- end
-
- def create
- self.class.resource_type.validproperties.each do |property|
- if value = resource.should(property)
- @property_hash[property] = value
- end
- end
- @property_hash[:name] = resource.name
-
- return (@resource.class.name.to_s + "_created").intern
- end
-
- def destroy
- File.unlink(file_path)
- @property_hash[:ensure] = :absent
- end
-
- def exists?
- FileTest.exist?(file_path)
- end
-
- # Where should the file be written out? Can be overridden by setting
- # :target in the model.
- def file_path
- self.fail("Could not determine interface") unless interface = @property_hash[:interface] || (resource and resource[:interface])
- return File.join("/etc", "hostname." + interface)
- end
-
- def flush
- return if self.ensure == :absent
- File.open(file_path, "w") { |f| f.print generate() + "\n" }
- end
-
- # Turn our record into a line.
- def generate
- ret = []
- if self.interface_type == :alias
- ret << "addif"
- end
- ret << self.name
-
- if self.ifopts != :absent
- if @property_hash[:ifopts].is_a?(Array)
- ret << @property_hash[:ifopts].join(" ")
- else
- ret << @property_hash[:ifopts]
- end
- end
-
- if self.onboot and ! [:absent, :false].include?(self.onboot)
- ret << "up"
- end
-
- return ret.join(" ")
- end
-
- # Parse our interface file.
- def parse
- (@property_hash = {:ensure => :absent} and return) unless FileTest.exist?(file_path)
-
- values = File.read(file_path).chomp.split(/\s+/)
-
- @property_hash[:ensure] = :present
- #@property_hash = {:ensure => :present}
-
- # Are we the primary interface?
- if values[0] == "addif"
- @property_hash[:interface_type] = :alias
- values.shift
- else
- @property_hash[:interface_type] = :normal
- end
-
- # Should the interface be up by default?
- if values[-1] == "up"
- @property_hash[:onboot] = :true
- values.pop
- else
- @property_hash[:onboot] = :false
- end
-
- # Set the interface name.
- @property_hash[:name] = values.shift
-
- # Handle any interface options
- unless values.empty?
- @property_hash[:ifopts] = values.join(" ")
- end
- end
-end