mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
better operation APIs
This commit is contained in:
parent
e8248d0a90
commit
da39beb75c
6 changed files with 33 additions and 56 deletions
|
@ -27,7 +27,6 @@ module Fog
|
|||
request :get_image
|
||||
request :get_machine_type
|
||||
request :get_network
|
||||
request :get_operation
|
||||
request :get_zone
|
||||
|
||||
request :delete_disk
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class Google
|
||||
|
||||
class Mock
|
||||
|
||||
def get_operation(operation_name)
|
||||
Fog::Mock.not_implemented
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Real
|
||||
|
||||
def get_operation(operation_name)
|
||||
api_method = @compute.operations.get
|
||||
parameters = {
|
||||
'project' => @project,
|
||||
'operation' => operation_name
|
||||
}
|
||||
|
||||
result = self.build_result(api_method, parameters)
|
||||
response = self.build_response(result)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -11,8 +11,16 @@ module Fog
|
|||
end
|
||||
|
||||
class Real
|
||||
# https://developers.google.com/compute/docs/reference/latest/globalOperations
|
||||
|
||||
def list_global_operations
|
||||
api_method = @compute.global_operations.list
|
||||
parameters = {
|
||||
'project' => @project
|
||||
}
|
||||
|
||||
result = self.build_result(api_method, parameters)
|
||||
response = self.build_response(result)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,7 +12,15 @@ module Fog
|
|||
|
||||
class Real
|
||||
|
||||
def list_zone_operations
|
||||
def list_zone_operations(zone)
|
||||
api_method = @compute.zone_operations.list
|
||||
parameters = {
|
||||
'zone' => zone,
|
||||
'project' => @project,
|
||||
}
|
||||
|
||||
result = self.build_result(api_method, parameters)
|
||||
response = self.build_response(result)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -66,6 +66,7 @@ Shindo.tests('Fog::Compute[:google] | disk requests', ['google']) do
|
|||
disk_size = '2'
|
||||
zone_name = 'us-central1-a'
|
||||
|
||||
# These will all fail if errors happen on insert
|
||||
tests("#insert_disk").formats(@insert_disk_format) do
|
||||
@google.insert_disk(disk_name, disk_size, zone_name).body
|
||||
end
|
||||
|
|
|
@ -2,52 +2,43 @@ Shindo.tests('Fog::Compute[:google] | operation requests', ['google']) do
|
|||
|
||||
@google = Fog::Compute[:google]
|
||||
|
||||
@get_operation_format = {
|
||||
@list_global_operations_format = {
|
||||
'kind' => String,
|
||||
'id' => String,
|
||||
'items' => [{
|
||||
'kind' => String,
|
||||
'error' => { 'errors' => [] },
|
||||
'id' => String,
|
||||
'selfLink' => String,
|
||||
'name' => String,
|
||||
'operationType' => String,
|
||||
'targetLink' => String,
|
||||
'targetId' => String,
|
||||
'status' => String,
|
||||
'user' => String,
|
||||
'progress' => Integer,
|
||||
'insertTime' => String,
|
||||
'startTime' => String,
|
||||
'httpErrorStatusCode' => Integer,
|
||||
'httpErrorMessage' => String,
|
||||
'operationType' => String
|
||||
}
|
||||
|
||||
@list_global_operations_format = {
|
||||
'kind' => String,
|
||||
'id' => String,
|
||||
'endTime' => String,
|
||||
'selfLink' => String,
|
||||
'nextPageToken' => String,
|
||||
'items' => []
|
||||
}],
|
||||
'selfLink' => String,
|
||||
}
|
||||
|
||||
@list_zone_operations_format = {
|
||||
'kind' => String,
|
||||
'id' => String,
|
||||
'selfLink' => String,
|
||||
'nextPageToken' => String,
|
||||
'items' => []
|
||||
'kind' => String,
|
||||
'id' => String,
|
||||
'selfLink' => String,
|
||||
#'items' => []
|
||||
}
|
||||
|
||||
tests('success') do
|
||||
|
||||
tests("#get_operation").formats(@get_operation_format) do
|
||||
operation_name = @google.list_global_operations.body["items"][0]["name"]
|
||||
@google.get_operation(operation_name).body
|
||||
end
|
||||
|
||||
tests("#list_global_operations").formats(@list_global_operations_format) do
|
||||
@google.list_global_operations.body
|
||||
end
|
||||
|
||||
tests("#list_zone_operations").formats(@list_zone_operations_format) do
|
||||
@google.list_zone_operations.body
|
||||
zone_name = @google.list_zones.body["items"][0]["name"]
|
||||
@google.list_zone_operations(zone_name).body
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue