lib/fog/oraclecloud/requests/database/recover_instance.rb in fog-oraclecloud-0.1.12 vs lib/fog/oraclecloud/requests/database/recover_instance.rb in fog-oraclecloud-0.1.13
- old
+ new
@@ -1,83 +1,83 @@
-module Fog
- module OracleCloud
- class Database
- class Real
-
- def recover_instance(service_name, type=nil, value=nil)
- if type == 'latest' then body_data = { 'latest' => true } end
- if type == 'tag' then body_data = { 'tag' => value } end
- if type == 'timestamp' then body_data = { 'timestamp' => value } end
- if type == 'scn' then body_data = { 'scn' => value } end
-
- response = request(
- :method => 'POST',
- :expects => 202,
- :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{service_name}/backups/recovery",
- :body => Fog::JSON.encode(body_data),
- )
- response.database_id = service_name
- response
- end
- end
-
- class Mock
- def recover_instance(service_name, type=nil, value=nil)
- response = Excon::Response.new
-
- if !self.data[:recoveries][service_name].is_a? Array then
- self.data[:recoveries][service_name] = []
- end
-
- if !self.data[:created_at][:recoveries]
- self.data[:created_at][:recoveries] = {}
- self.data[:created_at][:recoveries][service_name] = []
- end
-
- # Find the backup first
- backups = self.data[:backups][service_name]
- backup = nil
- if type == 'tag' then
- backup = backups.find { |b| b['dbTag'] = value }
- elsif type == 'timestamp' then
- # Too hard to do this logic in mock. Just return the latest
- backup = backups.last
- elsif type.nil? then
- # Default to searching for the latest
- backup = backups.last
- end
- if backup.nil? then
- response.status = 500
- else
- if type == 'tag' then
- self.data[:recoveries][service_name].push({
- 'recoveryStartDate'=>Time.now.strftime('%d-%b-%Y %H:%M:%S UTC'),
- 'status'=>'IN PROGRESS',
- 'dbTag'=>value,
- 'database_id' => service_name
- })
- self.data[:created_at][:recoveries][service_name].push(Time.now)
- elsif type == 'timestamp' then
- self.data[:recoveries][service_name].push({
- 'recoveryStartDate'=>Time.now.strftime('%d-%b-%Y %H:%M:%S UTC'),
- 'status'=>'IN PROGRESS',
- 'timestamp'=>value.strftime('%d-%b-%Y %H:%M:%S'),
- 'database_id' => service_name
- })
- self.data[:created_at][:recoveries][service_name].push(Time.now)
- elsif type.nil? then
- self.data[:recoveries][service_name].push({
- 'recoveryStartDate'=>Time.now.strftime('%d-%b-%Y %H:%M:%S UTC'),
- 'status'=>'IN PROGRESS',
- 'latest'=>true,
- 'database_id' => service_name
- })
- self.data[:created_at][:recoveries][service_name].push(Time.now)
- end
- response.status = 202
- end
- response
- end
- end
- end
- end
-end
+module Fog
+ module OracleCloud
+ class Database
+ class Real
+
+ def recover_instance(service_name, type=nil, value=nil)
+ if type == 'latest' then body_data = { 'latest' => true } end
+ if type == 'tag' then body_data = { 'tag' => value } end
+ if type == 'timestamp' then body_data = { 'timestamp' => value } end
+ if type == 'scn' then body_data = { 'scn' => value } end
+
+ response = request(
+ :method => 'POST',
+ :expects => 202,
+ :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{service_name}/backups/recovery",
+ :body => Fog::JSON.encode(body_data),
+ )
+ response.database_id = service_name
+ response
+ end
+ end
+
+ class Mock
+ def recover_instance(service_name, type=nil, value=nil)
+ response = Excon::Response.new
+
+ if !self.data[:recoveries][service_name].is_a? Array then
+ self.data[:recoveries][service_name] = []
+ end
+
+ if !self.data[:created_at][:recoveries]
+ self.data[:created_at][:recoveries] = {}
+ self.data[:created_at][:recoveries][service_name] = []
+ end
+
+ # Find the backup first
+ backups = self.data[:backups][service_name]
+ backup = nil
+ if type == 'tag' then
+ backup = backups.find { |b| b['dbTag'] = value }
+ elsif type == 'timestamp' then
+ # Too hard to do this logic in mock. Just return the latest
+ backup = backups.last
+ elsif type.nil? then
+ # Default to searching for the latest
+ backup = backups.last
+ end
+ if backup.nil? then
+ response.status = 500
+ else
+ if type == 'tag' then
+ self.data[:recoveries][service_name].push({
+ 'recoveryStartDate'=>Time.now.strftime('%d-%b-%Y %H:%M:%S UTC'),
+ 'status'=>'IN PROGRESS',
+ 'dbTag'=>value,
+ 'database_id' => service_name
+ })
+ self.data[:created_at][:recoveries][service_name].push(Time.now)
+ elsif type == 'timestamp' then
+ self.data[:recoveries][service_name].push({
+ 'recoveryStartDate'=>Time.now.strftime('%d-%b-%Y %H:%M:%S UTC'),
+ 'status'=>'IN PROGRESS',
+ 'timestamp'=>value.strftime('%d-%b-%Y %H:%M:%S'),
+ 'database_id' => service_name
+ })
+ self.data[:created_at][:recoveries][service_name].push(Time.now)
+ elsif type.nil? then
+ self.data[:recoveries][service_name].push({
+ 'recoveryStartDate'=>Time.now.strftime('%d-%b-%Y %H:%M:%S UTC'),
+ 'status'=>'IN PROGRESS',
+ 'latest'=>true,
+ 'database_id' => service_name
+ })
+ self.data[:created_at][:recoveries][service_name].push(Time.now)
+ end
+ response.status = 202
+ end
+ response
+ end
+ end
+ end
+ end
+end