google-cloud-core 0.21.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 003b83a4857751484cf66fe91a51631b2c5d4007
4
- data.tar.gz: afc142807310926b5fd32e81763155114fb45c06
3
+ metadata.gz: f3b3286a9a2e4ebe6bf7cfd228acba475b78dc40
4
+ data.tar.gz: e8d02970e3a8ba6ef1c72a046c0e6c6065f8b75f
5
5
  SHA512:
6
- metadata.gz: 415e2efaabdce670b3329e46b63bd1d5b40d95f8e0665889e11ac04370d9f3abe4cbc1842f04d6d8a7b469a191da74256cc1265168e8b9e4e98361ab39286cb5
7
- data.tar.gz: 17d1c345c85fb27ec2359b0402d70fa7157af307e5853f89095b38b693cd83c2eba5c6e7d24a49631dc20b92733476c530f30b553703207515d09ad7352c2732
6
+ metadata.gz: 0e43a9d267eff76d96bbb39236ec953ac5d8fee64614bb2d5374f464c3d58d7faf2d94c3ee6b993525fe489532c9f1b3f68c27130e7a69705f8ac58fa0e39066
7
+ data.tar.gz: 14cf2efe270c65f98e5f668b00abaf58aa54af634a031e654bd84c9b8eae75dbc1155699bce00daf11b2ab614a59567297cf34441aa8942366e41c0462b6f3ac
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This library contains shared types, such as error classes, for the google-cloud project. Please see the top-level project [README](../README.md) for general information.
4
4
 
