engineyard-dns 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,9 @@
1
1
  # ChangeLog
2
2
 
3
+ ## v0.5.0 - 2011/5/24
4
+
5
+ * "ey-dns domains" lists the registered domains for each DNS provider (with a count of records for each)
6
+
3
7
  ## v0.4.0 - 2011/5/23
4
8
 
5
9
  * supporting many DNS providers via fog
@@ -0,0 +1,17 @@
1
+ Feature: List available domains
2
+ I want to see the available domains I can associate with my AppCloud apps
3
+
4
+ Scenario: Show domains without any records:
5
+ Given I have setup my fog credentials for "DNSimple"
6
+ And I have DNS domain "myapp.com" with provider "DNSimple"
7
+ And I have DNS domain "myotherapp.com" with provider "DNSimple"
8
+ When I run local executable "ey-dns" with arguments "domains"
9
+ Then I should see exactly
10
+ """
11
+ DNSimple:
12
+ myapp.com - 0 records
13
+ myotherapp.com - 0 records
14
+
15
+ """
16
+
17
+
@@ -1,8 +1,6 @@
1
1
  $:.unshift(File.expand_path(File.dirname(__FILE__) + '/../../lib'))
2
2
  require 'bundler/setup'
3
3
  require 'engineyard-dns'
4
- require 'dnsimple'
5
- require 'dnsimple/cli'
6
4
  require 'fog'
7
5
 
8
6
  path = ENV['PATH']
@@ -18,7 +18,6 @@ module EngineYard
18
18
  super
19
19
  end
20
20
 
21
-
22
21
  desc "assign DOMAIN [NAME]", "Assign DNS domain/tld (or name.tld) to your AppCloud environment"
23
22
  method_option :verbose, :aliases => ["-V"], :desc => "Display more output"
24
23
  method_option :environment, :aliases => ["-e"], :desc => "Environment in which to deploy this application", :type => :string
@@ -61,10 +60,28 @@ module EngineYard
61
60
  # ::DNSimple::Commands::ListRecords.new.execute([domain])
62
61
  end
63
62
 
63
+ desc "domains", "List available domains/zones from your DNS providers"
64
+ def domains
65
+ dns_provider_names.each do |provider_name|
66
+ dns_provider = ::Fog::DNS.new({:provider => provider_name})
67
+ domains = dns_provider.zones
68
+
69
+ if domains.size == 0
70
+ say "#{provider_name}: ", :yellow; say "none"
71
+ else
72
+ say "#{provider_name}:", :green
73
+ domains.each do |domain|
74
+ records = domain.records.all
75
+ say " #{domain.domain} - #{records.size} records"
76
+ end
77
+ end
78
+ end
79
+ end
80
+
64
81
  desc "version", "show version information"
65
82
  def version
66
- require 'engineyard-jenkins/version'
67
- shell.say Engineyard::Jenkins::VERSION
83
+ require 'engineyard-dns/version'
84
+ shell.say Engineyard::DNS::VERSION
68
85
  end
69
86
 
70
87
  map "-v" => :version, "--version" => :version, "-h" => :help, "--help" => :help
@@ -1,5 +1,5 @@
1
1
  module EngineYard
2
2
  module DNS
3
- VERSION = "0.4.0"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: engineyard-dns
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.0
5
+ version: 0.5.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Dr Nic Williams
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-23 00:00:00 -07:00
13
+ date: 2011-05-24 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -165,7 +165,7 @@ files:
165
165
  - bin/ey-dns
166
166
  - engineyard-dns.gemspec
167
167
  - features/assign_dns_to_environment.feature
168
- - features/assign_dns_to_environment_via_different_dns_providers.feature
168
+ - features/list_available_domains.feature
169
169
  - features/step_definitions/common_steps.rb
170
170
  - features/step_definitions/dnsimple_steps.rb
171
171
  - features/step_definitions/ey_api_steps.rb
@@ -210,7 +210,7 @@ specification_version: 3
210
210
  summary: Configure your Engine Yard AppCloud environment and your DNSimple domain.
211
211
  test_files:
212
212
  - features/assign_dns_to_environment.feature
213
- - features/assign_dns_to_environment_via_different_dns_providers.feature
213
+ - features/list_available_domains.feature
214
214
  - features/step_definitions/common_steps.rb
215
215
  - features/step_definitions/dnsimple_steps.rb
216
216
  - features/step_definitions/ey_api_steps.rb
@@ -1,26 +0,0 @@
1
- Feature: Assign DNS to environment IP address
2
- I want to assign DNS record to an AppCloud environment IP address
3
-
4
- Background:
5
- Given I have setup my engineyard email/password for API access
6
- And I have "two apps" in AppCloud
7
-
8
- Scenario: Assign new DNS A Record to an environment via fog to DNSimple
9
- Given I have setup my fog credentials for "DNSimple"
10
- And I have DNS domain "myapp.com" with provider "DNSimple"
11
- When I run local executable "ey-dns" with arguments "assign myapp.com --account main --environment giblets"
12
- Then I should see exactly
13
- """
14
- Fetching AppCloud environment information...
15
- Found AppCloud environment giblets on account main with IP 174.129.7.113
16
-
17
- Searching for myapp.com amongst your DNS providers...
18
- Found myapp.com in DNSimple account
19
-
20
- Assigning myapp.com --> 174.129.7.113 (main/giblets)
21
- Created A record for myapp.com
22
- Assigning www.myapp.com --> 174.129.7.113 (main/giblets)
23
- Created A record for www.myapp.com
24
- Complete!
25
-
26
- """