1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
Puppet::Type.newtype(:dns_record2) do
@doc = %q{
}
#"named-checkconf -j -D -F raw $zonename $zonefile"
newproperty(:ensure) do
newvalue(:present) do
provider.create
end
newvalue(:absent) do
provider.destroy
end
defaultto :present
def retrieve
if provider.exists?
:present
else
:absent
end
end
end
def exists?
provider.exists?
end
newparam(:name) do
end
newproperty(:type) do
desc %q{
Resource Record type, such as A, AAAA, ...
Only a few types are supported, due to the DNS library only supporting these.
}
newvalues(:A,
:AAAA,
:CNAME,
:HINFO,
:MINFO,
:MX,
:NS,
:PTR,
:SOA,
:TXT,
:WKS,
)
end
newproperty(:value) do
desc %q{
DNS payload. For example an IP address.
}
end
newproperty(:key) do
desc %q{
DNS key.
Such as 'www'
}
end
newproperty(:zone) do
desc %q{
Zone this record belongs to
}
munge do |value|
if value[-1] == '.'
value
else
"#{value}."
end
end
end
newproperty(:cls) do
desc %q{
}
end
newproperty(:ttl) do
end
# autobefore('dns::zone') { value(:zone) }
autonotify('dns_zone2') { [value(:zone)] }
# autobefore('dns_zone2') { [value(:zone)] }
# TODO view
end
|