components/ruby/puppet/files/solaris/lib/puppet/type/evs_vport.rb
author Sungmin Lee <sungmin.lee@oracle.com>
Tue, 18 Aug 2015 15:07:30 -0700
changeset 4794 be62c55aa235
child 4801 c249904bb056
permissions -rw-r--r--
PSARC/2015/218 Add EVS support to Puppet 18043918 Add EVS support to Puppet
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
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    62
        desc "The full duplex bandwith for the virtual port"
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"
be62c55aa235 PSARC/2015/218 Add EVS support to Puppet
Sungmin Lee <sungmin.lee@oracle.com>
parents:
diff changeset
    72
        # verify protection value: comma(,) separatable
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