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
@@ -53,7 +53,7 @@ module Gcloud
|
|
53
53
|
# Must provide a valid Bucket object.
|
54
54
|
def initialize bucket
|
55
55
|
@bucket = bucket.name
|
56
|
-
@
|
56
|
+
@service = bucket.service
|
57
57
|
@owners = nil
|
58
58
|
@writers = nil
|
59
59
|
@readers = nil
|
@@ -73,8 +73,8 @@ module Gcloud
|
|
73
73
|
# bucket.acl.reload!
|
74
74
|
#
|
75
75
|
def reload!
|
76
|
-
|
77
|
-
acls =
|
76
|
+
gapi = @service.list_bucket_acls @bucket
|
77
|
+
acls = Array(gapi.items)
|
78
78
|
@owners = entities_from_acls acls, "OWNER"
|
79
79
|
@writers = entities_from_acls acls, "WRITER"
|
80
80
|
@readers = entities_from_acls acls, "READER"
|
@@ -179,13 +179,10 @@ module Gcloud
|
|
179
179
|
# bucket.acl.add_owner "group-#{email}"
|
180
180
|
#
|
181
181
|
def add_owner entity
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
return entity
|
187
|
-
end
|
188
|
-
nil
|
182
|
+
gapi = @service.insert_bucket_acl @bucket, entity, "OWNER"
|
183
|
+
entity = gapi.entity
|
184
|
+
@owners.push entity unless @owners.nil?
|
185
|
+
entity
|
189
186
|
end
|
190
187
|
|
191
188
|
##
|
@@ -226,13 +223,10 @@ module Gcloud
|
|
226
223
|
# bucket.acl.add_writer "group-#{email}"
|
227
224
|
#
|
228
225
|
def add_writer entity
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
return entity
|
234
|
-
end
|
235
|
-
nil
|
226
|
+
gapi = @service.insert_bucket_acl @bucket, entity, "WRITER"
|
227
|
+
entity = gapi.entity
|
228
|
+
@writers.push entity unless @writers.nil?
|
229
|
+
entity
|
236
230
|
end
|
237
231
|
|
238
232
|
##
|
@@ -273,13 +267,10 @@ module Gcloud
|
|
273
267
|
# bucket.acl.add_reader "group-#{email}"
|
274
268
|
#
|
275
269
|
def add_reader entity
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
return entity
|
281
|
-
end
|
282
|
-
nil
|
270
|
+
gapi = @service.insert_bucket_acl @bucket, entity, "READER"
|
271
|
+
entity = gapi.entity
|
272
|
+
@readers.push entity unless @readers.nil?
|
273
|
+
entity
|
283
274
|
end
|
284
275
|
|
285
276
|
##
|
@@ -309,14 +300,11 @@ module Gcloud
|
|
309
300
|
# bucket.acl.delete "user-#{email}"
|
310
301
|
#
|
311
302
|
def delete entity
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
return true
|
318
|
-
end
|
319
|
-
false
|
303
|
+
@service.delete_bucket_acl @bucket, entity
|
304
|
+
@owners.delete entity unless @owners.nil?
|
305
|
+
@writers.delete entity unless @writers.nil?
|
306
|
+
@readers.delete entity unless @readers.nil?
|
307
|
+
true
|
320
308
|
end
|
321
309
|
|
322
310
|
# @private
|
@@ -433,17 +421,13 @@ module Gcloud
|
|
433
421
|
end
|
434
422
|
|
435
423
|
def update_predefined_acl! acl_role
|
436
|
-
|
437
|
-
|
438
|
-
acl: []
|
439
|
-
|
440
|
-
return clear! if resp.success?
|
441
|
-
fail Gcloud::Storage::ApiError.from_response(resp)
|
424
|
+
@service.patch_bucket @bucket, predefined_acl: acl_role
|
425
|
+
clear!
|
442
426
|
end
|
443
427
|
|
444
428
|
def entities_from_acls acls, role
|
445
|
-
selected = acls.select { |acl| acl
|
446
|
-
entities = selected.map
|
429
|
+
selected = acls.select { |acl| acl.role == role }
|
430
|
+
entities = selected.map(&:entity)
|
447
431
|
entities
|
448
432
|
end
|
449
433
|
end
|
@@ -486,9 +470,8 @@ module Gcloud
|
|
486
470
|
# Must provide a valid Bucket object.
|
487
471
|
def initialize bucket
|
488
472
|
@bucket = bucket.name
|
489
|
-
@
|
473
|
+
@service = bucket.service
|
490
474
|
@owners = nil
|
491
|
-
@writers = nil
|
492
475
|
@readers = nil
|
493
476
|
end
|
494
477
|
|
@@ -506,10 +489,13 @@ module Gcloud
|
|
506
489
|
# bucket.default_acl.reload!
|
507
490
|
#
|
508
491
|
def reload!
|
509
|
-
|
510
|
-
acls =
|
492
|
+
gapi = @service.list_default_acls @bucket
|
493
|
+
acls = Array(gapi.items).map do |acl|
|
494
|
+
return acl if acl.is_a? Google::Apis::StorageV1::ObjectAccessControl
|
495
|
+
fail "Unknown ACL format: #{acl.class}" unless acl.is_a? Hash
|
496
|
+
Google::Apis::StorageV1::ObjectAccessControl.from_json acl.to_json
|
497
|
+
end
|
511
498
|
@owners = entities_from_acls acls, "OWNER"
|
512
|
-
@writers = entities_from_acls acls, "WRITER"
|
513
499
|
@readers = entities_from_acls acls, "READER"
|
514
500
|
end
|
515
501
|
alias_method :refresh!, :reload!
|
@@ -534,26 +520,6 @@ module Gcloud
|
|
534
520
|
@owners
|
535
521
|
end
|
536
522
|
|
537
|
-
##
|
538
|
-
# Lists the default writers for files in the bucket.
|
539
|
-
#
|
540
|
-
# @return [Array<String>]
|
541
|
-
#
|
542
|
-
# @example
|
543
|
-
# require "gcloud"
|
544
|
-
#
|
545
|
-
# gcloud = Gcloud.new
|
546
|
-
# storage = gcloud.storage
|
547
|
-
#
|
548
|
-
# bucket = storage.bucket "my-bucket"
|
549
|
-
#
|
550
|
-
# bucket.default_acl.writers.each { |writer| puts writer }
|
551
|
-
#
|
552
|
-
def writers
|
553
|
-
reload! if @writers.nil?
|
554
|
-
@writers
|
555
|
-
end
|
556
|
-
|
557
523
|
##
|
558
524
|
# Lists the default readers for files in the bucket.
|
559
525
|
#
|
@@ -612,60 +578,10 @@ module Gcloud
|
|
612
578
|
# bucket.default_acl.add_owner "group-#{email}"
|
613
579
|
#
|
614
580
|
def add_owner entity
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
return entity
|
620
|
-
end
|
621
|
-
nil
|
622
|
-
end
|
623
|
-
|
624
|
-
##
|
625
|
-
# Grants default writer permission to files in the bucket.
|
626
|
-
#
|
627
|
-
# @param [String] entity The entity holding the permission, in one of
|
628
|
-
# the following forms:
|
629
|
-
#
|
630
|
-
# * user-userId
|
631
|
-
# * user-email
|
632
|
-
# * group-groupId
|
633
|
-
# * group-email
|
634
|
-
# * domain-domain
|
635
|
-
# * project-team-projectId
|
636
|
-
# * allUsers
|
637
|
-
# * allAuthenticatedUsers
|
638
|
-
#
|
639
|
-
# @example Grant access to a user by pre-pending `"user-"` to an email:
|
640
|
-
# require "gcloud"
|
641
|
-
#
|
642
|
-
# gcloud = Gcloud.new
|
643
|
-
# storage = gcloud.storage
|
644
|
-
#
|
645
|
-
# bucket = storage.bucket "my-bucket"
|
646
|
-
#
|
647
|
-
# email = "heidi@example.net"
|
648
|
-
# bucket.default_acl.add_writer "user-#{email}"
|
649
|
-
#
|
650
|
-
# @example Grant access to a group by pre-pending `"group-"` to an email
|
651
|
-
# require "gcloud"
|
652
|
-
#
|
653
|
-
# gcloud = Gcloud.new
|
654
|
-
# storage = gcloud.storage
|
655
|
-
#
|
656
|
-
# bucket = storage.bucket "my-bucket"
|
657
|
-
#
|
658
|
-
# email = "authors@example.net"
|
659
|
-
# bucket.default_acl.add_writer "group-#{email}"
|
660
|
-
#
|
661
|
-
def add_writer entity
|
662
|
-
resp = @connection.insert_default_acl @bucket, entity, "WRITER"
|
663
|
-
if resp.success?
|
664
|
-
entity = resp.data["entity"]
|
665
|
-
@writers.push entity unless @writers.nil?
|
666
|
-
return entity
|
667
|
-
end
|
668
|
-
nil
|
581
|
+
gapi = @service.insert_default_acl @bucket, entity, "OWNER"
|
582
|
+
entity = gapi.entity
|
583
|
+
@owners.push entity unless @owners.nil?
|
584
|
+
entity
|
669
585
|
end
|
670
586
|
|
671
587
|
##
|
@@ -706,13 +622,10 @@ module Gcloud
|
|
706
622
|
# bucket.default_acl.add_reader "group-#{email}"
|
707
623
|
#
|
708
624
|
def add_reader entity
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
return entity
|
714
|
-
end
|
715
|
-
nil
|
625
|
+
gapi = @service.insert_default_acl @bucket, entity, "READER"
|
626
|
+
entity = gapi.entity
|
627
|
+
@readers.push entity unless @readers.nil?
|
628
|
+
entity
|
716
629
|
end
|
717
630
|
|
718
631
|
##
|
@@ -743,14 +656,10 @@ module Gcloud
|
|
743
656
|
# bucket.default_acl.delete "user-#{email}"
|
744
657
|
#
|
745
658
|
def delete entity
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
@readers.delete entity unless @readers.nil?
|
751
|
-
return true
|
752
|
-
end
|
753
|
-
false
|
659
|
+
@service.delete_default_acl @bucket, entity
|
660
|
+
@owners.delete entity unless @owners.nil?
|
661
|
+
@readers.delete entity unless @readers.nil?
|
662
|
+
true
|
754
663
|
end
|
755
664
|
|
756
665
|
# @private
|
@@ -881,23 +790,18 @@ module Gcloud
|
|
881
790
|
|
882
791
|
def clear!
|
883
792
|
@owners = nil
|
884
|
-
@writers = nil
|
885
793
|
@readers = nil
|
886
794
|
self
|
887
795
|
end
|
888
796
|
|
889
797
|
def update_predefined_default_acl! acl_role
|
890
|
-
|
891
|
-
|
892
|
-
default_acl: []
|
893
|
-
|
894
|
-
return clear! if resp.success?
|
895
|
-
fail Gcloud::Storage::ApiError.from_response(resp)
|
798
|
+
@service.patch_bucket @bucket, predefined_default_acl: acl_role
|
799
|
+
clear!
|
896
800
|
end
|
897
801
|
|
898
802
|
def entities_from_acls acls, role
|
899
|
-
selected = acls.select { |acl| acl
|
900
|
-
entities = selected.map
|
803
|
+
selected = acls.select { |acl| acl.role == role }
|
804
|
+
entities = selected.map(&:entity)
|
901
805
|
entities
|
902
806
|
end
|
903
807
|
end
|
@@ -22,8 +22,7 @@ module Gcloud
|
|
22
22
|
# # Bucket Cors
|
23
23
|
#
|
24
24
|
# A special-case Array for managing the website CORS rules for a bucket.
|
25
|
-
# Accessed via
|
26
|
-
# or {Bucket#update}.
|
25
|
+
# Accessed via {Bucket#cors}.
|
27
26
|
#
|
28
27
|
# @see https://cloud.google.com/storage/docs/cross-origin Cross-Origin
|
29
28
|
# Resource Sharing (CORS)
|
@@ -35,11 +34,12 @@ module Gcloud
|
|
35
34
|
# storage = gcloud.storage
|
36
35
|
# bucket = storage.bucket "my-todo-app"
|
37
36
|
#
|
37
|
+
# bucket = storage.bucket "my-bucket"
|
38
38
|
# bucket.cors do |c|
|
39
39
|
# # Remove the last CORS rule from the array
|
40
40
|
# c.pop
|
41
41
|
# # Remove all existing rules with the https protocol
|
42
|
-
# c.delete_if { |r| r
|
42
|
+
# c.delete_if { |r| r.origin.include? "http://example.com" }
|
43
43
|
# c.add_rule ["http://example.org", "https://example.org"],
|
44
44
|
# ["GET", "POST", "DELETE"],
|
45
45
|
# response_headers: ["X-My-Custom-Header"],
|
@@ -50,14 +50,14 @@ module Gcloud
|
|
50
50
|
##
|
51
51
|
# @private
|
52
52
|
# Initialize a new CORS rules builder with existing CORS rules, if any.
|
53
|
-
def initialize
|
54
|
-
super
|
55
|
-
@original =
|
53
|
+
def initialize rules = []
|
54
|
+
super rules
|
55
|
+
@original = to_gapi.map(&:to_json)
|
56
56
|
end
|
57
57
|
|
58
58
|
# @private
|
59
59
|
def changed?
|
60
|
-
@original !=
|
60
|
+
@original != to_gapi.map(&:to_json)
|
61
61
|
end
|
62
62
|
|
63
63
|
##
|
@@ -98,10 +98,54 @@ module Gcloud
|
|
98
98
|
# end
|
99
99
|
#
|
100
100
|
def add_rule origin, methods, headers: nil, max_age: nil
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
101
|
+
push Rule.new(origin, methods, headers: headers, max_age: max_age)
|
102
|
+
end
|
103
|
+
|
104
|
+
# @private
|
105
|
+
def to_gapi
|
106
|
+
map(&:to_gapi)
|
107
|
+
end
|
108
|
+
|
109
|
+
# @private
|
110
|
+
def self.from_gapi gapi_list
|
111
|
+
rules = Array(gapi_list).map { |gapi| Rule.from_gapi gapi }
|
112
|
+
new rules
|
113
|
+
end
|
114
|
+
|
115
|
+
# @private
|
116
|
+
def freeze
|
117
|
+
each(&:freeze)
|
118
|
+
super
|
119
|
+
end
|
120
|
+
|
121
|
+
class Rule
|
122
|
+
attr_accessor :origin, :methods, :headers, :max_age
|
123
|
+
|
124
|
+
def initialize origin, methods, headers: nil, max_age: nil
|
125
|
+
@origin = Array(origin)
|
126
|
+
@methods = Array(methods)
|
127
|
+
@headers = Array(headers)
|
128
|
+
@max_age = (max_age||1800)
|
129
|
+
end
|
130
|
+
|
131
|
+
def to_gapi
|
132
|
+
Google::Apis::StorageV1::Bucket::CorsConfiguration.new(
|
133
|
+
origin: Array(origin).dup, http_method: Array(methods).dup,
|
134
|
+
response_header: Array(headers).dup, max_age_seconds: max_age
|
135
|
+
)
|
136
|
+
end
|
137
|
+
|
138
|
+
def self.from_gapi gapi
|
139
|
+
new gapi.origin.dup, gapi.http_method.dup, \
|
140
|
+
headers: gapi.response_header.dup, max_age: gapi.max_age_seconds
|
141
|
+
end
|
142
|
+
|
143
|
+
def freeze
|
144
|
+
@origin.freeze
|
145
|
+
@methods.freeze
|
146
|
+
@headers.freeze
|
147
|
+
super
|
148
|
+
end
|
105
149
|
end
|
106
150
|
end
|
107
151
|
end
|
@@ -71,11 +71,10 @@ module Gcloud
|
|
71
71
|
#
|
72
72
|
def next
|
73
73
|
return nil unless next?
|
74
|
-
|
74
|
+
ensure_service!
|
75
75
|
options = { prefix: @prefix, token: @token, max: @max }
|
76
|
-
|
77
|
-
|
78
|
-
Bucket::List.from_response resp, @connection, @prefix, @max
|
76
|
+
gapi = @service.list_buckets options
|
77
|
+
Bucket::List.from_gapi gapi, @service, @prefix, @max
|
79
78
|
end
|
80
79
|
|
81
80
|
##
|
@@ -147,15 +146,16 @@ module Gcloud
|
|
147
146
|
end
|
148
147
|
|
149
148
|
##
|
150
|
-
# @private New Bucket::List from a
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
# @private New Bucket::List from a Google API Client
|
150
|
+
# Google::Apis::StorageV1::Buckets object.
|
151
|
+
def self.from_gapi gapi_list, service, prefix = nil, max = nil
|
152
|
+
buckets = new(Array(gapi_list.items).map do |gapi_object|
|
153
|
+
Bucket.from_gapi gapi_object, service
|
154
154
|
end)
|
155
|
-
buckets.instance_variable_set
|
156
|
-
buckets.instance_variable_set
|
157
|
-
buckets.instance_variable_set
|
158
|
-
buckets.instance_variable_set
|
155
|
+
buckets.instance_variable_set :@token, gapi_list.next_page_token
|
156
|
+
buckets.instance_variable_set :@service, service
|
157
|
+
buckets.instance_variable_set :@prefix, prefix
|
158
|
+
buckets.instance_variable_set :@max, max
|
159
159
|
buckets
|
160
160
|
end
|
161
161
|
|
@@ -163,8 +163,8 @@ module Gcloud
|
|
163
163
|
|
164
164
|
##
|
165
165
|
# Raise an error unless an active connection is available.
|
166
|
-
def
|
167
|
-
fail "Must have active connection" unless @
|
166
|
+
def ensure_service!
|
167
|
+
fail "Must have active connection" unless @service
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
@@ -17,58 +17,18 @@ require "gcloud/errors"
|
|
17
17
|
|
18
18
|
module Gcloud
|
19
19
|
module Storage
|
20
|
-
##
|
21
|
-
# # Storage Error
|
22
|
-
#
|
23
|
-
# Base Storage exception class.
|
24
|
-
class Error < Gcloud::Error
|
25
|
-
end
|
26
|
-
|
27
|
-
##
|
28
|
-
# # ApiError
|
29
|
-
#
|
30
|
-
# Raised when an API call is not successful.
|
31
|
-
class ApiError < Error
|
32
|
-
##
|
33
|
-
# The code of the error.
|
34
|
-
attr_reader :code
|
35
|
-
|
36
|
-
##
|
37
|
-
# The errors encountered.
|
38
|
-
attr_reader :errors
|
39
|
-
|
40
|
-
def initialize message, code, errors
|
41
|
-
super message
|
42
|
-
@code = code
|
43
|
-
@errors = errors
|
44
|
-
end
|
45
|
-
|
46
|
-
# @private
|
47
|
-
def self.from_response resp
|
48
|
-
if resp.data && resp.data["error"]
|
49
|
-
new resp.data["error"]["message"],
|
50
|
-
resp.data["error"]["code"],
|
51
|
-
resp.data["error"]["errors"]
|
52
|
-
else
|
53
|
-
new resp.error_message,
|
54
|
-
resp.status,
|
55
|
-
nil
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
20
|
##
|
61
21
|
# # FileVerificationError
|
62
22
|
#
|
63
23
|
# Raised when a File download fails the verification.
|
64
|
-
class FileVerificationError < Error
|
24
|
+
class FileVerificationError < Gcloud::Error
|
65
25
|
##
|
66
26
|
# The type of digest that failed verification,
|
67
27
|
# :md5 or :crc32c.
|
68
28
|
attr_accessor :type
|
69
29
|
|
70
30
|
##
|
71
|
-
# The value of the digest on the
|
31
|
+
# The value of the digest on the gcloud-ruby file.
|
72
32
|
attr_accessor :gcloud_digest
|
73
33
|
|
74
34
|
##
|
@@ -99,7 +59,7 @@ module Gcloud
|
|
99
59
|
#
|
100
60
|
# This is raised when File#signed_url is unable to generate a URL due to
|
101
61
|
# missing credentials needed to create the URL.
|
102
|
-
class SignedUrlUnavailable < Error
|
62
|
+
class SignedUrlUnavailable < Gcloud::Error
|
103
63
|
end
|
104
64
|
end
|
105
65
|
end
|