fog-aws 1.2.1 → 1.3.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/CHANGELOG.md +16 -1
 - data/lib/fog/aws/compute.rb +6 -0
 - data/lib/fog/aws/models/compute/flavors.rb +60 -0
 - data/lib/fog/aws/models/compute/volume.rb +41 -22
 - data/lib/fog/aws/models/compute/vpc.rb +34 -0
 - data/lib/fog/aws/models/rds/security_group.rb +4 -2
 - data/lib/fog/aws/models/storage/file.rb +1 -1
 - data/lib/fog/aws/parsers/compute/describe_volumes_modifications.rb +30 -0
 - data/lib/fog/aws/parsers/compute/describe_vpc_classic_link.rb +3 -1
 - data/lib/fog/aws/parsers/compute/describe_vpc_classic_link_dns_support.rb +26 -0
 - data/lib/fog/aws/parsers/compute/modify_volume.rb +26 -0
 - data/lib/fog/aws/rds.rb +1 -1
 - data/lib/fog/aws/requests/compute/attach_classic_link_vpc.rb +3 -3
 - data/lib/fog/aws/requests/compute/create_vpc.rb +10 -9
 - data/lib/fog/aws/requests/compute/describe_volumes_modifications.rb +93 -0
 - data/lib/fog/aws/requests/compute/describe_vpc_classic_link.rb +2 -1
 - data/lib/fog/aws/requests/compute/describe_vpc_classic_link_dns_support.rb +53 -0
 - data/lib/fog/aws/requests/compute/detach_classic_link_vpc.rb +1 -3
 - data/lib/fog/aws/requests/compute/disable_vpc_classic_link_dns_support.rb +45 -0
 - data/lib/fog/aws/requests/compute/enable_vpc_classic_link_dns_support.rb +45 -0
 - data/lib/fog/aws/requests/compute/modify_volume.rb +88 -0
 - data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +10 -5
 - data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +3 -4
 - data/lib/fog/aws/requests/rds/delete_db_subnet_group.rb +2 -0
 - data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +9 -4
 - data/lib/fog/aws/version.rb +1 -1
 - data/tests/models/compute/volume_tests.rb +16 -1
 - data/tests/models/compute/vpc_tests.rb +23 -1
 - data/tests/models/rds/security_group_tests.rb +30 -6
 - data/tests/requests/compute/volume_tests.rb +42 -2
 - data/tests/requests/compute/vpc_tests.rb +41 -5
 - metadata +10 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 507acde666f266cc70e6346a9274bcf1e1bff19c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 105bb905004f27b5336ff4f17feb006164feef21
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 6403c1fc64c5cc9396f4671118897c6be37aa49e88b09f8e96cdbe9f5ef68f18e087ec52a03755d53f04c4991f4616f6064e386bff3cdaa0d5dd084e7537d43e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: d5e45bdab2ee7dca720cc549ba6dd0202f1d9d60d98c3b2e178e36fb6910c72ac069a6197c2cf6167b8741067bc2d41280ace84430f0c2c59afe3580d1cb7f15
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -2,7 +2,22 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            ## [Unreleased](https://github.com/fog/fog-aws/tree/HEAD)
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            [Full Changelog](https://github.com/fog/fog-aws/compare/v1.2. 
     | 
| 
      
 5 
     | 
    
         
            +
            [Full Changelog](https://github.com/fog/fog-aws/compare/v1.2.1...HEAD)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            **Closed issues:**
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            - Do we need to list all files before creating one? [\#357](https://github.com/fog/fog-aws/issues/357)
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            **Merged pull requests:**
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            - Authorize vpc to rds sg [\#356](https://github.com/fog/fog-aws/pull/356) ([ehowe](https://github.com/ehowe))
         
     | 
| 
      
 14 
     | 
    
         
            +
            - classic link enhancements [\#355](https://github.com/fog/fog-aws/pull/355) ([ehowe](https://github.com/ehowe))
         
     | 
| 
      
 15 
     | 
    
         
            +
            - Add new i3 class instances. [\#353](https://github.com/fog/fog-aws/pull/353) ([rogersd](https://github.com/rogersd))
         
     | 
| 
      
 16 
     | 
    
         
            +
            - Add check for self.etag before running gsub [\#351](https://github.com/fog/fog-aws/pull/351) ([dmcorboy](https://github.com/dmcorboy))
         
     | 
| 
      
 17 
     | 
    
         
            +
            - Modify volume [\#350](https://github.com/fog/fog-aws/pull/350) ([ehowe](https://github.com/ehowe))
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ## [v1.2.1](https://github.com/fog/fog-aws/tree/v1.2.1) (2017-02-27)
         
     | 
| 
      
 20 
     | 
    
         
            +
            [Full Changelog](https://github.com/fog/fog-aws/compare/v1.2.0...v1.2.1)
         
     | 
| 
       6 
21 
     | 
    
         | 
| 
       7 
22 
     | 
    
         
             
            **Closed issues:**
         
     | 
| 
       8 
23 
     | 
    
         | 
    
        data/lib/fog/aws/compute.rb
    CHANGED
    
    | 
         @@ -120,18 +120,22 @@ module Fog 
     | 
|
| 
       120 
120 
     | 
    
         
             
                  request :describe_subnets
         
     | 
| 
       121 
121 
     | 
    
         
             
                  request :describe_tags
         
     | 
| 
       122 
122 
     | 
    
         
             
                  request :describe_volumes
         
     | 
| 
      
 123 
     | 
    
         
            +
                  request :describe_volumes_modifications
         
     | 
| 
       123 
124 
     | 
    
         
             
                  request :describe_volume_status
         
     | 
| 
       124 
125 
     | 
    
         
             
                  request :describe_vpcs
         
     | 
| 
       125 
126 
     | 
    
         
             
                  request :describe_vpc_attribute
         
     | 
| 
       126 
127 
     | 
    
         
             
                  request :describe_vpc_classic_link
         
     | 
| 
      
 128 
     | 
    
         
            +
                  request :describe_vpc_classic_link_dns_support
         
     | 
| 
       127 
129 
     | 
    
         
             
                  request :detach_network_interface
         
     | 
| 
       128 
130 
     | 
    
         
             
                  request :detach_internet_gateway
         
     | 
| 
       129 
131 
     | 
    
         
             
                  request :detach_volume
         
     | 
| 
       130 
132 
     | 
    
         
             
                  request :detach_classic_link_vpc
         
     | 
| 
       131 
133 
     | 
    
         
             
                  request :disable_vpc_classic_link
         
     | 
| 
      
 134 
     | 
    
         
            +
                  request :disable_vpc_classic_link_dns_support
         
     | 
| 
       132 
135 
     | 
    
         
             
                  request :disassociate_address
         
     | 
| 
       133 
136 
     | 
    
         
             
                  request :disassociate_route_table
         
     | 
| 
       134 
137 
     | 
    
         
             
                  request :enable_vpc_classic_link
         
     | 
| 
      
 138 
     | 
    
         
            +
                  request :enable_vpc_classic_link_dns_support
         
     | 
| 
       135 
139 
     | 
    
         
             
                  request :get_console_output
         
     | 
| 
       136 
140 
     | 
    
         
             
                  request :get_password_data
         
     | 
| 
       137 
141 
     | 
    
         
             
                  request :import_key_pair
         
     | 
| 
         @@ -140,6 +144,7 @@ module Fog 
     | 
|
| 
       140 
144 
     | 
    
         
             
                  request :modify_network_interface_attribute
         
     | 
| 
       141 
145 
     | 
    
         
             
                  request :modify_snapshot_attribute
         
     | 
| 
       142 
146 
     | 
    
         
             
                  request :modify_subnet_attribute
         
     | 
| 
      
 147 
     | 
    
         
            +
                  request :modify_volume
         
     | 
| 
       143 
148 
     | 
    
         
             
                  request :modify_volume_attribute
         
     | 
| 
       144 
149 
     | 
    
         
             
                  request :modify_vpc_attribute
         
     | 
| 
       145 
150 
     | 
    
         
             
                  request :move_address_to_vpc
         
     | 
| 
         @@ -290,6 +295,7 @@ module Fog 
     | 
|
| 
       290 
295 
     | 
    
         
             
                              }
         
     | 
| 
       291 
296 
     | 
    
         
             
                            ],
         
     | 
| 
       292 
297 
     | 
    
         
             
                            :spot_requests => {},
         
     | 
| 
      
 298 
     | 
    
         
            +
                            :volume_modifications => {}
         
     | 
| 
       293 
299 
     | 
    
         
             
                          }
         
     | 
| 
       294 
300 
     | 
    
         
             
                        end
         
     | 
| 
       295 
301 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -424,6 +424,66 @@ module Fog 
     | 
|
| 
       424 
424 
     | 
    
         
             
                      :ebs_optimized_available => false,
         
     | 
| 
       425 
425 
     | 
    
         
             
                      :instance_store_volumes  => 8
         
     | 
| 
       426 
426 
     | 
    
         
             
                    },
         
     | 
| 
      
 427 
     | 
    
         
            +
                    {
         
     | 
| 
      
 428 
     | 
    
         
            +
                      :id                      => 'i3.large',
         
     | 
| 
      
 429 
     | 
    
         
            +
                      :name                    => 'I3 Large',
         
     | 
| 
      
 430 
     | 
    
         
            +
                      :bits                    => 64,
         
     | 
| 
      
 431 
     | 
    
         
            +
                      :cores                   => 2,
         
     | 
| 
      
 432 
     | 
    
         
            +
                      :disk                    => 475,
         
     | 
| 
      
 433 
     | 
    
         
            +
                      :ram                     => 15616,
         
     | 
| 
      
 434 
     | 
    
         
            +
                      :ebs_optimized_available => true,
         
     | 
| 
      
 435 
     | 
    
         
            +
                      :instance_store_volumes  => 1
         
     | 
| 
      
 436 
     | 
    
         
            +
                    },
         
     | 
| 
      
 437 
     | 
    
         
            +
                    {
         
     | 
| 
      
 438 
     | 
    
         
            +
                      :id                      => 'i3.xlarge',
         
     | 
| 
      
 439 
     | 
    
         
            +
                      :name                    => 'I3 Extra Large',
         
     | 
| 
      
 440 
     | 
    
         
            +
                      :bits                    => 64,
         
     | 
| 
      
 441 
     | 
    
         
            +
                      :cores                   => 4,
         
     | 
| 
      
 442 
     | 
    
         
            +
                      :disk                    => 950,
         
     | 
| 
      
 443 
     | 
    
         
            +
                      :ram                     => 31232,
         
     | 
| 
      
 444 
     | 
    
         
            +
                      :ebs_optimized_available => true,
         
     | 
| 
      
 445 
     | 
    
         
            +
                      :instance_store_volumes  => 1
         
     | 
| 
      
 446 
     | 
    
         
            +
                    },
         
     | 
| 
      
 447 
     | 
    
         
            +
                    {
         
     | 
| 
      
 448 
     | 
    
         
            +
                      :id                      => 'i3.2xlarge',
         
     | 
| 
      
 449 
     | 
    
         
            +
                      :name                    => 'I3 Double Extra Large',
         
     | 
| 
      
 450 
     | 
    
         
            +
                      :bits                    => 64,
         
     | 
| 
      
 451 
     | 
    
         
            +
                      :cores                   => 8,
         
     | 
| 
      
 452 
     | 
    
         
            +
                      :disk                    => 1900,
         
     | 
| 
      
 453 
     | 
    
         
            +
                      :ram                     => 62464,
         
     | 
| 
      
 454 
     | 
    
         
            +
                      :ebs_optimized_available => true,
         
     | 
| 
      
 455 
     | 
    
         
            +
                      :instance_store_volumes  => 1
         
     | 
| 
      
 456 
     | 
    
         
            +
                    },
         
     | 
| 
      
 457 
     | 
    
         
            +
                    {
         
     | 
| 
      
 458 
     | 
    
         
            +
                      :id                      => 'i3.4xlarge',
         
     | 
| 
      
 459 
     | 
    
         
            +
                      :name                    => 'I3 Quadruple Extra Large',
         
     | 
| 
      
 460 
     | 
    
         
            +
                      :bits                    => 64,
         
     | 
| 
      
 461 
     | 
    
         
            +
                      :cores                   => 16,
         
     | 
| 
      
 462 
     | 
    
         
            +
                      :disk                    => 3800,
         
     | 
| 
      
 463 
     | 
    
         
            +
                      :ram                     => 124928,
         
     | 
| 
      
 464 
     | 
    
         
            +
                      :ebs_optimized_available => true,
         
     | 
| 
      
 465 
     | 
    
         
            +
                      :instance_store_volumes  => 2
         
     | 
| 
      
 466 
     | 
    
         
            +
                    },
         
     | 
| 
      
 467 
     | 
    
         
            +
                    {
         
     | 
| 
      
 468 
     | 
    
         
            +
                      :id                      => 'i3.8xlarge',
         
     | 
| 
      
 469 
     | 
    
         
            +
                      :name                    => 'I3 Eight Extra Large',
         
     | 
| 
      
 470 
     | 
    
         
            +
                      :bits                    => 64,
         
     | 
| 
      
 471 
     | 
    
         
            +
                      :cores                   => 32,
         
     | 
| 
      
 472 
     | 
    
         
            +
                      :disk                    => 7600,
         
     | 
| 
      
 473 
     | 
    
         
            +
                      :ram                     => 249856,
         
     | 
| 
      
 474 
     | 
    
         
            +
                      :ebs_optimized_available => true,
         
     | 
| 
      
 475 
     | 
    
         
            +
                      :instance_store_volumes  => 4
         
     | 
| 
      
 476 
     | 
    
         
            +
                    },
         
     | 
| 
      
 477 
     | 
    
         
            +
                    {
         
     | 
| 
      
 478 
     | 
    
         
            +
                      :id                      => 'i3.16xlarge',
         
     | 
| 
      
 479 
     | 
    
         
            +
                      :name                    => 'I3 Sixteen Extra Large',
         
     | 
| 
      
 480 
     | 
    
         
            +
                      :bits                    => 64,
         
     | 
| 
      
 481 
     | 
    
         
            +
                      :cores                   => 32,
         
     | 
| 
      
 482 
     | 
    
         
            +
                      :disk                    => 15200,
         
     | 
| 
      
 483 
     | 
    
         
            +
                      :ram                     => 499712,
         
     | 
| 
      
 484 
     | 
    
         
            +
                      :ebs_optimized_available => true,
         
     | 
| 
      
 485 
     | 
    
         
            +
                      :instance_store_volumes  => 8
         
     | 
| 
      
 486 
     | 
    
         
            +
                    },
         
     | 
| 
       427 
487 
     | 
    
         
             
                    {
         
     | 
| 
       428 
488 
     | 
    
         
             
                      :id                      => "r3.large",
         
     | 
| 
       429 
489 
     | 
    
         
             
                      :name                    => "R3 Large",
         
     | 
| 
         @@ -36,31 +36,50 @@ module Fog 
     | 
|
| 
       36 
36 
     | 
    
         
             
                      state == 'available'
         
     | 
| 
       37 
37 
     | 
    
         
             
                    end
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                    def  
     | 
| 
       40 
     | 
    
         
            -
                       
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                      requires_one :size, :snapshot_id
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                      if type == 'io1'
         
     | 
| 
       45 
     | 
    
         
            -
                        requires :iops
         
     | 
| 
       46 
     | 
    
         
            -
                      end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                      data = service.create_volume(availability_zone, size, create_params).body
         
     | 
| 
       49 
     | 
    
         
            -
                      merge_attributes(data)
         
     | 
| 
      
 39 
     | 
    
         
            +
                    def modification_in_progress?
         
     | 
| 
      
 40 
     | 
    
         
            +
                      modifications.any? { |m| m['modificationState'] != 'completed' }
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
       50 
42 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                          self.identity,
         
     | 
| 
       56 
     | 
    
         
            -
                          tags
         
     | 
| 
       57 
     | 
    
         
            -
                        )
         
     | 
| 
       58 
     | 
    
         
            -
                      end
         
     | 
| 
      
 43 
     | 
    
         
            +
                    def modifications
         
     | 
| 
      
 44 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 45 
     | 
    
         
            +
                      service.describe_volumes_modifications('volume-id' => self.identity).body['volumeModificationSet']
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
       59 
47 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
                    def save
         
     | 
| 
      
 49 
     | 
    
         
            +
                      if identity
         
     | 
| 
      
 50 
     | 
    
         
            +
                        update_params = {
         
     | 
| 
      
 51 
     | 
    
         
            +
                          'Size'       => self.size,
         
     | 
| 
      
 52 
     | 
    
         
            +
                          'Iops'       => self.iops,
         
     | 
| 
      
 53 
     | 
    
         
            +
                          'VolumeType' => self.type
         
     | 
| 
      
 54 
     | 
    
         
            +
                        }
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                        service.modify_volume(self.identity, update_params)
         
     | 
| 
      
 57 
     | 
    
         
            +
                        true
         
     | 
| 
      
 58 
     | 
    
         
            +
                      else
         
     | 
| 
      
 59 
     | 
    
         
            +
                        requires :availability_zone
         
     | 
| 
      
 60 
     | 
    
         
            +
                        requires_one :size, :snapshot_id
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                        if type == 'io1'
         
     | 
| 
      
 63 
     | 
    
         
            +
                          requires :iops
         
     | 
| 
      
 64 
     | 
    
         
            +
                        end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                        data = service.create_volume(availability_zone, size, create_params).body
         
     | 
| 
      
 67 
     | 
    
         
            +
                        merge_attributes(data)
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                        if tags = self.tags
         
     | 
| 
      
 70 
     | 
    
         
            +
                          # expect eventual consistency
         
     | 
| 
      
 71 
     | 
    
         
            +
                          Fog.wait_for { self.reload rescue nil }
         
     | 
| 
      
 72 
     | 
    
         
            +
                          service.create_tags(
         
     | 
| 
      
 73 
     | 
    
         
            +
                            self.identity,
         
     | 
| 
      
 74 
     | 
    
         
            +
                            tags
         
     | 
| 
      
 75 
     | 
    
         
            +
                          )
         
     | 
| 
      
 76 
     | 
    
         
            +
                        end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                        if @server
         
     | 
| 
      
 79 
     | 
    
         
            +
                          self.server = @server
         
     | 
| 
      
 80 
     | 
    
         
            +
                        end
         
     | 
| 
      
 81 
     | 
    
         
            +
                        true
         
     | 
| 
       62 
82 
     | 
    
         
             
                      end
         
     | 
| 
       63 
     | 
    
         
            -
                      true
         
     | 
| 
       64 
83 
     | 
    
         
             
                    end
         
     | 
| 
       65 
84 
     | 
    
         | 
| 
       66 
85 
     | 
    
         
             
                    def server
         
     | 
| 
         @@ -47,6 +47,40 @@ module Fog 
     | 
|
| 
       47 
47 
     | 
    
         
             
                      true
         
     | 
| 
       48 
48 
     | 
    
         
             
                    end
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
      
 50 
     | 
    
         
            +
                    def classic_link_enabled?
         
     | 
| 
      
 51 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 52 
     | 
    
         
            +
                      service.describe_vpc_classic_link(:vpc_ids => [self.identity]).body['vpcSet'].first['classicLinkEnabled']
         
     | 
| 
      
 53 
     | 
    
         
            +
                    rescue
         
     | 
| 
      
 54 
     | 
    
         
            +
                      nil
         
     | 
| 
      
 55 
     | 
    
         
            +
                    end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                    def enable_classic_link
         
     | 
| 
      
 58 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 59 
     | 
    
         
            +
                      service.enable_vpc_classic_link(self.identity).body['return']
         
     | 
| 
      
 60 
     | 
    
         
            +
                    end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    def disable_classic_link
         
     | 
| 
      
 63 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 64 
     | 
    
         
            +
                      service.disable_vpc_classic_link(self.identity).body['return']
         
     | 
| 
      
 65 
     | 
    
         
            +
                    end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    def classic_link_dns_enabled?
         
     | 
| 
      
 68 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 69 
     | 
    
         
            +
                      service.describe_vpc_classic_link_dns_support(:vpc_ids => [self.identity]).body['vpcs'].first['classicLinkDnsSupported']
         
     | 
| 
      
 70 
     | 
    
         
            +
                    rescue
         
     | 
| 
      
 71 
     | 
    
         
            +
                      nil
         
     | 
| 
      
 72 
     | 
    
         
            +
                    end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                    def enable_classic_link_dns
         
     | 
| 
      
 75 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 76 
     | 
    
         
            +
                      service.enable_vpc_classic_link_dns_support(self.identity).body['return']
         
     | 
| 
      
 77 
     | 
    
         
            +
                    end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                    def disable_classic_link_dns
         
     | 
| 
      
 80 
     | 
    
         
            +
                      requires :identity
         
     | 
| 
      
 81 
     | 
    
         
            +
                      service.disable_vpc_classic_link_dns_support(self.identity).body['return']
         
     | 
| 
      
 82 
     | 
    
         
            +
                    end
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
       50 
84 
     | 
    
         
             
                    # Create a vpc
         
     | 
| 
       51 
85 
     | 
    
         
             
                    #
         
     | 
| 
       52 
86 
     | 
    
         
             
                    # >> g = AWS.vpcs.new(:cidr_block => "10.1.2.0/24")
         
     | 
| 
         @@ -29,8 +29,9 @@ module Fog 
     | 
|
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                    # group_owner_id defaults to the current owner_id
         
     | 
| 
       31 
31 
     | 
    
         
             
                    def authorize_ec2_security_group(group_name, group_owner_id=owner_id)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      key = group_name.match(/^sg-/) ? 'EC2SecurityGroupId' : 'EC2SecurityGroupName'
         
     | 
| 
       32 
33 
     | 
    
         
             
                      authorize_ingress({
         
     | 
| 
       33 
     | 
    
         
            -
                         
     | 
| 
      
 34 
     | 
    
         
            +
                        key                       => group_name,
         
     | 
| 
       34 
35 
     | 
    
         
             
                        'EC2SecurityGroupOwnerId' => group_owner_id
         
     | 
| 
       35 
36 
     | 
    
         
             
                      })
         
     | 
| 
       36 
37 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -56,8 +57,9 @@ module Fog 
     | 
|
| 
       56 
57 
     | 
    
         | 
| 
       57 
58 
     | 
    
         
             
                    # group_owner_id defaults to the current owner_id
         
     | 
| 
       58 
59 
     | 
    
         
             
                    def revoke_ec2_security_group(group_name, group_owner_id=owner_id)
         
     | 
| 
      
 60 
     | 
    
         
            +
                      key = group_name.match(/^sg-/) ? 'EC2SecurityGroupId' : 'EC2SecurityGroupName'
         
     | 
| 
       59 
61 
     | 
    
         
             
                      revoke_ingress({
         
     | 
| 
       60 
     | 
    
         
            -
                         
     | 
| 
      
 62 
     | 
    
         
            +
                        key                       => group_name,
         
     | 
| 
       61 
63 
     | 
    
         
             
                        'EC2SecurityGroupOwnerId' => group_owner_id
         
     | 
| 
       62 
64 
     | 
    
         
             
                      })
         
     | 
| 
       63 
65 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -219,7 +219,7 @@ module Fog 
     | 
|
| 
       219 
219 
     | 
    
         
             
                        data = service.put_object(directory.key, key, body, options)
         
     | 
| 
       220 
220 
     | 
    
         
             
                        merge_attributes(data.headers.reject {|key, value| ['Content-Length', 'Content-Type'].include?(key)})
         
     | 
| 
       221 
221 
     | 
    
         
             
                      end
         
     | 
| 
       222 
     | 
    
         
            -
                      self.etag.gsub!('"','')
         
     | 
| 
      
 222 
     | 
    
         
            +
                      self.etag.gsub!('"','') if self.etag
         
     | 
| 
       223 
223 
     | 
    
         
             
                      self.content_length = Fog::Storage.get_body_size(body)
         
     | 
| 
       224 
224 
     | 
    
         
             
                      self.content_type ||= Fog::Storage.get_content_type(body)
         
     | 
| 
       225 
225 
     | 
    
         
             
                      true
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Compute
         
     | 
| 
      
 4 
     | 
    
         
            +
                  module AWS
         
     | 
| 
      
 5 
     | 
    
         
            +
                    class DescribeVolumesModifications < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
                      def reset
         
     | 
| 
      
 7 
     | 
    
         
            +
                        @response     = { 'volumeModificationSet' => [] }
         
     | 
| 
      
 8 
     | 
    
         
            +
                        @modification = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                      end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                      def end_element(name)
         
     | 
| 
      
 12 
     | 
    
         
            +
                        case name
         
     | 
| 
      
 13 
     | 
    
         
            +
                        when 'modificationState', 'originalVolumeType', 'statusMessage', 'targetVolumeType', 'volumeId'
         
     | 
| 
      
 14 
     | 
    
         
            +
                          @modification[name] = value
         
     | 
| 
      
 15 
     | 
    
         
            +
                        when 'startTime', 'endTime'
         
     | 
| 
      
 16 
     | 
    
         
            +
                          @modification[name] = Time.parse(value)
         
     | 
| 
      
 17 
     | 
    
         
            +
                        when 'originalIops', 'originalSize', 'progress', 'targetIops', 'targetSize'
         
     | 
| 
      
 18 
     | 
    
         
            +
                          @modification[name] = value.to_i
         
     | 
| 
      
 19 
     | 
    
         
            +
                        when 'requestId'
         
     | 
| 
      
 20 
     | 
    
         
            +
                          @response[name] = value
         
     | 
| 
      
 21 
     | 
    
         
            +
                        when 'item'
         
     | 
| 
      
 22 
     | 
    
         
            +
                          @response['volumeModificationSet'] << @modification.dup
         
     | 
| 
      
 23 
     | 
    
         
            +
                          @modification = {}
         
     | 
| 
      
 24 
     | 
    
         
            +
                        end
         
     | 
| 
      
 25 
     | 
    
         
            +
                      end
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Compute
         
     | 
| 
      
 4 
     | 
    
         
            +
                  module AWS
         
     | 
| 
      
 5 
     | 
    
         
            +
                    class DescribeVpcClassicLinkDnsSupport < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
                      def reset
         
     | 
| 
      
 7 
     | 
    
         
            +
                        @vpc      = {}
         
     | 
| 
      
 8 
     | 
    
         
            +
                        @response = { 'vpcs' => [] }
         
     | 
| 
      
 9 
     | 
    
         
            +
                      end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                      def end_element(name)
         
     | 
| 
      
 12 
     | 
    
         
            +
                        case name
         
     | 
| 
      
 13 
     | 
    
         
            +
                        when 'vpcId'
         
     | 
| 
      
 14 
     | 
    
         
            +
                          @vpc[name] = value
         
     | 
| 
      
 15 
     | 
    
         
            +
                        when 'classicLinkDnsSupported'
         
     | 
| 
      
 16 
     | 
    
         
            +
                          @vpc[name] = value == 'true'
         
     | 
| 
      
 17 
     | 
    
         
            +
                        when 'item'
         
     | 
| 
      
 18 
     | 
    
         
            +
                          @response['vpcs'] << @vpc
         
     | 
| 
      
 19 
     | 
    
         
            +
                          @vpc = {}
         
     | 
| 
      
 20 
     | 
    
         
            +
                        end
         
     | 
| 
      
 21 
     | 
    
         
            +
                      end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Compute
         
     | 
| 
      
 4 
     | 
    
         
            +
                  module AWS
         
     | 
| 
      
 5 
     | 
    
         
            +
                    class ModifyVolume < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
                      def reset
         
     | 
| 
      
 7 
     | 
    
         
            +
                        @response = {'volumeModification' => {}}
         
     | 
| 
      
 8 
     | 
    
         
            +
                      end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                      def end_element(name)
         
     | 
| 
      
 11 
     | 
    
         
            +
                        case name
         
     | 
| 
      
 12 
     | 
    
         
            +
                        when 'modificationState', 'originalVolumeType', 'statusMessage', 'targetVolumeType', 'volumeId'
         
     | 
| 
      
 13 
     | 
    
         
            +
                          @response['volumeModification'][name] = value
         
     | 
| 
      
 14 
     | 
    
         
            +
                        when 'startTime', 'endTime'
         
     | 
| 
      
 15 
     | 
    
         
            +
                          @response['volumeModification'][name] = Time.parse(value)
         
     | 
| 
      
 16 
     | 
    
         
            +
                        when 'originalIops', 'originalSize', 'progress', 'targetIops', 'targetSize'
         
     | 
| 
      
 17 
     | 
    
         
            +
                          @response['volumeModification'][name] = value.to_i
         
     | 
| 
      
 18 
     | 
    
         
            +
                        when 'requestId'
         
     | 
| 
      
 19 
     | 
    
         
            +
                          @response[name] = value
         
     | 
| 
      
 20 
     | 
    
         
            +
                        end
         
     | 
| 
      
 21 
     | 
    
         
            +
                      end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/fog/aws/rds.rb
    CHANGED
    
    
| 
         @@ -26,7 +26,7 @@ module Fog 
     | 
|
| 
       26 
26 
     | 
    
         
             
                        'DryRun'    => dry_run,
         
     | 
| 
       27 
27 
     | 
    
         
             
                        :parser     => Fog::Parsers::Compute::AWS::Basic.new
         
     | 
| 
       28 
28 
     | 
    
         
             
                      }.merge(Fog::AWS.indexed_param('SecurityGroupId', security_group_ids)))
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       30 
30 
     | 
    
         
             
                    end
         
     | 
| 
       31 
31 
     | 
    
         
             
                  end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
         @@ -50,11 +50,11 @@ module Fog 
     | 
|
| 
       50 
50 
     | 
    
         
             
                          'return'    => true
         
     | 
| 
       51 
51 
     | 
    
         
             
                        }
         
     | 
| 
       52 
52 
     | 
    
         
             
                        unless dry_run
         
     | 
| 
       53 
     | 
    
         
            -
                          instance['classicLinkSecurityGroups'] = security_group_ids 
     | 
| 
      
 53 
     | 
    
         
            +
                          instance['classicLinkSecurityGroups'] = security_group_ids
         
     | 
| 
       54 
54 
     | 
    
         
             
                          instance['classicLinkVpcId'] = vpc_id
         
     | 
| 
       55 
55 
     | 
    
         
             
                        end
         
     | 
| 
       56 
56 
     | 
    
         
             
                        response
         
     | 
| 
       57 
     | 
    
         
            -
                      elsif !instance 
     | 
| 
      
 57 
     | 
    
         
            +
                      elsif !instance
         
     | 
| 
       58 
58 
     | 
    
         
             
                        raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist.")
         
     | 
| 
       59 
59 
     | 
    
         
             
                      elsif !vpc
         
     | 
| 
       60 
60 
     | 
    
         
             
                        raise Fog::Compute::AWS::NotFound.new("The VPC '#{vpc_id}' does not exist.")
         
     | 
| 
         @@ -43,15 +43,16 @@ module Fog 
     | 
|
| 
       43 
43 
     | 
    
         
             
                          response.status = 200
         
     | 
| 
       44 
44 
     | 
    
         
             
                          vpc_id = Fog::AWS::Mock.vpc_id
         
     | 
| 
       45 
45 
     | 
    
         
             
                          vpc = {
         
     | 
| 
       46 
     | 
    
         
            -
                            'vpcId' 
     | 
| 
       47 
     | 
    
         
            -
                            'state' 
     | 
| 
       48 
     | 
    
         
            -
                            'cidrBlock' 
     | 
| 
       49 
     | 
    
         
            -
                            'dhcpOptionsId' 
     | 
| 
       50 
     | 
    
         
            -
                            'tagSet' 
     | 
| 
       51 
     | 
    
         
            -
                            'enableDnsSupport' 
     | 
| 
       52 
     | 
    
         
            -
                            'enableDnsHostnames' 
     | 
| 
       53 
     | 
    
         
            -
                            'mapPublicIpOnLaunch'=> false,
         
     | 
| 
       54 
     | 
    
         
            -
                            'classicLinkEnabled' 
     | 
| 
      
 46 
     | 
    
         
            +
                            'vpcId'                 => vpc_id,
         
     | 
| 
      
 47 
     | 
    
         
            +
                            'state'                 => 'pending',
         
     | 
| 
      
 48 
     | 
    
         
            +
                            'cidrBlock'             => cidrBlock,
         
     | 
| 
      
 49 
     | 
    
         
            +
                            'dhcpOptionsId'         => Fog::AWS::Mock.request_id,
         
     | 
| 
      
 50 
     | 
    
         
            +
                            'tagSet'                => {},
         
     | 
| 
      
 51 
     | 
    
         
            +
                            'enableDnsSupport'      => true,
         
     | 
| 
      
 52 
     | 
    
         
            +
                            'enableDnsHostnames'    => false,
         
     | 
| 
      
 53 
     | 
    
         
            +
                            'mapPublicIpOnLaunch'   => false,
         
     | 
| 
      
 54 
     | 
    
         
            +
                            'classicLinkEnabled'    => false,
         
     | 
| 
      
 55 
     | 
    
         
            +
                            'classicLinkDnsSupport' => false
         
     | 
| 
       55 
56 
     | 
    
         
             
                          }
         
     | 
| 
       56 
57 
     | 
    
         
             
                          self.data[:vpcs].push(vpc)
         
     | 
| 
       57 
58 
     | 
    
         |