fog-powerdns-0.1.1/0000755000076400007640000000000012550763616013172 5ustar pravipravifog-powerdns-0.1.1/Gemfile0000644000076400007640000000013412550763616014463 0ustar pravipravisource 'https://rubygems.org' # Specify your gem's dependencies in fog-dns.gemspec gemspec fog-powerdns-0.1.1/fog-powerdns.gemspec0000644000076400007640000000221012550763616017144 0ustar pravipravi# coding: utf-8 lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'fog/powerdns/version' Gem::Specification.new do |spec| spec.name = "fog-powerdns" spec.version = Fog::PowerDNS::VERSION spec.authors = ["Chris Luo"] spec.email = ["luo_christopher@bah.com"] spec.summary = %q{Module for the 'fog' gem to support PowerDNS DNS services.} spec.description = %q{This library can be used as a module for 'fog' or as a standalone provider to use PowerDNS DNS services in applications.} spec.homepage = "http://github.com/cluobah/fog-powerdns" spec.license = "MIT" spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] spec.add_development_dependency "bundler", "~> 1.8" spec.add_development_dependency "rake", "~> 10.0" spec.add_dependency 'fog-core', '~> 1.27' spec.add_dependency 'fog-json', '~>1.0' spec.add_dependency 'fog-xml', '~>0.1' end fog-powerdns-0.1.1/LICENSE.txt0000644000076400007640000000210012550763616015006 0ustar pravipraviThe MIT License (MIT) Copyright (c) 2015 TODO: Write your name Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. fog-powerdns-0.1.1/CONTRIBUTORS.md0000644000076400007640000000004512550763616015450 0ustar pravipravi* Chris Luo fog-powerdns-0.1.1/lib/0000755000076400007640000000000012550763616013740 5ustar pravipravifog-powerdns-0.1.1/lib/fog/0000755000076400007640000000000012550763616014513 5ustar pravipravifog-powerdns-0.1.1/lib/fog/powerdns.rb0000644000076400007640000000023712550763616016703 0ustar pravipravirequire 'fog/powerdns/version' require 'fog/core' require 'fog/xml' module Fog module PowerDNS extend Fog::Provider service(:dns, 'DNS') end end fog-powerdns-0.1.1/lib/fog/powerdns/0000755000076400007640000000000012550763616016354 5ustar pravipravifog-powerdns-0.1.1/lib/fog/powerdns/version.rb0000644000076400007640000000007512550763616020370 0ustar pravipravimodule Fog module PowerDNS VERSION = "0.1.1" end end fog-powerdns-0.1.1/lib/fog/powerdns/dns.rb0000644000076400007640000000404712550763616017472 0ustar pravipravirequire 'fog/powerdns' module Fog module DNS class PowerDNS < Fog::Service requires :pdns_api_key recognizes :host, :port, :persistent, :scheme, :timeout model_path 'fog/powerdns/models/dns' model :zone collection :zones # collection :rrsets request_path 'fog/powerdns/requests/dns' request :list_servers request :get_server request :list_server_configs request :get_server_config request :update_server_config request :list_zones request :create_zone request :get_zone request :delete_zone request :update_rrsets request :update_zone request :notify_zone request :retrieve_zone request :list_cryptokeys request :get_cryptokey request :search_log request :get_server_stats class Mock end class Real def initialize(options={}) @pdns_api_key = options[:pdns_api_key] @connection_options = options[:connection_options] || {} @host = options[:host] || "127.0.0.1" @persistent = options[:persistent]|| false @port = options[:port] || 8081 @scheme = options[:scheme] || 'http' puts @api_key puts @persistent puts @connection_options puts @scheme puts @host puts @port @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) end def reload @connection.reset end def request(params) params[:headers] ||= {} params[:headers].merge!("X-API-key" => "#{@pdns_api_key}") params[:headers].merge!( "Accept" => "application/json", "Content-Type" => "application/json" ) response = @connection.request(params) unless response.body.empty? response.body = Fog::JSON.decode(response.body) end response end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/0000755000076400007640000000000012550763616020227 5ustar pravipravifog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/0000755000076400007640000000000012550763616021013 5ustar pravipravifog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/retrieve_zone.rb0000644000076400007640000000273312550763616024225 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Retrieves master # Authoritative only, zone must be set up as slave # (fails otherwise) # # ==== Parameters # * server<~String> - server id # * zone<~String> - zone name # # ==== Returns # TODO: Untested # * response<~Excon::Response>: # * body<~Hash>: # * 'id': <~String>, # * "name": <~String>, # * 'type': <~String>, # * 'url': <~String>, # * 'kind': <~String>, # * 'serial': <~Integer>, # * 'notified_serial': <~Int>, # * 'masters': <~Array, # * 'dnssec': <~Boolean>, # * 'nsec3param': <~String>, # * 'nsec3narrow': <~Boolean>, # * 'presigned': <~Boolean>, # * 'soa_edit': '<~String>', # * 'soa_edit_api': '<~String>', # * 'account': '<~String>', # * 'nameservers': <~Array>, # * 'servers': <~Array>, # * 'recursion_desired': <~Boolean>, # * 'records': <~Array>, # * 'comments': <~Array>, # * status<~Integer> 201 when successful def retrieve_zone(server, zone) request( :expects => 200, :method => 'PUT', :path => "/servers/#{server}/zones/#{zone}/axfr-retrieve" ) end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/get_cryptokey.rb0000644000076400007640000000166612550763616024241 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get details of a cryptokey # # ==== Parameters # * server<~String> - server id # * zone<~String> - zone id # * cryptokey<~String> - cryptokey id # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'type': <~String>, # * 'id': <~Integer>, # * 'active': <~Boolean>, # * 'keytype': <~String>, # * 'dnskey': <~String>, # * 'content': <~String>, # * 'ds': <~Array> # * status<~Integer> - 200 when successful # def get_cryptokey(server, zone, cryptokey) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/zones/#{zone}/cryptokeys/#{cryptokey}" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/list_zones.rb0000644000076400007640000000260312550763616023532 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get details of a server's DNS zones # # ==== Parameters # * server<~String> - server id # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * zone<~Hash>: # * 'id': <~String>, # * "name": <~String>, # * 'type': <~String>, # * 'url': <~String>, # * 'kind': <~String>, # * 'serial': <~Integer>, # * 'notified_serial': <~Int>, # * 'masters': <~Array, # * 'dnssec': <~Boolean>, # * 'nsec3param': <~String>, # * 'nsec3narrow': <~Boolean>, # * 'presigned': <~Boolean>, # * 'soa_edit': '<~String>', # * 'soa_edit_api': '<~String>', # * 'account': '<~String>', # * 'nameservers': <~Array>, # * 'servers': <~Array>, # * 'recursion_desired': <~Boolean>, # * 'records': <~Array>, # * 'comments': <~Array>, # * status<~Integer> 200 when successful def list_zones(server) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/zones" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/list_server_configs.rb0000644000076400007640000000133112550763616025407 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get all of a DNS server's config settings # # ==== Parameters # * server<~String> - server id # # ==== Returns # * response<~Excon::Response>: # * body<~Array>: # * Config<~Hash>: # * 'type': <~String>, # * 'name': <~String>, # * 'value': <~String> # * status<~String> - 200 when successful def list_server_configs(server) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/config" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/update_rrsets.rb0000644000076400007640000000260612550763616024230 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Modify existing RRset's of a zone # # ==== Parameters # server<~String> - server id # zone<~String> - zone id # options<~Hash> - see pdns api for rules # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'rrsets'<~Hash> The representation of the rrsets: # * 'name': <~String>, # * 'type': <~String>, # * 'changetype': <~String>, # * 'records' <~Hash> domain records: # * 'content': <~String>, # * 'name': <~String>, # * 'ttl': <~Integer>, # * 'type': <~String>, # * 'disabled': <~Boolean>, # * 'set-ptr': <~Boolean> # * 'comments' <~Hash> comments: # * 'account': <~String>, # * 'content': <~String>, # * 'modfied_at': <~Integer> def update_rrsets(server, zone, options = {}) options.each { |option, value| body[option] = value; } request( :body => Fog::JSON.encode(body), :expects => 200, :method => 'PATCH', :path => "/servers/#{server}/zones/#{zone}/" ) end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/update_server_config.rb0000644000076400007640000000172712550763616025544 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Update a specific config setting of one server # TODO: Can only get / retrieve recursor's allow_from # # ==== Parameters # * server<~String> - server id # * config<~String> - config name # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'type': <~String>, # * 'name': <~String>, # * 'value': <~String> # * status<~String> - 200 when successful def update_server_config(server, config, body) if config == 'allows_from' request( :body => body, :expects => 200, :method => 'PUT', :path => "/servers/#{server}/config/#{config}" ).body else puts 'Only allows_from config is allowed.' end end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/get_server_config.rb0000644000076400007640000000144512550763616025036 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get a specific config setting of one server # TODO: Can only get / retrieve recursor's allow_from # # ==== Parameters # * server<~String> - server id # * config<~String> - config name # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'type': <~String>, # * 'name': <~String>, # * 'value': <~String> # * status<~String> - 200 when successful def get_server_config(server, config) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/config/#{config}" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/create_zone.rb0000644000076400007640000000351412550763616023641 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Create a single zone in PowerDNS # Server, name and nameservers LIST are required # # ==== Parameters # * server<~String> - Server ID # * name<~String> - Name of domain # * nameservers<~Array> - List of nameservers # * options<~Hash> - Other options # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'id': <~String>, # * "name": <~String>, # * 'type': <~String>, # * 'url': <~String>, # * 'kind': <~String>, # * 'serial': <~Integer>, # * 'notified_serial': <~Int>, # * 'masters': <~Array, # * 'dnssec': <~Boolean>, # * 'nsec3param': <~String>, # * 'nsec3narrow': <~Boolean>, # * 'presigned': <~Boolean>, # * 'soa_edit': '<~String>', # * 'soa_edit_api': '<~String>', # * 'account': '<~String>', # * 'nameservers': <~Array>, # * 'servers': <~Array>, # * 'recursion_desired': <~Boolean>, # * 'records': <~Array>, # * 'comments': <~Array>, # * status<~Integer> 201 when successful def create_zone(server, name, nameservers, options = {}) body = { "name" => name, "nameservers" => nameservers } options.each { |option, value| body[option] = value; } request( :body => Fog::JSON.encode(body), :expects => 201, :method => 'POST', :path => "/servers/#{server}/zones" ).body end end class Mock # TODO: Write this end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/get_server.rb0000644000076400007640000000145312550763616023510 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get details of a DNS server # # ==== Parameters # * server<~String> - server id # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'type': <~String>, # * 'id': <~String>, # * 'url': <~String>, # * 'daemon_type': <~String>, # * 'version': <~String>, # * 'config_url': <~String>, # * 'zones_url': <~String>, # * status<~String> - 200 when successful def get_server(server) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/get_server_stats.rb0000644000076400007640000000131412550763616024722 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Retrieves server stats # # ==== Parameters # * server<~String> - server id # # ==== Returns # * response<~Excon::Response>: # * body<~Array>: # * statistics<~Hash>: # * 'type': <~String>, # * 'name': <~String>, # * 'value': <~String> # * status<~Integer> - 200 when successful def get_server_stats(server) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/statistics" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/list_cryptokeys.rb0000644000076400007640000000165212550763616024613 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get details of all public cryptokeys # # ==== Parameters # server<~String> - server id # zone<~String> - zone id # # ==== Returns # * response<~Excon::Response>: # * body<~Array>: # * Cryptokey<~Hash>: # * 'type': <~String>, # * 'id': <~Integer>, # * 'active': <~Boolean>, # * 'keytype': <~String>, # * 'dnskey': <~String>, # * 'content': <~String>, # * 'ds': <~Array> # * status<~Integer> - 200 when successful # def list_cryptokeys(server, zone) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/zones/#{zone}/cryptokeys" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/delete_zone.rb0000644000076400007640000000125412550763616023637 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Delete the zone from the server # Reference the zone to delete with server id and zone id # ==== Parameters # * server<~String> - server id # * zone<~String> - zone id # # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * status<~Integer> - 204 when successful # def delete_zone(server, zone) request( :expects => 204, :method => 'DELETE', :path => "/servers/#{server}/zones/#{zone}" ) end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/get_zone.rb0000644000076400007640000000247412550763616023161 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get details of a DNS zone # # ==== Parameters # * zone<~String> - Zone id # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'id': <~String>, # * "name": <~String>, # * 'type': <~String>, # * 'url': <~String>, # * 'kind': <~String>, # * 'serial': <~Integer>, # * 'notified_serial': <~Int>, # * 'masters': <~Array, # * 'dnssec': <~Boolean>, # * 'nsec3param': <~String>, # * 'nsec3narrow': <~Boolean>, # * 'presigned': <~Boolean>, # * 'soa_edit': '<~String>', # * 'soa_edit_api': '<~String>', # * 'account': '<~String>', # * 'nameservers': <~Array>, # * 'servers': <~Array>, # * 'recursion_desired': <~Boolean>, # * 'records': <~Array>, # * 'comments': <~Array>, # * status<~Integer> 200 when successful def get_zone(server, zone) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/zones/#{zone}" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/search_log.rb0000644000076400007640000000122012550763616023441 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Searches for term in server logs # # ==== Parameters # * server<~String> - server id # * term<~String> - search term # # ==== Returns # * response<~Excon::Response>: # * body<~Array>: # * log-line<~String> # * status<~Integer> - 200 when successful def search_log(server, term) request( :expects => 200, :method => 'GET', :path => "/servers/#{server}/search-log?q=#{term}" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/update_zone.rb0000644000076400007640000000307712550763616023664 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Modify a single zone in PowerDNS # # ==== Parameters # server<~String> - server id # zone<~String> - zone id # options<~Hash> - pairs enumerated below # # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * 'id': <~String>, # * "name": <~String>, # * 'type': <~String>, # * 'url': <~String>, # * 'kind': <~String>, # * 'serial': <~Integer>, # * 'notified_serial': <~Int>, # * 'masters': <~Array, # * 'dnssec': <~Boolean>, # * 'nsec3param': <~String>, # * 'nsec3narrow': <~Boolean>, # * 'presigned': <~Boolean>, # * 'soa_edit': '<~String>', # * 'soa_edit_api': '<~String>', # * 'account': '<~String>', # * 'nameservers': <~Array>, # * 'servers': <~Array>, # * 'recursion_desired': <~Boolean>, # * 'records': <~Array>, # * 'comments': <~Array>, # * status<~Integer> 200 when successful def update_zone(server, zone, options = {}) options.each { |option, value| body[option] = value; } request( :body => Fog::JSON.encode(body), :expects => 200, :method => 'PUT', :path => "/servers/#{server}/zones/#{zone}" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/notify_zone.rb0000644000076400007640000000275512550763616023714 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # DNS Notify all slaves of the zone # Authoritative only, zone must be set up as master # or slave (fails otherwise) # # ==== Parameters # * server<~String> - server id # * zone<~String> - zone name # # ==== Returns # TODO: Untested # * response<~Excon::Response>: # * body<~Hash>: # * 'id': <~String>, # * "name": <~String>, # * 'type': <~String>, # * 'url': <~String>, # * 'kind': <~String>, # * 'serial': <~Integer>, # * 'notified_serial': <~Int>, # * 'masters': <~Array, # * 'dnssec': <~Boolean>, # * 'nsec3param': <~String>, # * 'nsec3narrow': <~Boolean>, # * 'presigned': <~Boolean>, # * 'soa_edit': '<~String>', # * 'soa_edit_api': '<~String>', # * 'account': '<~String>', # * 'nameservers': <~Array>, # * 'servers': <~Array>, # * 'recursion_desired': <~Boolean>, # * 'records': <~Array>, # * 'comments': <~Array>, # * status<~Integer> 200 when successful def notify_zone(server, zone) request( :expects => 200, :method => 'PUT', :path => "/servers/#{server}/zones/#{zone}/notify" ) end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/requests/dns/list_servers.rb0000644000076400007640000000146312550763616024070 0ustar pravipravimodule Fog module DNS class PowerDNS class Real # Get details of all powerdns servers # # ==== Parameters # # # ==== Returns # * response<~Excon::Response>: # * body<~Hash>: # * server<~Array>: # * 'type': <~String>, # * 'id': <~String>, # * 'url': <~String>, # * 'daemon_type': <~String>, # * 'version': <~String>, # * 'config_url': <~String>, # * 'zones_url': <~String>, # * status<~String> - 200 when successful def list_servers request( :expects => 200, :method => 'GET', :path => "/servers" ).body end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/models/0000755000076400007640000000000012550763616017637 5ustar pravipravifog-powerdns-0.1.1/lib/fog/powerdns/models/dns/0000755000076400007640000000000012550763616020423 5ustar pravipravifog-powerdns-0.1.1/lib/fog/powerdns/models/dns/record.rb0000644000076400007640000000113612550763616022227 0ustar pravipravirequire 'fog/core/model' module Fog module DNS class PowerDNS class Record < Fog::Model # TODO: Needs work to comply with powerdns api identity :name attribute :content attribute :ttl attribute :type attribute :disabled attribute :set_ptr def initialize(attributes={}) super end def domain name end def destroy # service.delete_record(id) # TODO: maybe hack our own delete? this does nothing for now true end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/models/dns/records.rb0000644000076400007640000000060012550763616022405 0ustar pravipravirequire 'fog/core/collection' require 'fog/rage4/models/dns/record' module Fog module DNS class PowerDNS class Records < Fog::Collection attribute :zone model Fog::DNS::PowerDNS::Record def all requires :zone clear data = service.get_zone(zone)[:records] load(data) end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/models/dns/zone.rb0000644000076400007640000000137312550763616021727 0ustar pravipravirequire 'fog/core/model' # require 'fog/powerdns/models/dns/rrsets' module Fog module DNS class PowerDNS class Zone < Fog::Model identity :zone_id attribute :zone, :aliases => 'name' attribute :server_id def destroy service.delete_zone(identity) true end def records # TODO: Should rewrite this @records ||= begin Fog::DNS::PowerDNS::Records.new( :zone => self, :service => service ) end end def save requires :zone data = service.create_zone(zone).body["zone"] merge_attributes(data) true end end end end endfog-powerdns-0.1.1/lib/fog/powerdns/models/dns/zones.rb0000644000076400007640000000106412550763616022107 0ustar pravipravirequire 'fog/core/collection' require 'fog/powerdns/models/dns/zone' module Fog module DNS class PowerDNS class Zones < Fog::Collection model Fog::DNS::PowerDNS::Zone # attribute :zone, :aliases => 'name' def all clear data = service.list_zones.body load(data) end def get(zone) data = service.get_zone(zone).body['zone'] zone = new(data) zone rescue Fog::Service::NotFound puts 'help!' end end end end endfog-powerdns-0.1.1/.gitignore0000644000076400007640000000013612550763616015162 0ustar pravipravi/.bundle/ /.yardoc /Gemfile.lock /_yardoc/ /coverage/ /doc/ /pkg/ /spec/reports/ /tmp/ /.idea/fog-powerdns-0.1.1/Rakefile0000644000076400007640000000035112550763616014636 0ustar pravipravirequire "bundler/gem_tasks" def name @name ||= Dir['*.gemspec'].first.split('.').first end desc "Open an irb session preloaded with this library" task :console do puts "#{name}" sh "irb -rubygems -r ./lib/fog/powerdns.rb" endfog-powerdns-0.1.1/README.md0000644000076400007640000000210112550763616014443 0ustar pravipravi# Fog::PowerDNS Module for the 'fog' gem to support PowerDNS ## Installation Add this line to your application's Gemfile: ```ruby gem 'fog-powerdns' ``` And then execute: $ bundle Or install it yourself as: $ gem install fog-powerdns ## Usage TODO: Write usage instructions here ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing 1. Fork it ( https://github.com/[my-github-username]/fog-powerdns/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request fog-powerdns-0.1.1/metadata.yml0000644000076400007640000000777412550763616015514 0ustar pravipravi--- !ruby/object:Gem::Specification name: fog-powerdns version: !ruby/object:Gem::Version version: 0.1.1 platform: ruby authors: - Chris Luo autorequire: bindir: exe cert_chain: [] date: 2015-03-16 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: bundler requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.8' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.8' - !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '10.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '10.0' - !ruby/object:Gem::Dependency name: fog-core requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.27' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.27' - !ruby/object:Gem::Dependency name: fog-json requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.0' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.0' - !ruby/object:Gem::Dependency name: fog-xml requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '0.1' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '0.1' description: This library can be used as a module for 'fog' or as a standalone provider to use PowerDNS DNS services in applications. email: - luo_christopher@bah.com executables: [] extensions: [] extra_rdoc_files: [] files: - ".gitignore" - CONTRIBUTORS.md - Gemfile - LICENSE.txt - README.md - Rakefile - bin/console - bin/setup - fog-powerdns.gemspec - lib/fog/bin/powerdns.rb - lib/fog/powerdns.rb - lib/fog/powerdns/dns.rb - lib/fog/powerdns/models/dns/record.rb - lib/fog/powerdns/models/dns/records.rb - lib/fog/powerdns/models/dns/zone.rb - lib/fog/powerdns/models/dns/zones.rb - lib/fog/powerdns/requests/dns/create_zone.rb - lib/fog/powerdns/requests/dns/delete_zone.rb - lib/fog/powerdns/requests/dns/get_cryptokey.rb - lib/fog/powerdns/requests/dns/get_server.rb - lib/fog/powerdns/requests/dns/get_server_config.rb - lib/fog/powerdns/requests/dns/get_server_stats.rb - lib/fog/powerdns/requests/dns/get_zone.rb - lib/fog/powerdns/requests/dns/list_cryptokeys.rb - lib/fog/powerdns/requests/dns/list_server_configs.rb - lib/fog/powerdns/requests/dns/list_servers.rb - lib/fog/powerdns/requests/dns/list_zones.rb - lib/fog/powerdns/requests/dns/notify_zone.rb - lib/fog/powerdns/requests/dns/retrieve_zone.rb - lib/fog/powerdns/requests/dns/search_log.rb - lib/fog/powerdns/requests/dns/update_rrsets.rb - lib/fog/powerdns/requests/dns/update_server_config.rb - lib/fog/powerdns/requests/dns/update_zone.rb - lib/fog/powerdns/version.rb homepage: http://github.com/cluobah/fog-powerdns licenses: - MIT metadata: {} post_install_message: rdoc_options: [] require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: rubygems_version: 2.4.5 signing_key: specification_version: 4 summary: Module for the 'fog' gem to support PowerDNS DNS services. test_files: [] has_rdoc: