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
@@ -1,68 +0,0 @@
|
|
1
|
-
# Copyright 2015 Google Inc. All rights reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
|
16
|
-
require "gcloud/errors"
|
17
|
-
|
18
|
-
module Gcloud
|
19
|
-
module Bigquery
|
20
|
-
##
|
21
|
-
# Base BigQuery exception class.
|
22
|
-
class Error < Gcloud::Error
|
23
|
-
end
|
24
|
-
|
25
|
-
##
|
26
|
-
# Raised when an API call is not successful.
|
27
|
-
class ApiError < Error
|
28
|
-
##
|
29
|
-
# The code of the error.
|
30
|
-
attr_reader :code
|
31
|
-
|
32
|
-
##
|
33
|
-
# The errors encountered.
|
34
|
-
attr_reader :errors
|
35
|
-
|
36
|
-
# @private
|
37
|
-
def initialize message, code, errors = []
|
38
|
-
super message
|
39
|
-
@code = code
|
40
|
-
@errors = errors
|
41
|
-
end
|
42
|
-
|
43
|
-
# @private
|
44
|
-
def self.from_response resp
|
45
|
-
if resp.data? && resp.data["error"]
|
46
|
-
from_response_data resp.data["error"]
|
47
|
-
else
|
48
|
-
from_response_status resp
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# @private
|
53
|
-
def self.from_response_data error
|
54
|
-
new error["message"], error["code"], error["errors"]
|
55
|
-
end
|
56
|
-
|
57
|
-
# @private
|
58
|
-
def self.from_response_status resp
|
59
|
-
if resp.status == 404
|
60
|
-
new "#{resp.error_message}: #{resp.request.uri.request_uri}",
|
61
|
-
resp.status
|
62
|
-
else
|
63
|
-
new resp.error_message, resp.status
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,234 +0,0 @@
|
|
1
|
-
# Copyright 2015 Google Inc. All rights reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
|
16
|
-
module Gcloud
|
17
|
-
module Bigquery
|
18
|
-
class Table
|
19
|
-
##
|
20
|
-
# # Table Schema
|
21
|
-
#
|
22
|
-
# A builder for BigQuery table schemas, passed to block arguments to
|
23
|
-
# {Dataset#create_table} and {Table#schema}. Supports nested and
|
24
|
-
# repeated fields via a nested block.
|
25
|
-
#
|
26
|
-
# @see https://cloud.google.com/bigquery/preparing-data-for-bigquery
|
27
|
-
# Preparing Data for BigQuery
|
28
|
-
#
|
29
|
-
# @example
|
30
|
-
# require "gcloud"
|
31
|
-
#
|
32
|
-
# gcloud = Gcloud.new
|
33
|
-
# bigquery = gcloud.bigquery
|
34
|
-
# dataset = bigquery.dataset "my_dataset"
|
35
|
-
# table = dataset.create_table "my_table"
|
36
|
-
#
|
37
|
-
# table.schema do |schema|
|
38
|
-
# schema.string "first_name", mode: :required
|
39
|
-
# schema.record "cities_lived", mode: :repeated do |cities_lived|
|
40
|
-
# cities_lived.string "place", mode: :required
|
41
|
-
# cities_lived.integer "number_of_years", mode: :required
|
42
|
-
# end
|
43
|
-
# end
|
44
|
-
#
|
45
|
-
class Schema
|
46
|
-
# @private
|
47
|
-
MODES = %w( NULLABLE REQUIRED REPEATED )
|
48
|
-
|
49
|
-
# @private
|
50
|
-
TYPES = %w( STRING INTEGER FLOAT BOOLEAN TIMESTAMP RECORD )
|
51
|
-
|
52
|
-
# @private
|
53
|
-
attr_reader :fields
|
54
|
-
|
55
|
-
##
|
56
|
-
# @private Initializes a new schema object with an existing schema.
|
57
|
-
def initialize schema = nil, nested = false
|
58
|
-
fields = (schema && schema["fields"]) || []
|
59
|
-
@original_fields = fields.dup
|
60
|
-
@fields = fields.dup
|
61
|
-
@nested = nested
|
62
|
-
end
|
63
|
-
|
64
|
-
# @private
|
65
|
-
def changed?
|
66
|
-
@original_fields != @fields
|
67
|
-
end
|
68
|
-
|
69
|
-
##
|
70
|
-
# @private
|
71
|
-
# Returns the schema as hash containing the keys and values specified by
|
72
|
-
# the Google Cloud BigQuery [Rest API
|
73
|
-
# ](https://cloud.google.com/bigquery/docs/reference/v2/tables#resource)
|
74
|
-
# .
|
75
|
-
def schema
|
76
|
-
{
|
77
|
-
"fields" => @fields
|
78
|
-
}
|
79
|
-
end
|
80
|
-
|
81
|
-
##
|
82
|
-
# Adds a string field to the schema.
|
83
|
-
#
|
84
|
-
# @param [String] name The field name. The name must contain only
|
85
|
-
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
86
|
-
# start with a letter or underscore. The maximum length is 128
|
87
|
-
# characters.
|
88
|
-
# @param [String] description A description of the field.
|
89
|
-
# @param [Symbol] mode The field's mode. The possible values are
|
90
|
-
# `:nullable`, `:required`, and `:repeated`. The default value is
|
91
|
-
# `:nullable`.
|
92
|
-
def string name, description: nil, mode: nil
|
93
|
-
add_field name, :string, nil, description: description, mode: mode
|
94
|
-
end
|
95
|
-
|
96
|
-
##
|
97
|
-
# Adds an integer field to the schema.
|
98
|
-
#
|
99
|
-
# @param [String] name The field name. The name must contain only
|
100
|
-
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
101
|
-
# start with a letter or underscore. The maximum length is 128
|
102
|
-
# characters.
|
103
|
-
# @param [String] description A description of the field.
|
104
|
-
# @param [Symbol] mode The field's mode. The possible values are
|
105
|
-
# `:nullable`, `:required`, and `:repeated`. The default value is
|
106
|
-
# `:nullable`.
|
107
|
-
def integer name, description: nil, mode: nil
|
108
|
-
add_field name, :integer, nil, description: description, mode: mode
|
109
|
-
end
|
110
|
-
|
111
|
-
##
|
112
|
-
# Adds a floating-point number field to the schema.
|
113
|
-
#
|
114
|
-
# @param [String] name The field name. The name must contain only
|
115
|
-
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
116
|
-
# start with a letter or underscore. The maximum length is 128
|
117
|
-
# characters.
|
118
|
-
# @param [String] description A description of the field.
|
119
|
-
# @param [Symbol] mode The field's mode. The possible values are
|
120
|
-
# `:nullable`, `:required`, and `:repeated`. The default value is
|
121
|
-
# `:nullable`.
|
122
|
-
def float name, description: nil, mode: nil
|
123
|
-
add_field name, :float, nil, description: description, mode: mode
|
124
|
-
end
|
125
|
-
|
126
|
-
##
|
127
|
-
# Adds a boolean field to the schema.
|
128
|
-
#
|
129
|
-
# @param [String] name The field name. The name must contain only
|
130
|
-
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
131
|
-
# start with a letter or underscore. The maximum length is 128
|
132
|
-
# characters.
|
133
|
-
# @param [String] description A description of the field.
|
134
|
-
# @param [Symbol] mode The field's mode. The possible values are
|
135
|
-
# `:nullable`, `:required`, and `:repeated`. The default value is
|
136
|
-
# `:nullable`.
|
137
|
-
def boolean name, description: nil, mode: nil
|
138
|
-
add_field name, :boolean, nil, description: description, mode: mode
|
139
|
-
end
|
140
|
-
|
141
|
-
##
|
142
|
-
# Adds a timestamp field to the schema.
|
143
|
-
#
|
144
|
-
# @param [String] name The field name. The name must contain only
|
145
|
-
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
146
|
-
# start with a letter or underscore. The maximum length is 128
|
147
|
-
# characters.
|
148
|
-
# @param [String] description A description of the field.
|
149
|
-
# @param [Symbol] mode The field's mode. The possible values are
|
150
|
-
# `:nullable`, `:required`, and `:repeated`. The default value is
|
151
|
-
# `:nullable`.
|
152
|
-
def timestamp name, description: nil, mode: nil
|
153
|
-
add_field name, :timestamp, nil, description: description, mode: mode
|
154
|
-
end
|
155
|
-
|
156
|
-
##
|
157
|
-
# Adds a record field to the schema. A block must be passed describing
|
158
|
-
# the nested fields of the record. For more information about nested
|
159
|
-
# and repeated records, see [Preparing Data for BigQuery
|
160
|
-
# ](https://cloud.google.com/bigquery/preparing-data-for-bigquery).
|
161
|
-
#
|
162
|
-
# @param [String] name The field name. The name must contain only
|
163
|
-
# letters (a-z, A-Z), numbers (0-9), or underscores (_), and must
|
164
|
-
# start with a letter or underscore. The maximum length is 128
|
165
|
-
# characters.
|
166
|
-
# @param [String] description A description of the field.
|
167
|
-
# @param [Symbol] mode The field's mode. The possible values are
|
168
|
-
# `:nullable`, `:required`, and `:repeated`. The default value is
|
169
|
-
# `:nullable`.
|
170
|
-
# @yield [nested_schema] a block for setting the nested schema
|
171
|
-
# @yieldparam [Table::Schema] nested_schema the object accepting the
|
172
|
-
# nested schema
|
173
|
-
#
|
174
|
-
# @example
|
175
|
-
# require "gcloud"
|
176
|
-
#
|
177
|
-
# gcloud = Gcloud.new
|
178
|
-
# bigquery = gcloud.bigquery
|
179
|
-
# dataset = bigquery.dataset "my_dataset"
|
180
|
-
# table = dataset.create_table "my_table"
|
181
|
-
#
|
182
|
-
# table.schema do |schema|
|
183
|
-
# schema.string "first_name", mode: :required
|
184
|
-
# schema.record "cities_lived", mode: :repeated do |cities_lived|
|
185
|
-
# cities_lived.string "place", mode: :required
|
186
|
-
# cities_lived.integer "number_of_years", mode: :required
|
187
|
-
# end
|
188
|
-
# end
|
189
|
-
#
|
190
|
-
def record name, description: nil, mode: nil
|
191
|
-
fail ArgumentError, "nested RECORD type is not permitted" if @nested
|
192
|
-
fail ArgumentError, "a block is required" unless block_given?
|
193
|
-
nested_schema = self.class.new nil, true
|
194
|
-
yield nested_schema
|
195
|
-
add_field name, :record, nested_schema.fields,
|
196
|
-
description: description, mode: mode
|
197
|
-
end
|
198
|
-
|
199
|
-
protected
|
200
|
-
|
201
|
-
def upcase_type type
|
202
|
-
upcase_type = type.to_s.upcase
|
203
|
-
unless TYPES.include? upcase_type
|
204
|
-
fail ArgumentError,
|
205
|
-
"Type '#{upcase_type}' not found in #{TYPES.inspect}"
|
206
|
-
end
|
207
|
-
upcase_type
|
208
|
-
end
|
209
|
-
|
210
|
-
def upcase_mode mode
|
211
|
-
upcase_mode = mode.to_s.upcase
|
212
|
-
unless MODES.include? upcase_mode
|
213
|
-
fail ArgumentError "Unable to determine mode for '#{mode}'"
|
214
|
-
end
|
215
|
-
upcase_mode
|
216
|
-
end
|
217
|
-
|
218
|
-
def add_field name, type, nested_fields, description: nil,
|
219
|
-
mode: :nullable
|
220
|
-
# Remove any existing field of this name
|
221
|
-
@fields.reject! { |h| h["name"] == name }
|
222
|
-
field = {
|
223
|
-
"name" => name,
|
224
|
-
"type" => upcase_type(type)
|
225
|
-
}
|
226
|
-
field["fields"] = nested_fields if nested_fields
|
227
|
-
field["description"] = description if description
|
228
|
-
field["mode"] = upcase_mode(mode) if mode
|
229
|
-
@fields << field
|
230
|
-
end
|
231
|
-
end
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
@@ -1,173 +0,0 @@
|
|
1
|
-
# Copyright 2015 Google Inc. All rights reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
|
16
|
-
require "gcloud/version"
|
17
|
-
require "gcloud/backoff"
|
18
|
-
require "google/api_client"
|
19
|
-
|
20
|
-
module Gcloud
|
21
|
-
module Dns
|
22
|
-
##
|
23
|
-
# @private Represents the connection to DNS, as well as expose the API calls
|
24
|
-
class Connection
|
25
|
-
API_VERSION = "v1"
|
26
|
-
|
27
|
-
attr_accessor :project
|
28
|
-
attr_accessor :credentials
|
29
|
-
|
30
|
-
##
|
31
|
-
# Creates a new Connection instance.
|
32
|
-
def initialize project, credentials
|
33
|
-
@project = project
|
34
|
-
@credentials = credentials
|
35
|
-
@client = Google::APIClient.new application_name: "gcloud-ruby",
|
36
|
-
application_version: Gcloud::VERSION
|
37
|
-
@client.authorization = @credentials.client
|
38
|
-
@dns = @client.discovered_api "dns", API_VERSION
|
39
|
-
end
|
40
|
-
|
41
|
-
def get_project project_id = @project
|
42
|
-
execute(
|
43
|
-
api_method: @dns.projects.get,
|
44
|
-
parameters: { project: project_id }
|
45
|
-
)
|
46
|
-
end
|
47
|
-
|
48
|
-
def get_zone zone_id
|
49
|
-
execute(
|
50
|
-
api_method: @dns.managed_zones.get,
|
51
|
-
parameters: { project: @project, managedZone: zone_id }
|
52
|
-
)
|
53
|
-
end
|
54
|
-
|
55
|
-
def list_zones token: nil, max: nil
|
56
|
-
params = { project: @project,
|
57
|
-
pageToken: token,
|
58
|
-
maxResults: max
|
59
|
-
}.delete_if { |_, v| v.nil? }
|
60
|
-
|
61
|
-
execute(
|
62
|
-
api_method: @dns.managed_zones.list,
|
63
|
-
parameters: params
|
64
|
-
)
|
65
|
-
end
|
66
|
-
|
67
|
-
def create_zone zone_name, zone_dns, description: nil,
|
68
|
-
name_server_set: nil
|
69
|
-
body = { kind: "dns#managedZone",
|
70
|
-
name: zone_name, dnsName: zone_dns,
|
71
|
-
description: (description || ""),
|
72
|
-
nameServerSet: name_server_set
|
73
|
-
}.delete_if { |_, v| v.nil? }
|
74
|
-
|
75
|
-
execute(
|
76
|
-
api_method: @dns.managed_zones.create,
|
77
|
-
parameters: { project: @project },
|
78
|
-
body_object: body
|
79
|
-
)
|
80
|
-
end
|
81
|
-
|
82
|
-
def delete_zone zone_id
|
83
|
-
execute(
|
84
|
-
api_method: @dns.managed_zones.delete,
|
85
|
-
parameters: { project: @project, managedZone: zone_id }
|
86
|
-
)
|
87
|
-
end
|
88
|
-
|
89
|
-
def get_change zone_id, change_id
|
90
|
-
execute(
|
91
|
-
api_method: @dns.changes.get,
|
92
|
-
parameters: { project: @project, managedZone: zone_id,
|
93
|
-
changeId: change_id }
|
94
|
-
)
|
95
|
-
end
|
96
|
-
|
97
|
-
def list_changes zone_id, token: nil, max: nil, order: nil, sort: nil
|
98
|
-
params = { project: @project, managedZone: zone_id,
|
99
|
-
pageToken: token,
|
100
|
-
maxResults: max,
|
101
|
-
sortBy: sort,
|
102
|
-
sortOrder: order
|
103
|
-
}.delete_if { |_, v| v.nil? }
|
104
|
-
|
105
|
-
execute(
|
106
|
-
api_method: @dns.changes.list,
|
107
|
-
parameters: params
|
108
|
-
)
|
109
|
-
end
|
110
|
-
|
111
|
-
def create_change zone_id, additions, deletions
|
112
|
-
change = { "kind" => "dns#change",
|
113
|
-
"additions" => Array(additions),
|
114
|
-
"deletions" => Array(deletions) }
|
115
|
-
|
116
|
-
execute(
|
117
|
-
api_method: @dns.changes.create,
|
118
|
-
parameters: { project: @project, managedZone: zone_id },
|
119
|
-
body_object: change
|
120
|
-
)
|
121
|
-
end
|
122
|
-
|
123
|
-
def list_records zone_id, name = nil, type = nil, token: nil, max: nil
|
124
|
-
params = { project: @project, managedZone: zone_id,
|
125
|
-
pageToken: token,
|
126
|
-
maxResults: max,
|
127
|
-
name: name,
|
128
|
-
type: type
|
129
|
-
}.delete_if { |_, v| v.nil? }
|
130
|
-
|
131
|
-
execute(
|
132
|
-
api_method: @dns.resource_record_sets.list,
|
133
|
-
parameters: params
|
134
|
-
)
|
135
|
-
end
|
136
|
-
|
137
|
-
##
|
138
|
-
# Fully Qualified Domain Name
|
139
|
-
def self.fqdn name, origin_dns
|
140
|
-
name = name.to_s.strip
|
141
|
-
return name if self.ip_addr? name
|
142
|
-
name = origin_dns if name.empty?
|
143
|
-
name = origin_dns if name == "@"
|
144
|
-
name = "#{name}.#{origin_dns}" unless name.include? "."
|
145
|
-
name = "#{name}." unless name.end_with? "."
|
146
|
-
name
|
147
|
-
end
|
148
|
-
|
149
|
-
require "ipaddr"
|
150
|
-
# Fix to make ip_addr? work on ruby 1.9
|
151
|
-
IPAddr::Error = ArgumentError unless defined? IPAddr::Error
|
152
|
-
|
153
|
-
def self.ip_addr? name
|
154
|
-
IPAddr.new name
|
155
|
-
true
|
156
|
-
rescue IPAddr::Error
|
157
|
-
false
|
158
|
-
end
|
159
|
-
|
160
|
-
def inspect
|
161
|
-
"#{self.class}(#{@project})"
|
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
|
171
|
-
end
|
172
|
-
end
|
173
|
-
end
|