# File lib/smart_proxy_dns_powerdns/dns_powerdns_main.rb, line 22
    def initialize options = {}
      raise "dns_powerdns provider needs 'powerdns_mysql_hostname' option" unless options[:powerdns_mysql_hostname]
      raise "dns_powerdns provider needs 'powerdns_mysql_username' option" unless options[:powerdns_mysql_username]
      raise "dns_powerdns provider needs 'powerdns_mysql_password' option" unless options[:powerdns_mysql_password]
      raise "dns_powerdns provider needs 'powerdns_mysql_database' option" unless options[:powerdns_mysql_database]
      @mysql_connection = Mysql2::Client.new(
        :host => options[:powerdns_mysql_hostname],
        :username => options[:powerdns_mysql_username],
        :password => options[:powerdns_mysql_password],
        :database => options[:powerdns_mysql_database]
      )

      @powerdns_pdnssec = options[:powerdns_pdnssec] || false

      # Normalize the somewhat weird PTR API spec to name / content
      case options[:type]
      when "PTR"
        if options[:value] =~ /\.(in-addr|ip6)\.arpa$/
          @name = options[:value]
        else
          @name = IPAddr.new(options[:value]).reverse
        end
        @content = options[:fqdn]
      else
        @name = options[:fqdn]
        @content = options[:value]
      end

      super(options)
    end