Skip to content

Commit 7d7c1d8

Browse files
author
Jason Hansen
committed
Merge pull request #24 from engineyard/service-snapshots
database service snapshots
2 parents dc5914f + 6d1dbb9 commit 7d7c1d8

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

lib/ey-core/mock/helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def create_database_service_resource(params)
2626
"servers" => url_for("/database-services/#{database_service_id}/servers"),
2727
"databases" => url_for("/database-services/#{database_service_id}/databases"),
2828
"messages" => url_for("/database-services/#{database_service_id}/messages"),
29+
"snapshots" => url_for("/database-services/#{database_service_id}/snapshots"),
2930
"contacts" => url_for("/database-services/#{database_service_id}/contacts"),
3031
"deleted_at" => nil,
3132
)

lib/ey-core/models/database_service.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ class Ey::Core::Client::DatabaseService < Ey::Core::Model
99
attribute :service_level
1010

1111
has_one :provider
12-
has_many :servers, model: :database_servers
13-
has_many :databases, model: :logical_databases
12+
1413
has_many :contacts
14+
has_many :databases, model: :logical_databases
15+
has_many :servers, model: :database_servers
16+
has_many :snapshots, model: :database_server_snapshots
1517

1618
# @todo remove me next major revision
1719
attr_accessor :database_server

lib/ey-core/requests/get_database_server_snapshots.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
class Ey::Core::Client
22
class Real
33
def get_database_server_snapshots(params={})
4-
database_server = params.delete("database_server")
5-
provider = params.delete("provider")
4+
database_server = params.delete("database_server")
5+
database_service = params.delete("database_service")
6+
provider = params.delete("provider")
67

78
path = if database_server
89
"/database-servers/#{database_server}/snapshots"
10+
elsif database_service
11+
"/database-services/#{database_service}/snapshots"
912
elsif provider
1013
"/providers/#{provider}/database-server-snapshots"
14+
else
15+
"/database-server-snapshots"
1116
end
1217

1318
request(
@@ -23,7 +28,7 @@ class Mock
2328
def get_database_server_snapshots(params={})
2429
extract_url_params!(params)
2530

26-
headers, database_server_snapshots_page = search_and_page(params, :database_server_snapshots, search_keys: %w[database_server provider provisioned_id])
31+
headers, database_server_snapshots_page = search_and_page(params, :database_server_snapshots, search_keys: %w[database_server database_service provider provisioned_id])
2732

2833
response(
2934
:body => {"database_server_snapshots" => database_server_snapshots_page},

spec/database_server_snapshots_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
snapshot = database_server.snapshots.create.resource!
2222

2323
expect(snapshot.database_server).to eq(database_server)
24+
expect(snapshot.database_service).to eq(database_service)
2425
expect(snapshot.provisioned_id).to be
26+
27+
expect(database_service.snapshots).to contain_exactly(snapshot)
28+
expect(database_server.snapshots).to contain_exactly(snapshot)
2529
end
2630
end
2731
end

0 commit comments

Comments
 (0)