components/ruby/puppet/files/solaris/lib/puppet/provider/address_object/solaris.rb
changeset 5438 c068f8c677e8
parent 5437 449f3459d285
child 5439 a006e5bb8577
--- a/components/ruby/puppet/files/solaris/lib/puppet/provider/address_object/solaris.rb	Wed Feb 10 16:31:24 2016 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
-#
-
-Puppet::Type.type(:address_object).provide(:address_object) do
-    desc "Provider for creating Oracle Solaris address objects"
-    confine :operatingsystem => [:solaris]
-    defaultfor :osfamily => :solaris, :kernelrelease => ['5.11', '5.12']
-    commands :ipadm => '/usr/sbin/ipadm'
-
-    def self.instances
-        ipadm("show-addr", "-p", "-o", "addrobj,type,state,addr").split(
-              "\n").collect do |line|
-            addrobj, type, state, addr = line.split(":", 4)
-
-            # replace any hypen with an underscore
-            type = type.gsub(/\-/, "_")
-
-            # look to see if this is a point-to-point address object
-            if addr.include?("->")
-                local, remote = addr.split("->")
-                local = local.delete("\\")
-                remote = remote.delete("\\")
-            elsif type.downcase == "dhcp" and addr == "?"
-                local = nil
-                remote = nil
-            else
-                local = addr.delete("\\")
-                remote = nil
-            end
-
-            down = :false
-            if state == "ok"
-                enable = :true
-            elsif state == "disabled"
-                enable = :false
-            elsif state == "down"
-                down = :true
-                enable = :true
-            end
-
-            new(:name => addrobj,
-                :ensure => :present,
-                :address_type => type,
-                :down => down,
-                :enable => enable,
-                :address => local,
-                :remote_address => remote)
-        end
-    end
-
-    def self.prefetch(resources)
-        # pull the instances on the system
-        addrobjs = instances
-
-        # set the provider for the resource to set the property_hash
-        resources.keys.each do |name|
-            if provider = addrobjs.find{ |addrobj| addrobj.name == name}
-                resources[name].provider = provider
-            end
-        end
-    end
-
-    # property getters
-    Puppet::Type.type(:address_object).validproperties.each do |field|
-        next if field == :ensure
-        define_method(field) do
-            @property_hash[field]
-        end
-    end
-
-    def enable=(value)
-        if value == :true
-            ipadm("enable-addr", "-t", @resource[:name])
-        elsif value == :false
-            ipadm("disable-addr", "-t", @resource[:name])
-        end
-    end
-    
-    def is_temp
-        temp = []
-        if @resource[:temporary] == :true
-            temp << "-t"
-        end
-        temp
-    end
-    
-    def down=(value)
-        if value == :true
-            ipadm("down-addr", is_temp, @resource[:name])
-        elsif value == :false
-            ipadm("up-addr", is_temp, @resource[:name])
-        end
-    end
-            
-    def add_options
-        options = []
-        if @resource[:temporary] == :true
-            options << "-t"
-        end
-
-        if address_type = @resource[:address_type]
-            options << "-T" << address_type
-        end
-
-        if address = @resource[:address]
-            options << "-a" << "local=#{address}"
-        end
-
-        if remote_address = @resource[:remote_address]
-            options << "-a" << "remote=#{remote_address}"
-        end
-
-        if @resource[:down] == :true
-            options << "-d"
-        end
-
-        if seconds = @resource[:seconds]
-            options << "-w" << seconds
-        end
-
-        if hostname = @resource[:hostname]
-            options << "-h" << hostname
-        end
-
-        if interface_id = @resource[:interface_id]
-            options << "-i" << "local=#{interface_id}"
-        end
-
-        if remote_interface_id = @resource[:remote_interface_id]
-            options << "-i" << "remote=#{remote_interface_id}"
-        end
-
-        if stateful = @resource[:stateful]
-            options << "-p" << "stateful=#{stateful}"
-        end
-
-        if stateless = @resource[:stateless]
-            options << "-p" << "stateless=#{stateless}"
-        end
-        options
-    end
-
-    def exists?
-        @property_hash[:ensure] == :present
-    end
-
-    def create
-        ipadm("create-addr", add_options, @resource[:name])
-    end
-
-    def destroy
-        ipadm("delete-addr", @resource[:name])
-    end
-end