swa 0.4.3 → 0.4.4
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/lib/swa/cli/cloud_formation_command.rb +38 -0
- data/lib/swa/cli/main_command.rb +4 -0
- data/lib/swa/cli/s3_command.rb +62 -0
- data/lib/swa/cloud_formation/stack.rb +30 -0
- data/lib/swa/data_presentation.rb +22 -0
- data/lib/swa/ec2/image.rb +1 -1
- data/lib/swa/ec2/instance.rb +5 -5
- data/lib/swa/ec2/security_group.rb +2 -2
- data/lib/swa/ec2/snapshot.rb +2 -2
- data/lib/swa/ec2/subnet.rb +4 -4
- data/lib/swa/ec2/volume.rb +4 -4
- data/lib/swa/ec2/vpc.rb +2 -2
- data/lib/swa/s3/bucket.rb +24 -0
- data/lib/swa/version.rb +1 -1
- metadata +6 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 83e548dcd3489014b39e2abeaa629f2d992abb3a
         | 
| 4 | 
            +
              data.tar.gz: 8631da8f320f0c4f836679cbb8051271a39e423b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 05538c822b54162fa9e46ea392dc78d35d23b1f52f0113bc42191888dfef9bdedd6a3a78613ee5f6c86e9efb7a86281d7c983436829dedeb1b5906cc70859d35
         | 
| 7 | 
            +
              data.tar.gz: f6bf15581d16ec77d4133a3a22401e0218b6ce10e0fa384f5fb15e45f325370da59cd97026762706b370682855ae478d081feed465dc1b6541c69bb5fec06d45
         | 
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            require "aws-sdk-resources"
         | 
| 2 | 
            +
            require "swa/cli/base_command"
         | 
| 3 | 
            +
            require "swa/cli/collection_behaviour"
         | 
| 4 | 
            +
            require "swa/cli/item_behaviour"
         | 
| 5 | 
            +
            require "swa/cloud_formation/stack"
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module Swa
         | 
| 8 | 
            +
              module CLI
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                class CloudFormationCommand < BaseCommand
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  subcommand ["stacks"], "Show stacks" do
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    include CollectionBehaviour
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    private
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    def collection
         | 
| 19 | 
            +
                      query_for(:stacks, Swa::CloudFormation::Stack)
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  protected
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  def cloud_formation
         | 
| 27 | 
            +
                    ::Aws::CloudFormation::Resource.new(aws_config)
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                  def query_for(query_method, model)
         | 
| 31 | 
            +
                    aws_resources = cloud_formation.public_send(query_method, query_options)
         | 
| 32 | 
            +
                    model.list(aws_resources)
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
            end
         | 
    
        data/lib/swa/cli/main_command.rb
    CHANGED
    
    | @@ -1,16 +1,20 @@ | |
| 1 1 | 
             
            require "swa/cli/base_command"
         | 
| 2 | 
            +
            require "swa/cli/cloud_formation_command"
         | 
| 2 3 | 
             
            require "swa/cli/ec2_command"
         | 
| 3 4 | 
             
            require "swa/cli/iam_command"
         | 
| 4 5 | 
             
            require "swa/cli/kms_command"
         | 
| 6 | 
            +
            require "swa/cli/s3_command"
         | 
| 5 7 |  | 
| 6 8 | 
             
            module Swa
         | 
| 7 9 | 
             
              module CLI
         | 
| 8 10 |  | 
| 9 11 | 
             
                class MainCommand < BaseCommand
         | 
| 10 12 |  | 
| 13 | 
            +
                  subcommand ["cf", "cloudformation"], "CloudFormation stuff", CloudFormationCommand
         | 
| 11 14 | 
             
                  subcommand "ec2", "EC2 stuff", Ec2Command
         | 
| 12 15 | 
             
                  subcommand "iam", "IAM stuff", IamCommand
         | 
| 13 16 | 
             
                  subcommand "kms", "KMS stuff", KmsCommand
         | 
| 17 | 
            +
                  subcommand "s3", "S3 stuff", S3Command
         | 
| 14 18 |  | 
| 15 19 | 
             
                  protected
         | 
| 16 20 |  | 
| @@ -0,0 +1,62 @@ | |
| 1 | 
            +
            require "aws-sdk-resources"
         | 
| 2 | 
            +
            require "swa/cli/base_command"
         | 
| 3 | 
            +
            require "swa/cli/collection_behaviour"
         | 
| 4 | 
            +
            require "swa/cli/item_behaviour"
         | 
| 5 | 
            +
            require "swa/cli/tag_filter_options"
         | 
| 6 | 
            +
            require "swa/s3/bucket"
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            module Swa
         | 
