author | Geoffrey Gardella <geoffrey.gardella@oracle.com> |
Mon, 16 Nov 2015 17:42:17 -0800 | |
changeset 5093 | b3ada587e28f |
parent 2081 | 1f1144fb0e4e |
permissions | -rw-r--r-- |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
1 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
2 |
# CDDL HEADER START |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
3 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
4 |
# The contents of this file are subject to the terms of the |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
5 |
# Common Development and Distribution License (the "License"). |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
6 |
# You may not use this file except in compliance with the License. |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
7 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
8 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
9 |
# or http://www.opensolaris.org/os/licensing. |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
10 |
# See the License for the specific language governing permissions |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
11 |
# and limitations under the License. |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
12 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
13 |
# When distributing Covered Code, include this CDDL HEADER in each |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
14 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
15 |
# If applicable, add the following below this CDDL HEADER, with the |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
16 |
# fields enclosed by brackets "[]" replaced with your own identifying |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
17 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
18 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
19 |
# CDDL HEADER END |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
20 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
21 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
22 |
# |
5093
b3ada587e28f
21026045 address_object puppet provider is broken when a point-to-point interface exists
Geoffrey Gardella <geoffrey.gardella@oracle.com>
parents:
2081
diff
changeset
|
23 |
# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
24 |
# |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
25 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
26 |
Puppet::Type.type(:address_object).provide(:address_object) do |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
27 |
desc "Provider for creating Oracle Solaris address objects" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
28 |
confine :operatingsystem => [:solaris] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
29 |
defaultfor :osfamily => :solaris, :kernelrelease => ['5.11', '5.12'] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
30 |
commands :ipadm => '/usr/sbin/ipadm' |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
31 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
32 |
def self.instances |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
33 |
ipadm("show-addr", "-p", "-o", "addrobj,type,state,addr").split( |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
34 |
"\n").collect do |line| |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
35 |
addrobj, type, state, addr = line.split(":", 4) |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
36 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
37 |
# replace any hypen with an underscore |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
38 |
type = type.gsub(/\-/, "_") |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
39 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
40 |
# look to see if this is a point-to-point address object |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
41 |
if addr.include?("->") |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
42 |
local, remote = addr.split("->") |
5093
b3ada587e28f
21026045 address_object puppet provider is broken when a point-to-point interface exists
Geoffrey Gardella <geoffrey.gardella@oracle.com>
parents:
2081
diff
changeset
|
43 |
local = local.delete("\\") |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
44 |
remote = remote.delete("\\") |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
45 |
elsif type.downcase == "dhcp" and addr == "?" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
46 |
local = nil |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
47 |
remote = nil |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
48 |
else |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
49 |
local = addr.delete("\\") |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
50 |
remote = nil |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
51 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
52 |
|
2038
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
53 |
down = :false |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
54 |
if state == "ok" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
55 |
enable = :true |
2038
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
56 |
elsif state == "disabled" |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
57 |
enable = :false |
2038
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
58 |
elsif state == "down" |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
59 |
down = :true |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
60 |
enable = :true |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
61 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
62 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
63 |
new(:name => addrobj, |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
64 |
:ensure => :present, |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
65 |
:address_type => type, |
2038
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
66 |
:down => down, |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
67 |
:enable => enable, |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
68 |
:address => local, |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
69 |
:remote_address => remote) |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
70 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
71 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
72 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
73 |
def self.prefetch(resources) |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
74 |
# pull the instances on the system |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
75 |
addrobjs = instances |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
76 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
77 |
# set the provider for the resource to set the property_hash |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
78 |
resources.keys.each do |name| |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
79 |
if provider = addrobjs.find{ |addrobj| addrobj.name == name} |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
80 |
resources[name].provider = provider |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
81 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
82 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
83 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
84 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
85 |
# property getters |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
86 |
Puppet::Type.type(:address_object).validproperties.each do |field| |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
87 |
next if field == :ensure |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
88 |
define_method(field) do |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
89 |
@property_hash[field] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
90 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
91 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
92 |
|
2038
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
93 |
def enable=(value) |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
94 |
if value == :true |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
95 |
ipadm("enable-addr", "-t", @resource[:name]) |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
96 |
elsif value == :false |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
97 |
ipadm("disable-addr", "-t", @resource[:name]) |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
98 |
end |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
99 |
end |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
100 |
|
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
101 |
def is_temp |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
102 |
temp = [] |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
103 |
if @resource[:temporary] == :true |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
104 |
temp << "-t" |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
105 |
end |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
106 |
temp |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
107 |
end |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
108 |
|
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
109 |
def down=(value) |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
110 |
if value == :true |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
111 |
ipadm("down-addr", is_temp, @resource[:name]) |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
112 |
elsif value == :false |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
113 |
ipadm("up-addr", is_temp, @resource[:name]) |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
114 |
end |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
115 |
end |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
116 |
|
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
117 |
def add_options |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
118 |
options = [] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
119 |
if @resource[:temporary] == :true |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
120 |
options << "-t" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
121 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
122 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
123 |
if address_type = @resource[:address_type] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
124 |
options << "-T" << address_type |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
125 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
126 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
127 |
if address = @resource[:address] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
128 |
options << "-a" << "local=#{address}" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
129 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
130 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
131 |
if remote_address = @resource[:remote_address] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
132 |
options << "-a" << "remote=#{remote_address}" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
133 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
134 |
|
2038
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
135 |
if @resource[:down] == :true |
b64efc6f1fe1
19145371 link properties continuously reapplied
David Miner <dave.miner@oracle.com>
parents:
1409
diff
changeset
|
136 |
options << "-d" |
1409
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
137 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
138 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
139 |
if seconds = @resource[:seconds] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
140 |
options << "-w" << seconds |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
141 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
142 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
143 |
if hostname = @resource[:hostname] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
144 |
options << "-h" << hostname |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
145 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
146 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
147 |
if interface_id = @resource[:interface_id] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
148 |
options << "-i" << "local=#{interface_id}" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
149 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
150 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
151 |
if remote_interface_id = @resource[:remote_interface_id] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
152 |
options << "-i" << "remote=#{remote_interface_id}" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
153 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
154 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
155 |
if stateful = @resource[:stateful] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
156 |
options << "-p" << "stateful=#{stateful}" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
157 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
158 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
159 |
if stateless = @resource[:stateless] |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
160 |
options << "-p" << "stateless=#{stateless}" |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
161 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
162 |
options |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
163 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
164 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
165 |
def exists? |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
166 |
@property_hash[:ensure] == :present |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
167 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
168 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
169 |
def create |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
170 |
ipadm("create-addr", add_options, @resource[:name]) |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
171 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
172 |
|
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
173 |
def destroy |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
174 |
ipadm("delete-addr", @resource[:name]) |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
175 |
end |
9db4ba32e740
PSARC/2013/218 Puppet Phase 2
Drew Fisher <drew.fisher@oracle.com>
parents:
diff
changeset
|
176 |
end |