gcloud 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/CHANGELOG.md +36 -0
- data/lib/gcloud/backoff.rb +5 -5
- data/lib/gcloud/bigquery.rb +24 -0
- data/lib/gcloud/bigquery/connection.rb +32 -25
- data/lib/gcloud/bigquery/data.rb +99 -1
- data/lib/gcloud/bigquery/dataset.rb +5 -13
- data/lib/gcloud/bigquery/dataset/list.rb +124 -2
- data/lib/gcloud/bigquery/job/list.rb +125 -2
- data/lib/gcloud/bigquery/project.rb +30 -27
- data/lib/gcloud/bigquery/query_data.rb +102 -1
- data/lib/gcloud/bigquery/table.rb +17 -2
- data/lib/gcloud/bigquery/table/list.rb +132 -3
- data/lib/gcloud/datastore.rb +30 -19
- data/lib/gcloud/datastore/dataset.rb +2 -22
- data/lib/gcloud/datastore/dataset/lookup_results.rb +160 -4
- data/lib/gcloud/datastore/dataset/query_results.rb +229 -23
- data/lib/gcloud/datastore/transaction.rb +2 -5
- data/lib/gcloud/dns.rb +20 -0
- data/lib/gcloud/dns/change/list.rb +109 -6
- data/lib/gcloud/dns/connection.rb +18 -9
- data/lib/gcloud/dns/project.rb +4 -8
- data/lib/gcloud/dns/record/list.rb +96 -13
- data/lib/gcloud/dns/zone.rb +9 -24
- data/lib/gcloud/dns/zone/list.rb +102 -5
- data/lib/gcloud/dns/zone/transaction.rb +1 -1
- data/lib/gcloud/logging.rb +19 -0
- data/lib/gcloud/logging/entry/list.rb +83 -14
- data/lib/gcloud/logging/metric/list.rb +89 -12
- data/lib/gcloud/logging/project.rb +18 -30
- data/lib/gcloud/logging/resource_descriptor/list.rb +105 -6
- data/lib/gcloud/logging/sink/list.rb +89 -12
- data/lib/gcloud/pubsub.rb +23 -0
- data/lib/gcloud/pubsub/project.rb +21 -29
- data/lib/gcloud/pubsub/service.rb +1 -3
- data/lib/gcloud/pubsub/subscription/list.rb +167 -13
- data/lib/gcloud/pubsub/topic.rb +15 -13
- data/lib/gcloud/pubsub/topic/batch.rb +10 -4
- data/lib/gcloud/pubsub/topic/list.rb +134 -8
- data/lib/gcloud/resource_manager.rb +24 -0
- data/lib/gcloud/resource_manager/connection.rb +18 -9
- data/lib/gcloud/resource_manager/manager.rb +7 -4
- data/lib/gcloud/resource_manager/project/list.rb +93 -14
- data/lib/gcloud/storage.rb +63 -0
- data/lib/gcloud/storage/bucket.rb +100 -61
- data/lib/gcloud/storage/bucket/list.rb +132 -8
- data/lib/gcloud/storage/connection.rb +68 -44
- data/lib/gcloud/storage/errors.rb +9 -3
- data/lib/gcloud/storage/file.rb +48 -4
- data/lib/gcloud/storage/file/list.rb +151 -15
- data/lib/gcloud/storage/file/verifier.rb +3 -3
- data/lib/gcloud/storage/project.rb +15 -30
- data/lib/gcloud/translate.rb +20 -0
- data/lib/gcloud/translate/connection.rb +12 -3
- data/lib/gcloud/version.rb +1 -1
- data/lib/gcloud/vision.rb +20 -0
- data/lib/gcloud/vision/connection.rb +10 -1
- data/lib/gcloud/vision/image.rb +15 -18
- metadata +16 -2
@@ -14,6 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "gcloud/version"
|
17
|
+
require "gcloud/backoff"
|
17
18
|
require "google/api_client"
|
18
19
|
|
19
20
|
module Gcloud
|
@@ -38,14 +39,14 @@ module Gcloud
|
|
38
39
|
end
|
39
40
|
|
40
41
|
def get_project project_id = @project
|
41
|
-
|
42
|
+
execute(
|
42
43
|
api_method: @dns.projects.get,
|
43
44
|
parameters: { project: project_id }
|
44
45
|
)
|
45
46
|
end
|
46
47
|
|
47
48
|
def get_zone zone_id
|
48
|
-
|
49
|
+
execute(
|
49
50
|
api_method: @dns.managed_zones.get,
|
50
51
|
parameters: { project: @project, managedZone: zone_id }
|
51
52
|
)
|
@@ -57,7 +58,7 @@ module Gcloud
|
|
57
58
|
maxResults: max
|
58
59
|
}.delete_if { |_, v| v.nil? }
|
59
60
|
|
60
|
-
|
61
|
+
execute(
|
61
62
|
api_method: @dns.managed_zones.list,
|
62
63
|
parameters: params
|
63
64
|
)
|
@@ -71,7 +72,7 @@ module Gcloud
|
|
71
72
|
nameServerSet: name_server_set
|
72
73
|
}.delete_if { |_, v| v.nil? }
|
73
74
|
|
74
|
-
|
75
|
+
execute(
|
75
76
|
api_method: @dns.managed_zones.create,
|
76
77
|
parameters: { project: @project },
|
77
78
|
body_object: body
|
@@ -79,14 +80,14 @@ module Gcloud
|
|
79
80
|
end
|
80
81
|
|
81
82
|
def delete_zone zone_id
|
82
|
-
|
83
|
+
execute(
|
83
84
|
api_method: @dns.managed_zones.delete,
|
84
85
|
parameters: { project: @project, managedZone: zone_id }
|
85
86
|
)
|
86
87
|
end
|
87
88
|
|
88
89
|
def get_change zone_id, change_id
|
89
|
-
|
90
|
+
execute(
|
90
91
|
api_method: @dns.changes.get,
|
91
92
|
parameters: { project: @project, managedZone: zone_id,
|
92
93
|
changeId: change_id }
|
@@ -101,7 +102,7 @@ module Gcloud
|
|
101
102
|
sortOrder: order
|
102
103
|
}.delete_if { |_, v| v.nil? }
|
103
104
|
|
104
|
-
|
105
|
+
execute(
|
105
106
|
api_method: @dns.changes.list,
|
106
107
|
parameters: params
|
107
108
|
)
|
@@ -112,7 +113,7 @@ module Gcloud
|
|
112
113
|
"additions" => Array(additions),
|
113
114
|
"deletions" => Array(deletions) }
|
114
115
|
|
115
|
-
|
116
|
+
execute(
|
116
117
|
api_method: @dns.changes.create,
|
117
118
|
parameters: { project: @project, managedZone: zone_id },
|
118
119
|
body_object: change
|
@@ -127,7 +128,7 @@ module Gcloud
|
|
127
128
|
type: type
|
128
129
|
}.delete_if { |_, v| v.nil? }
|
129
130
|
|
130
|
-
|
131
|
+
execute(
|
131
132
|
api_method: @dns.resource_record_sets.list,
|
132
133
|
parameters: params
|
133
134
|
)
|
@@ -159,6 +160,14 @@ module Gcloud
|
|
159
160
|
def inspect
|
160
161
|
"#{self.class}(#{@project})"
|
161
162
|
end
|
163
|
+
|
164
|
+
protected
|
165
|
+
|
166
|
+
def execute options
|
167
|
+
Gcloud::Backoff.new.execute_gapi do
|
168
|
+
@client.execute options
|
169
|
+
end
|
170
|
+
end
|
162
171
|
end
|
163
172
|
end
|
164
173
|
end
|
data/lib/gcloud/dns/project.rb
CHANGED
@@ -180,25 +180,21 @@ module Gcloud
|
|
180
180
|
# puts zone.name
|
181
181
|
# end
|
182
182
|
#
|
183
|
-
# @example
|
183
|
+
# @example Retrieve all zones: (See {Zone::List#all})
|
184
184
|
# require "gcloud"
|
185
185
|
#
|
186
186
|
# gcloud = Gcloud.new
|
187
187
|
# dns = gcloud.dns
|
188
188
|
# zones = dns.zones
|
189
|
-
#
|
190
|
-
#
|
191
|
-
# puts zone.name
|
192
|
-
# end
|
193
|
-
# break unless zones.next?
|
194
|
-
# zones = zones.next
|
189
|
+
# zones.all do |zone|
|
190
|
+
# puts zone.name
|
195
191
|
# end
|
196
192
|
#
|
197
193
|
def zones token: nil, max: nil
|
198
194
|
ensure_connection!
|
199
195
|
resp = connection.list_zones token: token, max: max
|
200
196
|
if resp.success?
|
201
|
-
Zone::List.from_response resp, connection
|
197
|
+
Zone::List.from_response resp, connection, max
|
202
198
|
else
|
203
199
|
fail ApiError.from_response(resp)
|
204
200
|
end
|
@@ -27,54 +27,137 @@ module Gcloud
|
|
27
27
|
attr_accessor :token
|
28
28
|
|
29
29
|
##
|
30
|
-
# Create a new Record::List with an array of Record instances.
|
30
|
+
# @private Create a new Record::List with an array of Record instances.
|
31
31
|
def initialize arr = []
|
32
32
|
super arr
|
33
33
|
end
|
34
34
|
|
35
35
|
##
|
36
36
|
# Whether there a next page of records.
|
37
|
+
#
|
38
|
+
# @return [Boolean]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# require "gcloud"
|
42
|
+
#
|
43
|
+
# gcloud = Gcloud.new
|
44
|
+
# dns = gcloud.dns
|
45
|
+
# zone = dns.zone "example-com"
|
46
|
+
#
|
47
|
+
# records = zone.records "example.com."
|
48
|
+
# if records.next?
|
49
|
+
# next_records = records.next
|
50
|
+
# end
|
51
|
+
#
|
37
52
|
def next?
|
38
53
|
!token.nil?
|
39
54
|
end
|
40
55
|
|
41
56
|
##
|
42
57
|
# Retrieve the next page of records.
|
58
|
+
#
|
59
|
+
# @return [Record::List]
|
60
|
+
#
|
61
|
+
# @example
|
62
|
+
# require "gcloud"
|
63
|
+
#
|
64
|
+
# gcloud = Gcloud.new
|
65
|
+
# dns = gcloud.dns
|
66
|
+
# zone = dns.zone "example-com"
|
67
|
+
#
|
68
|
+
# records = zone.records "example.com."
|
69
|
+
# if records.next?
|
70
|
+
# next_records = records.next
|
71
|
+
# end
|
72
|
+
#
|
43
73
|
def next
|
44
74
|
return nil unless next?
|
45
75
|
ensure_zone!
|
46
|
-
@zone.records token: token
|
76
|
+
@zone.records @name, @type, token: token, max: @max
|
47
77
|
end
|
48
78
|
|
49
79
|
##
|
50
|
-
# Retrieves all records by repeatedly loading
|
51
|
-
# returns false
|
80
|
+
# Retrieves all records by repeatedly loading {#next} until {#next?}
|
81
|
+
# returns `false`. Calls the given block once for each record, which is
|
82
|
+
# passed as the parameter.
|
52
83
|
#
|
53
|
-
#
|
84
|
+
# An Enumerator is returned if no block is given.
|
85
|
+
#
|
86
|
+
# This method may make several API calls until all records are
|
87
|
+
# retrieved. Be sure to use as narrow a search criteria as possible.
|
88
|
+
# Please use with caution.
|
89
|
+
#
|
90
|
+
# @param [Integer] request_limit The upper limit of API requests to make
|
91
|
+
# to load all records. Default is no limit.
|
92
|
+
# @yield [record] The block for accessing each record.
|
93
|
+
# @yieldparam [Record] record The record object.
|
94
|
+
#
|
95
|
+
# @return [Enumerator]
|
96
|
+
#
|
97
|
+
# @example Iterating each record by passing a block:
|
98
|
+
# require "gcloud"
|
99
|
+
#
|
100
|
+
# gcloud = Gcloud.new
|
101
|
+
# dns = gcloud.dns
|
102
|
+
# zone = dns.zone "example-com"
|
103
|
+
# records = zone.records "example.com."
|
104
|
+
#
|
105
|
+
# records.all do |record|
|
106
|
+
# puts record.name
|
107
|
+
# end
|
108
|
+
#
|
109
|
+
# @example Using the enumerator by not passing a block:
|
110
|
+
# require "gcloud"
|
111
|
+
#
|
112
|
+
# gcloud = Gcloud.new
|
113
|
+
# dns = gcloud.dns
|
114
|
+
# zone = dns.zone "example-com"
|
115
|
+
# records = zone.records "example.com."
|
116
|
+
#
|
117
|
+
# all_names = records.all.map do |record|
|
118
|
+
# record.name
|
119
|
+
# end
|
120
|
+
#
|
121
|
+
# @example Limit the number of API calls made:
|
54
122
|
# require "gcloud"
|
55
123
|
#
|
56
124
|
# gcloud = Gcloud.new
|
57
125
|
# dns = gcloud.dns
|
58
126
|
# zone = dns.zone "example-com"
|
59
|
-
# records = zone.records.
|
127
|
+
# records = zone.records "example.com."
|
60
128
|
#
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
129
|
+
# records.all(request_limit: 10) do |record|
|
130
|
+
# puts record.name
|
131
|
+
# end
|
132
|
+
#
|
133
|
+
def all request_limit: nil
|
134
|
+
request_limit = request_limit.to_i if request_limit
|
135
|
+
unless block_given?
|
136
|
+
return enum_for(:all, request_limit: request_limit)
|
137
|
+
end
|
138
|
+
results = self
|
139
|
+
loop do
|
140
|
+
results.each { |r| yield r }
|
141
|
+
if request_limit
|
142
|
+
request_limit -= 1
|
143
|
+
break if request_limit < 0
|
144
|
+
end
|
145
|
+
break unless results.next?
|
146
|
+
results = results.next
|
66
147
|
end
|
67
|
-
self
|
68
148
|
end
|
69
149
|
|
70
150
|
##
|
71
151
|
# @private New Records::List from a response object.
|
72
|
-
def self.from_response resp, zone
|
152
|
+
def self.from_response resp, zone, name = nil, type = nil, max = nil
|
73
153
|
records = new(Array(resp.data["rrsets"]).map do |gapi_object|
|
74
154
|
Record.from_gapi gapi_object
|
75
155
|
end)
|
76
156
|
records.instance_variable_set "@token", resp.data["nextPageToken"]
|
77
157
|
records.instance_variable_set "@zone", zone
|
158
|
+
records.instance_variable_set "@name", name
|
159
|
+
records.instance_variable_set "@type", type
|
160
|
+
records.instance_variable_set "@max", max
|
78
161
|
records
|
79
162
|
end
|
80
163
|
|
data/lib/gcloud/dns/zone.rb
CHANGED
@@ -236,19 +236,15 @@ module Gcloud
|
|
236
236
|
# zone = dns.zone "example-com"
|
237
237
|
# changes = zone.changes order: :desc
|
238
238
|
#
|
239
|
-
# @example
|
239
|
+
# @example Retrieve all changes: (See {Change::List#all})
|
240
240
|
# require "gcloud"
|
241
241
|
#
|
242
242
|
# gcloud = Gcloud.new
|
243
243
|
# dns = gcloud.dns
|
244
244
|
# zone = dns.zone "example-com"
|
245
245
|
# changes = zone.changes
|
246
|
-
#
|
247
|
-
#
|
248
|
-
# puts "#{change.name} - #{change.status}"
|
249
|
-
# end
|
250
|
-
# break unless changes.next?
|
251
|
-
# changes = changes.next
|
246
|
+
# changes.all do |change|
|
247
|
+
# puts "#{change.name} - #{change.status}"
|
252
248
|
# end
|
253
249
|
#
|
254
250
|
def changes token: nil, max: nil, order: nil
|
@@ -260,7 +256,7 @@ module Gcloud
|
|
260
256
|
resp = connection.list_changes id, token: token, max: max,
|
261
257
|
order: order, sort: sort
|
262
258
|
if resp.success?
|
263
|
-
Change::List.from_response resp, self
|
259
|
+
Change::List.from_response resp, self, max, order
|
264
260
|
else
|
265
261
|
fail ApiError.from_response(resp)
|
266
262
|
end
|
@@ -304,28 +300,17 @@ module Gcloud
|
|
304
300
|
# records = zone.records "www", "A"
|
305
301
|
# records.first.name #=> "www.example.com."
|
306
302
|
#
|
307
|
-
# @example
|
303
|
+
# @example Retrieve all records: (See {Gcloud::Dns::Record::List#all})
|
308
304
|
# require "gcloud"
|
309
305
|
#
|
310
306
|
# gcloud = Gcloud.new
|
311
307
|
# dns = gcloud.dns
|
312
308
|
# zone = dns.zone "example-com"
|
313
309
|
# records = zone.records "example.com."
|
314
|
-
# loop do
|
315
|
-
# records.each do |record|
|
316
|
-
# puts record.name
|
317
|
-
# end
|
318
|
-
# break unless records.next?
|
319
|
-
# records = records.next
|
320
|
-
# end
|
321
|
-
#
|
322
|
-
# @example Retrieve all pages: (See {Gcloud::Dns::Record::List#all})
|
323
|
-
# require "gcloud"
|
324
310
|
#
|
325
|
-
#
|
326
|
-
#
|
327
|
-
#
|
328
|
-
# records = zone.records.all
|
311
|
+
# records.all do |record|
|
312
|
+
# puts record.name
|
313
|
+
# end
|
329
314
|
#
|
330
315
|
def records name = nil, type = nil, token: nil, max: nil
|
331
316
|
ensure_connection!
|
@@ -334,7 +319,7 @@ module Gcloud
|
|
334
319
|
|
335
320
|
resp = connection.list_records id, name, type, token: token, max: max
|
336
321
|
if resp.success?
|
337
|
-
Record::List.from_response resp, self
|
322
|
+
Record::List.from_response resp, self, name, type, max
|
338
323
|
else
|
339
324
|
fail ApiError.from_response(resp)
|
340
325
|
end
|
data/lib/gcloud/dns/zone/list.rb
CHANGED
@@ -22,43 +22,140 @@ module Gcloud
|
|
22
22
|
# Zone::List is a special case Array with additional values.
|
23
23
|
class List < DelegateClass(::Array)
|
24
24
|
##
|
25
|
-
# If not empty, indicates that there are more
|
25
|
+
# If not empty, indicates that there are more zones that match
|
26
26
|
# the request and this value should be passed to continue.
|
27
27
|
attr_accessor :token
|
28
28
|
|
29
29
|
##
|
30
|
-
# Create a new Zone::List with an array of Zone instances.
|
30
|
+
# @private Create a new Zone::List with an array of Zone instances.
|
31
31
|
def initialize arr = []
|
32
32
|
super arr
|
33
33
|
end
|
34
34
|
|
35
35
|
##
|
36
36
|
# Whether there a next page of zones.
|
37
|
+
#
|
38
|
+
# @return [Boolean]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# require "gcloud"
|
42
|
+
#
|
43
|
+
# gcloud = Gcloud.new
|
44
|
+
# dns = gcloud.dns
|
45
|
+
#
|
46
|
+
# zones = dns.zones
|
47
|
+
# if zones.next?
|
48
|
+
# next_zones = zones.next
|
49
|
+
# end
|
50
|
+
#
|
37
51
|
def next?
|
38
52
|
!token.nil?
|
39
53
|
end
|
40
54
|
|
41
55
|
##
|
42
56
|
# Retrieve the next page of zones.
|
57
|
+
#
|
58
|
+
# @return [Zone::List]
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# require "gcloud"
|
62
|
+
#
|
63
|
+
# gcloud = Gcloud.new
|
64
|
+
# dns = gcloud.dns
|
65
|
+
#
|
66
|
+
# zones = dns.zones
|
67
|
+
# if zones.next?
|
68
|
+
# next_zones = zones.next
|
69
|
+
# end
|
70
|
+
#
|
43
71
|
def next
|
44
72
|
return nil unless next?
|
45
73
|
ensure_connection!
|
46
|
-
resp = @connection.list_zones token: token
|
74
|
+
resp = @connection.list_zones token: token, max: @max
|
47
75
|
if resp.success?
|
48
|
-
Zone::List.from_response resp, @connection
|
76
|
+
Zone::List.from_response resp, @connection, @max
|
49
77
|
else
|
50
78
|
fail ApiError.from_response(resp)
|
51
79
|
end
|
52
80
|
end
|
53
81
|
|
82
|
+
##
|
83
|
+
# Retrieves all zones by repeatedly loading {#next} until {#next?}
|
84
|
+
# returns `false`. Calls the given block once for each zone, which is
|
85
|
+
# passed as the parameter.
|
86
|
+
#
|
87
|
+
# An Enumerator is returned if no block is given.
|
88
|
+
#
|
89
|
+
# This method may make several API calls until all zones are retrieved.
|
90
|
+
# Be sure to use as narrow a search criteria as possible. Please use
|
91
|
+
# with caution.
|
92
|
+
#
|
93
|
+
# @param [Integer] request_limit The upper limit of API requests to make
|
94
|
+
# to load all zones. Default is no limit.
|
95
|
+
# @yield [zone] The block for accessing each zone.
|
96
|
+
# @yieldparam [Zone] zone The zone object.
|
97
|
+
#
|
98
|
+
# @return [Enumerator]
|
99
|
+
#
|
100
|
+
# @example Iterating each zone by passing a block:
|
101
|
+
# require "gcloud"
|
102
|
+
#
|
103
|
+
# gcloud = Gcloud.new
|
104
|
+
# dns = gcloud.dns
|
105
|
+
# zones = dns.zones
|
106
|
+
#
|
107
|
+
# zones.all do |zone|
|
108
|
+
# puts zone.name
|
109
|
+
# end
|
110
|
+
#
|
111
|
+
# @example Using the enumerator by not passing a block:
|
112
|
+
# require "gcloud"
|
113
|
+
#
|
114
|
+
# gcloud = Gcloud.new
|
115
|
+
# dns = gcloud.dns
|
116
|
+
# zones = dns.zones
|
117
|
+
#
|
118
|
+
# all_names = zones.all.map do |zone|
|
119
|
+
# zone.name
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# @example Limit the number of API calls made:
|
123
|
+
# require "gcloud"
|
124
|
+
#
|
125
|
+
# gcloud = Gcloud.new
|
126
|
+
# dns = gcloud.dns
|
127
|
+
# zones = dns.zones
|
128
|
+
#
|
129
|
+
# zones.all(request_limit: 10) do |zone|
|
130
|
+
# puts zone.name
|
131
|
+
# end
|
132
|
+
#
|
133
|
+
def all request_limit: nil
|
134
|
+
request_limit = request_limit.to_i if request_limit
|
135
|
+
unless block_given?
|
136
|
+
return enum_for(:all, request_limit: request_limit)
|
137
|
+
end
|
138
|
+
results = self
|
139
|
+
loop do
|
140
|
+
results.each { |r| yield r }
|
141
|
+
if request_limit
|
142
|
+
request_limit -= 1
|
143
|
+
break if request_limit < 0
|
144
|
+
end
|
145
|
+
break unless results.next?
|
146
|
+
results = results.next
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
54
150
|
##
|
55
151
|
# @private New Zones::List from a response object.
|
56
|
-
def self.from_response resp, conn
|
152
|
+
def self.from_response resp, conn, max = nil
|
57
153
|
zones = new(Array(resp.data["managedZones"]).map do |gapi_object|
|
58
154
|
Zone.from_gapi gapi_object, conn
|
59
155
|
end)
|
60
156
|
zones.instance_variable_set "@token", resp.data["nextPageToken"]
|
61
157
|
zones.instance_variable_set "@connection", conn
|
158
|
+
zones.instance_variable_set "@max", max
|
62
159
|
zones
|
63
160
|
end
|
64
161
|
|