| 9 | 
            +
              module CLI
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                class S3Command < BaseCommand
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  subcommand ["bucket"], "Show bucket" do
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    parameter "NAME", "bucket name"
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    include ItemBehaviour
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    private
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    def item
         | 
| 22 | 
            +
                      Swa::S3::Bucket.new(s3.bucket(name))
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                    subcommand "policy", "print bucket policy" do
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                      def execute
         | 
| 28 | 
            +
                        puts item.policy
         | 
| 29 | 
            +
                      end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                    end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  subcommand ["buckets"], "List buckets" do
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                    include TagFilterOptions
         | 
| 38 | 
            +
                    include CollectionBehaviour
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                    private
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                    def collection
         | 
| 43 | 
            +
                      query_for(:buckets, Swa::S3::Bucket)
         | 
| 44 | 
            +
                    end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  protected
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                  def s3
         | 
| 51 | 
            +
                    ::Aws::S3::Resource.new(aws_config)
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  def query_for(query_method, resource_model)
         | 
| 55 | 
            +
                    aws_resources = s3.public_send(query_method)
         | 
| 56 | 
            +
                    wrapped_resources = resource_model.list(aws_resources)
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
            end
         | 
| @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            require "swa/resource"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Swa
         | 
| 4 | 
            +
              module CloudFormation
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                class Stack < Resource
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def summary
         | 
| 9 | 
            +
                    [
         | 
| 10 | 
            +
                      name,
         | 
| 11 | 
            +
                      # pad(subnet.subnet_id, 15),
         | 
| 12 | 
            +
                      # pad(subnet.vpc_id, 12),
         | 
| 13 | 
            +
                      # pad(subnet.availability_zone, 15),
         | 
| 14 | 
            +
                      # pad(subnet.cidr_block, 18),
         | 
| 15 | 
            +
                      # quoted(name)
         | 
| 16 | 
            +
                    ].join("  ")
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  def name
         | 
| 20 | 
            +
                    stack.name
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  private
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  alias_method :stack, :aws_resource
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
            end
         | 
| @@ -18,6 +18,28 @@ module Swa | |
| 18 18 | 
             
                  s.rjust(width)
         | 
| 19 19 | 
             
                end
         | 
| 20 20 |  | 
| 21 | 
            +
                WIDTH_BY_TYPE = {
         | 
| 22 | 
            +
                  :availability_zone => 15,
         | 
| 23 | 
            +
                  :cidr_block => 18,
         | 
| 24 | 
            +
                  :group_id => 11,
         | 
| 25 | 
            +
                  :image_id => 12,
         | 
| 26 | 
            +
                  :instance_id => 19,
         | 
| 27 | 
            +
                  :instance_type => 10,
         | 
| 28 | 
            +
                  :private_ip_address => 14,
         | 
| 29 | 
            +
                  :public_ip_address => 14,
         | 
| 30 | 
            +
                  :snapshot_id => 22,
         | 
| 31 | 
            +
                  :subnet_id => 15,
         | 
| 32 | 
            +
                  :volume_id => 21,
         | 
| 33 | 
            +
                  :volume_type => 9,
         | 
| 34 | 
            +
                  :vpc_id => 12
         | 
| 35 | 
            +
                }
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                def field(resource, field_name, type = field_name)
         | 
| 38 | 
            +
                  width = WIDTH_BY_TYPE.fetch(type.to_sym)
         | 
| 39 | 
            +
                  value = resource.public_send(field_name)
         | 
| 40 | 
            +
                  pad(value, width)
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 21 43 | 
             
                def camelize_keys(data)
         | 
| 22 44 | 
             
                  case data
         | 
| 23 45 | 
             
                  when Hash
         | 
    
        data/lib/swa/ec2/image.rb
    CHANGED
    
    
    
        data/lib/swa/ec2/instance.rb
    CHANGED
    
    | @@ -11,12 +11,12 @@ module Swa | |
| 11 11 |  | 
| 12 12 | 
             
                  def summary
         | 
| 13 13 | 
             
                    [
         | 
| 14 | 
            -
                       | 
| 15 | 
            -
                       | 
| 16 | 
            -
                       | 
| 14 | 
            +
                      field(i, :instance_id),
         | 
| 15 | 
            +
                      field(i, :image_id),
         | 
| 16 | 
            +
                      field(i, :instance_type),
         | 
| 17 17 | 
             
                      pad(i.state.name, 10),
         | 
| 18 | 
            -
                       | 
| 19 | 
            -
                       | 
| 18 | 
            +
                      field(i, :private_ip_address),
         | 
| 19 | 
            +
                      field(i, :public_ip_address),
         | 
| 20 20 | 
             
                      quoted(name)
         | 
| 21 21 | 
             
                    ].join("  ")
         | 
