Module: EY::InstanceAPIServer
- Defined in:
- lib/ey_instance_api_server.rb,
lib/ey_instance_api_server/backups.rb,
lib/ey_instance_api_server/version.rb,
lib/ey_instance_api_server/services.rb,
lib/ey_instance_api_server/snapshots.rb,
lib/ey_instance_api_server/backups/rackapp.rb,
lib/ey_instance_api_server/services/rackapp.rb,
lib/ey_instance_api_server/snapshots/rackapp.rb,
lib/ey_instance_api_server/backups/example_callback.rb,
lib/ey_instance_api_server/abstract/example_callback.rb,
lib/ey_instance_api_server/services/example_callback.rb,
lib/ey_instance_api_server/snapshots/example_callback.rb
Defined Under Namespace
Modules: Abstract, Backups, Services, Snapshots
Constant Summary
collapse
- VERSION =
"0.1.5"
Class Attribute Summary collapse
Class Method Summary
collapse
-
.app ⇒ Object
-
.backups_url_for(database_id) ⇒ Object
-
.base_url ⇒ Object
-
.finish_backup_for(instance_id, database_id, backup_id) ⇒ Object
-
.finished_backup(backup_id, database_id, extension, download_urls, started_at, finished_at) ⇒ Object
-
.get_services_for(instance_id, app_name) ⇒ Object
-
.list_backups_for(instance_id, database_id) ⇒ Object
-
.list_snapshots_for(instance_id) ⇒ Object
-
.pending_backup(backup_id, database_id, extension, started_at) ⇒ Object
-
.perform_snapshot_for(instance_id, volume_id, snapshot_id) ⇒ Object
-
.request_snapshots_for(instance_id) ⇒ Object
-
.services_url_for(app_name) ⇒ Object
-
.snapshot_response(volume_id, snapshot_id, volume_type, created_at, state, progress) ⇒ Object
-
.snapshots_base_url ⇒ Object
-
.snapshots_url_for_performing(instance_id, volume_id, snapshot_id, instance_token) ⇒ Object
-
.start_backup_for(instance_id, database_id, extension, part_count) ⇒ Object
-
.started_backup(backup_id, database_id, extension, upload_urls, started_at) ⇒ Object
-
.token_for(label) ⇒ Object
-
.valid?(label, token) ⇒ Boolean
Class Attribute Details
.callback_module ⇒ Object
Returns the value of attribute callback_module.
121
122
123
|
# File 'lib/ey_instance_api_server.rb', line 121
def callback_module
@callback_module
end
|
Class Method Details
.app ⇒ Object
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/ey_instance_api_server.rb', line 107
def self.app
Rack::Builder.app do
map "/databases/" do
run Backups.app
end
map "/volumes/" do
run Snapshots.app
end
map "/services/" do
run Services.app
end
end
end
|
.backups_url_for(database_id) ⇒ Object
50
51
52
|
# File 'lib/ey_instance_api_server.rb', line 50
def self.backups_url_for(database_id)
URI.join(base_url, "databases/#{database_id}/backups").to_s
end
|
.base_url ⇒ Object
99
100
101
102
103
104
105
|
# File 'lib/ey_instance_api_server.rb', line 99
def self.base_url
base_url = callback_module.base_url
unless base_url.match(/\/$/)
base_url += '/'
end
base_url
end
|
.finish_backup_for(instance_id, database_id, backup_id) ⇒ Object
58
59
60
|
# File 'lib/ey_instance_api_server.rb', line 58
def self.finish_backup_for(instance_id, database_id, backup_id)
callback_module.finish_backup_for(instance_id, database_id, backup_id)
end
|
.finished_backup(backup_id, database_id, extension, download_urls, started_at, finished_at) ⇒ Object
82
83
84
85
86
87
88
89
|
# File 'lib/ey_instance_api_server.rb', line 82
def self.finished_backup(backup_id, database_id, extension, download_urls, started_at, finished_at)
{
"started_at" => started_at.to_i,
"finished_at" => finished_at.to_i,
"extension" => extension,
"download_urls" => download_urls
}
end
|
.get_services_for(instance_id, app_name) ⇒ Object
12
13
14
|
# File 'lib/ey_instance_api_server.rb', line 12
def self.get_services_for(instance_id, app_name)
callback_module.get_services_for(instance_id, app_name)
end
|
.list_backups_for(instance_id, database_id) ⇒ Object
62
63
64
|
# File 'lib/ey_instance_api_server.rb', line 62
def self.list_backups_for(instance_id, database_id)
callback_module.list_backups_for(instance_id, database_id)
end
|
.list_snapshots_for(instance_id) ⇒ Object
35
36
37
|
# File 'lib/ey_instance_api_server.rb', line 35
def self.list_snapshots_for(instance_id)
callback_module.list_snapshots_for(instance_id)
end
|
.pending_backup(backup_id, database_id, extension, started_at) ⇒ Object
75
76
77
78
79
80
|
# File 'lib/ey_instance_api_server.rb', line 75
def self.pending_backup(backup_id, database_id, extension, started_at)
{
"started_at" => started_at.to_i,
"extension" => extension,
}
end
|
31
32
33
|
# File 'lib/ey_instance_api_server.rb', line 31
def self.perform_snapshot_for(instance_id, volume_id, snapshot_id)
callback_module.perform_snapshots_for(instance_id, volume_id, snapshot_id)
end
|
.request_snapshots_for(instance_id) ⇒ Object
27
28
29
|
# File 'lib/ey_instance_api_server.rb', line 27
def self.request_snapshots_for(instance_id)
callback_module.request_snapshots_for(instance_id)
end
|
.services_url_for(app_name) ⇒ Object
8
9
10
|
# File 'lib/ey_instance_api_server.rb', line 8
def self.services_url_for(app_name)
URI.join(base_url, "services/app/", app_name).to_s
end
|
.snapshot_response(volume_id, snapshot_id, volume_type, created_at, state, progress) ⇒ Object
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/ey_instance_api_server.rb', line 39
def self.snapshot_response(volume_id, snapshot_id, volume_type, created_at, state, progress)
{
"volume_id" => volume_id,
"volume_type" => volume_type,
"snapshot_id" => snapshot_id,
"created_at" => created_at,
"state" => state,
"progress" => progress,
}
end
|
.snapshots_base_url ⇒ Object
16
17
18
|
# File 'lib/ey_instance_api_server.rb', line 16
def self.snapshots_base_url
URI.join(base_url, "volumes/all/snapshots").to_s
end
|
20
21
22
23
24
25
|
# File 'lib/ey_instance_api_server.rb', line 20
def self.snapshots_url_for_performing(instance_id, volume_id, snapshot_id, instance_token)
path = "volumes/#{volume_id}/snapshots/#{snapshot_id}/perform"+
"?instance_id=#{CGI.escape(instance_id.to_s)}"+
"&token=#{CGI.escape(instance_token.to_s)}"
URI.join(base_url, path).to_s
end
|
.start_backup_for(instance_id, database_id, extension, part_count) ⇒ Object
54
55
56
|
# File 'lib/ey_instance_api_server.rb', line 54
def self.start_backup_for(instance_id, database_id, extension, part_count)
callback_module.start_backup_for(instance_id, database_id, extension, part_count)
end
|
.started_backup(backup_id, database_id, extension, upload_urls, started_at) ⇒ Object
66
67
68
69
70
71
72
73
|
# File 'lib/ey_instance_api_server.rb', line 66
def self.started_backup(backup_id, database_id, extension, upload_urls, started_at)
{
"started_at" => started_at.to_i,
"extension" => extension,
"upload_urls" => upload_urls,
'finish_url' => "#{backups_url_for(database_id)}/#{backup_id}"
}
end
|
.token_for(label) ⇒ Object
95
96
97
|
# File 'lib/ey_instance_api_server.rb', line 95
def self.token_for(label)
callback_module.token_for label
end
|
.valid?(label, token) ⇒ Boolean
91
92
93
|
# File 'lib/ey_instance_api_server.rb', line 91
def self.valid?(label, token)
token_for(label) == token
end
|