fluent-plugin-dynamodb 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/fluent/plugin/out_dynamodb.rb +24 -6
  3. metadata +39 -12
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.9
1
+ 0.1.10
@@ -65,17 +65,35 @@ class DynamoDBOutput < Fluent::BufferedOutput
65
65
  def valid_table(table_name)
66
66
  table = @dynamo_db.tables[table_name]
67
67
  table.load_schema
68
- raise ConfigError, "Currently composite table is not supported." if table.has_range_key?
69
- @hash_key_value = table.hash_key.name
68
+ @hash_key = table.hash_key
69
+ @range_key = table.range_key unless table.simple_key?
70
+ end
71
+
72
+ def match_type!(key, record)
73
+ if key.type == :number
74
+ potential_value = record[key.name].to_i
75
+ if potential_value == 0
76
+ $log.fatal "Failed attempt to cast hash_key to Integer."
77
+ end
78
+ record[key.name] = potential_value
79
+ end
70
80
  end
71
81
 
72
82
  def format(tag, time, record)
73
- if !record.key?(@hash_key_value)
74
- record[@hash_key_value] = UUIDTools::UUID.timestamp_create.to_s
83
+ if !record.key?(@hash_key.name)
84
+ record[@hash_key.name] = UUIDTools::UUID.timestamp_create.to_s
85
+ end
86
+ match_type!(@hash_key, record)
87
+
88
+ formatted_time = @timef.format(time)
89
+ if @range_key
90
+ if !record.key?(@range_key.name)
91
+ record[@range_key.name] = formatted_time
92
+ end
93
+ match_type!(@range_key, record)
75
94
  end
95
+ record['time'] = formatted_time
76
96
 
77
- record['time'] = @timef.format(time)
78
-
79
97
  record.to_msgpack
80
98
  end
81
99
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-dynamodb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-29 00:00:00.000000000Z
12
+ date: 2013-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
16
- requirement: &18681040 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 0.10.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *18681040
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.10.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: aws-sdk
27
- requirement: &18680560 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 1.5.2
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *18680560
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.5.2
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: uuidtools
38
- requirement: &18680100 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 2.1.0
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *18680100
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.1.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rake
49
- requirement: &18679640 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,12 @@ dependencies:
54
69
  version: 0.9.2
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *18679640
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.2
58
78
  description: Amazon DynamoDB output plugin for Fluent event collector
59
79
  email: g0n5uk3@gmail.com
60
80
  executables: []
@@ -82,16 +102,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
102
  - - ! '>='
83
103
  - !ruby/object:Gem::Version
84
104
  version: '0'
105
+ segments:
106
+ - 0
107
+ hash: -2653667891675486738
85
108
  required_rubygems_version: !ruby/object:Gem::Requirement
86
109
  none: false
87
110
  requirements:
88
111
  - - ! '>='
89
112
  - !ruby/object:Gem::Version
90
113
  version: '0'
114
+ segments:
115
+ - 0
116
+ hash: -2653667891675486738
91
117
  requirements: []
92
118
  rubyforge_project:
93
- rubygems_version: 1.8.17
119
+ rubygems_version: 1.8.24
94
120
  signing_key:
95
121
  specification_version: 3
96
122
  summary: Amazon DynamoDB output plugin for Fluent event collector
97
- test_files: []
123
+ test_files:
124
+ - test/out_dynamodb.rb