| 22 22 | 
             
                  end
         | 
    
        data/lib/swa/ec2/snapshot.rb
    CHANGED
    
    
    
        data/lib/swa/ec2/subnet.rb
    CHANGED
    
    | @@ -10,10 +10,10 @@ module Swa | |
| 10 10 |  | 
| 11 11 | 
             
                  def summary
         | 
| 12 12 | 
             
                    [
         | 
| 13 | 
            -
                       | 
| 14 | 
            -
                       | 
| 15 | 
            -
                       | 
| 16 | 
            -
                       | 
| 13 | 
            +
                      field(subnet, :subnet_id),
         | 
| 14 | 
            +
                      field(subnet, :vpc_id),
         | 
| 15 | 
            +
                      field(subnet, :availability_zone),
         | 
| 16 | 
            +
                      field(subnet, :cidr_block),
         | 
| 17 17 | 
             
                      quoted(name)
         | 
| 18 18 | 
             
                    ].join("  ")
         | 
| 19 19 | 
             
                  end
         | 
    
        data/lib/swa/ec2/volume.rb
    CHANGED
    
    | @@ -10,11 +10,11 @@ module Swa | |
| 10 10 |  | 
| 11 11 | 
             
                  def summary
         | 
| 12 12 | 
             
                    [
         | 
| 13 | 
            -
                       | 
| 14 | 
            -
                       | 
| 13 | 
            +
                      field(v, :volume_id),
         | 
| 14 | 
            +
                      field(v, :snapshot_id),
         | 
| 15 15 | 
             
                      sprintf("%5d", v.size),
         | 
| 16 | 
            -
                       | 
| 17 | 
            -
                       | 
| 16 | 
            +
                      field(v, :volume_type),
         | 
| 17 | 
            +
                      field(attachment, :instance_id),
         | 
| 18 18 | 
             
                      pad(attachment.device, 9),
         | 
| 19 19 | 
             
                      quoted(name)
         | 
| 20 20 | 
             
                    ].join("  ")
         | 
    
        data/lib/swa/ec2/vpc.rb
    CHANGED
    
    
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require "base64"
         | 
| 2 | 
            +
            require "swa/resource"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Swa
         | 
| 5 | 
            +
              module S3
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                class Bucket < Resource
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  def summary
         | 
| 10 | 
            +
                    bucket.name
         | 
| 11 | 
            +
                  end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  def policy
         | 
| 14 | 
            +
                    bucket.policy.policy.read
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  private
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  alias_method :bucket, :aws_resource
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
    
        data/lib/swa/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: swa
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Mike Williams
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-09 | 
| 11 | 
            +
            date: 2016-10-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -142,6 +142,7 @@ files: | |
| 142 142 | 
             
            - exe/swa
         | 
| 143 143 | 
             
            - lib/swa.rb
         | 
| 144 144 | 
             
            - lib/swa/cli/base_command.rb
         | 
| 145 | 
            +
            - lib/swa/cli/cloud_formation_command.rb
         | 
| 145 146 | 
             
            - lib/swa/cli/collection_behaviour.rb
         | 
| 146 147 | 
             
            - lib/swa/cli/data_output.rb
         | 
| 147 148 | 
             
            - lib/swa/cli/ec2_command.rb
         | 
| @@ -150,8 +151,10 @@ files: | |
| 150 151 | 
             
            - lib/swa/cli/item_behaviour.rb
         | 
| 151 152 | 
             
            - lib/swa/cli/kms_command.rb
         | 
| 152 153 | 
             
            - lib/swa/cli/main_command.rb
         | 
| 154 | 
            +
            - lib/swa/cli/s3_command.rb
         | 
| 153 155 | 
             
            - lib/swa/cli/selector.rb
         | 
| 154 156 | 
             
            - lib/swa/cli/tag_filter_options.rb
         | 
| 157 | 
            +
            - lib/swa/cloud_formation/stack.rb
         | 
| 155 158 | 
             
            - lib/swa/data_presentation.rb
         | 
| 156 159 | 
             
            - lib/swa/ec2/image.rb
         | 
| 157 160 | 
             
            - lib/swa/ec2/instance.rb
         | 
| @@ -170,6 +173,7 @@ files: | |
| 170 173 | 
             
            - lib/swa/kms/key.rb
         | 
| 171 174 | 
             
            - lib/swa/record.rb
         | 
| 172 175 | 
             
            - lib/swa/resource.rb
         | 
| 176 | 
            +
            - lib/swa/s3/bucket.rb
         | 
| 173 177 | 
             
            - lib/swa/version.rb
         | 
| 174 178 | 
             
            - swa.gemspec
         | 
| 175 179 | 
             
            homepage: https://github.com/mdub/swa
         |