terraforming 0.10.0 → 0.11.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 +4 -4
- data/.travis.yml +7 -1
- data/CHANGELOG.md +13 -0
- data/CONTRIBUTING.md +24 -0
- data/README.md +3 -2
- data/lib/terraforming.rb +2 -11
- data/lib/terraforming/cli.rb +7 -2
- data/lib/terraforming/resource/cloud_watch_alarm.rb +87 -0
- data/lib/terraforming/resource/iam_user.rb +2 -1
- data/lib/terraforming/template/tf/cloud_watch_alarm.erb +33 -0
- data/lib/terraforming/template/tf/ec2.erb +4 -4
- data/lib/terraforming/version.rb +1 -1
- data/terraforming.gemspec +3 -4
- metadata +12 -23
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cb884d952f74d4079fcfb52bc4798a8a90d98587
         | 
| 4 | 
            +
              data.tar.gz: 23fe2b8eeb2eea9843ecaf1dee41c5a387ea2a57
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 72708c53e470e3d7b7d673b51b22bcd81a83af77e18e5166008880c164e14da85c16646bb20b91a6922c51bb88b914b365e4b14785e45a9152cc580567e62444
         | 
| 7 | 
            +
              data.tar.gz: 810a584ff6e7b4f5ba4e4a07a44ae4685b629eb4ec523bf8f7397bb362b7de9134ff9654a31105dc06cccf8993ed87d7a99b8ac8a1510793cc929795f0c2efc5
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -4,7 +4,13 @@ rvm: | |
| 4 4 | 
             
            - 2.2.5
         | 
| 5 5 | 
             
            - 2.1.10
         | 
| 6 6 | 
             
            env:
         | 
| 7 | 
            -
             | 
| 7 | 
            +
              global:
         | 
| 8 | 
            +
                - secure: n0mxwnyjuXI4mJO4mp++2TnsPJ+XgCF/J1U2L5piE5j3xMhSU+5V0JrA1uFlS0Pemb44M7BjgmF9S4G35BwyAQpctpCYhqy9tFa6+Y6nxEv5hCv2cZz7BSAZM6eb+zq20409hxTHRaQOr1DBeE4R5S2PrmOXRqvYfTRv3LNSLFk=
         | 
| 9 | 
            +
              matrix:
         | 
| 10 | 
            +
                - OJ=0
         | 
| 11 | 
            +
                - OJ=1
         | 
| 12 | 
            +
            before_script:
         | 
| 13 | 
            +
              - if [[ $OJ -eq 1 ]]; then gem install oj; fi
         | 
| 8 14 | 
             
            notifications:
         | 
| 9 15 | 
             
              slack:
         | 
