diff --git a/fog.gemspec b/fog.gemspec index fb9f1fea8..bae75368b 100644 --- a/fog.gemspec +++ b/fog.gemspec @@ -68,6 +68,7 @@ Gem::Specification.new do |s| s.add_dependency("fog-terremark") s.add_dependency("fog-vmfusion") s.add_dependency("fog-voxel") + s.add_dependency("fog-powerdns") s.add_development_dependency("docker-api", ">= 1.13.6") s.add_development_dependency("fission") diff --git a/lib/fog/bin.rb b/lib/fog/bin.rb index 156ffc32e..0abdda1d2 100644 --- a/lib/fog/bin.rb +++ b/lib/fog/bin.rb @@ -81,6 +81,7 @@ require 'fog/bin/rage4' require 'fog/bin/riakcs' require 'fog/bin/openstack' require 'fog/bin/ovirt' +require 'fog/bin/powerdns' require 'fog/bin/profitbricks' require 'fog/bin/sakuracloud' require 'fog/bin/serverlove' diff --git a/lib/fog/bin/powerdns.rb b/lib/fog/bin/powerdns.rb new file mode 100644 index 000000000..88e544770 --- /dev/null +++ b/lib/fog/bin/powerdns.rb @@ -0,0 +1,28 @@ +class Softlayer < Fog::Bin + class << self + def class_for(key) + case key + + when :dns + Fog::DNS::PowerDNS + else + raise ArgumentError, "Unsupported #{self} service: #{key}" + end + end + def [](service) + @@connections ||= Hash.new do |hash, key| + hash[key] = case key + when :dns + Fog::Logger.warning("PowerDNS[:dns] is not recommended, use DNS[:powerdns] for portability") + Fog::DNS.new(:provider => :powerdns) + else + raise ArgumentError, "Unrecognized service: #{key.inspect}" + end + end + @@connections[service] + end + def services + Fog::PowerDNS.services + end + end +end \ No newline at end of file diff --git a/spec/fog/bin/powerdns_spec.rb b/spec/fog/bin/powerdns_spec.rb index 3db1485f6..165c521df 100644 --- a/spec/fog/bin/powerdns_spec.rb +++ b/spec/fog/bin/powerdns_spec.rb @@ -3,7 +3,7 @@ require "fog" require "fog/bin" require "helpers/bin" -describe PowerDNS do +describe Fog::PowerDNS do include Fog::BinSpec let(:subject) { PowerDNS } end \ No newline at end of file