[DRE-commits] [ruby-fog-dynect] 04/05: changed by Sagar Ippalpalli <i.vikram15 at gmail.com>

Praveen Arimbrathodiyil praveen at moszumanska.debian.org
Tue Feb 2 14:16:13 UTC 2016


This is an automated email from the git hooks/post-receive script.

praveen pushed a commit to branch master
in repository ruby-fog-dynect.

commit 4cd07c736c4393006ba124f10fc5f6853dd4eceb
Author: isaagar <i.vikram15 at gmail.com>
Date:   Tue Feb 2 14:47:36 2016 +0530

    changed by Sagar Ippalpalli <i.vikram15 at gmail.com>
---
 debian/debhelper-build-stamp                       |   2 +
 debian/files                                       |   1 +
 debian/ruby-fog-dynect.debhelper.log               |  19 +++
 debian/ruby-fog-dynect.substvars                   |   3 +
 debian/ruby-fog-dynect/DEBIAN/control              |  14 ++
 debian/ruby-fog-dynect/DEBIAN/md5sums              |  24 ++++
 .../usr/lib/ruby/vendor_ruby/fog/bin/dynect.rb     |  28 ++++
 .../usr/lib/ruby/vendor_ruby/fog/dynect.rb         |  33 +++++
 .../usr/lib/ruby/vendor_ruby/fog/dynect/dns.rb     | 155 +++++++++++++++++++++
 .../vendor_ruby/fog/dynect/models/dns/record.rb    |  65 +++++++++
 .../vendor_ruby/fog/dynect/models/dns/records.rb   |  47 +++++++
 .../ruby/vendor_ruby/fog/dynect/models/dns/zone.rb |  55 ++++++++
 .../vendor_ruby/fog/dynect/models/dns/zones.rb     |  24 ++++
 .../fog/dynect/requests/dns/delete_record.rb       |  55 ++++++++
 .../fog/dynect/requests/dns/delete_zone.rb         |  41 ++++++
 .../fog/dynect/requests/dns/get_all_records.rb     |  56 ++++++++
 .../fog/dynect/requests/dns/get_node_list.rb       |  55 ++++++++
 .../fog/dynect/requests/dns/get_record.rb          |  83 +++++++++++
 .../fog/dynect/requests/dns/get_zone.rb            |  57 ++++++++
 .../fog/dynect/requests/dns/post_record.rb         |  71 ++++++++++
 .../fog/dynect/requests/dns/post_session.rb        |  43 ++++++
 .../fog/dynect/requests/dns/post_zone.rb           |  70 ++++++++++
 .../fog/dynect/requests/dns/put_record.rb          |  76 ++++++++++
 .../fog/dynect/requests/dns/put_zone.rb            |  76 ++++++++++
 .../usr/lib/ruby/vendor_ruby/fog/dynect/version.rb |   5 +
 .../usr/share/doc/ruby-fog-dynect/README.md        |  58 ++++++++
 .../share/doc/ruby-fog-dynect/changelog.Debian.gz  | Bin 0 -> 172 bytes
 .../usr/share/doc/ruby-fog-dynect/changelog.gz     | Bin 0 -> 79 bytes
 .../usr/share/doc/ruby-fog-dynect/copyright        |  57 ++++++++
 .../all/specifications/fog-dynect-0.0.2.gemspec    |  46 ++++++
 30 files changed, 1319 insertions(+)

