fluent-plugin-google-cloud 0.4.11 → 0.4.12
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 +4 -4
- data/Gemfile.lock +1 -1
- data/fluent-plugin-google-cloud.gemspec +1 -1
- data/lib/fluent/plugin/out_google_cloud.rb +17 -8
- data/test/plugin/data/credentials.json +0 -1
- data/test/plugin/data/iam-credentials.json +11 -0
- data/test/plugin/test_out_google_cloud.rb +25 -15
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b7271a0228faf66d2353c964baa5c62a5ea4c07
|
4
|
+
data.tar.gz: 80bbb3c3317d2700a746a3dc26d341fc24157af8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f952cb04e042f81d68c3fb6496b5baabf9c2f64ec9adfe4b1ad874c0c829e8c8126133907762066d0867636311fc47b1d011c485089096cc99f8171eb29c2b5
|
7
|
+
data.tar.gz: f10c6a9a326f7756cca26ca377ac002cdf45b712979f537d8e4873bf0b419d00fd2c464e15f9d73b294684af69db02ba78a80078204791fd97eca146f4f2d18f
|
data/Gemfile.lock
CHANGED
@@ -10,7 +10,7 @@ eos
|
|
10
10
|
gem.homepage = \
|
11
11
|
'https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud'
|
12
12
|
gem.license = 'Apache 2.0'
|
13
|
-
gem.version = '0.4.
|
13
|
+
gem.version = '0.4.12'
|
14
14
|
gem.authors = ['Todd Derr', 'Alex Robinson']
|
15
15
|
gem.email = ['salty@google.com']
|
16
16
|
|
@@ -54,6 +54,10 @@ module Fluent
|
|
54
54
|
# can be obtained from the metadata service or set explicitly.
|
55
55
|
# Otherwise, the plugin will fail to initialize.
|
56
56
|
#
|
57
|
+
# Note that while 'project id' properly refers to the alphanumeric name
|
58
|
+
# of the project, the logging service will also accept the project number,
|
59
|
+
# so either one is acceptable in this context.
|
60
|
+
#
|
57
61
|
# Whether to attempt to obtain metadata from the local metadata service.
|
58
62
|
# It is safe to specify 'true' even on platforms with no metadata service.
|
59
63
|
config_param :use_metadata_service, :bool, :default => true
|
@@ -596,15 +600,20 @@ module Fluent
|
|
596
600
|
nil
|
597
601
|
end
|
598
602
|
|
599
|
-
# Extracts the project id
|
600
|
-
#
|
601
|
-
#
|
603
|
+
# Extracts the project id (either name or number) from str and returns
|
604
|
+
# it (as a string) on success, or nil on failure.
|
605
|
+
#
|
606
|
+
# Recognizes IAM format (account@project-name.iam.gserviceaccount.com)
|
607
|
+
# as well as the legacy format with a project number at the front of the
|
608
|
+
# string, terminated by a dash (-) which is not part of the ID, i.e.:
|
602
609
|
# 270694816269-1l1r2hb813leuppurdeik0apglbs80sv.apps.googleusercontent.com
|
603
|
-
# Returns the project ID (as a string) on success, or nil on failure.
|
604
610
|
def self.extract_project_id(str)
|
605
|
-
|
606
|
-
|
607
|
-
|
611
|
+
[/^.*@(?<project_id>.+)\.iam\.gserviceaccount\.com/,
|
612
|
+
/^(?<project_id>\d+)-/].each do |exp|
|
613
|
+
match_data = exp.match(str)
|
614
|
+
return match_data['project_id'] unless match_data.nil?
|
615
|
+
end
|
616
|
+
nil
|
608
617
|
end
|
609
618
|
end
|
610
619
|
|
@@ -771,7 +780,7 @@ module Fluent
|
|
771
780
|
def init_api_client
|
772
781
|
@client = Google::APIClient.new(
|
773
782
|
application_name: 'Fluentd Google Cloud Logging plugin',
|
774
|
-
application_version: '0.4.
|
783
|
+
application_version: '0.4.12',
|
775
784
|
retries: 1)
|
776
785
|
|
777
786
|
if @auth_method == 'private_key'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"type": "service_account",
|
3
|
+
"private_key_id": "5985985bcdfe958895bd8d76456fe90d8484789d",
|
4
|
+
"private_key": "-----BEGIN PRIVATE KEY-----\nMIICdwIBADANBgkqhkiG9w0BAQEcAASCAmEwggJdAgEAAoGBAKizy6B+aJ0Wua0e\njZ3pkHV0a2Ce1prJGhzGL5NpkbUjk6J11Kwp1yvPikTwALyy4PtUIZ+23D/unVRM\nHlKa2MkHIGjJg+mykX5Bd7eRJOxdJ0iu+eRWh7HiH+mdDntHwaz4xXihJBog71qS\n+9N+r2hy1hicybechchMiXHhmWPbAgMBAAECgYEAnSzeI4qCZxEcLtnPcXeBWpz7\nycpTAWUpycMvsjTiRxR9YRhM65YT3cJ//VhqJ2S1ThOcPCt/KqViuX4tpiKUo7qA\nH1AI9APbTo66wiGpgy+qG0wPJkKIQC8PpITNNcHqcbbAsIr3/XQduihsqxP2W2mT\na0nk5XJghs1Wa0xt28ECQQDgMqZjVDcDQyqM+bcBKJUUc/247KusjpdK70r6sx2o\nkZJGy/w9exlM5QrB6DLpw34/p5x4MoecZ7lS3yHdmaEhAkEAwKHsV4k5SXTUp4+J\nWK6GlQVvnwc+PQdX5gzt4/gWSY0Op5EQ+YD6cC7Lkz+GzXUzvmdp35c0ahS93D1/\nZLTZewJBAIjOc3cHMNadyr5BtulPEUE0ro+EY/GlBS8lu/QlDmkJg2AOI3qEvliM\nvza58S9yKny/U5yJAPVw2cZ3ABxQHeECQDyBX8PrBURuXvE2o5RoVTtvlqziAi3X\nJaPLwdkOLqnxlX3KkgNcoM0l1amtlYDpZcRVcSs0+9TqKOyJoH8YUwsCQA4cJmv3\n119xcijXPM2HZOB5cCxTHj59MRtQlLboNZ2witDCJ20eG9AC3ZcH7csS0H9dz8Jr\nXGEoQMPD2ck4T0U\u003d\n-----END PRIVATE KEY-----\n",
|
5
|
+
"client_email": "account-name@fluent-test-project.iam.gserviceaccount.com",
|
6
|
+
"client_id": "275859789789367827863",
|
7
|
+
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
8
|
+
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
9
|
+
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
10
|
+
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account-name%40fluent-test-project.iam.gserviceaccount.com"
|
11
|
+
}
|
@@ -82,13 +82,21 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
82
82
|
AUTH_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:jwt-bearer'
|
83
83
|
FAKE_AUTH_TOKEN = 'abc123'
|
84
84
|
|
85
|
-
#
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
85
|
+
# Information about test credentials files.
|
86
|
+
# path: Path to the credentials file.
|
87
|
+
# project_id: ID of the project, which must correspond to the file contents.
|
88
|
+
IAM_CREDENTIALS = {
|
89
|
+
'path' => 'test/plugin/data/iam-credentials.json',
|
90
|
+
'project_id' => 'fluent-test-project'
|
91
|
+
}
|
92
|
+
LEGACY_CREDENTIALS = {
|
93
|
+
'path' => 'test/plugin/data/credentials.json',
|
94
|
+
'project_id' => '847859579879'
|
95
|
+
}
|
96
|
+
INVALID_CREDENTIALS = {
|
97
|
+
'path' => 'test/plugin/data/invalid_credentials.json',
|
98
|
+
'project_id' => ''
|
99
|
+
}
|
92
100
|
|
93
101
|
# Configuration files for various test scenarios
|
94
102
|
APPLICATION_DEFAULT_CONFIG = %(
|
@@ -501,10 +509,12 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
501
509
|
|
502
510
|
def test_ec2_metadata_project_id_from_credentials
|
503
511
|
setup_ec2_metadata_stubs
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
512
|
+
[IAM_CREDENTIALS, LEGACY_CREDENTIALS].each do |creds|
|
513
|
+
ENV['GOOGLE_APPLICATION_CREDENTIALS'] = creds['path']
|
514
|
+
d = create_driver
|
515
|
+
d.run
|
516
|
+
assert_equal creds['project_id'], d.instance.project_id
|
517
|
+
end
|
508
518
|
end
|
509
519
|
|
510
520
|
def test_one_log
|
@@ -519,7 +529,7 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
519
529
|
def test_one_log_with_json_credentials
|
520
530
|
setup_gce_metadata_stubs
|
521
531
|
setup_logging_stubs
|
522
|
-
ENV['GOOGLE_APPLICATION_CREDENTIALS'] =
|
532
|
+
ENV['GOOGLE_APPLICATION_CREDENTIALS'] = IAM_CREDENTIALS['path']
|
523
533
|
d = create_driver
|
524
534
|
d.emit('message' => log_entry(0))
|
525
535
|
d.run
|
@@ -529,7 +539,7 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
529
539
|
def test_one_log_with_invalid_json_credentials
|
530
540
|
setup_gce_metadata_stubs
|
531
541
|
setup_logging_stubs
|
532
|
-
ENV['GOOGLE_APPLICATION_CREDENTIALS'] =
|
542
|
+
ENV['GOOGLE_APPLICATION_CREDENTIALS'] = INVALID_CREDENTIALS['path']
|
533
543
|
d = create_driver
|
534
544
|
d.emit('message' => log_entry(0))
|
535
545
|
exception_count = 0
|
@@ -555,7 +565,7 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
555
565
|
# don't set up any metadata stubs, so the test will fail if we try to
|
556
566
|
# fetch metadata (and explicitly check this as well).
|
557
567
|
Fluent::GoogleCloudOutput.any_instance.expects(:fetch_metadata).never
|
558
|
-
ENV['GOOGLE_APPLICATION_CREDENTIALS'] =
|
568
|
+
ENV['GOOGLE_APPLICATION_CREDENTIALS'] = IAM_CREDENTIALS['path']
|
559
569
|
setup_logging_stubs
|
560
570
|
d = create_driver(NO_METADATA_SERVICE_CONFIG + CUSTOM_METADATA_CONFIG)
|
561
571
|
d.emit('message' => log_entry(0))
|
@@ -564,7 +574,7 @@ class GoogleCloudOutputTest < Test::Unit::TestCase
|
|
564
574
|
end
|
565
575
|
|
566
576
|
def test_one_log_ec2
|
567
|
-
ENV['GOOGLE_APPLICATION_CREDENTIALS'] =
|
577
|
+
ENV['GOOGLE_APPLICATION_CREDENTIALS'] = IAM_CREDENTIALS['path']
|
568
578
|
setup_ec2_metadata_stubs
|
569
579
|
setup_logging_stubs
|
570
580
|
d = create_driver(CONFIG_EC2_PROJECT_ID)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-google-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Derr
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-11-
|
12
|
+
date: 2015-11-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- test/helper.rb
|
166
166
|
- test/plugin/data/c31e573fd7f62ed495c9ca3821a5a85cb036dee1-privatekey.p12
|
167
167
|
- test/plugin/data/credentials.json
|
168
|
+
- test/plugin/data/iam-credentials.json
|
168
169
|
- test/plugin/data/invalid_credentials.json
|
169
170
|
- test/plugin/test_out_google_cloud.rb
|
170
171
|
homepage: https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud
|
@@ -195,5 +196,6 @@ test_files:
|
|
195
196
|
- test/helper.rb
|
196
197
|
- test/plugin/data/c31e573fd7f62ed495c9ca3821a5a85cb036dee1-privatekey.p12
|
197
198
|
- test/plugin/data/credentials.json
|
199
|
+
- test/plugin/data/iam-credentials.json
|
198
200
|
- test/plugin/data/invalid_credentials.json
|
199
201
|
- test/plugin/test_out_google_cloud.rb
|