File Coverage

blib/lib/DNS/Oterica.pm
Criterion Covered Total %
statement 6 6 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 8 8 100.0


line stmt bran cond sub pod time code
1 1     1   15327 use strict;
  1         1  
  1         23  
2 1     1   3 use warnings;
  1         1  
  1         48  
3             package DNS::Oterica;
4             # ABSTRACT: build dns configuration more easily
5             $DNS::Oterica::VERSION = '0.304';
6             #pod =head1 WARNING
7             #pod
8             #pod B<HIGHLY EXPERIMENTAL>
9             #pod
10             #pod This code is really not stable yet. We're using it, and we're going to feel
11             #pod free to make incompatible changes to it whenever we want. Eventually, that
12             #pod might change and we will reach a much stabler release cycle.
13             #pod
14             #pod This code has been released so that you can see what it does, use it
15             #pod cautiously, and help guide it toward a stable feature set.
16             #pod
17             #pod =head1 OVERVIEW
18             #pod
19             #pod DNS::Oterica is a system for generating DNS server configuration based on
20             #pod system definitions and role-based plugins. You need to provide a few things:
21             #pod
22             #pod =head2 domain definitions
23             #pod
24             #pod Domains are groups of hosts. You know, domains. This is a DNS tool. If you
25             #pod don't know what a domain is, you're in the wrong place.
26             #pod
27             #pod =head2 host definitions
28             #pod
29             #pod A host is a box with one or more interfaces. It is part of a domain, it has a
30             #pod hostname and maybe some aliases. It's a member of zero or more node groups.
31             #pod
32             #pod =head2 node families
33             #pod
34             #pod Nodes (both hosts and domains) can be parts of families. Families are groups
35             #pod of behavior that nodes perform. A family object is instantiated for each
36             #pod family, and once all nodes have been added to the DNS::Oterica hub, the family
37             #pod can emit more configuration.
38             #pod
39             #pod =head1 I WANT TO KNOW MORE
40             #pod
41             #pod Please read L<DNS::Oterica::Tutorial|DNS::Oterica::Tutorial>, which may or may
42             #pod not yet exist.
43             #pod
44             #pod =head1 TODO
45             #pod
46             #pod There's a lot of stuff to do.
47             #pod
48             #pod * determine location automatically based on world IP
49             #pod * look into replacing nodefamily behavior with Moose roles
50             #pod * rewrite tests to use Diagnostic recordmaker
51             #pod * thorough tests for TinyDNS recordmaker
52             #pod * simpler method to say "being in family X implies being in Y"
53             #pod * means to replace Module::Pluggable with list of families to register
54             #pod * means to track concepts like virts/zones, zonehosts, per-host interfaces
55             #pod
56             #pod =cut
57              
58             1;
59              
60             __END__
61              
62             =pod
63              
64             =encoding UTF-8
65              
66             =head1 NAME
67              
68             DNS::Oterica - build dns configuration more easily
69              
70             =head1 VERSION
71              
72             version 0.304
73              
74             =head1 OVERVIEW
75              
76             DNS::Oterica is a system for generating DNS server configuration based on
77             system definitions and role-based plugins. You need to provide a few things:
78              
79             =head2 domain definitions
80              
81             Domains are groups of hosts. You know, domains. This is a DNS tool. If you
82             don't know what a domain is, you're in the wrong place.
83              
84             =head2 host definitions
85              
86             A host is a box with one or more interfaces. It is part of a domain, it has a
87             hostname and maybe some aliases. It's a member of zero or more node groups.
88              
89             =head2 node families
90              
91             Nodes (both hosts and domains) can be parts of families. Families are groups
92             of behavior that nodes perform. A family object is instantiated for each
93             family, and once all nodes have been added to the DNS::Oterica hub, the family
94             can emit more configuration.
95              
96             =head1 WARNING
97              
98             B<HIGHLY EXPERIMENTAL>
99              
100             This code is really not stable yet. We're using it, and we're going to feel
101             free to make incompatible changes to it whenever we want. Eventually, that
102             might change and we will reach a much stabler release cycle.
103              
104             This code has been released so that you can see what it does, use it
105             cautiously, and help guide it toward a stable feature set.
106              
107             =head1 I WANT TO KNOW MORE
108              
109             Please read L<DNS::Oterica::Tutorial|DNS::Oterica::Tutorial>, which may or may
110             not yet exist.
111              
112             =head1 TODO
113              
114             There's a lot of stuff to do.
115              
116             * determine location automatically based on world IP
117             * look into replacing nodefamily behavior with Moose roles
118             * rewrite tests to use Diagnostic recordmaker
119             * thorough tests for TinyDNS recordmaker
120             * simpler method to say "being in family X implies being in Y"
121             * means to replace Module::Pluggable with list of families to register
122             * means to track concepts like virts/zones, zonehosts, per-host interfaces
123              
124             =head1 AUTHOR
125              
126             Ricardo SIGNES <rjbs@cpan.org>
127              
128             =head1 CONTRIBUTOR
129              
130             =for stopwords Chris Nehren
131              
132             Chris Nehren <apeiron@cpan.org>
133              
134             =head1 COPYRIGHT AND LICENSE
135              
136             This software is copyright (c) 2016 by Ricardo SIGNES.
137              
138             This is free software; you can redistribute it and/or modify it under
139             the same terms as the Perl 5 programming language system itself.
140              
141             =cut