breeze 0.0.5 → 0.1.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.
- data/.rbenv-version +1 -0
- data/bin/breeze +13 -0
- data/features/dns.feature +16 -0
- data/features/step_definitions/application_steps.rb +4 -0
- data/features/step_definitions/dns_steps.rb +8 -0
- data/lib/breeze.rb +1 -1
- data/lib/breeze/fog_wrapper.rb +11 -1
- data/lib/breeze/tasks/app.rb +5 -1
- data/lib/breeze/tasks/dns.rb +3 -1
- data/lib/breeze/veur.rb +2 -2
- metadata +42 -11
data/.rbenv-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3-p286
|
data/bin/breeze
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'thor'
|
4
|
+
require 'breeze'
|
4
5
|
|
5
6
|
module Breeze
|
6
7
|
class Runner < Thor
|
@@ -11,6 +12,18 @@ module Breeze
|
|
11
12
|
invoke('breeze:initializer:init')
|
12
13
|
end
|
13
14
|
|
15
|
+
# Display the version number if the default task (help) is invoked with:
|
16
|
+
# breeze --version
|
17
|
+
desc 'help [TASK]', 'Describe available tasks or one specific task'
|
18
|
+
method_option :version, :aliases => '-v', :desc => 'Display the version number'
|
19
|
+
def help(task=nil)
|
20
|
+
if options[:version]
|
21
|
+
puts "breeze version #{VERSION}"
|
22
|
+
else
|
23
|
+
super(task)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
14
27
|
end
|
15
28
|
end
|
16
29
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Feature: Manage DNS zones and records
|
2
|
+
|
3
|
+
DNS zones and records can be created and destroyed.
|
4
|
+
Records can also be imported from a file.
|
5
|
+
|
6
|
+
Scenario: Create a DNS zone
|
7
|
+
When I run `thor dns:zone:create example.com`
|
8
|
+
Then the output should look like:
|
9
|
+
"""
|
10
|
+
Zone ID: .*
|
11
|
+
Name servers: .*
|
12
|
+
"""
|
13
|
+
|
14
|
+
Scenario: Create a DNS record
|
15
|
+
Given I have created a DNS zone
|
16
|
+
Then I can add a record with `thor dns:record:create [ZONE ID] www.example.com. A 127.0.0.1`
|
@@ -0,0 +1,8 @@
|
|
1
|
+
Given /^I have created a DNS zone$/ do
|
2
|
+
step 'I run `thor dns:zone:create example.com`'
|
3
|
+
@dns_zone_id = $1 if all_stdout =~ /Zone ID: (.*)/
|
4
|
+
end
|
5
|
+
|
6
|
+
When /^I can add a record with `thor dns:record:create \[ZONE ID\] www\.example\.com\. A 127\.0\.0\.1`$/ do
|
7
|
+
step "I run `thor dns:record:create #{@dns_zone_id} www.example.com. A 127.0.0.1`"
|
8
|
+
end
|
data/lib/breeze.rb
CHANGED
data/lib/breeze/fog_wrapper.rb
CHANGED
@@ -7,11 +7,12 @@ module Breeze
|
|
7
7
|
module FogWrapper
|
8
8
|
|
9
9
|
def self.connection(type)
|
10
|
-
{:compute => Compute, :rds => RDS}[type].get_connection
|
10
|
+
{:compute => Compute, :dns => DNS, :rds => RDS}[type].get_connection
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.flush_mock_data!
|
14
14
|
Compute.new.flush_data!
|
15
|
+
DNS.new.flush_data!
|
15
16
|
# RDS.new.flush_data!
|
16
17
|
end
|
17
18
|
|
@@ -57,6 +58,15 @@ module Breeze
|
|
57
58
|
def mock_class ; Fog::Compute::AWS::Mock ; end
|
58
59
|
end
|
59
60
|
|
61
|
+
class DNS < AbstractConnectionWrapper
|
62
|
+
def self.direct_fog_connection
|
63
|
+
Fog::DNS.new(CONFIGURATION[:cloud_service])
|
64
|
+
end
|
65
|
+
private
|
66
|
+
def data_file ; 'fog_dns_data.yaml' ; end
|
67
|
+
def mock_class ; Fog::DNS::AWS::Mock ; end
|
68
|
+
end
|
69
|
+
|
60
70
|
# TODO: add RDS mocks to fog so that we can start testing it
|
61
71
|
class RDS < AbstractConnectionWrapper
|
62
72
|
def self.direct_fog_connection
|
data/lib/breeze/tasks/app.rb
CHANGED
@@ -61,10 +61,14 @@ module Breeze
|
|
61
61
|
puts("The new server should soon be available at: #{ip(new_server)}")
|
62
62
|
if ask("Ready to continue and move the elastic_ip for #{public_server_name} to the new server? [YES/rollback] >") =~ /r|n/i
|
63
63
|
new_server.destroy
|
64
|
-
|
64
|
+
elsif old_server
|
65
65
|
remote("nohup sudo shutdown -h +#{CONFIGURATION[:rollback_window]} > /dev/null 2>&1 &", :host => ip(old_server))
|
66
66
|
old_server.spare_for_rollback!
|
67
67
|
move_addresses(old_server, new_server)
|
68
|
+
else
|
69
|
+
puts('ERROR: Cannot move the IP because the current active server was not found.')
|
70
|
+
puts("Move it manually with: thor server:address:associate [IP] #{new_server.id}")
|
71
|
+
puts("or create a new elastic IP with: thor server:address:create #{new_server.id}")
|
68
72
|
end
|
69
73
|
end
|
70
74
|
|
data/lib/breeze/tasks/dns.rb
CHANGED
@@ -9,6 +9,7 @@ module Breeze
|
|
9
9
|
puts "Zone ID: #{zone.id}"
|
10
10
|
puts "Change info: #{zone.change_info}"
|
11
11
|
puts "Name servers: #{zone.nameservers}"
|
12
|
+
FogWrapper.flush_mock_data! if Fog.mocking?
|
12
13
|
end
|
13
14
|
|
14
15
|
desc 'destroy ZONE_ID', 'Destroy a DNS zone'
|
@@ -50,7 +51,8 @@ module Breeze
|
|
50
51
|
|
51
52
|
desc 'create ZONE_ID NAME TYPE IP [TTL]', 'Create a new DNS record'
|
52
53
|
def create(zone_id, name, type, ip, ttl=3600)
|
53
|
-
get_zone(zone_id).records.create(:name => name, :type => type, :
|
54
|
+
get_zone(zone_id).records.create(:name => name, :type => type, :value => ip, :ttl => ttl)
|
55
|
+
FogWrapper.flush_mock_data! if Fog.mocking?
|
54
56
|
end
|
55
57
|
|
56
58
|
desc 'destroy ZONE_ID NAME [TYPE]', 'Destroy a DNS record'
|
data/lib/breeze/veur.rb
CHANGED
@@ -64,7 +64,7 @@ module Breeze
|
|
64
64
|
puts table
|
65
65
|
end
|
66
66
|
|
67
|
-
# capture table in order to determine
|
67
|
+
# capture table in order to determine its width
|
68
68
|
def capture_table(table)
|
69
69
|
return 'none' if table.size == 1 # the first row is for column titles
|
70
70
|
$stdout = StringIO.new # start capturing the output
|
@@ -79,7 +79,7 @@ module Breeze
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def dns
|
82
|
-
@dns ||=
|
82
|
+
@dns ||= Breeze::FogWrapper.connection(:dns)
|
83
83
|
end
|
84
84
|
|
85
85
|
def rds
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breeze
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: fog
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: cucumber
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: aruba
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,7 +69,12 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
description: ! 'Breeze makes it easy to automate server installation and configuration.
|
59
79
|
It provides
|
60
80
|
|
@@ -72,15 +92,18 @@ extensions: []
|
|
72
92
|
extra_rdoc_files: []
|
73
93
|
files:
|
74
94
|
- .gitignore
|
95
|
+
- .rbenv-version
|
75
96
|
- Gemfile
|
76
97
|
- LICENSE
|
77
98
|
- README.md
|
78
99
|
- Rakefile
|
79
100
|
- bin/breeze
|
80
101
|
- breeze.gemspec
|
102
|
+
- features/dns.feature
|
81
103
|
- features/erb_conf.feature
|
82
104
|
- features/getting_started.feature
|
83
105
|
- features/step_definitions/application_steps.rb
|
106
|
+
- features/step_definitions/dns_steps.rb
|
84
107
|
- features/step_definitions/server_steps.rb
|
85
108
|
- features/support/env.rb
|
86
109
|
- lib/breeze.rb
|
@@ -128,21 +151,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
151
|
- - ! '>='
|
129
152
|
- !ruby/object:Gem::Version
|
130
153
|
version: '0'
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
hash: 4461246332485121240
|
131
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
158
|
none: false
|
133
159
|
requirements:
|
134
160
|
- - ! '>='
|
135
161
|
- !ruby/object:Gem::Version
|
136
162
|
version: '0'
|
163
|
+
segments:
|
164
|
+
- 0
|
165
|
+
hash: 4461246332485121240
|
137
166
|
requirements: []
|
138
167
|
rubyforge_project: breeze
|
139
|
-
rubygems_version: 1.8.
|
168
|
+
rubygems_version: 1.8.23
|
140
169
|
signing_key:
|
141
170
|
specification_version: 3
|
142
171
|
summary: Thor tasks to manage cloud computing resources and deployments
|
143
172
|
test_files:
|
173
|
+
- features/dns.feature
|
144
174
|
- features/erb_conf.feature
|
145
175
|
- features/getting_started.feature
|
146
176
|
- features/step_definitions/application_steps.rb
|
177
|
+
- features/step_definitions/dns_steps.rb
|
147
178
|
- features/step_definitions/server_steps.rb
|
148
179
|
- features/support/env.rb
|