gcloud 0.11.0 → 0.12.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/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
|