ispCP - Board - Support
DNS modularity, templating and rewriting DNS methods - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega Development Area (/forum-1.html)
+--- Forum: General discussion (/forum-11.html)
+--- Thread: DNS modularity, templating and rewriting DNS methods (/thread-12631.html)



DNS modularity, templating and rewriting DNS methods - uwe - 01-09-2011 10:26 PM

Hello,

I want to work on DNS methods, i'm planning to write a modular DNS ( http://isp-control.net/ispcp/ticket/2475 ) management to support BIND and PowerDNS ( http://isp-control.net/ispcp/ticket/524 ), and easily create customized methods to interact with external DNS systems ( http://isp-control.net/ispcp/wiki/wishlist_2_5#DNS ) and remove dmn alias and use add_dmn_named* methods.

In addition i wish to create a templating system for DNS that would allow admin and possibly resellers to create customized DNS templates to be used with new domains without the need to manually change dns template

I have started some primitive changes ( http://isp-control.net/forum/thread-12580.html ), but i need further guidelines, suggestions and help.

Some questions i have are:

* What parameters should be passed to named functions? currently too much info is passed in the form of poorly documented array. what is a better way to pass a template and a set of variables that can be easily enriched with new variables and keeping backward compatability. to make for example parameters passed to (just as example) als_add_named_cfg and dmn_add_named_cfg take same parametes and use common methods.

* When using the common DNS servers, PowerDNS and BIND, should they use different templating systems? or maybe the module would have function that creates domain from template, what if a module for external DNS is used and such a functionality is not an option ?

* What is the best way to create the templating system? i would think using a perl array reflecing the structure of DNS records, with numbered arguments to allow addition of variables easily as long as the order is preserved... or a hash with variable names exactly matching those in the template.

* What would happen with the customized dns records functionality? it is not compatable with the templating system currently in use, not to mention that its structure is not the most generic one i could think of ( some record fields are merged into one, dnt remember which ones at the moment )

* In the code in the post mentioned (last link) i was unable to use methods from common_methods.pl ; such as logging methods (i do not know why), maybe one could give me some pointers.

* any comments/ideas are appreciated.

Thanks,