diff --git a/debian/debhelper-build-stamp b/debian/debhelper-build-stamp
new file mode 100644
index 0000000..21c7504
--- /dev/null
+++ b/debian/debhelper-build-stamp
@@ -0,0 +1,2 @@
+ruby-fog-dynect
+ruby-fog-dynect
diff --git a/debian/files b/debian/files
new file mode 100644
index 0000000..7fb2d73
--- /dev/null
+++ b/debian/files
@@ -0,0 +1 @@
+ruby-fog-dynect_0.0.2-1_all.deb ruby optional
diff --git a/debian/ruby-fog-dynect.debhelper.log b/debian/ruby-fog-dynect.debhelper.log
new file mode 100644
index 0000000..ef22e05
--- /dev/null
+++ b/debian/ruby-fog-dynect.debhelper.log
@@ -0,0 +1,19 @@
+dh_update_autotools_config
+dh_auto_configure
+dh_auto_build
+dh_auto_test
+dh_prep
+dh_installchangelogs
+dh_auto_install
+dh_installdocs
+dh_installchangelogs
+dh_perl
+dh_link
+dh_strip_nondeterminism
+dh_compress
+dh_fixperms
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_builddeb
diff --git a/debian/ruby-fog-dynect.substvars b/debian/ruby-fog-dynect.substvars
new file mode 100644
index 0000000..9546843
--- /dev/null
+++ b/debian/ruby-fog-dynect.substvars
@@ -0,0 +1,3 @@
+ruby:Versions=all
+misc:Depends=
+misc:Pre-Depends=
diff --git a/debian/ruby-fog-dynect/DEBIAN/control b/debian/ruby-fog-dynect/DEBIAN/control
new file mode 100644
index 0000000..abcd685
--- /dev/null
+++ b/debian/ruby-fog-dynect/DEBIAN/control
@@ -0,0 +1,14 @@
+Package: ruby-fog-dynect
+Version: 0.0.2-1
+Architecture: all
+Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
+Installed-Size: 70
+Depends: ruby | ruby-interpreter, ruby-fog-core, ruby-fog-json, ruby-fog-xml
+Section: ruby
+Priority: optional
+Homepage: http://github.com/fog/fog-dynect
+Description: Module for the 'fog' gem to support Dynect DNS
+ This library can be used as a module for `fog`
+ or as standalone provider to use Dynect DNS
+ in applications.
+Ruby-Versions: all
diff --git a/debian/ruby-fog-dynect/DEBIAN/md5sums b/debian/ruby-fog-dynect/DEBIAN/md5sums
new file mode 100644
index 0000000..03f833c
--- /dev/null
+++ b/debian/ruby-fog-dynect/DEBIAN/md5sums
@@ -0,0 +1,24 @@
+0380a445327a73e12c7897080808f039  usr/lib/ruby/vendor_ruby/fog/bin/dynect.rb
+ddfe33cf40c31efc5d0a10ada7628bc5  usr/lib/ruby/vendor_ruby/fog/dynect.rb
+df97d24aa426801044224481b3626a39  usr/lib/ruby/vendor_ruby/fog/dynect/dns.rb
+67bd5b0f80ad8cf27e2d6a93dbb37c7c  usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/record.rb
+333701463fb2aa1696b548eabfdadc7d  usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/records.rb
+ea73346da15e015e694b50bcc3093bc6  usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zone.rb
+2ed8cf9ee7c15937c560d40a8948accd  usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zones.rb
+1d846aa145c230bc47170fcbe1c79ef2  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_record.rb
+f0187f261c1925f4269ae9d70b4ce73d  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_zone.rb
+30fabd1c6b98a13fa567fb898b7b25f6  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_all_records.rb
+7c8270f8d0728ede47f47a733518cc18  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_node_list.rb
+2270ce34a2f03d9899164d961bf62182  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_record.rb
+03ff03cbc3182cd62d419108feda2af1  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_zone.rb
+a6137b90c645c3587ce9911bf415d31e  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_record.rb
+1eb573359ed3ffaee7ce8e682280a373  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_session.rb
+49d64611f0893f80da1722f917737952  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_zone.rb
+e078780282e4b0ff17fdb4014354a4bb  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_record.rb
+29416d14ab01623baedb5c7b040aaa5a  usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_zone.rb
+38f9734d083e16481f434e621deb2852  usr/lib/ruby/vendor_ruby/fog/dynect/version.rb
+8c40968d8a5a5b71a41c05bcb5405909  usr/share/doc/ruby-fog-dynect/README.md
+9251d19ab92fc863531b5eb9d772e3ef  usr/share/doc/ruby-fog-dynect/changelog.Debian.gz
+88f7e768e50669a4c3345f1a63506621  usr/share/doc/ruby-fog-dynect/changelog.gz
+c4af35b3d78fb045210b7566c4336a66  usr/share/doc/ruby-fog-dynect/copyright
+558fcc2a33405b7cb4bbdc1d5f9f820f  usr/share/rubygems-integration/all/specifications/fog-dynect-0.0.2.gemspec
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/bin/dynect.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/bin/dynect.rb
new file mode 100644
index 0000000..3ec4d68
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/bin/dynect.rb
@@ -0,0 +1,28 @@
+class Dynect < Fog::Bin
+  class << self
+    def class_for(key)
+      case key
+      when :dns
+        Fog::DNS::Dynect
+      else
+        raise ArgumentError, "Unrecognized service: #{key}"
+      end
+    end
+
+    def [](service)
+      @@connections ||= Hash.new do |hash, key|
+        hash[key] = case key
+        when :dns
+          Fog::DNS.new(:provider => 'Dynect')
+        else
+          raise ArgumentError, "Unrecognized service: #{service}"
+        end
+      end
+      @@connections[service]
+    end
+
+    def services
+      [:dns]
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect.rb
new file mode 100644
index 0000000..4b70293
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect.rb
@@ -0,0 +1,33 @@
+require 'nokogiri'
+
+require 'fog/core'
+require 'fog/json'
+require 'fog/xml'
+
+module Fog
+  module DNS
+    autoload :Dynect, File.expand_path('../dynect/dns', __FILE__)
+  end
+
+  module Dynect
+    extend Fog::Provider
+
+    autoload :VERSION, File.expand_path('../dynect/version', __FILE__)
+
+    service(:dns, 'DNS')
+
+    class Mock
+      def self.job_id
+        Fog::Mock.random_numbers(8).to_i
+      end
+
+      def self.token
+        Fog::Mock.random_hex(48)
+      end
+
+      def self.version
+        [Fog::Mock.random_numbers(1), Fog::Mock.random_numbers(1), Fog::Mock.random_numbers(1)].join('.')
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/dns.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/dns.rb
new file mode 100644
index 0000000..9649ed6
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/dns.rb
@@ -0,0 +1,155 @@
+module Fog
+  module DNS
+    class Dynect < Fog::Service
+      requires :dynect_customer, :dynect_username, :dynect_password
+      recognizes :timeout, :persistent, :job_poll_timeout
+      recognizes :provider # remove post deprecation
+
+      model_path 'fog/dynect/models/dns'
+      model       :record
+      collection  :records
+      model       :zone
+      collection  :zones
+
+      request_path 'fog/dynect/requests/dns'
+      request :delete_record
+      request :delete_zone
+      request :get_node_list
+      request :get_all_records
+      request :get_record
+      request :get_zone
+      request :post_record
+      request :post_session
+      request :post_zone
+      request :put_zone
+      request :put_record
+
+      class JobIncomplete < Error; end
+
+      class Mock
+        def initialize(options={})
+          @dynect_customer = options[:dynect_customer]
+          @dynect_username = options[:dynect_username]
+          @dynect_password = options[:dynect_password]
+        end
+
+        def self.data
+          @data ||= {
+            :zones => {}
+          }
+        end
+
+        def self.reset
+          @data = nil
+        end
+
+        def auth_token
+          @auth_token ||= Fog::Dynect::Mock.token
+        end
+
+        def data
+          self.class.data
+        end
+
+        def reset_data
+          self.class.reset
+        end
+      end
+
+      class Real
+        def initialize(options={})
+          @dynect_customer = options[:dynect_customer]
+          @dynect_username = options[:dynect_username]
+          @dynect_password = options[:dynect_password]
+
+          @connection_options = options[:connection_options] || {}
+          @host               = 'api-v4.dynect.net'
+          @port               = options[:port]             || 443
+          @path               = options[:path]             || '/REST'
+          @persistent         = options[:persistent]       || false
+          @scheme             = options[:scheme]           || 'https'
+          @version            = options[:version]          || '3.5.2'
+          @job_poll_timeout   = options[:job_poll_timeout] || 10
+          @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
+        end
+
+        def auth_token
+          @auth_token ||= post_session.body['data']['token']
+        end
+
+        def request(params)
+          begin
+            # any request could redirect to a job
+            params[:expects] = Array(params[:expects]) | [307]
+
+            params[:headers] ||= {}
+            params[:headers]['Content-Type'] = 'application/json'
+            params[:headers]['API-Version'] = @version
+            params[:headers]['Auth-Token'] = auth_token unless params[:path] == 'Session'
+            params[:path] = "#{@path}/#{params[:path]}" unless params[:path] =~ %r{^#{Regexp.escape(@path)}/}
+
+            response = @connection.request(params)
+
+            if response.body.empty?
+              response.body = {}
+            elsif response.headers['Content-Type'] == 'application/json'
+              response.body = Fog::JSON.decode(response.body)
+            end
+
+            if response.body['status'] == 'failure'
+              raise Error, response.body['msgs'].first['INFO']
+            end
+
+            if params[:path] !~ %r{^/REST/Job/}
+              if response.status == 307
+                response = poll_job(response, params[:expects], @job_poll_timeout)
+
+              # Dynect intermittently returns 200 with an incomplete status.  When this
+              # happens, the job should still be polled.
+              elsif response.status == 200 && response.body['status'].eql?('incomplete')
+                response.headers['Location'] = "/REST/Job/#{ response.body['job_id'] }"
+                response = poll_job(response, params[:expects], @job_poll_timeout)
+              end
+            end
+
+            response
+          rescue Excon::Errors::HTTPStatusError => error
+            if @auth_token && error.message =~ /login: (Bad or expired credentials|inactivity logout)/
+              @auth_token = nil
+              retry
+            else
+              raise error
+            end
+          end
+
+          response
+        end
+
+        def poll_job(response, original_expects, time_to_wait)
+          job_location = response.headers['Location']
+
+          begin
+            Fog.wait_for(time_to_wait) do
+             response = request(
+               :expects => original_expects,
+               :idempotent => true,
+               :method => :get,
+               :path => job_location
+             )
+             response.body['status'] != 'incomplete'
+            end
+
+          rescue Errors::TimeoutError => error
+            if response.body['status'] == 'incomplete'
+              raise JobIncomplete.new("Job #{response.body['job_id']} is still incomplete")
+            else
+              raise error
+            end
+          end
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/record.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/record.rb
new file mode 100644
index 0000000..0204696
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/record.rb
@@ -0,0 +1,65 @@
+module Fog
+  module DNS
+    class Dynect
+      class Record < Fog::Model
+        extend Fog::Deprecation
+
+        identity  :id
+        attribute :name,        :aliases => [:fqdn, 'fqdn']
+        attribute :rdata
+        attribute :serial_style
+        attribute :ttl
+        attribute :type,        :aliases => 'record_type'
+
+        def destroy
+          requires :identity, :name, :type, :zone
+          service.delete_record(type, zone.identity, name, identity)
+          true
+        end
+
+        def save(replace=false)
+          requires :name, :type, :rdata, :zone
+
+          options = {
+            :ttl => ttl
+          }
+          options.delete_if {|key, value| value.nil?}
+
+          if replace
+            data = service.put_record(type, zone.identity, name, rdata, options).body['data']
+          else
+            data = service.post_record(type, zone.identity, name, rdata, options).body['data']
+          end
+          # avoid overwriting zone object with zone string
+          data = data.reject {|key, value| key == 'zone'}
+          merge_attributes(data)
+
+          zone.publish
+          records = service.get_record(type, zone.identity, name).body['data']
+          # data in format ['/REST/xRecord/domain/fqdn/identity]
+          records.map! do |record|
+            tokens = record.split('/')
+            {
+              :identity => tokens.last,
+              :type     => tokens[2][0...-6] # everything before 'Record'
+            }
+          end
+          record = records.find {|record| record[:type] == type}
+          merge_attributes(record)
+
+          true
+        end
+
+        def zone
+          @zone
+        end
+
+        private
+
+        def zone=(new_zone)
+          @zone = new_zone
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/records.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/records.rb
new file mode 100644
index 0000000..1b871fb
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/records.rb
@@ -0,0 +1,47 @@
+require 'fog/dynect/models/dns/record'
+
+module Fog
+  module DNS
+    class Dynect
+      class Records < Fog::Collection
+        attribute :zone
+
+        model Fog::DNS::Dynect::Record
+
+        def all(options = {})
+          requires :zone
+          data = []
+          service.get_all_records(zone.domain, options).body['data'].each do |records|
+            (type, list) = records
+            list.each do |record|
+              data << {
+                :identity => record['record_id'],
+                :fqdn => record['fqdn'],
+                :type => record['record_type'],
+                :rdata => record['rdata']
+              }
+            end
+          end
+
+          load(data)
+        end
+
+        def get(record_id)
+          requires :zone
+
+          # there isn't a way to look up by just id
+          # must have type and domain for 'get_record' request
+          # so we pick it from the list returned by 'all'
+
+          list = all
+          list.detect {|e| e.id == record_id}
+        end
+
+        def new(attributes = {})
+          requires :zone
+          super({:zone => zone}.merge!(attributes))
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zone.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zone.rb
new file mode 100644
index 0000000..a8ab242
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zone.rb
@@ -0,0 +1,55 @@
+require 'fog/dynect/models/dns/records'
+
+module Fog
+  module DNS
+    class Dynect
+      class Zone < Fog::Model
+        identity  :domain
+
+        attribute :domain,        :aliases => 'zone'
+        attribute :email,         :aliases => 'rname'
+        attribute :serial
+        attribute :serial_style
+        attribute :ttl
+        attribute :type,          :aliases => 'zone_type'
+
+        def initialize(attributes={})
+          super
+        end
+
+        def destroy
+          requires :domain
+          service.delete_zone(domain)
+          true
+        end
+
+        undef_method :domain=
+        def domain=(new_domain)
+          attributes[:domain] = new_domain.split('/').last
+        end
+
+        def publish
+          requires :identity
+          data = service.put_zone(identity, 'publish' => true)
+          true
+        end
+
+        def records
+          @records ||= Fog::DNS::Dynect::Records.new(:zone => self, :service => service)
+        end
+
+        def nameservers
+          raise 'nameservers Not Implemented'
+        end
+
+        def save
+          self.ttl ||= 3600
+          requires :domain, :email, :ttl
+          data = service.post_zone(email, ttl, domain).body['data']
+          merge_attributes(data)
+          true
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zones.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zones.rb
new file mode 100644
index 0000000..4b76db6
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/models/dns/zones.rb
@@ -0,0 +1,24 @@
+require 'fog/dynect/models/dns/zone'
+
+module Fog
+  module DNS
+    class Dynect
+      class Zones < Fog::Collection
+        model Fog::DNS::Dynect::Zone
+
+        def all
+          data = service.get_zone.body['data'].map do |zone|
+            { :domain => zone }
+          end
+          load(data)
+        end
+
+        def get(zone_id)
+          new(service.get_zone('zone' => zone_id).body['data'])
+        rescue Excon::Errors::NotFound
+          nil
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_record.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_record.rb
new file mode 100644
index 0000000..9cbc6f6
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_record.rb
@@ -0,0 +1,55 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Delete a record
+        #
+        # ==== Parameters
+        # * type<~String> - type of record in ['AAAA', 'ANY', 'A', 'CNAME', 'DHCID', 'DNAME', 'DNSKEY', 'DS', 'KEY', 'LOC', 'MX', 'NSA', 'NS', 'PTR', 'PX', 'RP', 'SOA', 'SPF', 'SRV', 'SSHFP', 'TXT']
+        # * zone<~String> - zone of record
+        # * fqdn<~String> - fqdn of record
+        # * record_id<~String> - id of record
+
+        def delete_record(type, zone, fqdn, record_id)
+          request(
+            :expects  => 200,
+            :idempotent => true,
+            :method   => :delete,
+            :path     => ["#{type.to_s.upcase}Record", zone, fqdn, record_id].join('/')
+          )
+        end
+      end
+
+      class Mock
+        def delete_record(type, zone, fqdn, record_id)
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          raise Fog::DNS::Dynect::NotFound unless zone[:records][type].find { |record| record[:fqdn] == fqdn && record[:record_id] == record_id.to_i }
+
+          zone[:records_to_delete] << {
+            :type => type,
+            :fqdn => fqdn,
+            :record_id => record_id.to_i
+          }
+
+          response = Excon::Response.new
+          response.status = 200
+
+          response.body = {
+            "status" => "success",
+            "data" => {},
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "INFO" => "delete: Record will be deleted on zone publish",
+              "SOURCE" => "BLL",
+              "ERR_CD" => nil,
+              "LVL" => "INFO"
+            }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_zone.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_zone.rb
new file mode 100644
index 0000000..1e54acc
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/delete_zone.rb
@@ -0,0 +1,41 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Delete a zone
+        #
+        # ==== Parameters
+        # * zone<~String> - zone to host
+
+        def delete_zone(zone)
+          request(
+            :expects  => 200,
+            :method   => :delete,
+            :path     => "Zone/#{zone}"
+          )
+        end
+      end
+
+      class Mock
+        def delete_zone(zone)
+          self.data[:zones].delete(zone)
+
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "status" => "success",
+            "data" => {},
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "ERR_CD" => '',
+              "INFO" => '',
+              "LVL" => '',
+              "SOURCE" => ''
+            }]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_all_records.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_all_records.rb
new file mode 100644
index 0000000..13e8d78
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_all_records.rb
@@ -0,0 +1,56 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Get one or more node lists
+        #
+        # ==== Parameters
+        # * zone<~String> - zone to lookup node lists for
+        # * options<~Hash>
+        #   * fqdn<~String> - fully qualified domain name of node to lookup
+
+        def get_all_records(zone, options = {})
+          requested_fqdn = options['fqdn'] || options[:fqdn]
+          request(
+            :expects  => 200,
+            :idempotent => true,
+            :method   => :get,
+            :path     => ['AllRecord', zone, requested_fqdn].compact.join('/'),
+            :query    => {'detail' => 'Y'} # return full records, instead of just resource URLs
+          )
+        end
+      end
+
+      class Mock
+        def get_all_records(zone, options = {})
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          response = Excon::Response.new
+          response.status = 200
+
+          data = [zone[:zone]]
+
+          if fqdn = options[:fqdn]
+            data = data | zone[:records].map { |type, records| records.select { |record| record[:fqdn] == fqdn } }.flatten.compact
+          else
+            data = data | zone[:records].map { |type, records| records.map { |record| record[:fqdn] } }.flatten
+          end
+
+          response.body = {
+            "status" => "success",
+            "data" => data,
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "INFO" => "get_tree: Here is your zone tree",
+              "SOURCE" => "BLL",
+              "ERR_CD" => nil,
+              "LVL" => "INFO"
+            }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_node_list.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_node_list.rb
new file mode 100644
index 0000000..d692c2d
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_node_list.rb
@@ -0,0 +1,55 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Get one or more node lists
+        #
+        # ==== Parameters
+        # * zone<~String> - zone to lookup node lists for
+        # * options<~Hash>
+        #   * fqdn<~String> - fully qualified domain name of node to lookup
+
+        def get_node_list(zone, options = {})
+          requested_fqdn = options['fqdn'] || options[:fqdn]
+          request(
+            :expects  => 200,
+            :idempotent => true,
+            :method   => :get,
+            :path     => ['AllRecord', zone, requested_fqdn].compact.join('/')
+          )
+        end
+      end
+
+      class Mock
+        def get_node_list(zone, options = {})
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          response = Excon::Response.new
+          response.status = 200
+
+          data = [zone[:zone]]
+
+          if fqdn = options[:fqdn]
+            data = data | zone[:records].map { |type, records| records.select { |record| record[:fqdn] == fqdn } }.flatten.compact
+          else
+            data = data | zone[:records].map { |type, records| records.map { |record| record[:fqdn] } }.flatten
+          end
+
+          response.body = {
+            "status" => "success",
+            "data" => data,
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "INFO" => "get_tree: Here is your zone tree",
+              "SOURCE" => "BLL",
+              "ERR_CD" => nil,
+              "LVL" => "INFO"
+            }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_record.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_record.rb
new file mode 100644
index 0000000..e58c036
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_record.rb
@@ -0,0 +1,83 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # List records of a given type
+        #
+        # ==== Parameters
+        # * type<~String> - type of record in ['AAAA', 'ANY', 'A', 'CNAME', 'DHCID', 'DNAME', 'DNSKEY', 'DS', 'KEY', 'LOC', 'MX', 'NSA', 'NS', 'PTR', 'PX', 'RP', 'SOA', 'SPF', 'SRV', 'SSHFP', 'TXT']
+        # * zone<~String> - name of zone to lookup
+        # * fqdn<~String> - name of fqdn to lookup
+        # * options<~Hash>:
+        #   * record_id<~String> - id of record
+
+        def get_record(type, zone, fqdn, options = {})
+          request(
+            :expects  => 200,
+            :idempotent => true,
+            :method   => :get,
+            :path     => ["#{type.to_s.upcase}Record", zone, fqdn, options['record_id']].compact.join('/')
+          )
+        end
+      end
+
+      class Mock
+        def get_record(type, zone, fqdn, options = {})
+          raise ArgumentError unless [
+            'AAAA', 'ANY', 'A', 'CNAME',
+            'DHCID', 'DNAME', 'DNSKEY',
+            'DS', 'KEY', 'LOC', 'MX',
+            'NSA', 'NS', 'PTR', 'PX',
+            'RP', 'SOA', 'SPF', 'SRV',
+            'SSHFP', 'TXT'
+          ].include? type
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          response = Excon::Response.new
+          response.status = 200
+
+          if record_id = options['record_id']
+            raise Fog::DNS::Dynect::NotFound unless record = zone[:records][type].find { |record| record[:record_id] == record_id.to_i }
+            response.body = {
+              "status" => "success",
+              "data" => {
+                "zone" => record[:zone][:zone],
+                "ttl" => record[:ttl],
+                "fqdn" => record[:fqdn],
+                "record_type" => type,
+                "rdata" => record[:rdata],
+                "record_id" => record[:record_id]
+              },
+              "job_id" => Fog::Dynect::Mock.job_id,
+              "msgs" => [{
+                "INFO" => "get: Found the record",
+                "SOURCE" => "API-B",
+                "ERR_CD" => nil,
+                "LVL" => "INFO"
+              }]
+            }
+          else
+            records = if type == "ANY"
+                        zone[:records].values.flatten.select { |record| record[:fqdn] == fqdn }
+                      else
+                        zone[:records][type].select { |record| record[:fqdn] == fqdn }
+                      end
+            response.body = {
+              "status" => "success",
+              "data" => records.map { |record| "/REST/#{record[:type]}Record/#{record[:zone][:zone]}/#{record[:fqdn]}/#{record[:record_id]}" },
+              "job_id" => Fog::Dynect::Mock.job_id,
+              "msgs" => [{
+                "INFO" => "detail: Found #{records.size} record",
+                "SOURCE" => "BLL",
+                "ERR_CD" => nil,
+                "LVL" => "INFO"
+              }]
+            }
+          end
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_zone.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_zone.rb
new file mode 100644
index 0000000..9ccc5dc
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/get_zone.rb
@@ -0,0 +1,57 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Get one or more zones
+        #
+        # ==== Parameters
+        # * options<~Hash>:
+        #   * zone<~String> - name of zone to lookup, or omit to return list of zones
+
+        def get_zone(options = {})
+          request(
+            :expects  => 200,
+            :idempotent => true,
+            :method   => :get,
+            :path     => ['Zone', options['zone']].compact.join('/')
+          )
+        end
+      end
+
+      class Mock
+        def get_zone(options = {})
+          if options['zone']
+            raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][options['zone']]
+            data = {
+              "zone_type" => zone[:zone_type],
+              "serial_style" => zone[:serial_style],
+              "serial" => zone[:serial],
+              "zone" => zone[:zone]
+            }
+            info = "get: Your zone, #{zone[:zone]}"
+          else
+            data = self.data[:zones].map { |zone, data| "/REST/Zone/#{zone}/" }
+            info = "get: Your #{data.size} zones"
+          end
+
+          response = Excon::Response.new
+          response.status = 200
+
+          response.body = {
+            "status" => "success",
+            "data" => data,
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "INFO" => info,
+              "SOURCE" => "BLL",
+              "ERR_CD" => nil,
+              "LVL" => "INFO"
+            }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_record.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_record.rb
new file mode 100644
index 0000000..126bec0
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_record.rb
@@ -0,0 +1,71 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Create a record
+        #
+        # ==== Parameters
+        # * type<~String> - type of record in ['AAAA', 'ANY', 'A', 'CNAME', 'DHCID', 'DNAME', 'DNSKEY', 'DS', 'KEY', 'LOC', 'MX', 'NSA', 'NS', 'PTR', 'PX', 'RP', 'SOA', 'SPF', 'SRV', 'SSHFP', 'TXT']
+        # * zone<~String> - zone of record
+        # * rdata<~Hash> - rdata for record
+        # * options<~Hash>: (options vary by type, listing below includes common parameters)
+        #   * ttl<~Integer> - ttl for the record, defaults to zone ttl
+
+        def post_record(type, zone, fqdn, rdata, options = {})
+          options.merge!('rdata' => rdata)
+          request(
+            :body     => Fog::JSON.encode(options),
+            :expects  => 200,
+            :method   => :post,
+            :path     => ["#{type.to_s.upcase}Record", zone, fqdn].join('/')
+          )
+        end
+      end
+
+      class Mock
+        def post_record(type, zone, fqdn, rdata, options = {})
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          records = zone[:records]
+          record_id = zone[:next_record_id]
+          zone[:next_record_id] += 1
+
+          record = {
+            :type => type,
+            :zone => zone,
+            :fqdn => fqdn,
+            :rdata => rdata,
+            :ttl => options[:ttl] || zone[:ttl],
+            :record_id => record_id
+          }
+
+          records[type] << record
+
+          response = Excon::Response.new
+          response.status = 200
+
+          response.body = {
+            "status" => "success",
+            "data" => {
+              "zone" => record[:zone][:zone],
+              "ttl" => record[:ttl],
+              "fqdn" => record[:fqdn],
+              "record_type" => record[:type],
+              "rdata" => record[:rdata],
+              "record_id" => record[:record_id]
+           },
+           "job_id" => Fog::Dynect::Mock.job_id,
+           "msgs" => [{
+             "INFO"=>"add: Record added",
+             "SOURCE"=>"BLL",
+             "ERR_CD"=>nil,
+             "LVL"=>"INFO"
+           }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_session.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_session.rb
new file mode 100644
index 0000000..3aa3d82
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_session.rb
@@ -0,0 +1,43 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        def post_session
+          request(
+            :expects  => 200,
+            :idempotent => true,
+            :method   => :post,
+            :path     => "Session",
+            :body     => Fog::JSON.encode({
+              :customer_name  => @dynect_customer,
+              :user_name      => @dynect_username,
+              :password       => @dynect_password
+            })
+          )
+        end
+      end
+
+      class Mock
+        def post_session
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "status" => "success",
+            "data" => {
+              "token" => auth_token,
+              "version" => Fog::Dynect::Mock.version
+            },
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs"=>[{
+              "INFO"=>"login: Login successful",
+              "SOURCE"=>"BLL",
+              "ERR_CD"=>nil,
+              "LVL"=>"INFO"
+            }]
+          }
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_zone.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_zone.rb
new file mode 100644
index 0000000..579b642
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/post_zone.rb
@@ -0,0 +1,70 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Create a zone
+        #
+        # ==== Parameters
+        # * rname<~String> - administrative contact
+        # * ttl<~Integer> - time to live (in seconds) for records in this zone
+        # * zone<~String> - name of zone to host
+        # * options<~Hash>:
+        #   * serial_style<~String> - style of serial number, in ['day', 'epoch', 'increment', 'minute']. Defaults to increment
+
+        def post_zone(rname, ttl, zone, options = {})
+          body = Fog::JSON.encode({
+            :rname  => rname,
+            :token  => auth_token,
+            :ttl    => ttl
+          }.merge!(options))
+
+          request(
+            :body     => body,
+            :expects  => 200,
+            :method   => :post,
+            :path     => 'Zone/' << zone
+          )
+        end
+      end
+
+      class Mock
+        def post_zone(rname, ttl, zone, options = {})
+          new_zone = self.data[:zones][zone] = {
+            :next_record_id => 0,
+            :records => Hash.new do |records_hash, type|
+              records_hash[type] = []
+            end,
+            :records_to_delete => [],
+            :rname => rname,
+            :serial_style => options[:serial_style] || "increment",
+            :serial => 0,
+            :ttl => ttl,
+            :zone => zone,
+            :zone_type => "Primary"
+          }
+
+          response = Excon::Response.new
+          response.status = 200
+          response.body = {
+            "status" => "success",
+            "data" => {
+              "zone_type" => new_zone[:zone_type],
+              "serial_style" => new_zone[:serial_style],
+              "serial" => new_zone[:serial],
+              "zone" => zone
+            },
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "INFO" => "create: New zone #{zone} created.  Publish it to put it on our server.",
+              "SOURCE" => "BLL",
+              "ERR_CD" => nil,
+              "LVL" => "INFO"
+            }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_record.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_record.rb
new file mode 100644
index 0000000..5f5f6a3
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_record.rb
@@ -0,0 +1,76 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Update or replace a record
+        #
+        # ==== Parameters
+        # * type<~String> - type of record in ['AAAA', 'ANY', 'A', 'CNAME', 'DHCID', 'DNAME', 'DNSKEY', 'DS', 'KEY', 'LOC', 'MX', 'NSA', 'NS', 'PTR', 'PX', 'RP', 'SOA', 'SPF', 'SRV', 'SSHFP', 'TXT']
+        # * zone<~String> - zone of record
+        # * rdata<~Hash> - rdata for record
+        # * options<~Hash>: (options vary by type, listing below includes common parameters)
+        #   * ttl<~Integer> - ttl for the record, defaults to zone ttl
+
+        def put_record(type, zone, fqdn, rdata, options = {})
+          options.merge!('rdata' => rdata)
+          type.to_s.upcase!
+          options = {"#{type}Records" => [options]} unless options['record_id']
+          path = ["#{type}Record", zone, fqdn].join('/')
+          path += "/#{options.delete('record_id')}" if options['record_id']
+          request(
+            :body       => Fog::JSON.encode(options),
+            :expects    => 200,
+            :idempotent => true,
+            :method     => :put,
+            :path       => path
+          )
+        end
+      end
+
+      class Mock
+        def put_record(type, zone, fqdn, rdata, options = {})
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          records = zone[:records]
+          record_id = zone[:next_record_id]
+          zone[:next_record_id] += 1
+
+          record = {
+            :type => type,
+            :zone => zone,
+            :fqdn => fqdn,
+            :rdata => rdata,
+            :ttl => options[:ttl] || zone[:ttl],
+            :record_id => record_id
+          }
+
+          records[type] << record
+
+          response = Excon::Response.new
+          response.status = 200
+
+          response.body = {
+            "status" => "success",
+            "data" => {
+              "zone" => record[:zone][:zone],
+              "ttl" => record[:ttl],
+              "fqdn" => record[:fqdn],
+              "record_type" => record[:type],
+              "rdata" => record[:rdata],
+              "record_id" => record[:record_id]
+           },
+           "job_id" => Fog::Dynect::Mock.job_id,
+           "msgs" => [{
+             "INFO"=>"add: Record added",
+             "SOURCE"=>"BLL",
+             "ERR_CD"=>nil,
+             "LVL"=>"INFO"
+           }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_zone.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_zone.rb
new file mode 100644
index 0000000..c421061
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/requests/dns/put_zone.rb
@@ -0,0 +1,76 @@
+module Fog
+  module DNS
+    class Dynect
+      class Real
+        # Update a zone
+        #
+        # ==== Parameters
+        # * zone<~String> - name or id of zone
+        # * options<~Hash>:
+        #   * freeze<~Boolean> - causes zone to become frozen
+        #   * publish<~Boolean> - causes all pending changes to be pushed to nameservers
+        #   * thaw<~Boolean> - causes zone to cease being frozen
+
+        def put_zone(zone, options = {})
+          request(
+            :body       => Fog::JSON.encode(options),
+            :expects    => 200,
+            :idempotent => true,
+            :method     => :put,
+            :path       => 'Zone/' << zone
+          )
+        end
+      end
+
+      class Mock
+        def put_zone(zone, options = {})
+          raise Fog::DNS::Dynect::NotFound unless zone = self.data[:zones][zone]
+
+          raise ArgumentError unless options.size == 1
+
+          response = Excon::Response.new
+          response.status = 200
+
+          data = {}
+
+          if options['freeze']
+            zone['frozen'] = true
+            info = "freeze: Your zone is now frozen"
+          elsif options['publish']
+            zone[:changes] = {}
+            zone[:records_to_delete].each do |record|
+              zone[:records][record[:type]].delete_if { |r| r[:fqdn] == record[:fqdn] && r[:record_id] == record[:record_id] }
+            end
+            zone[:records_to_delete] = []
+            data = {
+              "zone_type" => zone[:zone_type],
+              "serial_style" => zone[:serial_style],
+              "serial" => zone[:serial] += 1,
+              "zone" => zone[:zone]
+            }
+            info = "publish: #{zone[:zone]} published"
+          elsif options['thaw']
+            zone[:frozen] = false
+            info = "thaw: Your zone is now thawed, you may edit normally"
+          else
+            raise ArgumentError
+          end
+
+          response.body = {
+            "status" => "success",
+            "data" => data,
+            "job_id" => Fog::Dynect::Mock.job_id,
+            "msgs" => [{
+              "INFO" => info,
+              "SOURCE"=>"BLL",
+              "ERR_CD"=>nil,
+              "LVL"=>"INFO"
+            }]
+          }
+
+          response
+        end
+      end
+    end
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/version.rb b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/version.rb
new file mode 100644
index 0000000..02d2eda
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/lib/ruby/vendor_ruby/fog/dynect/version.rb
@@ -0,0 +1,5 @@
+module Fog
+  module Dynect
+    VERSION = '0.0.2'
+  end
+end
diff --git a/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/README.md b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/README.md
new file mode 100644
index 0000000..d6d0177
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/README.md
@@ -0,0 +1,58 @@
+# Fog::Dynect
+
+[![Build Status](https://travis-ci.org/fog/fog-dynect.svg?branch=master)](https://travis-ci.org/fog/fog-dynect)
+
+## Installation
+
+Add this line to your application's Gemfile:
+
+```ruby
+gem 'fog-dynect'
+```
+
+And then execute:
+
+    $ bundle
+
+Or install it yourself as:
+
+    $ gem install fog-dynect
+
+## Usage
+
+Initialize a `Fog::DNS` object using the Dynect provider.
+
+```ruby
+
+dns = Fog::DNS.new({
+  :provider => 'Dynect',
+  :dynect_customer => 'dynect_customer',
+  :dynect_username => 'dynect_username',
+  :dynect_password => 'dynect_password'
+})
+
+```
+
+This can then be used like other [Fog DNS](http://fog.io/dns/) providers.
+
+```ruby
+
+zone = dns.zones.create(
+  :domain => 'example.com',
+  :email  => 'admin at example.com'
+)
+record = zone.records.create(
+  :value   => '1.2.3.4',
+  :name => 'example.com',
+  :type => 'A'
+)
+
+```
+
+## Contributing
+
+1. Fork it ( https://github.com/fog/fog-dynect/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
diff --git a/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/changelog.Debian.gz b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/changelog.Debian.gz
new file mode 100644
index 0000000..e1ed56d
Binary files /dev/null and b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/changelog.Debian.gz differ
diff --git a/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/changelog.gz b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/changelog.gz
new file mode 100644
index 0000000..c1eef35
Binary files /dev/null and b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/changelog.gz differ
diff --git a/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/copyright b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/copyright
new file mode 100644
index 0000000..5d09370
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/share/doc/ruby-fog-dynect/copyright
@@ -0,0 +1,57 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: fog-dynect
+Source: http://github.com/fog/fog-dynect
+
+Files: *
+Copyright: 2014 geemus <geemus at gmail.com>
+           2014 tokengeek <tokengeek at gmail.com>
+	   2014 glennpratt <glennpratt at gmail.com>
+	   2014	krames <kyle at rames.org>	
+License: Expat
+ Copyright (c) 2014
+ 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.
+
+Files: debian/*
+Copyright: 2016 Sagar Ippalpalli <i.vikram15 at gmail.com>
+License: GPL-2+
+Comment: the Debian packaging is licensed under the same terms as the original package.
+
+License: GPL-2+ 
+ This program is free software; you can redistribute it
+ and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE.  See the GNU General Public License for more
+ details.
+ .
+ You should have received a copy of the GNU General Public
+ License along with this package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
diff --git a/debian/ruby-fog-dynect/usr/share/rubygems-integration/all/specifications/fog-dynect-0.0.2.gemspec b/debian/ruby-fog-dynect/usr/share/rubygems-integration/all/specifications/fog-dynect-0.0.2.gemspec
new file mode 100644
index 0000000..ed6ba64
--- /dev/null
+++ b/debian/ruby-fog-dynect/usr/share/rubygems-integration/all/specifications/fog-dynect-0.0.2.gemspec
@@ -0,0 +1,46 @@
+# -*- encoding: utf-8 -*-
+# stub: fog-dynect 0.0.2 ruby lib
+
+Gem::Specification.new do |s|
+  s.name = "fog-dynect"
+  s.version = "0.0.2"
+
+  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+  s.require_paths = ["lib"]
+  s.authors = ["Wesley Beary", "The fog team"]
+  s.date = "2015-08-24"
+  s.description = "This library can be used as a module for `fog` or as\n                        standalone provider to use Dynect DNS in applications."
+  s.email = ["geemus at gmail.com"]
+  s.files = [".gitignore", ".travis.yml", "CHANGELOG.md", "CONTRIBUTING.md", "CONTRIBUTORS.md", "Gemfile", "LICENSE.md", "README.md", "Rakefile", "fog-dynect.gemspec", "gemfiles/Gemfile-1.8.7", "lib/fog/bin/dynect.rb", "lib/fog/dynect.rb", "lib/fog/dynect/dns.rb", "lib/fog/dynect/models/dns/record.rb", "lib/fog/dynect/models/dns/records.rb", "lib/fog/dynect/models/dns/zone.rb", "lib/fog/dynect/models/dns/zones.rb", "lib/fog/dynect/requests/dns/delete_record.rb", "lib/fog/dynect/requests/ [...]
+  s.homepage = "http://github.com/fog/fog-dynect"
+  s.licenses = ["MIT"]
+  s.rubygems_version = "2.4.5.1"
+  s.summary = "Module for the 'fog' gem to support Dynect DNS."
+
+  if s.respond_to? :specification_version then
+    s.specification_version = 4
+
+    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
+      s.add_development_dependency(%q<bundler>, [">= 0"])
+      s.add_development_dependency(%q<rake>, [">= 0"])
+      s.add_development_dependency(%q<shindo>, ["~> 0.3"])
+      s.add_runtime_dependency(%q<fog-core>, [">= 0"])
+      s.add_runtime_dependency(%q<fog-json>, [">= 0"])
+      s.add_runtime_dependency(%q<fog-xml>, [">= 0"])
+    else
+      s.add_dependency(%q<bundler>, [">= 0"])
+      s.add_dependency(%q<rake>, [">= 0"])
+      s.add_dependency(%q<shindo>, ["~> 0.3"])
+      s.add_dependency(%q<fog-core>, [">= 0"])
+      s.add_dependency(%q<fog-json>, [">= 0"])
+      s.add_dependency(%q<fog-xml>, [">= 0"])
+    end
+  else
+    s.add_dependency(%q<bundler>, [">= 0"])
+    s.add_dependency(%q<rake>, [">= 0"])
+    s.add_dependency(%q<shindo>, ["~> 0.3"])
+    s.add_dependency(%q<fog-core>, [">= 0"])
+    s.add_dependency(%q<fog-json>, [">= 0"])
+    s.add_dependency(%q<fog-xml>, [">= 0"])
+  end
+end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-fog-dynect.git



More information about the Pkg-ruby-extras-commits mailing list