fluent-plugin-viaq_data_model 0.0.1 → 0.0.2
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/.travis.yml +12 -0
 - data/Gemfile +7 -0
 - data/README.md +118 -2
 - data/filter-viaq_data_model.conf +1 -0
 - data/fluent-plugin-viaq_data_model.gemspec +2 -2
 - data/lib/fluent/plugin/filter_viaq_data_model.rb +26 -3
 - data/test/test_filter_viaq_data_model.rb +27 -0
 - metadata +5 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: f4ecf55fa6bf6e1001738e41876a8ba70f4fee67
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 88d75546acb5b4db61dc09046a7873a2382c60d7
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9f2fd967b4d57cb6afe9c8a46d723e8e30c53f71a056bdb436e6fceb5dad489c52a8eded2068d95c6ccb47f7deb728f6a5d2b568034cc29d7cb8e3e11a9e4503
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: af3c09cabf0b8ece8a659bb8c1116be62d53f90da62768ccdc2d6be2cc87ce257fb12e051f1cd9d52565e29344c40e5f6aa4cebaee34f5ac70d60dccda27badb
         
     | 
    
        data/.travis.yml
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,2 +1,118 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # fluent-plugin-viaq_data_model
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            # fluent-plugin-viaq_data_model - a ViaQ data model filter plugin for [Fluentd](http://fluentd.org)
         
     | 