| 10 16 | 
             
                secure: iTI8zpxXQJqf5e9ix4buLRsGlf9lJRZqA9Fawdqm41msBrC0Zsp31XzBS7ZPiTcdHhImtOC4lccTCW2C8kR6waaG5VOF0U2BwyKaNFKsXMaVk6yrNhYkvJ9YVicuU9hL+JKLyBrSDYQ7+vXcHqaz4H4dYpPThrv6sfq4jBOp+eM=
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,16 @@ | |
| 1 | 
            +
            # [v0.11.0](https://github.com/dtan4/terraforming/releases/tag/v0.11.0) (2016-11-14)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ## Resource
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            - AWS CloudWatch alarm [#273](https://github.com/dtan4/terraforming/pull/273) (thanks @eredi93)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ## Fixed / Updated
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            - Remove native extension gems and use wrapper gem [#275](https://github.com/dtan4/terraforming/pull/275)
         | 
| 10 | 
            +
            - Generate `iops` field only with io1 volume [#271](https://github.com/dtan4/terraforming/pull/271)
         | 
| 11 | 
            +
            - Set `force_destroy: false` for IAM users [#267](https://github.com/dtan4/terraforming/pull/267) (thanks @raylu)
         | 
| 12 | 
            +
            - Remove commands to delete empty files in export in README.md [#261](https://github.com/dtan4/terraforming/pull/261) (thanks @benmanns)
         | 
| 13 | 
            +
             | 
| 1 14 | 
             
            # [v0.10.0](https://github.com/dtan4/terraforming/releases/tag/v0.10.0) (2016-08-24)
         | 
| 2 15 |  | 
| 3 16 | 
             
            ## Resource
         | 
    
        data/CONTRIBUTING.md
    ADDED
    
    | @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            # Contributing
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            I love pull requests from everyone! By the way, I have a favor to ask you with your contribution :bow:
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ## Making changes
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            - Currently, this gem supports only __AWS__ resources. Other providers are supported as separated gems.
         | 
| 8 | 
            +
              - Datadog: [terraforming-datadog](https://github.com/dtan4/terraforming-datadog)
         | 
| 9 | 
            +
              - DNSimple: [terraforming-dnsimple](https://github.com/dtan4/terraforming-dnsimple)
         | 
| 10 | 
            +
            - Do not bump gem version in your pull request.
         | 
| 11 | 
            +
            - Please follow the coding style of _existing_ code. Most of trivial rules can be checked by [RuboCop](https://github.com/bbatsov/rubocop) ([`rubocop.yml`](https://github.com/dtan4/terraforming/blob/master/.rubocop.yml)).
         | 
| 12 | 
            +
              - Coding style is checked automatically by [SideCI](https://sideci.com) right after creating pull request. If there is error, SideCI comments at the point error occured.
         | 
| 13 | 
            +
            - Please write tests for your changes. All tests are written with [RSpec](http://rspec.info/).
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ## Adding new resource
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            - Class name must match to Terraforming's resource name without `aws_` prefix, and be a complete resource name.
         | 
| 18 | 
            +
              - e.g. `aws_iam_group_membership`: `IAMGroupMembership`
         | 
| 19 | 
            +
              - Yes, I know that some of resources I added a long ago don't follow to this rule...
         | 
| 20 | 
            +
            - File name must also match to Terraforming's resource name without `aws_` prefix.
         | 
| 21 | 
            +
              - e.g. `aws_iam_group_membership`: `iam_group_membership.rb`
         | 
| 22 | 
            +
            - Command name should be abbreviation.
         | 
| 23 | 
            +
              - e.g. `aws_iam_group_membership`: `iamgp`
         | 
| 24 | 
            +
            - Please check generation result by executing `terraform plan` with real resources. There should be NO diff with generated `.tf` and `.tfstate`.
         | 
    
        data/README.md
    CHANGED
    
    | @@ -77,6 +77,7 @@ PS C:\> terraforming ec2 --use-bundled-cert | |
| 77 77 | 
             
            $ terraforming
         | 
| 78 78 | 
             
            Commands:
         | 
| 79 79 | 
             
              terraforming asg             # AutoScaling Group
         | 
| 80 | 
            +
              terraforming cwa             # CloudWatch Alarm
         | 
| 80 81 | 
             
              terraforming dbpg            # Database Parameter Group
         | 
| 81 82 | 
             
              terraforming dbsg            # Database Security Group
         | 
| 82 83 | 
             
              terraforming dbsn            # Database Subnet Group
         | 
| @@ -337,8 +338,8 @@ Example assuming you want to export everything from us-west-2 and you are using | |
| 337 338 | 
             
            ```bash
         | 
| 338 339 | 
             
            export AWS_REGION=us-west-2
         | 
| 339 340 | 
             
            terraforming help | grep terraforming | grep -v help | awk '{print "terraforming", $2, "--profile", "default", ">", $2".tf";}' | bash
         | 
| 340 | 
            -
            #  | 
| 341 | 
            -
            find . -type f | xargs wc -l | grep '1 .' | 
| 341 | 
            +
            # find files that only have 1 empty line (likely nothing in AWS)
         | 
| 342 | 
            +
            find . -type f -name '*.tf' | xargs wc -l | grep ' 1 .'
         | 
| 342 343 | 
             
            ```
         | 
| 343 344 |  | 
| 344 345 | 
             
            ## Run as Docker container [](https://quay.io/repository/dtan4/terraforming)
         | 
    
        data/lib/terraforming.rb
    CHANGED
    
    | @@ -1,16 +1,6 @@ | |
| 1 | 
            -
            require "oj"
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            begin
         | 
| 4 | 
            -
              require "ox"
         | 
| 5 | 
            -
            rescue NameError => e
         | 
| 6 | 
            -
              spec = Gem::Specification.stubs.find { |s| s.name == 'ox' }
         | 
| 7 | 
            -
              raise e unless spec
         | 
| 8 | 
            -
              require File.join(spec.gem_dir, "lib/ox")
         | 
| 9 | 
            -
            end
         | 
| 10 | 
            -
             | 
| 11 1 | 
             
            require "aws-sdk-core"
         | 
| 12 2 | 
             
            require "erb"
         | 
| 13 | 
            -
            require " | 
| 3 | 
            +
            require "multi_json"
         | 
| 14 4 | 
             
            require "thor"
         | 
| 15 5 | 
             
            require "zlib"
         | 
| 16 6 |  | 
| @@ -19,6 +9,7 @@ require "terraforming/version" | |
| 19 9 |  | 
| 20 10 | 
             
            require "terraforming/cli"
         | 
| 21 11 | 
             
            require "terraforming/resource/auto_scaling_group"
         | 
| 12 | 
            +
            require "terraforming/resource/cloud_watch_alarm"
         | 
| 22 13 | 
             
            require "terraforming/resource/db_parameter_group"
         | 
| 23 14 | 
             
            require "terraforming/resource/db_security_group"
         | 
| 24 15 | 
             
            require "terraforming/resource/db_subnet_group"
         | 
    
        data/lib/terraforming/cli.rb
    CHANGED
    
    | @@ -14,6 +14,11 @@ module Terraforming | |
| 14 14 | 
             
                  execute(Terraforming::Resource::AutoScalingGroup, options)
         | 
| 15 15 | 
             
                end
         | 
| 16 16 |  | 
| 17 | 
            +
                desc "cwa", "CloudWatch Alarm"
         | 
| 18 | 
            +
                def cwa
         | 
| 19 | 
            +
                  execute(Terraforming::Resource::CloudWatchAlarm, options)
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 17 22 | 
             
                desc "dbpg", "Database Parameter Group"
         | 
| 18 23 | 
             
                def dbpg
         | 
| 19 24 | 
             
                  execute(Terraforming::Resource::DBParameterGroup, options)
         | 
| @@ -216,10 +221,10 @@ module Terraforming | |
| 216 221 | 
             
                end
         | 
| 217 222 |  | 
| 218 223 | 
             
                def tfstate(klass, tfstate_path)
         | 
| 219 | 
            -
                  tfstate = tfstate_path ?  | 
| 224 | 
            +
                  tfstate = tfstate_path ? MultiJson.load(open(tfstate_path).read) : tfstate_skeleton
         | 
| 220 225 | 
             
                  tfstate["serial"] = tfstate["serial"] + 1
         | 
| 221 226 | 
             
                  tfstate["modules"][0]["resources"] = tfstate["modules"][0]["resources"].merge(klass.tfstate)
         | 
| 222 | 
            -
                   | 
| 227 | 
            +
                  MultiJson.encode(tfstate, pretty: true)
         | 
| 223 228 | 
             
                end
         | 
| 224 229 |  | 
| 225 230 | 
             
                def tfstate_skeleton
         | 
| @@ -0,0 +1,87 @@ | |
| 1 | 
            +
            module Terraforming
         | 
| 2 | 
            +
              module Resource
         | 
| 3 | 
            +
                class CloudWatchAlarm
         | 
| 4 | 
            +
                  include Terraforming::Util
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  def self.tf(client: Aws::CloudWatch::Client.new)
         | 
| 7 | 
            +
                    self.new(client).tf
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def self.tfstate(client: Aws::CloudWatch::Client.new)
         | 
| 11 | 
            +
                    self.new(client).tfstate
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def initialize(client)
         | 
| 15 | 
            +
                    @client = client
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  def tf
         | 
| 19 | 
            +
                    apply_template(@client, "tf/cloud_watch_alarm")
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  def tfstate
         | 
| 23 | 
            +
                    alarms.inject({}) do |resources, alarm|
         | 
| 24 | 
            +
                      resources["aws_cloudwatch_metric_alarm.#{module_name_of(alarm)}"] = {
         | 
| 25 | 
            +
                        "type" => "aws_cloudwatch_metric_alarm",
         | 
| 26 | 
            +
                        "primary" => {
         | 
| 27 | 
            +
                          "id" => alarm.alarm_name,
         | 
| 28 | 
            +
                          "attributes" => alarm_attributes(alarm)
         | 
| 29 | 
            +
                        }
         | 
| 30 | 
            +
                      }
         | 
| 31 | 
            +
                      resources
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  private
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  def alarm_attributes(alarm)
         | 
| 38 | 
            +
                    attributes = {
         | 
| 39 | 
            +
                      "actions_enabled" => alarm.actions_enabled.to_s,
         | 
| 40 | 
            +
                      "alarm_description" => sanitize(alarm.alarm_description),
         | 
| 41 | 
            +
                      "alarm_name" => alarm.alarm_name,
         | 
| 42 | 
            +
                      "comparison_operator" => alarm.comparison_operator,
         | 
| 43 | 
            +
                      "evaluation_periods" => alarm.evaluation_periods.to_s,
         | 
| 44 | 
            +
                      "id" => alarm.alarm_name,
         | 
| 45 | 
            +
                      "metric_name" => alarm.metric_name,
         | 
| 46 | 
            +
                      "namespace" => alarm.namespace,
         | 
| 47 | 
            +
                      "period" => alarm.period.to_s,
         | 
| 48 | 
            +
                      "statistic" => alarm.statistic,
         | 
| 49 | 
            +
                      "threshold" => alarm.threshold.to_s,
         | 
| 50 | 
            +
                      "unit" => sanitize(alarm.unit)
         | 
| 51 | 
            +
                    }
         | 
| 52 | 
            +
                    add_checksummed_attributes(attributes, alarm)
         | 
| 53 | 
            +
                  end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                  def alarms
         | 
| 56 | 
            +
                    @client.describe_alarms.map(&:metric_alarms).flatten
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                  def module_name_of(alarm)
         | 
| 60 | 
            +
                    normalize_module_name(alarm.alarm_name)
         | 
| 61 | 
            +
                  end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                  def sanitize(argument)
         | 
| 64 | 
            +
                    argument.nil? ? "" : argument
         | 
| 65 | 
            +
                  end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                  def add_checksummed_attributes(attributes, alarm)
         | 
| 68 | 
            +
                    %w(insufficient_data_actions alarm_actions ok_actions dimensions).each do |action|
         | 
| 69 | 
            +
                      attribute = alarm.send(action.to_sym)
         | 
| 70 | 
            +
                      attributes["#{action}.#"] = attribute.size.to_s
         | 
| 71 | 
            +
                      attribute.each do |attr|
         | 
| 72 | 
            +
                        if attr.is_a? String
         | 
| 73 | 
            +
                          checksum = Zlib.crc32(attr)
         | 
| 74 | 
            +
                          value = attr
         | 
| 75 | 
            +
                        else
         | 
| 76 | 
            +
                          checksum = attr.name
         | 
| 77 | 
            +
                          value = attr.value
         | 
| 78 | 
            +
                        end
         | 
| 79 | 
            +
                        attributes["#{action}.#{checksum}"] = value
         | 
| 80 | 
            +
                      end
         | 
| 81 | 
            +
                    end
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                    attributes
         | 
| 84 | 
            +
                  end
         | 
| 85 | 
            +
                end
         | 
| 86 | 
            +
              end
         | 
| 87 | 
            +
            end
         | 
| @@ -27,12 +27,13 @@ module Terraforming | |
| 27 27 | 
             
                        "name" => user.user_name,
         | 
| 28 28 | 
             
                        "path" => user.path,
         | 
| 29 29 | 
             
                        "unique_id" => user.user_id,
         | 
| 30 | 
            +
                        "force_destroy" => "false",
         | 
| 30 31 | 
             
                      }
         | 
| 31 32 | 
             
                      resources["aws_iam_user.#{module_name_of(user)}"] = {
         | 
| 32 33 | 
             
                        "type" => "aws_iam_user",
         | 
| 33 34 | 
             
                        "primary" => {
         | 
| 34 35 | 
             
                          "id" => user.user_name,
         | 
| 35 | 
            -
                          "attributes" => attributes
         | 
| 36 | 
            +
                          "attributes" => attributes,
         | 
| 36 37 | 
             
                        }
         | 
| 37 38 | 
             
                      }
         | 
| 38 39 |  | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            <% alarms.each do |alarm| -%>
         | 
| 2 | 
            +
            resource "aws_cloudwatch_metric_alarm" "<%= normalize_module_name(alarm.alarm_name) %>" {
         | 
| 3 | 
            +
                alarm_name          = "<%= alarm.alarm_name %>"
         | 
| 4 | 
            +
                comparison_operator = "<%= alarm.comparison_operator %>"
         | 
| 5 | 
            +
                evaluation_periods  = "<%= alarm.evaluation_periods %>"
         | 
| 6 | 
            +
                metric_name         = "<%= alarm.metric_name %>"
         | 
| 7 | 
            +
                namespace           = "<%= alarm.namespace %>"
         | 
| 8 | 
            +
                period              = "<%= alarm.period %>"
         | 
| 9 | 
            +
                statistic           = "<%= alarm.statistic %>"
         | 
| 10 | 
            +
                threshold           = "<%= alarm.threshold %>"
         | 
| 11 | 
            +
                alarm_description   = "<%= alarm.alarm_description %>"
         | 
| 12 | 
            +
            <%- unless alarm.ok_actions.empty? -%>
         | 
| 13 | 
            +
                ok_actions          = <%= alarm.ok_actions %>
         | 
| 14 | 
            +
            <%- end -%>
         | 
| 15 | 
            +
            <%- unless alarm.alarm_actions.empty? -%>
         | 
| 16 | 
            +
                alarm_actions       = <%= alarm.alarm_actions %>
         | 
| 17 | 
            +
            <%- end -%>
         | 
| 18 | 
            +
            <%- unless alarm.actions_enabled -%>
         | 
| 19 | 
            +
                actions_enabled     = <%= alarm.actions_enabled %>
         | 
| 20 | 
            +
            <%- end -%>
         | 
| 21 | 
            +
            <%- unless alarm.dimensions.empty? -%>
         | 
| 22 | 
            +
                dimensions {
         | 
| 23 | 
            +
            <% alarm.dimensions.each do |dimension| -%>
         | 
| 24 | 
            +
                    <%= dimension.name %> = "<%= dimension.value %>"
         | 
| 25 | 
            +
            <% end -%>
         | 
| 26 | 
            +
                }
         | 
| 27 | 
            +
            <%- end -%>
         | 
| 28 | 
            +
            <%- unless alarm.insufficient_data_actions.empty? -%>
         | 
| 29 | 
            +
                insufficient_data_actions = <%= alarm.insufficient_data_actions %>
         | 
| 30 | 
            +
            <%- end -%>
         | 
| 31 | 
            +
            }
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            <%- end -%>
         | 
| @@ -27,10 +27,10 @@ resource "aws_instance" "<%= module_name_of(instance) %>" { | |
| 27 27 | 
             
                root_block_device {
         | 
| 28 28 | 
             
                    volume_type           = "<%= block_device.volume_type %>"
         | 
| 29 29 | 
             
                    volume_size           = <%= block_device.size %>
         | 
| 30 | 
            -
             | 
| 30 | 
            +
                    delete_on_termination = <%= mapping.ebs.delete_on_termination %>
         | 
| 31 | 
            +
            <%- if block_device.volume_type == "io1" && block_device.iops -%>
         | 
| 31 32 | 
             
                    iops                  = <%= block_device.iops %>
         | 
| 32 33 | 
             
            <%- end -%>
         | 
| 33 | 
            -
                    delete_on_termination = <%= mapping.ebs.delete_on_termination %>
         | 
| 34 34 | 
             
                }
         | 
| 35 35 | 
             
            <%- else -%>
         | 
| 36 36 | 
             
                ebs_block_device {
         | 
| @@ -38,10 +38,10 @@ resource "aws_instance" "<%= module_name_of(instance) %>" { | |
| 38 38 | 
             
                    snapshot_id           = "<%= block_device.snapshot_id %>"
         | 
| 39 39 | 
             
                    volume_type           = "<%= block_device.volume_type %>"
         | 
| 40 40 | 
             
                    volume_size           = <%= block_device.size %>
         | 
| 41 | 
            -
             | 
| 41 | 
            +
                    delete_on_termination = <%= mapping.ebs.delete_on_termination %>
         | 
| 42 | 
            +
            <%- if block_device.volume_type == "io1" && block_device.iops -%>
         | 
| 42 43 | 
             
                    iops                  = <%= block_device.iops %>
         | 
| 43 44 | 
             
            <%- end -%>
         | 
| 44 | 
            -
                    delete_on_termination = <%= mapping.ebs.delete_on_termination %>
         | 
| 45 45 | 
             
                }
         | 
| 46 46 | 
             
            <% end -%>
         | 
| 47 47 |  | 
    
        data/lib/terraforming/version.rb
    CHANGED
    
    
    
        data/terraforming.gemspec
    CHANGED
    
    | @@ -19,14 +19,13 @@ Gem::Specification.new do |spec| | |
| 19 19 | 
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| 20 20 | 
             
              spec.require_paths = ["lib"]
         | 
| 21 21 |  | 
| 22 | 
            -
              spec.add_dependency "aws-sdk", "~> 2. | 
| 23 | 
            -
              spec.add_dependency " | 
| 24 | 
            -
              spec.add_dependency "ox", "~> 2.4.0"
         | 
| 22 | 
            +
              spec.add_dependency "aws-sdk", "~> 2.6.1"
         | 
| 23 | 
            +
              spec.add_dependency "multi_json", "~> 1.12.1"
         | 
| 25 24 | 
             
              spec.add_dependency "thor"
         | 
| 26 25 |  | 
| 27 26 | 
             
              spec.add_development_dependency "bundler", "~> 1.7"
         | 
| 28 27 | 
             
              spec.add_development_dependency "coveralls", "~> 0.8.13"
         | 
| 29 28 | 
             
              spec.add_development_dependency "rake"
         | 
| 30 29 | 
             
              spec.add_development_dependency "rspec", "~> 3.2"
         | 
| 31 | 
            -
              spec.add_development_dependency "simplecov", "~> 0. | 
| 30 | 
            +
              spec.add_development_dependency "simplecov", "~> 0.12.0"
         | 
| 32 31 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: terraforming
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.11.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Daisuke Fujita
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-11-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: aws-sdk
         | 
| @@ -16,42 +16,28 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 2. | 
| 19 | 
            +
                    version: 2.6.1
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 2. | 
| 26 | 
            +
                    version: 2.6.1
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name:  | 
| 28 | 
            +
              name: multi_json
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: 1.12.1
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 38 | 
             
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 41 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name: ox
         | 
| 43 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            -
                requirements:
         | 
| 45 | 
            -
                - - "~>"
         | 
| 46 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: 2.4.0
         | 
| 48 | 
            -
              type: :runtime
         | 
| 49 | 
            -
              prerelease: false
         | 
| 50 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            -
                requirements:
         | 
| 52 | 
            -
                - - "~>"
         | 
| 53 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: 2.4.0
         | 
| 40 | 
            +
                    version: 1.12.1
         | 
| 55 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 42 | 
             
              name: thor
         | 
| 57 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -128,14 +114,14 @@ dependencies: | |
| 128 114 | 
             
                requirements:
         | 
| 129 115 | 
             
                - - "~>"
         | 
| 130 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            -
                    version: 0. | 
| 117 | 
            +
                    version: 0.12.0
         | 
| 132 118 | 
             
              type: :development
         | 
| 133 119 | 
             
              prerelease: false
         | 
| 134 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 121 | 
             
                requirements:
         | 
| 136 122 | 
             
                - - "~>"
         | 
| 137 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            -
                    version: 0. | 
| 124 | 
            +
                    version: 0.12.0
         | 
| 139 125 | 
             
            description: Export existing AWS resources to Terraform style (tf, tfstate)
         | 
| 140 126 | 
             
            email:
         | 
| 141 127 | 
             
            - dtanshi45@gmail.com
         | 
| @@ -150,6 +136,7 @@ files: | |
| 150 136 | 
             
            - ".travis.yml"
         | 
| 151 137 | 
             
            - CHANGELOG.md
         | 
| 152 138 | 
             
            - CODE_OF_CONDUCT.md
         | 
| 139 | 
            +
            - CONTRIBUTING.md
         | 
| 153 140 | 
             
            - Gemfile
         | 
| 154 141 | 
             
            - Guardfile
         | 
| 155 142 | 
             
            - LICENSE
         | 
| @@ -160,6 +147,7 @@ files: | |
| 160 147 | 
             
            - lib/terraforming.rb
         | 
| 161 148 | 
             
            - lib/terraforming/cli.rb
         | 
| 162 149 | 
             
            - lib/terraforming/resource/auto_scaling_group.rb
         | 
| 150 | 
            +
            - lib/terraforming/resource/cloud_watch_alarm.rb
         | 
| 163 151 | 
             
            - lib/terraforming/resource/db_parameter_group.rb
         | 
| 164 152 | 
             
            - lib/terraforming/resource/db_security_group.rb
         | 
| 165 153 | 
             
            - lib/terraforming/resource/db_subnet_group.rb
         | 
| @@ -196,6 +184,7 @@ files: | |
| 196 184 | 
             
            - lib/terraforming/resource/vpc.rb
         | 
| 197 185 | 
             
            - lib/terraforming/resource/vpn_gateway.rb
         | 
| 198 186 | 
             
            - lib/terraforming/template/tf/auto_scaling_group.erb
         | 
| 187 | 
            +
            - lib/terraforming/template/tf/cloud_watch_alarm.erb
         | 
| 199 188 | 
             
            - lib/terraforming/template/tf/db_parameter_group.erb
         | 
| 200 189 | 
             
            - lib/terraforming/template/tf/db_security_group.erb
         | 
| 201 190 | 
             
            - lib/terraforming/template/tf/db_subnet_group.erb
         |