components/ruby/puppet-modules/oracle-solaris_providers/files/etc/puppet/modules/solaris_providers/lib/puppet/type/evs_vport.rb
author Shawn Ferry <shawn.ferry@oracle.com>
Wed, 10 Feb 2016 22:10:43 -0500
changeset 5438 c068f8c677e8
parent 4801 components/ruby/puppet/files/solaris/lib/puppet/type/evs_vport.rb@c249904bb056
permissions -rw-r--r--
PSARC/2016/016 Rename/Refactor Puppet and Puppet Module Packages 21041932 puppet, facter, and hiera need to build Ruby 2.1 packages 21042030 puppet, facter, and hiera need to stop building Ruby 1.9 packages 21613616 oracle-solaris_provider builds should come from the github repo we publish 22047789 puppet package name and dependencies are confusing 22301978 Overzealous use of $(RUBY_VERSION) in puppet packaging 22347610 GIT repos cannot be used as described in docs 22664785 Puppet module files should be owned by puppet 22675056 git clone could use --depth 1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4794
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     1
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     2
# CDDL HEADER START
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     3
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     7
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    10
# See the License for the specific language governing permissions
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    11
# and limitations under the License.
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    12
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    18
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    19
# CDDL HEADER END
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    20
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    21
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    22
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    23
# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    24
#
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    25
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    26
Puppet::Type.newtype(:evs_vport) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    27
    @doc = "Manage the configuration of EVS VPort"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    28
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    29
    ensurable do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    30
        newvalue(:present) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    31
            provider.create
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    32
        end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    33
        
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    34
        newvalue(:absent) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    35
            provider.destroy
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    36
        end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    37
        
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    38
        # Resets the specified VPort
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    39
        newvalue(:reset) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    40
            provider.reset
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    41
        end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    42
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    43
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    44
    newparam(:name) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    45
        desc "The full name of Virtual Port for EVS"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    46
        munge do |value|
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    47
            if value.split("/").length != 3
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    48
                raise Puppet::Error, "Invalid VPort name\n" \
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    49
                    "Name convention must be <tenant>/<evs>/<vport>"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    50
            else
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    51
                value
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    52
            end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    53
        end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    54
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    55
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    56
    ## read/write properties (always updatable) ##
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    57
    newproperty(:cos) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    58
        desc "802.1p priority on outbound packets on the virtual port"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    59
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    60
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    61
    newproperty(:maxbw) do
4801
c249904bb056 18043918 Add EVS support to Puppet (remove debugging code)
Sungmin Lee <sungmin.lee@oracle.com>
parents: 4794
diff changeset
    62
        desc "The full duplex bandwidth for the virtual port"
4794
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    63
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    64
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    65
    newproperty(:priority) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    66
        desc "Relative priority of virtual port"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    67
        newvalues("high", "medium", "low", "")
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    68
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    69
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    70
    newproperty(:protection) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    71
        desc "Enables one or more types of link protection"
4801
c249904bb056 18043918 Add EVS support to Puppet (remove debugging code)
Sungmin Lee <sungmin.lee@oracle.com>
parents: 4794
diff changeset
    72
        # verify protection value: comma(,) separable
4794
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    73
        validate do |value| 
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    74
            value.split(",").collect do |each_val|
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    75
                if not ["mac-nospoof", "restricted", "ip-nospoof", 
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    76
                    "dhcp-nospoof", "none", ""].include? each_val
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    77
                    raise Puppet::Error, "Invalid value \"#{each_val}\". "\
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    78
                        "Valid values are mac-nospoof, restricted, "\
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    79
                        "ip-nospoof, dhcp-nospoof, none."
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    80
                end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    81
            end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    82
        end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    83
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    84
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    85
    ## read-only properties (Settable upon creation) ##
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    86
    newproperty(:ipaddr) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    87
        desc "The IP address associated with the virtual port"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    88
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    89
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    90
    newproperty(:macaddr) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    91
        desc "The MAC address associated with the virtual port"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    92
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    93
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    94
    newproperty(:uuid) do
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    95
        desc "UUID of the virtual port"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    96
    end
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    97
end