gcloud 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/AUTHENTICATION.md +3 -3
- data/CHANGELOG.md +92 -0
- data/OVERVIEW.md +3 -3
- data/lib/gcloud.rb +75 -25
- data/lib/gcloud/backoff.rb +5 -1
- data/lib/gcloud/bigquery.rb +25 -43
- data/lib/gcloud/bigquery/copy_job.rb +13 -13
- data/lib/gcloud/bigquery/data.rb +20 -16
- data/lib/gcloud/bigquery/dataset.rb +202 -177
- data/lib/gcloud/bigquery/dataset/access.rb +118 -104
- data/lib/gcloud/bigquery/dataset/list.rb +14 -18
- data/lib/gcloud/bigquery/extract_job.rb +12 -12
- data/lib/gcloud/bigquery/insert_response.rb +12 -14
- data/lib/gcloud/bigquery/job.rb +45 -57
- data/lib/gcloud/bigquery/job/list.rb +18 -24
- data/lib/gcloud/bigquery/load_job.rb +35 -27
- data/lib/gcloud/bigquery/project.rb +53 -73
- data/lib/gcloud/bigquery/query_data.rb +28 -35
- data/lib/gcloud/bigquery/query_job.rb +18 -18
- data/lib/gcloud/bigquery/schema.rb +359 -0
- data/lib/gcloud/bigquery/service.rb +506 -0
- data/lib/gcloud/bigquery/table.rb +185 -266
- data/lib/gcloud/bigquery/table/list.rb +15 -19
- data/lib/gcloud/bigquery/view.rb +126 -81
- data/lib/gcloud/datastore.rb +39 -27
- data/lib/gcloud/datastore/commit.rb +2 -2
- data/lib/gcloud/datastore/dataset.rb +8 -19
- data/lib/gcloud/datastore/dataset/lookup_results.rb +2 -4
- data/lib/gcloud/datastore/dataset/query_results.rb +0 -2
- data/lib/gcloud/datastore/entity.rb +7 -1
- data/lib/gcloud/datastore/errors.rb +5 -27
- data/lib/gcloud/datastore/grpc_utils.rb +4 -3
- data/lib/gcloud/datastore/key.rb +6 -0
- data/lib/gcloud/datastore/service.rb +18 -12
- data/lib/gcloud/datastore/transaction.rb +0 -10
- data/lib/gcloud/dns.rb +29 -19
- data/lib/gcloud/dns/change.rb +10 -15
- data/lib/gcloud/dns/change/list.rb +4 -4
- data/lib/gcloud/dns/importer.rb +1 -1
- data/lib/gcloud/dns/project.rb +32 -49
- data/lib/gcloud/dns/record.rb +8 -2
- data/lib/gcloud/dns/record/list.rb +4 -4
- data/lib/gcloud/dns/service.rb +167 -0
- data/lib/gcloud/dns/zone.rb +33 -52
- data/lib/gcloud/dns/zone/list.rb +12 -16
- data/lib/gcloud/errors.rb +31 -19
- data/lib/gcloud/logging.rb +50 -39
- data/lib/gcloud/logging/entry.rb +197 -24
- data/lib/gcloud/logging/entry/list.rb +0 -2
- data/lib/gcloud/logging/logger.rb +1 -1
- data/lib/gcloud/logging/metric.rb +3 -9
- data/lib/gcloud/logging/metric/list.rb +0 -2
- data/lib/gcloud/logging/project.rb +58 -54
- data/lib/gcloud/logging/resource_descriptor.rb +2 -2
- data/lib/gcloud/logging/resource_descriptor/list.rb +0 -2
- data/lib/gcloud/logging/service.rb +32 -23
- data/lib/gcloud/logging/sink.rb +8 -14
- data/lib/gcloud/logging/sink/list.rb +0 -2
- data/lib/gcloud/pubsub.rb +21 -16
- data/lib/gcloud/pubsub/policy.rb +204 -0
- data/lib/gcloud/pubsub/project.rb +26 -38
- data/lib/gcloud/pubsub/service.rb +39 -31
- data/lib/gcloud/pubsub/subscription.rb +56 -59
- data/lib/gcloud/pubsub/subscription/list.rb +4 -4
- data/lib/gcloud/pubsub/topic.rb +69 -66
- data/lib/gcloud/pubsub/topic/list.rb +0 -2
- data/lib/gcloud/pubsub/topic/{batch.rb → publisher.rb} +15 -2
- data/lib/gcloud/resource_manager.rb +27 -26
- data/lib/gcloud/resource_manager/manager.rb +19 -39
- data/lib/gcloud/resource_manager/policy.rb +211 -0
- data/lib/gcloud/resource_manager/project.rb +97 -121
- data/lib/gcloud/resource_manager/project/list.rb +7 -7
- data/lib/gcloud/resource_manager/project/updater.rb +4 -9
- data/lib/gcloud/resource_manager/service.rb +127 -0
- data/lib/gcloud/storage.rb +24 -42
- data/lib/gcloud/storage/bucket.rb +104 -192
- data/lib/gcloud/storage/bucket/acl.rb +47 -143
- data/lib/gcloud/storage/bucket/cors.rb +55 -11
- data/lib/gcloud/storage/bucket/list.rb +14 -14
- data/lib/gcloud/storage/errors.rb +3 -43
- data/lib/gcloud/storage/file.rb +114 -111
- data/lib/gcloud/storage/file/acl.rb +27 -113
- data/lib/gcloud/storage/file/list.rb +21 -21
- data/lib/gcloud/storage/project.rb +49 -59
- data/lib/gcloud/storage/service.rb +347 -0
- data/lib/gcloud/translate.rb +24 -14
- data/lib/gcloud/translate/api.rb +12 -21
- data/lib/gcloud/translate/detection.rb +5 -5
- data/lib/gcloud/translate/language.rb +1 -1
- data/lib/gcloud/translate/service.rb +80 -0
- data/lib/gcloud/translate/translation.rb +6 -6
- data/lib/gcloud/version.rb +1 -1
- data/lib/gcloud/vision.rb +24 -15
- data/lib/gcloud/vision/annotate.rb +24 -21
- data/lib/gcloud/vision/annotation.rb +9 -9
- data/lib/gcloud/vision/annotation/entity.rb +11 -11
- data/lib/gcloud/vision/annotation/face.rb +25 -25
- data/lib/gcloud/vision/annotation/properties.rb +8 -8
- data/lib/gcloud/vision/annotation/safe_search.rb +4 -4
- data/lib/gcloud/vision/annotation/text.rb +7 -7
- data/lib/gcloud/vision/annotation/vertex.rb +1 -1
- data/lib/gcloud/vision/image.rb +11 -11
- data/lib/gcloud/vision/location.rb +5 -2
- data/lib/gcloud/vision/project.rb +14 -16
- data/lib/gcloud/vision/service.rb +66 -0
- data/lib/google/api_client.rb +0 -0
- metadata +27 -24
- data/lib/gcloud/bigquery/connection.rb +0 -624
- data/lib/gcloud/bigquery/errors.rb +0 -68
- data/lib/gcloud/bigquery/table/schema.rb +0 -234
- data/lib/gcloud/dns/connection.rb +0 -173
- data/lib/gcloud/dns/errors.rb +0 -68
- data/lib/gcloud/resource_manager/connection.rb +0 -134
- data/lib/gcloud/resource_manager/errors.rb +0 -68
- data/lib/gcloud/storage/connection.rb +0 -444
- data/lib/gcloud/translate/connection.rb +0 -85
- data/lib/gcloud/translate/errors.rb +0 -68
- data/lib/gcloud/upload.rb +0 -95
- data/lib/gcloud/vision/connection.rb +0 -63
- data/lib/gcloud/vision/errors.rb +0 -69
@@ -201,8 +201,6 @@ module Gcloud
|
|
201
201
|
lookup_res = service.lookup(*Array(keys).flatten.map(&:to_grpc),
|
202
202
|
transaction: @id)
|
203
203
|
LookupResults.from_grpc lookup_res, service, nil, @id
|
204
|
-
rescue GRPC::BadStatus => e
|
205
|
-
raise Gcloud::Error.from_error(e)
|
206
204
|
end
|
207
205
|
alias_method :lookup, :find_all
|
208
206
|
|
@@ -237,8 +235,6 @@ module Gcloud
|
|
237
235
|
query_res = service.run_query query.to_grpc, namespace,
|
238
236
|
transaction: @id
|
239
237
|
QueryResults.from_grpc query_res, service, namespace, query.to_grpc.dup
|
240
|
-
rescue GRPC::BadStatus => e
|
241
|
-
raise Gcloud::Error.from_error(e)
|
242
238
|
end
|
243
239
|
alias_method :run_query, :run
|
244
240
|
|
@@ -251,8 +247,6 @@ module Gcloud
|
|
251
247
|
ensure_service!
|
252
248
|
tx_res = service.begin_transaction
|
253
249
|
@id = tx_res.transaction
|
254
|
-
rescue GRPC::BadStatus => e
|
255
|
-
raise Gcloud::Error.from_error(e)
|
256
250
|
end
|
257
251
|
alias_method :begin_transaction, :start
|
258
252
|
|
@@ -319,8 +313,6 @@ module Gcloud
|
|
319
313
|
# Make sure all entity keys are frozen so all show as persisted
|
320
314
|
entities.each { |e| e.key.freeze unless e.persisted? }
|
321
315
|
true
|
322
|
-
rescue GRPC::BadStatus => e
|
323
|
-
raise Gcloud::Error.from_error(e)
|
324
316
|
end
|
325
317
|
|
326
318
|
##
|
@@ -356,8 +348,6 @@ module Gcloud
|
|
356
348
|
ensure_service!
|
357
349
|
service.rollback @id
|
358
350
|
true
|
359
|
-
rescue GRPC::BadStatus => e
|
360
|
-
raise Gcloud::Error.from_error(e)
|
361
351
|
end
|
362
352
|
|
363
353
|
##
|
data/lib/gcloud/dns.rb
CHANGED
@@ -36,6 +36,9 @@ module Gcloud
|
|
36
36
|
# The default scope is:
|
37
37
|
#
|
38
38
|
# * `https://www.googleapis.com/auth/ndev.clouddns.readwrite`
|
39
|
+
# @param [Integer] retries Number of times to retry requests on server error.
|
40
|
+
# The default value is `3`. Optional.
|
41
|
+
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
39
42
|
#
|
40
43
|
# @return [Gcloud::Dns::Project]
|
41
44
|
#
|
@@ -47,14 +50,21 @@ module Gcloud
|
|
47
50
|
#
|
48
51
|
# zone = dns.zone "example-com"
|
49
52
|
#
|
50
|
-
def self.dns project = nil, keyfile = nil, scope: nil
|
53
|
+
def self.dns project = nil, keyfile = nil, scope: nil, retries: nil,
|
54
|
+
timeout: nil
|
51
55
|
project ||= Gcloud::Dns::Project.default_project
|
56
|
+
project = project.to_s # Always cast to a string
|
57
|
+
fail ArgumentError, "project is missing" if project.empty?
|
58
|
+
|
52
59
|
if keyfile.nil?
|
53
60
|
credentials = Gcloud::Dns::Credentials.default scope: scope
|
54
61
|
else
|
55
62
|
credentials = Gcloud::Dns::Credentials.new keyfile, scope: scope
|
56
63
|
end
|
57
|
-
|
64
|
+
|
65
|
+
Gcloud::Dns::Project.new(
|
66
|
+
Gcloud::Dns::Service.new(
|
67
|
+
project, credentials, retries: retries, timeout: timeout))
|
58
68
|
end
|
59
69
|
|
60
70
|
##
|
@@ -67,8 +77,8 @@ module Gcloud
|
|
67
77
|
# relied upon by Google. To learn more, read [What is Google Cloud
|
68
78
|
# DNS?](https://cloud.google.com/dns/what-is-cloud-dns).
|
69
79
|
#
|
70
|
-
#
|
71
|
-
# Rubyists. Authentication is handled by {Gcloud#dns}. You can provide the
|
80
|
+
# The goal of gcloud-ruby is to provide an API that is comfortable
|
81
|
+
# to Rubyists. Authentication is handled by {Gcloud#dns}. You can provide the
|
72
82
|
# project and credential information to connect to the Cloud DNS service, or
|
73
83
|
# if you are running on Google Compute Engine this configuration is taken care
|
74
84
|
# of for you. You can read more about the options for connecting in the
|
@@ -164,9 +174,10 @@ module Gcloud
|
|
164
174
|
#
|
165
175
|
# Whenever you change the set of records belonging to a zone, the zone's start
|
166
176
|
# of authority (SOA) record should be updated with a higher serial number. The
|
167
|
-
# gcloud library automates this update for you, deleting the old SOA
|
168
|
-
# and adding an updated one, as shown in the example above. You can
|
169
|
-
# modify this behavior, of course. See {Gcloud::Dns::Zone#update}
|
177
|
+
# gcloud-ruby library automates this update for you, deleting the old SOA
|
178
|
+
# record and adding an updated one, as shown in the example above. You can
|
179
|
+
# disable or modify this behavior, of course. See {Gcloud::Dns::Zone#update}
|
180
|
+
# for details.
|
170
181
|
#
|
171
182
|
# You can retrieve records by name and type. The name argument can be a
|
172
183
|
# subdomain (e.g., `www`) fragment for convenience, but notice that the
|
@@ -301,24 +312,23 @@ module Gcloud
|
|
301
312
|
# zone.export "path/to/db.example.com"
|
302
313
|
# ```
|
303
314
|
#
|
304
|
-
# ## Configuring
|
315
|
+
# ## Configuring retries and timeout
|
305
316
|
#
|
306
|
-
#
|
307
|
-
#
|
308
|
-
#
|
309
|
-
# `
|
317
|
+
# You can configure how many times API requests may be automatically retried.
|
318
|
+
# When an API request fails, the response will be inspected to see if the
|
319
|
+
# request meets criteria indicating that it may succeed on retry, such as
|
320
|
+
# `500` and `503` status codes or a specific internal error code such as
|
321
|
+
# `rateLimitExceeded`. If it meets the criteria, the request will be retried
|
322
|
+
# after a delay. If another error occurs, the delay will be increased before a
|
323
|
+
# subsequent attempt, until the `retries` limit is reached.
|
310
324
|
#
|
311
|
-
#
|
312
|
-
# should be retried. If the response matches the criteria, then the request
|
313
|
-
# will be retried after a delay. If another error occurs, the delay will be
|
314
|
-
# increased incrementally before a subsequent attempt. The first retry will be
|
315
|
-
# delayed one second, the second retry two seconds, and so on.
|
325
|
+
# You can also set the request `timeout` value in seconds.
|
316
326
|
#
|
317
327
|
# ```ruby
|
318
328
|
# require "gcloud"
|
319
|
-
# require "gcloud/backoff"
|
320
329
|
#
|
321
|
-
#
|
330
|
+
# gcloud = Gcloud.new
|
331
|
+
# dns = gcloud.dns retries: 10, timeout: 120
|
322
332
|
# ```
|
323
333
|
#
|
324
334
|
module Dns
|
data/lib/gcloud/dns/change.rb
CHANGED
@@ -57,28 +57,28 @@ module Gcloud
|
|
57
57
|
# Unique identifier for the resource; defined by the server.
|
58
58
|
#
|
59
59
|
def id
|
60
|
-
@gapi
|
60
|
+
@gapi.id
|
61
61
|
end
|
62
62
|
|
63
63
|
##
|
64
64
|
# The records added in this change request.
|
65
65
|
#
|
66
66
|
def additions
|
67
|
-
Array(@gapi
|
67
|
+
Array(@gapi.additions).map { |gapi| Record.from_gapi gapi }
|
68
68
|
end
|
69
69
|
|
70
70
|
##
|
71
71
|
# The records removed in this change request.
|
72
72
|
#
|
73
73
|
def deletions
|
74
|
-
Array(@gapi
|
74
|
+
Array(@gapi.deletions).map { |gapi| Record.from_gapi gapi }
|
75
75
|
end
|
76
76
|
|
77
77
|
##
|
78
78
|
# Status of the operation. Values are `"done"` and `"pending"`.
|
79
79
|
#
|
80
80
|
def status
|
81
|
-
@gapi
|
81
|
+
@gapi.status
|
82
82
|
end
|
83
83
|
|
84
84
|
##
|
@@ -99,7 +99,7 @@ module Gcloud
|
|
99
99
|
# The time that this operation was started by the server.
|
100
100
|
#
|
101
101
|
def started_at
|
102
|
-
Time.parse @gapi
|
102
|
+
Time.parse @gapi.start_time
|
103
103
|
rescue
|
104
104
|
nil
|
105
105
|
end
|
@@ -107,13 +107,8 @@ module Gcloud
|
|
107
107
|
##
|
108
108
|
# Reloads the change with updated status from the DNS service.
|
109
109
|
def reload!
|
110
|
-
|
111
|
-
|
112
|
-
if resp.success?
|
113
|
-
@gapi = resp.data
|
114
|
-
else
|
115
|
-
fail ApiError.from_response(resp)
|
116
|
-
end
|
110
|
+
ensure_service!
|
111
|
+
@gapi = zone.service.get_change @zone.id, id
|
117
112
|
end
|
118
113
|
alias_method :refresh!, :reload!
|
119
114
|
|
@@ -154,9 +149,9 @@ module Gcloud
|
|
154
149
|
protected
|
155
150
|
|
156
151
|
##
|
157
|
-
# Raise an error unless an active
|
158
|
-
def
|
159
|
-
fail "Must have active connection" unless zone && zone.
|
152
|
+
# Raise an error unless an active service is available.
|
153
|
+
def ensure_service!
|
154
|
+
fail "Must have active connection" unless zone && zone.service
|
160
155
|
end
|
161
156
|
end
|
162
157
|
end
|
@@ -149,11 +149,11 @@ module Gcloud
|
|
149
149
|
|
150
150
|
##
|
151
151
|
# @private New Changes::List from a response object.
|
152
|
-
def self.
|
153
|
-
changes = new(Array(
|
154
|
-
Change.from_gapi
|
152
|
+
def self.from_gapi gapi, zone, max = nil, order = nil
|
153
|
+
changes = new(Array(gapi.changes).map do |g|
|
154
|
+
Change.from_gapi g, zone
|
155
155
|
end)
|
156
|
-
changes.instance_variable_set "@token",
|
156
|
+
changes.instance_variable_set "@token", gapi.next_page_token
|
157
157
|
changes.instance_variable_set "@zone", zone
|
158
158
|
changes.instance_variable_set "@max", max
|
159
159
|
changes.instance_variable_set "@order", order
|
data/lib/gcloud/dns/importer.rb
CHANGED
@@ -83,7 +83,7 @@ module Gcloud
|
|
83
83
|
type = r.first
|
84
84
|
type = :aaaa if type == :a4
|
85
85
|
r.last.each do |zf_record|
|
86
|
-
name =
|
86
|
+
name = Service.fqdn(zf_record[:name], @zonefile.origin)
|
87
87
|
key = [name, type]
|
88
88
|
(@merged_zf_records[key] ||= []) << zf_record
|
89
89
|
end
|
data/lib/gcloud/dns/project.rb
CHANGED
@@ -13,11 +13,11 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
+
require "gcloud/errors"
|
16
17
|
require "gcloud/gce"
|
17
|
-
require "gcloud/dns/
|
18
|
+
require "gcloud/dns/service"
|
18
19
|
require "gcloud/dns/credentials"
|
19
20
|
require "gcloud/dns/zone"
|
20
|
-
require "gcloud/dns/errors"
|
21
21
|
|
22
22
|
module Gcloud
|
23
23
|
module Dns
|
@@ -41,21 +41,19 @@ module Gcloud
|
|
41
41
|
# See {Gcloud#dns}
|
42
42
|
class Project
|
43
43
|
##
|
44
|
-
# @private The
|
45
|
-
attr_accessor :
|
44
|
+
# @private The Service object.
|
45
|
+
attr_accessor :service
|
46
46
|
|
47
47
|
##
|
48
48
|
# @private The Google API Client object.
|
49
49
|
attr_accessor :gapi
|
50
50
|
|
51
51
|
##
|
52
|
-
# @private Creates a new
|
52
|
+
# @private Creates a new Service instance.
|
53
53
|
#
|
54
54
|
# See {Gcloud.dns}
|
55
|
-
def initialize
|
56
|
-
|
57
|
-
fail ArgumentError, "project is missing" if project.empty?
|
58
|
-
@connection = Connection.new project, credentials
|
55
|
+
def initialize service
|
56
|
+
@service = service
|
59
57
|
@gapi = nil
|
60
58
|
end
|
61
59
|
|
@@ -71,7 +69,7 @@ module Gcloud
|
|
71
69
|
# dns.project #=> "my-todo-project"
|
72
70
|
#
|
73
71
|
def project
|
74
|
-
|
72
|
+
service.project
|
75
73
|
end
|
76
74
|
alias_method :id, :project
|
77
75
|
|
@@ -79,49 +77,49 @@ module Gcloud
|
|
79
77
|
# The project number.
|
80
78
|
def number
|
81
79
|
reload! if @gapi.nil?
|
82
|
-
@gapi
|
80
|
+
@gapi.number
|
83
81
|
end
|
84
82
|
|
85
83
|
##
|
86
84
|
# Maximum allowed number of zones in the project.
|
87
85
|
def zones_quota
|
88
86
|
reload! if @gapi.nil?
|
89
|
-
@gapi
|
87
|
+
@gapi.quota.managed_zones if @gapi.quota
|
90
88
|
end
|
91
89
|
|
92
90
|
##
|
93
91
|
# Maximum allowed number of data entries per record.
|
94
92
|
def data_per_record
|
95
93
|
reload! if @gapi.nil?
|
96
|
-
@gapi
|
94
|
+
@gapi.quota.resource_records_per_rrset if @gapi.quota
|
97
95
|
end
|
98
96
|
|
99
97
|
##
|
100
98
|
# Maximum allowed number of records to add per change.
|
101
99
|
def additions_per_change
|
102
100
|
reload! if @gapi.nil?
|
103
|
-
@gapi
|
101
|
+
@gapi.quota.rrset_additions_per_change if @gapi.quota
|
104
102
|
end
|
105
103
|
|
106
104
|
##
|
107
105
|
# Maximum allowed number of records to delete per change.
|
108
106
|
def deletions_per_change
|
109
107
|
reload! if @gapi.nil?
|
110
|
-
@gapi
|
108
|
+
@gapi.quota.rrset_deletions_per_change if @gapi.quota
|
111
109
|
end
|
112
110
|
|
113
111
|
##
|
114
112
|
# Maximum allowed number of records per zone in the project.
|
115
113
|
def records_per_zone
|
116
114
|
reload! if @gapi.nil?
|
117
|
-
@gapi
|
115
|
+
@gapi.quota.rrsets_per_managed_zone if @gapi.quota
|
118
116
|
end
|
119
117
|
|
120
118
|
##
|
121
119
|
# Maximum allowed total bytes size for all the data in one change.
|
122
120
|
def total_data_per_change
|
123
121
|
reload! if @gapi.nil?
|
124
|
-
@gapi
|
122
|
+
@gapi.quota.total_rrdata_size_per_change if @gapi.quota
|
125
123
|
end
|
126
124
|
|
127
125
|
##
|
@@ -150,13 +148,11 @@ module Gcloud
|
|
150
148
|
# puts zone.name
|
151
149
|
#
|
152
150
|
def zone zone_id
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
nil
|
159
|
-
end
|
151
|
+
ensure_service!
|
152
|
+
gapi = service.get_zone zone_id
|
153
|
+
Zone.from_gapi gapi, service
|
154
|
+
rescue Gcloud::NotFoundError
|
155
|
+
nil
|
160
156
|
end
|
161
157
|
alias_method :find_zone, :zone
|
162
158
|
alias_method :get_zone, :zone
|
@@ -191,13 +187,9 @@ module Gcloud
|
|
191
187
|
# end
|
192
188
|
#
|
193
189
|
def zones token: nil, max: nil
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
Zone::List.from_response resp, connection, max
|
198
|
-
else
|
199
|
-
fail ApiError.from_response(resp)
|
200
|
-
end
|
190
|
+
ensure_service!
|
191
|
+
gapi = service.list_zones token: token, max: max
|
192
|
+
Zone::List.from_gapi gapi, service, max
|
201
193
|
end
|
202
194
|
alias_method :find_zones, :zones
|
203
195
|
|
@@ -228,27 +220,18 @@ module Gcloud
|
|
228
220
|
#
|
229
221
|
def create_zone zone_name, zone_dns, description: nil,
|
230
222
|
name_server_set: nil
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
Zone.from_gapi resp.data, connection
|
237
|
-
else
|
238
|
-
fail ApiError.from_response(resp)
|
239
|
-
end
|
223
|
+
ensure_service!
|
224
|
+
gapi = service.create_zone zone_name, zone_dns,
|
225
|
+
description: description,
|
226
|
+
name_server_set: name_server_set
|
227
|
+
Zone.from_gapi gapi, service
|
240
228
|
end
|
241
229
|
|
242
230
|
##
|
243
231
|
# Reloads the change with updated status from the DNS service.
|
244
232
|
def reload!
|
245
|
-
|
246
|
-
|
247
|
-
if resp.success?
|
248
|
-
@gapi = resp.data
|
249
|
-
else
|
250
|
-
fail ApiError.from_response(resp)
|
251
|
-
end
|
233
|
+
ensure_service!
|
234
|
+
@gapi = service.get_project
|
252
235
|
end
|
253
236
|
alias_method :refresh!, :reload!
|
254
237
|
|
@@ -256,8 +239,8 @@ module Gcloud
|
|
256
239
|
|
257
240
|
##
|
258
241
|
# Raise an error unless an active connection is available.
|
259
|
-
def
|
260
|
-
fail "Must have active connection" unless
|
242
|
+
def ensure_service!
|
243
|
+
fail "Must have active connection" unless service
|
261
244
|
end
|
262
245
|
end
|
263
246
|
end
|
data/lib/gcloud/dns/record.rb
CHANGED
@@ -127,13 +127,19 @@ module Gcloud
|
|
127
127
|
##
|
128
128
|
# @private New Record from a Google API Client object.
|
129
129
|
def self.from_gapi gapi
|
130
|
-
new gapi
|
130
|
+
new gapi.name, gapi.type, gapi.ttl, gapi.rrdatas
|
131
131
|
end
|
132
132
|
|
133
133
|
##
|
134
134
|
# @private Convert the record object to a Google API hash.
|
135
135
|
def to_gapi
|
136
|
-
|
136
|
+
Google::Apis::DnsV1::ResourceRecordSet.new(
|
137
|
+
kind: "dns#resourceRecordSet",
|
138
|
+
name: name,
|
139
|
+
rrdatas: data,
|
140
|
+
ttl: ttl,
|
141
|
+
type: type
|
142
|
+
)
|
137
143
|
end
|
138
144
|
|
139
145
|
# @private
|
@@ -149,11 +149,11 @@ module Gcloud
|
|
149
149
|
|
150
150
|
##
|
151
151
|
# @private New Records::List from a response object.
|
152
|
-
def self.
|
153
|
-
records = new(Array(
|
154
|
-
Record.from_gapi
|
152
|
+
def self.from_gapi gapi, zone, name = nil, type = nil, max = nil
|
153
|
+
records = new(Array(gapi.rrsets).map do |g|
|
154
|
+
Record.from_gapi g
|
155
155
|
end)
|
156
|
-
records.instance_variable_set "@token",
|
156
|
+
records.instance_variable_set "@token", gapi.next_page_token
|
157
157
|
records.instance_variable_set "@zone", zone
|
158
158
|
records.instance_variable_set "@name", name
|
159
159
|
records.instance_variable_set "@type", type
|