5
- - [google-cloud-core API documentation](http://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-core/master/google/cloud/errors)
5
+ - [google-cloud-core API documentation](http://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-core/latest)
6
6
 
7
7
  ## Supported Ruby Versions
8
8
 
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Core
19
- VERSION = "0.21.1"
19
+ VERSION = "1.0.0"
20
20
  end
21
21
  end
22
22
  end
@@ -68,12 +68,12 @@ module Google
68
68
  path = ->(p) { ::File.file? p }
69
69
 
70
70
  # First try to find keyfile file from environment variables.
71
- self::PATH_ENV_VARS.map(&env).reject(&:nil?).select(&path)
71
+ self::PATH_ENV_VARS.map(&env).compact.select(&path)
72
72
  .each do |file|
73
73
  return new file, scope: scope
74
74
  end
75
75
  # Second try to find keyfile json from environment variables.
76
- self::JSON_ENV_VARS.map(&json).reject(&:nil?).each do |hash|
76
+ self::JSON_ENV_VARS.map(&json).compact.each do |hash|
77
77
  return new hash, scope: scope
78
78
  end
79
79
  # Third try to find keyfile file from known file paths.
@@ -111,7 +111,7 @@ module Google
111
111
  ##
112
112
  # returns a new Hash with string keys instead of symbol keys.
113
113
  def stringify_hash_keys hash
114
- Hash[hash.map { |(k, v)| [k.to_s, v] }]
114
+ Hash[hash.map { |k, v| [k.to_s, v] }]
115
115
  end
116
116
 
117
117
  def client_options options
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-11-23 00:00:00.000000000 Z
12
+ date: 2017-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: googleauth
@@ -25,20 +25,34 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: 0.5.1
28
+ - !ruby/object:Gem::Dependency
29
+ name: google-cloud-env
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: minitest
30
44
  requirement: !ruby/object:Gem::Requirement
31
45
  requirements:
32
46
  - - "~>"
33
47
  - !ruby/object:Gem::Version
34
- version: '5.9'
48
+ version: '5.10'
35
49
  type: :development
36
50
  prerelease: false
37
51
  version_requirements: !ruby/object:Gem::Requirement
38
52
  requirements:
39
53
  - - "~>"
40
54
  - !ruby/object:Gem::Version
41
- version: '5.9'
55
+ version: '5.10'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: minitest-autotest
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -141,14 +155,14 @@ dependencies:
141
155
  name: yard-doctest
142
156
  requirement: !ruby/object:Gem::Requirement
143
157
  requirements:
144
- - - "~>"
158
+ - - "<="
145
159
  - !ruby/object:Gem::Version
146
160
  version: 0.1.8
147
161
  type: :development
148
162
  prerelease: false
149
163
  version_requirements: !ruby/object:Gem::Requirement
150
164
  requirements:
151
- - - "~>"
165
+ - - "<="
152
166
  - !ruby/object:Gem::Version
153
167
  version: 0.1.8
154
168
  description: google-cloud-core is the internal shared library for google-cloud-ruby.
@@ -163,8 +177,6 @@ files:
163
177
  - LICENSE
164
178
  - README.md
165
179
  - lib/google/cloud.rb
166
- - lib/google/cloud/core/environment.rb
167
- - lib/google/cloud/core/grpc_utils.rb
168
180
  - lib/google/cloud/core/version.rb
169
181
  - lib/google/cloud/credentials.rb
170
182
  - lib/google/cloud/errors.rb
@@ -188,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
200
  version: '0'
189
201
  requirements: []
190
202
  rubyforge_project:
191
- rubygems_version: 2.4.5.1
203
+ rubygems_version: 2.6.11
192
204
  signing_key:
193
205
  specification_version: 4
194
206
  summary: Internal shared library for google-cloud-ruby
@@ -1,149 +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 "faraday"
17
-
18
- module Google
19
- module Cloud
20
- module Core
21
- ##
22
- # @private
23
- # Represents the Google Cloud Platform environments.
24
- module Environment
25
- CHECK_URI = "http://169.254.169.254"
26
- PROJECT_URI = "#{CHECK_URI}/computeMetadata/v1/project"
27
- INSTANCE_METADATA_URI = "#{CHECK_URI}/computeMetadata/v1/instance"
28
-
29
- ##
30
- # Check if running from a gce vm, which actually hosts GCE, GKE, and
31
- # GAE environments.
32
- def self.gce_vm? connection: nil
33
- @metadata ||= {}
34
- return @metadata[:gce_vm] if @metadata.key? :gce_vm
35
-
36
- conn = connection || Faraday.default_connection
37
- resp = conn.get CHECK_URI do |req|
38
- req.options.timeout = 0.1
39
- end
40
- @metadata[:gce_vm] = if resp.status != 200 ||
41
- !resp.headers.key?("Metadata-Flavor")
42
- false
43
- else
44
- resp.headers["Metadata-Flavor"] == "Google"
45
- end
46
- rescue Faraday::TimeoutError, Faraday::ConnectionFailed
47
- @metadata ||= {}
48
- @metadata[:gce_vm] = false
49
- end
50
-
51
- ##
52
- # Check if running from Google Compute Engine, and not using GAE or GKE
53
- #
54
- # @return [Boolean] True if running from GCE and not GAE or GKE
55
- def self.gce?
56
- gce_vm? && !gae? && !gke?
57
- end
58
-
59
- ##
60
- # Check if running from Google Container Engine by querying for
61
- # GKE cluster name and VM instance_zone
62
- #
63
- # @return [Boolean] True if self.gke_cluster_name() and
64
- # self.instance_zone() both return true values
65
- def self.gke?
66
- gke_cluster_name && instance_zone
67
- end
68
-
69
- ##
70
- # Check if running from Google App Engine by checking existance of
71
- # GAE_VM, GAE_MODULE_NAME, GAE_MODULE_VERSION environment variables.
72
- #
73
- # @return [Boolean] True if all three GAE environment variables are
74
- # defined
75
- def self.gae?
76
- # TODO: Remove ENV["GAE_VM"] when GAE Flex goes GA
77
- (ENV["GAE_VM"] || ENV["GAE_INSTANCE"]) &&
78
- gae_module_id && gae_module_version
79
- end
80
-
81
- def self.project_id
82
- uri = "#{PROJECT_URI}/project-id"
83
- get_metadata_attribute uri, :project_id
84
- end
85
-
86
- ##
87
- # Retrieve GAE module name
88
- def self.gae_module_id
89
- # TODO: Remove ENV["GAE_MODULE_NAME"] when GAE Flex goes GA
90
- ENV["GAE_MODULE_NAME"] || ENV["GAE_SERVICE"]
91
- end
92
-
93
- ##
94
- # Retrieve GAE module version
95
- def self.gae_module_version
96
- # TODO: Remove ENV["GAE_MODULE_VERSION"] when GAE Flex goes GA
97
- ENV["GAE_MODULE_VERSION"] || ENV["GAE_VERSION"]
98
- end
99
-
100
- ##
101
- # Retrieve GKE cluster name
102
- def self.gke_cluster_name
103
- uri = "#{INSTANCE_METADATA_URI}/attributes/cluster-name"
104
- get_metadata_attribute uri, :cluster_name
105
- end
106
-
107
- ##
108
- # Retrieve GKE namespace id
109
- def self.gke_namespace_id
110
- ENV["GKE_NAMESPACE_ID"]
111
- end
112
-
113
- ##
114
- # Retrieve GCE VM zone
115
- def self.instance_zone
116
- uri = "#{INSTANCE_METADATA_URI}/zone"
117
- full_zone = get_metadata_attribute uri, :zone
118
- full_zone.nil? ? nil : full_zone.split(%r{/}).last
119
- end
120
-
121
- ##
122
- # Retrieve GCE VM instance_id
123
- def self.instance_id
124
- uri = "#{INSTANCE_METADATA_URI}/id"
125
- get_metadata_attribute uri, :instance_id
126
- end
127
-
128
- ##
129
- # Helper method to send HTTP request to GCP metadata service and
130
- # retrieve environment information
131
- def self.get_metadata_attribute uri, attr_name, connection: nil
132
- @metadata ||= {}
133
- return @metadata[attr_name] if @metadata.key? attr_name
134
-
135
- conn = connection || Faraday.default_connection
136
- conn.headers = { "Metadata-Flavor" => "Google" }
137
- resp = conn.get uri do |req|
138
- req.options.timeout = 0.1
139
- end
140
-
141
- @metadata[attr_name] = resp.status == 200 ? resp.body : nil
142
- rescue Faraday::TimeoutError, Faraday::ConnectionFailed
143
- @metadata ||= {}
144
- @metadata[attr_name] = nil
145
- end
146
- end
147
- end
148
- end
149
- end
@@ -1,91 +0,0 @@
1
- # Copyright 2016 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 "google/cloud"
17
- require "google/protobuf/struct_pb"
18
-
19
- module Google
20
- module Cloud
21
- module Core
22
- ##
23
- # @private Conversion to/from GRPC objects.
24
- module GRPCUtils
25
- ##
26
- # @private Convert a Hash to a Google::Protobuf::Struct.
27
- def self.hash_to_struct hash
28
- # TODO: ArgumentError if hash is not a Hash
29
- Google::Protobuf::Struct.new fields:
30
- Hash[hash.map { |k, v| [String(k), object_to_value(v)] }]
31
- end
32
-
33
- ##
34
- # @private Convert a Google::Protobuf::Struct to a Hash.
35
- def self.struct_to_hash struct
36
- # TODO: ArgumentError if struct is not a Google::Protobuf::Struct
37
- Hash[struct.fields.map { |k, v| [k, value_to_object(v)] }]
38
- end
39
-
40
- ##
41
- # @private Convert a Google::Protobuf::Value to an Object.
42
- def self.value_to_object value
43
- # TODO: ArgumentError if struct is not a Google::Protobuf::Value
44
- if value.null_value
45
- nil
46
- elsif value.number_value
47
- value.number_value
48
- elsif value.struct_value
49
- struct_to_hash value.struct_value
50
- elsif value.list_value
51
- value.list_value.values.map { |v| value_to_object(v) }
52
- elsif !value.bool_value.nil? # Make sure its a bool, not nil
53
- value.bool_value
54
- else
55
- nil # just in case
56
- end
57
- end
58
-
59
- ##
60
- # @private Convert an Object to a Google::Protobuf::Value.
61
- def self.object_to_value obj
62
- case obj
63
- when String then Google::Protobuf::Value.new string_value: obj
64
- when Array then Google::Protobuf::ListValue.new(values:
65
- obj.map { |o| object_to_value(o) })
66
- when Hash then Google::Protobuf::Value.new struct_value:
67
- hash_to_struct(obj)
68
- when Numeric then Google::Protobuf::Value.new number_value: obj
69
- when TrueClass then Google::Protobuf::Value.new bool_value: true
70
- when FalseClass then Google::Protobuf::Value.new bool_value: false
71
- when NilClass then Google::Protobuf::Value.new null_value: :NULL_VALUE
72
- else
73
- # We could raise ArgumentError here, or we could convert to a string
74
- Google::Protobuf::Value.new string_value: obj.to_s
75
- end
76
- end
77
-
78
- ##
79
- # @private Convert a Google::Protobuf::Map to a Hash
80
- def self.map_to_hash map
81
- if map.respond_to? :to_h
82
- map.to_h
83
- else
84
- # Enumerable doesn't have to_h on ruby 2.0...
85
- Hash[map.to_a]
86
- end
87
- end
88
- end
89
- end
90
- end
91
- end