class Proxy::Dns::Powerdns::PluginConfiguration
Public Instance Methods
load_classes()
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_configuration.rb, line 3 def load_classes require 'dns_common/dns_common' require 'smart_proxy_dns_powerdns/dns_powerdns_main' end
load_dependency_injection_wirings(container_instance, settings)
click to toggle source
# File lib/smart_proxy_dns_powerdns/dns_powerdns_configuration.rb, line 8 def load_dependency_injection_wirings(container_instance, settings) valid_backends = ['mysql', 'postgresql', 'rest', 'dummy'] backend = settings[:powerdns_backend] unless valid_backends.include?(backend) raise ::Proxy::Error::ConfigurationError.new("Invalid backend, is expected to be mysql, postgresql, rest or dummy") end begin require "smart_proxy_dns_powerdns/backend/#{backend}" rescue LoadError, e raise ::Proxy::Error::ConfigurationError.new("Failed to load backend #{backend}: #{e}") end case backend when 'mysql' container_instance.dependency :dns_provider, (lambda do Proxy::Dns::Powerdns::Backend::Mysql.new( settings[:dns_server], settings[:dns_ttl], settings[:powerdns_pdnssec], settings[:powerdns_mysql_hostname] || 'localhost', settings[:powerdns_mysql_username] || 'powerdns', settings[:powerdns_mysql_password] || '', settings[:powerdns_mysql_database] || 'pdns', ) end) when 'postgresql' container_instance.dependency :dns_provider, (lambda do Proxy::Dns::Powerdns::Backend::Postgresql.new( settings[:dns_server], settings[:dns_ttl], settings[:powerdns_pdnssec], settings[:powerdns_postgresql_connection] || 'dbname=pdns', ) end) when 'rest' raise ::Proxy::Error::ConfigurationError.new("Setting powerdns_rest_api_key must be non-empty") unless settings[:powerdns_rest_api_key] container_instance.dependency :dns_provider, (lambda do Proxy::Dns::Powerdns::Backend::Rest.new( settings[:dns_server], settings[:dns_ttl], settings[:powerdns_rest_url] || 'http://localhost:8081/api/v1/servers/localhost', settings[:powerdns_rest_api_key], ) end) when 'dummy' container_instance.dependency :dns_provider, (lambda do Proxy::Dns::Powerdns::Backend::Dummy.new( settings[:dns_server], settings[:dns_ttl], ) end) end end