| 
      
 2 
     | 
    
         
            +
            [](http://travis-ci.org/#!/ViaQ/fluent-plugin-viaq_data_model)
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            ## Introduction
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            This plugin formats Fluentd records in the proper [ViaQ data
         
     | 
| 
      
 7 
     | 
    
         
            +
            model](https://github.com/ViaQ/elasticsearch-templates).  It does the
         
     | 
| 
      
 8 
     | 
    
         
            +
            following:
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            * Removes empty fields
         
     | 
| 
      
 11 
     | 
    
         
            +
              * fields with a value of `nil`
         
     | 
| 
      
 12 
     | 
    
         
            +
              * string fields with a value of `''` or the empty string
         
     | 
| 
      
 13 
     | 
    
         
            +
              * hash valued fields with a value of `{}`
         
     | 
| 
      
 14 
     | 
    
         
            +
              * hash valued fields which contain only empty fields as described above
         
     | 
| 
      
 15 
     | 
    
         
            +
              * FixNum, Boolean and other field values are not removed - type must respond
         
     | 
| 
      
 16 
     | 
    
         
            +
                to `:empty?` to be considered empty
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            * Moves "undefined" values to a top level field called `undefined`
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            The ViaQ data model wants all top level fields defined and described.  These
         
     | 
| 
      
 21 
     | 
    
         
            +
            can conflict with the fields defined by ViaQ.  You can "move" these fields to
         
     | 
| 
      
 22 
     | 
    
         
            +
            be under a hash valued top level field called `undefined` so as not to conflict
         
     | 
| 
      
 23 
     | 
    
         
            +
            with the "well known" ViaQ top level fields.  You can optionally keep some
         
     | 
| 
      
 24 
     | 
    
         
            +
            fields as top level fields while moving others to the `undefined` container.
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            * Rename a time field to `@timestamp`
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            You cannot set the `@timestamp` field in a Fluentd `record_transformer` filter.
         
     | 
| 
      
 29 
     | 
    
         
            +
            The plugin allows you to use some other field e.g. `time` and have that "moved"
         
     | 
| 
      
 30 
     | 
    
         
            +
            to a top level field called `@timestamp`.
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            ## Configuration
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            NOTE: All fields are Optional - no required fields.
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            See `filter-viaq_data_model.conf` for an example filter configuration.
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            * `default_keep_fields` - comma delimited string - default: `''`
         
     | 
| 
      
 39 
     | 
    
         
            +
              * This is the default list of fields to keep as top level fields in the record
         
     | 
| 
      
 40 
     | 
    
         
            +
              * `default_keep_fields message,@timestamp,ident` - do not move these fields into the `undefined` field
         
     | 
| 
      
 41 
     | 
    
         
            +
            * `extra_keep_fields` - comma delimited string - default: `''`
         
     | 
| 
      
 42 
     | 
    
         
            +
              * This is an extra list of fields to keep in addition to
         
     | 
| 
      
 43 
     | 
    
         
            +
              `default_keep_fields` - mostly useful as a way to hard code the
         
     | 
| 
      
 44 
     | 
    
         
            +
              `default_keep_fields` list for configuration management purposes, but at the
         
     | 
| 
      
 45 
     | 
    
         
            +
              same time allow customization in certain cases
         
     | 
| 
      
 46 
     | 
    
         
            +
              * `extra_keep_fields myspecialfield1,myspecialfield2`
         
     | 
| 
      
 47 
     | 
    
         
            +
            * `keep_empty_fields` - comma delimited string - default `''`
         
     | 
| 
      
 48 
     | 
    
         
            +
              * Always keep these top level fields, even if they are empty
         
     | 
| 
      
 49 
     | 
    
         
            +
              * `keep_empty_fields message` - keep the `message` field, even if empty
         
     | 
| 
      
 50 
     | 
    
         
            +
            * `use_undefined` - boolean - default `false`
         
     | 
| 
      
 51 
     | 
    
         
            +
              * If `true`, move fields not specified in `default_keep_fields` and
         
     | 
| 
      
 52 
     | 
    
         
            +
              `extra_keep_fields` to the `undefined` top level field.  If you use
         
     | 
| 
      
 53 
     | 
    
         
            +
              `use_undefined` you should specify the fields you want to keep out of
         
     | 
| 
      
 54 
     | 
    
         
            +
              `undefined` by using `default_keep_fields` and/or `extra_keep_fields`
         
     | 
| 
      
 55 
     | 
    
         
            +
            * `undefined_name` - string - default `"undefined"`
         
     | 
| 
      
 56 
     | 
    
         
            +
              * Name of undefined top level field to use if `use_undefined true` is set
         
     | 
| 
      
 57 
     | 
    
         
            +
              * `undefined_name myfields` - keep undefined fields under field `myfields`
         
     | 
| 
      
 58 
     | 
    
         
            +
            * `rename_time` - boolean - default `true`
         
     | 
| 
      
 59 
     | 
    
         
            +
              * Rename the time field e.g. when you need to set `@timestamp` in the record
         
     | 
| 
      
 60 
     | 
    
         
            +
              * NOTE: This will overwrite the `dest_time_name` if already set
         
     | 
| 
      
 61 
     | 
    
         
            +
            * `rename_time_if_missing` - boolean - default `false`
         
     | 
| 
      
 62 
     | 
    
         
            +
              * Rename the time field only if it is not present.  For example, if some
         
     | 
| 
      
 63 
     | 
    
         
            +
              records already have the `@timestamp` field and you do not want to overwrite
         
     | 
| 
      
 64 
     | 
    
         
            +
              them, use `rename_time_if_missing true`
         
     | 
| 
      
 65 
     | 
    
         
            +
            * `src_time_name` - string - default `time`
         
     | 
| 
      
 66 
     | 
    
         
            +
              * Use this field to get the value of the time field in the resulting record.
         
     | 
| 
      
 67 
     | 
    
         
            +
                This field will be removed from the record.
         
     | 
| 
      
 68 
     | 
    
         
            +
              * NOTE: This field must be present in the `default_keep_fields` or
         
     | 
| 
      
 69 
     | 
    
         
            +
              `extra_keep_fields` if `use_undefined true`
         
     | 
| 
      
 70 
     | 
    
         
            +
            * `dest_time_name` - string - default `@timestamp`
         
     | 
| 
      
 71 
     | 
    
         
            +
              * This is the name of the top level field to hold the time value.  The value
         
     | 
| 
      
 72 
     | 
    
         
            +
              is taken from the value of the `src_time_name` field.
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            ## Example
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            If the input record looks like this:
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                {
         
     | 
| 
      
 79 
     | 
    
         
            +
                  "a": "b",
         
     | 
| 
      
 80 
     | 
    
         
            +
                  "c": "d",
         
     | 
| 
      
 81 
     | 
    
         
            +
                  "e": '',
         
     | 
| 
      
 82 
     | 
    
         
            +
                  "f": {
         
     | 
| 
      
 83 
     | 
    
         
            +
                    "g": '',
         
     | 
| 
      
 84 
     | 
    
         
            +
                    "h": {}
         
     | 
| 
      
 85 
     | 
    
         
            +
                  },
         
     | 
| 
      
 86 
     | 
    
         
            +
                  "i": {
         
     | 
| 
      
 87 
     | 
    
         
            +
                    "j": 0,
         
     | 
| 
      
 88 
     | 
    
         
            +
                    "k": False,
         
     | 
| 
      
 89 
     | 
    
         
            +
                    "l": ''
         
     | 
| 
      
 90 
     | 
    
         
            +
                  },
         
     | 
| 
      
 91 
     | 
    
         
            +
                  "time": "2017-02-13 15:30:10.259106596-07:00"
         
     | 
| 
      
 92 
     | 
    
         
            +
                }
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            The resulting record, using the defaults, would look like this:
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                {
         
     | 
| 
      
 97 
     | 
    
         
            +
                  "a": "b",
         
     | 
| 
      
 98 
     | 
    
         
            +
                  "c": "d",
         
     | 
| 
      
 99 
     | 
    
         
            +
                  "i": {
         
     | 
| 
      
 100 
     | 
    
         
            +
                    "j": 0,
         
     | 
| 
      
 101 
     | 
    
         
            +
                    "k": False,
         
     | 
| 
      
 102 
     | 
    
         
            +
                  },
         
     | 
| 
      
 103 
     | 
    
         
            +
                  "@timestamp": "2017-02-13 15:30:10.259106596-07:00"
         
     | 
| 
      
 104 
     | 
    
         
            +
                }
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            ## Installation
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                gem install fluent-plugin-viaq_data_model
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
            ## Contributing
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
            1. Fork it
         
     | 
| 
      
 114 
     | 
    
         
            +
            2. Create your feature branch (`git checkout -b my-new-feature`)
         
     | 
| 
      
 115 
     | 
    
         
            +
            3. Commit your changes (`git commit -am 'Add some feature'`)
         
     | 
| 
      
 116 
     | 
    
         
            +
            4. Test it (`GEM_HOME=vendor bundle install; GEM_HOME=vendor bundle exec rake test`)
         
     | 
| 
      
 117 
     | 
    
         
            +
            5. Push to the branch (`git push origin my-new-feature`)
         
     | 
| 
      
 118 
     | 
    
         
            +
            6. Create new Pull Request
         
     | 
    
        data/filter-viaq_data_model.conf
    CHANGED
    
    | 
         @@ -6,6 +6,7 @@ 
     | 
|
| 
       6 
6 
     | 
    
         
             
              use_undefined "#{ENV['CDM_USE_UNDEFINED'] || false}"
         
     | 
| 
       7 
7 
     | 
    
         
             
              undefined_name "#{ENV['CDM_UNDEFINED_NAME'] || 'undefined'}"
         
     | 
| 
       8 
8 
     | 
    
         
             
              rename_time "#{ENV['CDM_RENAME_TIME'] || true}"
         
     | 
| 
      
 9 
     | 
    
         
            +
              rename_time_if_missing "#{ENV['CDM_RENAME_TIME_IF_MISSING'] || false}"
         
     | 
| 
       9 
10 
     | 
    
         
             
              src_time_name "#{ENV['CDM_SRC_TIME_NAME'] || 'time'}"
         
     | 
| 
       10 
11 
     | 
    
         
             
              dest_time_name "#{ENV['CDM_DEST_TIME_NAME'] || '@timestamp'}"
         
     | 
| 
       11 
12 
     | 
    
         
             
            </filter>
         
     | 
| 
         @@ -4,12 +4,12 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            Gem::Specification.new do |gem|
         
     | 
| 
       6 
6 
     | 
    
         
             
              gem.name          = "fluent-plugin-viaq_data_model"
         
     | 
| 
       7 
     | 
    
         
            -
              gem.version       = "0.0. 
     | 
| 
      
 7 
     | 
    
         
            +
              gem.version       = "0.0.2"
         
     | 
| 
       8 
8 
     | 
    
         
             
              gem.authors       = ["Rich Megginson"]
         
     | 
| 
       9 
9 
     | 
    
         
             
              gem.email         = ["rmeggins@redhat.com"]
         
     | 
| 
       10 
10 
     | 
    
         
             
              gem.description   = %q{Filter plugin to ensure data is in the ViaQ common data model}
         
     | 
| 
       11 
11 
     | 
    
         
             
              gem.summary       = %q{Filter plugin to ensure data is in the ViaQ common data model}
         
     | 
| 
       12 
     | 
    
         
            -
              gem.homepage      = "https://github.com/ViaQ/fluent-plugin- 
     | 
| 
      
 12 
     | 
    
         
            +
              gem.homepage      = "https://github.com/ViaQ/fluent-plugin-viaq_data_model"
         
     | 
| 
       13 
13 
     | 
    
         
             
              gem.license       = "Apache-2.0"
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              gem.files         = `git ls-files`.split($/)
         
     | 
| 
         @@ -1,3 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            # Fluentd ViaQ data model Filter Plugin
         
     | 
| 
      
 3 
     | 
    
         
            +
            #
         
     | 
| 
      
 4 
     | 
    
         
            +
            # Copyright 2017 Red Hat, Inc.
         
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            # Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
      
 7 
     | 
    
         
            +
            # you may not use this file except in compliance with the License.
         
     | 
| 
      
 8 
     | 
    
         
            +
            # You may obtain a copy of the License at
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            #   http://www.apache.org/licenses/LICENSE-2.0
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
            # Unless required by applicable law or agreed to in writing, software
         
     | 
| 
      
 13 
     | 
    
         
            +
            # distributed under the License is distributed on an "AS IS" BASIS,
         
     | 
| 
      
 14 
     | 
    
         
            +
            # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         
     | 
| 
      
 15 
     | 
    
         
            +
            # See the License for the specific language governing permissions and
         
     | 
| 
      
 16 
     | 
    
         
            +
            # limitations under the License.
         
     | 
| 
      
 17 
     | 
    
         
            +
            #
         
     | 
| 
       1 
18 
     | 
    
         
             
            require 'fluent/filter'
         
     | 
| 
       2 
19 
     | 
    
         
             
            require 'fluent/log'
         
     | 
| 
       3 
20 
     | 
    
         | 
| 
         @@ -33,6 +50,9 @@ module Fluent 
     | 
|
| 
       33 
50 
     | 
    
         
             
                desc 'Rename timestamp field to Elasticsearch compatible name'
         
     | 
| 
       34 
51 
     | 
    
         
             
                config_param :rename_time, :bool, default: true
         
     | 
| 
       35 
52 
     | 
    
         | 
| 
      
 53 
     | 
    
         
            +
                desc 'Rename timestamp field to Elasticsearch compatible name only if the destination field does not already exist'
         
     | 
| 
      
 54 
     | 
    
         
            +
                config_param :rename_time_if_missing, :bool, default: false
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
       36 
56 
     | 
    
         
             
                desc 'Name of source timestamp field'
         
     | 
| 
       37 
57 
     | 
    
         
             
                config_param :src_time_name, :string, default: 'time'
         
     | 
| 
       38 
58 
     | 
    
         | 
| 
         @@ -53,7 +73,7 @@ module Fluent 
     | 
|
| 
       53 
73 
     | 
    
         
             
                  if @use_undefined && @keep_fields.key?(@undefined_name)
         
     | 
| 
       54 
74 
     | 
    
         
             
                    raise Fluent::ConfigError, "Do not put [#{@undefined_name}] in default_keep_fields or extra_keep_fields"
         
     | 
| 
       55 
75 
     | 
    
         
             
                  end
         
     | 
| 
       56 
     | 
    
         
            -
                  if @rename_time && @use_undefined && !@keep_fields.key?(@src_time_name)
         
     | 
| 
      
 76 
     | 
    
         
            +
                  if (@rename_time || @rename_time_if_not_exist) && @use_undefined && !@keep_fields.key?(@src_time_name)
         
     | 
| 
       57 
77 
     | 
    
         
             
                    raise Fluent::ConfigError, "Field [#{@src_time_name}] must be listed in default_keep_fields or extra_keep_fields"
         
     | 
| 
       58 
78 
     | 
    
         
             
                  end
         
     | 
| 
       59 
79 
     | 
    
         
             
                end
         
     | 
| 
         @@ -102,8 +122,11 @@ module Fluent 
     | 
|
| 
       102 
122 
     | 
    
         
             
                  # probably shouldn't remove everything . . .
         
     | 
| 
       103 
123 
     | 
    
         
             
                  log.warn("Empty record! tag [#{tag}] time [#{time}]") if record.empty?
         
     | 
| 
       104 
124 
     | 
    
         
             
                  # rename the time field
         
     | 
| 
       105 
     | 
    
         
            -
                  if @rename_time && record.key?(@src_time_name)
         
     | 
| 
       106 
     | 
    
         
            -
                     
     | 
| 
      
 125 
     | 
    
         
            +
                  if (@rename_time || @rename_time_if_missing) && record.key?(@src_time_name)
         
     | 
| 
      
 126 
     | 
    
         
            +
                    val = record.delete(@src_time_name)
         
     | 
| 
      
 127 
     | 
    
         
            +
                    unless @rename_time_if_missing && record.key?(@dest_time_name)
         
     | 
| 
      
 128 
     | 
    
         
            +
                      record[@dest_time_name] = val
         
     | 
| 
      
 129 
     | 
    
         
            +
                    end
         
     | 
| 
       107 
130 
     | 
    
         
             
                  end
         
     | 
| 
       108 
131 
     | 
    
         
             
                  if ENV['CDM_DEBUG']
         
     | 
| 
       109 
132 
     | 
    
         
             
                    unless tag == ENV['CDM_DEBUG_IGNORE_TAG']
         
     | 
| 
         @@ -164,6 +164,33 @@ class ViaqDataModelFilterTest < Test::Unit::TestCase 
     | 
|
| 
       164 
164 
     | 
    
         
             
                  assert_equal('b', rec['c'])
         
     | 
| 
       165 
165 
     | 
    
         
             
                  assert_nil(rec['a'])
         
     | 
| 
       166 
166 
     | 
    
         
             
                end
         
     | 
| 
      
 167 
     | 
    
         
            +
                test 'see if time field is renamed when checking if missing' do
         
     | 
| 
      
 168 
     | 
    
         
            +
                  rec = emit_with_tag('tag', {'a'=>'b'}, '
         
     | 
| 
      
 169 
     | 
    
         
            +
                    rename_time_if_missing true
         
     | 
| 
      
 170 
     | 
    
         
            +
                    src_time_name a
         
     | 
| 
      
 171 
     | 
    
         
            +
                    dest_time_name c
         
     | 
| 
      
 172 
     | 
    
         
            +
                  ')
         
     | 
| 
      
 173 
     | 
    
         
            +
                  assert_equal('b', rec['c'])
         
     | 
| 
      
 174 
     | 
    
         
            +
                  assert_nil(rec['a'])
         
     | 
| 
      
 175 
     | 
    
         
            +
                end
         
     | 
| 
      
 176 
     | 
    
         
            +
                test 'see if time field is renamed when already present' do
         
     | 
| 
      
 177 
     | 
    
         
            +
                  rec = emit_with_tag('tag', {'a'=>'b','c'=>'d'}, '
         
     | 
| 
      
 178 
     | 
    
         
            +
                    rename_time true
         
     | 
| 
      
 179 
     | 
    
         
            +
                    src_time_name a
         
     | 
| 
      
 180 
     | 
    
         
            +
                    dest_time_name c
         
     | 
| 
      
 181 
     | 
    
         
            +
                  ')
         
     | 
| 
      
 182 
     | 
    
         
            +
                  assert_equal('b', rec['c'])
         
     | 
| 
      
 183 
     | 
    
         
            +
                  assert_nil(rec['a'])
         
     | 
| 
      
 184 
     | 
    
         
            +
                end
         
     | 
| 
      
 185 
     | 
    
         
            +
                test 'see if time field is preserved when already present' do
         
     | 
| 
      
 186 
     | 
    
         
            +
                  rec = emit_with_tag('tag', {'a'=>'b','c'=>'d'}, '
         
     | 
| 
      
 187 
     | 
    
         
            +
                    rename_time_if_missing true
         
     | 
| 
      
 188 
     | 
    
         
            +
                    src_time_name a
         
     | 
| 
      
 189 
     | 
    
         
            +
                    dest_time_name c
         
     | 
| 
      
 190 
     | 
    
         
            +
                  ')
         
     | 
| 
      
 191 
     | 
    
         
            +
                  assert_equal('d', rec['c'])
         
     | 
| 
      
 192 
     | 
    
         
            +
                  assert_nil(rec['a'])
         
     | 
| 
      
 193 
     | 
    
         
            +
                end
         
     | 
| 
       167 
194 
     | 
    
         
             
                test 'see if deeply nested empty fields are removed or preserved' do
         
     | 
| 
       168 
195 
     | 
    
         
             
                  msg = {'a'=>{'b'=>{'c'=>{'d'=>{'e'=>'','f'=>{},'g'=>''}}}},'h'=>{'i'=>{'j'=>'','k'=>'l','m'=>99,'n'=>true}}}
         
     | 
| 
       169 
196 
     | 
    
         
             
                  rec = emit_with_tag('tag', msg)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: fluent-plugin-viaq_data_model
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Rich Megginson
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-02- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-02-14 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: fluentd
         
     | 
| 
         @@ -116,6 +116,8 @@ extensions: [] 
     | 
|
| 
       116 
116 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       117 
117 
     | 
    
         
             
            files:
         
     | 
| 
       118 
118 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
      
 119 
     | 
    
         
            +
            - ".travis.yml"
         
     | 
| 
      
 120 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
       119 
121 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       120 
122 
     | 
    
         
             
            - README.md
         
     | 
| 
       121 
123 
     | 
    
         
             
            - Rakefile
         
     | 
| 
         @@ -124,7 +126,7 @@ files: 
     | 
|
| 
       124 
126 
     | 
    
         
             
            - fluent-plugin-viaq_data_model.gemspec
         
     | 
| 
       125 
127 
     | 
    
         
             
            - lib/fluent/plugin/filter_viaq_data_model.rb
         
     | 
| 
       126 
128 
     | 
    
         
             
            - test/test_filter_viaq_data_model.rb
         
     | 
| 
       127 
     | 
    
         
            -
            homepage: https://github.com/ViaQ/fluent-plugin- 
     | 
| 
      
 129 
     | 
    
         
            +
            homepage: https://github.com/ViaQ/fluent-plugin-viaq_data_model
         
     | 
| 
       128 
130 
     | 
    
         
             
            licenses:
         
     | 
| 
       129 
131 
     | 
    
         
             
            - Apache-2.0
         
     | 
| 
       130 
132 
     | 
    
         
             
            metadata: {}
         
     |