mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00

Commit d801b27
introduced a new Shared module with logic to initialize
a google_client_api and to make requests.
This commit refactors Compute to use the new Shared module.
34 lines
959 B
Ruby
34 lines
959 B
Ruby
module Fog
|
|
module Compute
|
|
class Google
|
|
class Mock
|
|
def attach_disk(instance, zone, source, options = {})
|
|
Fog::Mock.not_implemented
|
|
end
|
|
end
|
|
|
|
class Real
|
|
def attach_disk(instance, zone, source, options = {})
|
|
api_method = @compute.instances.attach_disk
|
|
parameters = {
|
|
'project' => @project,
|
|
'instance' => instance,
|
|
'zone' => zone.split('/')[-1],
|
|
}
|
|
|
|
writable = options.delete(:writable)
|
|
body_object = {
|
|
'type' => 'PERSISTENT',
|
|
'source' => source,
|
|
'mode' => writable ? 'READ_WRITE' : 'READ_ONLY',
|
|
'deviceName' => options.delete(:deviceName),
|
|
'boot' => options.delete(:boot),
|
|
'autoDelete' => options.delete(:autoDelete),
|
|
}
|
|
|
|
request(api_method, parameters, body_object)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|