fog-google 1.4.0 → 1.5.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 +34 -1
- data/lib/fog/compute/google.rb +20 -0
- data/lib/fog/compute/google/models/images.rb +0 -1
- data/lib/fog/compute/google/models/instance_group_manager.rb +51 -0
- data/lib/fog/compute/google/models/instance_group_managers.rb +42 -0
- data/lib/fog/compute/google/models/instance_template.rb +47 -0
- data/lib/fog/compute/google/models/instance_templates.rb +23 -0
- data/lib/fog/compute/google/requests/abandon_instances.rb +26 -0
- data/lib/fog/compute/google/requests/delete_instance_group_manager.rb +17 -0
- data/lib/fog/compute/google/requests/delete_instance_template.rb +17 -0
- data/lib/fog/compute/google/requests/get_instance_group_manager.rb +17 -0
- data/lib/fog/compute/google/requests/get_instance_template.rb +17 -0
- data/lib/fog/compute/google/requests/insert_instance_group_manager.rb +29 -0
- data/lib/fog/compute/google/requests/insert_instance_template.rb +36 -0
- data/lib/fog/compute/google/requests/list_aggregated_instance_group_managers.rb +24 -0
- data/lib/fog/compute/google/requests/list_instance_group_managers.rb +20 -0
- data/lib/fog/compute/google/requests/list_instance_templates.rb +24 -0
- data/lib/fog/compute/google/requests/recreate_instances.rb +26 -0
- data/lib/fog/compute/google/requests/set_instance_template.rb +26 -0
- data/lib/fog/google/version.rb +1 -1
- data/test/integration/compute/test_instance_group_managers.rb +11 -0
- data/test/integration/compute/test_instance_templates.rb +11 -0
- data/test/integration/factories/instance_group_manager_factory.rb +22 -0
- data/test/integration/factories/instance_template_factory.rb +23 -0
- metadata +26 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 95802f48e4fa5a610c96521c65d0a9bb2b33ce54
         | 
| 4 | 
            +
              data.tar.gz: 6ae1e7e9a6c7ed8a5a05736857219a6144a4e443
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9b8f524b235aaf667a4ecaf256a19ca038de9ca6db80e486a29c805dabc73d0cc5b2b95f6a5b17198c268c193a3939825ba6182f6122946ef2ba0ff5bb617c62
         | 
| 7 | 
            +
              data.tar.gz: cfa889ab0a734fd5165447f4b7b8234c14287f0e87f2ebae833fa9b34d355f218dcdca6abc89923af196b79c6f6c7ce9ab8c641021699e2a296488e37d144d41
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -2,6 +2,39 @@ | |
| 2 2 | 
             
            All notable changes to this project will be documented in this file.
         | 
| 3 3 | 
             
            The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
         | 
| 4 4 |  | 
| 5 | 
            +
            ## 1.5.0
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ### User-facing
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            - \#348 Added Instance Group Manager and Instance Templates [bpaquet]
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              - `Fog::Compute::Google::InstanceGroupManager` model and associated requests:
         | 
| 12 | 
            +
                - `:get_instance_group_manager`
         | 
| 13 | 
            +
                - `:insert_instance_group_manager`
         | 
| 14 | 
            +
                - `:delete_instance_group_manager`
         | 
| 15 | 
            +
                - `:list_instance_group_managers`
         | 
| 16 | 
            +
                - `:list_aggregated_instance_group_managers`
         | 
| 17 | 
            +
                - `:recreate_instances`
         | 
| 18 | 
            +
                - `:abandon_instances`
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              - `Fog::Compute::Google::InstanceTemplate` model and associated requests:
         | 
| 21 | 
            +
                - `:list_instance_templates`
         | 
| 22 | 
            +
                - `:get_instance_template`
         | 
| 23 | 
            +
                - `:insert_instance_template`
         | 
| 24 | 
            +
                - `:delete_instance_template`
         | 
| 25 | 
            +
                - `:set_instance_template`
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            #### Fixed
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            - \#356 Hotfix - removing buggy deprecated 'google-containers' project, causing 403 errors
         | 
| 30 | 
            +
              on `images.all` call. [tumido]
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            ### Development changes
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            #### Added
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            - \#350 Added InstanceGroupManager and InstanceTemplate integration tests [temikus]
         | 
| 37 | 
            +
             | 
| 5 38 | 
             
            ## 1.4.0
         | 
| 6 39 |  | 
| 7 40 | 
             
            ### User-facing
         | 
| @@ -76,4 +109,4 @@ PRs that change functionality: #212, #215, #203, #198, #201, #221, #222, #216 | |
| 76 109 | 
             
            ## 0.5.2
         | 
| 77 110 |  | 
| 78 111 | 
             
            Rapid-releasing 0.5.2 due to regression fixed by #190 still present in v0.5.1
         | 
| 79 | 
            -
            We encourage people using 0.5.1 to upgrade.
         | 
| 112 | 
            +
            We encourage people using 0.5.1 to upgrade.
         | 
    
        data/lib/fog/compute/google.rb
    CHANGED
    
    | @@ -196,6 +196,20 @@ module Fog | |
| 196 196 | 
             
                  request :invalidate_url_map_cache
         | 
| 197 197 | 
             
                  request :validate_url_map
         | 
| 198 198 |  | 
| 199 | 
            +
                  request :get_instance_group_manager
         | 
| 200 | 
            +
                  request :insert_instance_group_manager
         | 
| 201 | 
            +
                  request :delete_instance_group_manager
         | 
| 202 | 
            +
                  request :list_instance_templates
         | 
| 203 | 
            +
                  request :list_instance_group_managers
         | 
| 204 | 
            +
                  request :get_instance_template
         | 
| 205 | 
            +
                  request :insert_instance_template
         | 
| 206 | 
            +
                  request :delete_instance_template
         | 
| 207 | 
            +
             | 
| 208 | 
            +
                  request :list_aggregated_instance_group_managers
         | 
| 209 | 
            +
                  request :set_instance_template
         | 
| 210 | 
            +
                  request :recreate_instances
         | 
| 211 | 
            +
                  request :abandon_instances
         | 
| 212 | 
            +
             | 
| 199 213 | 
             
                  request :deprecate_image
         | 
| 200 214 |  | 
| 201 215 | 
             
                  model_path "fog/compute/google/models"
         | 
| @@ -277,6 +291,12 @@ module Fog | |
| 277 291 | 
             
                  model :subnetwork
         | 
| 278 292 | 
             
                  collection :subnetworks
         | 
| 279 293 |  | 
| 294 | 
            +
                  model :instance_template
         | 
| 295 | 
            +
                  collection :instance_templates
         | 
| 296 | 
            +
             | 
| 297 | 
            +
                  model :instance_group_manager
         | 
| 298 | 
            +
                  collection :instance_group_managers
         | 
| 299 | 
            +
             | 
| 280 300 | 
             
                  model :ssl_certificate
         | 
| 281 301 | 
             
                  collection :ssl_certificates
         | 
| 282 302 | 
             
                end
         | 
| @@ -0,0 +1,51 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class InstanceGroupManager < Fog::Model
         | 
| 5 | 
            +
                    identity :name
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                    attribute :kind
         | 
| 8 | 
            +
                    attribute :self_link, :aliases => "selfLink"
         | 
| 9 | 
            +
                    attribute :description
         | 
| 10 | 
            +
                    attribute :zone
         | 
| 11 | 
            +
                    attribute :region
         | 
| 12 | 
            +
                    attribute :instance_group, :aliases => "instanceGroup"
         | 
| 13 | 
            +
                    attribute :instance_template, :aliases => "instanceTemplate"
         | 
| 14 | 
            +
                    attribute :target_pools, :aliases => "targetPools"
         | 
| 15 | 
            +
                    attribute :base_instance_name, :aliases => "baseInstanceName"
         | 
| 16 | 
            +
                    attribute :current_actions, :aliases => "currentActions"
         | 
| 17 | 
            +
                    attribute :target_size, :aliases => "targetSize"
         | 
| 18 | 
            +
                    attribute :named_ports, :aliases => "namedPorts"
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    def save
         | 
| 21 | 
            +
                      requires :name, :zone, :base_instance_name, :target_size, :instance_template
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                      data = service.insert_instance_group_manager(name, zone.split("/")[-1], instance_template, base_instance_name,
         | 
| 24 | 
            +
                      target_size, target_pools, named_ports, description)
         | 
| 25 | 
            +
                      operation = Fog::Compute::Google::Operations.new(:service => service).get(data.name, zone.split("/")[-1])
         | 
| 26 | 
            +
                      operation.wait_for { !pending? }
         | 
| 27 | 
            +
                      reload
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                    def destroy(async = true)
         | 
| 31 | 
            +
                      requires :name, :zone
         | 
| 32 | 
            +
                      operation = service.delete_instance_group_manager(name, zone.split("/")[-1])
         | 
| 33 | 
            +
                      operation.wait_for { ready? } unless async
         | 
| 34 | 
            +
                      operation
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                    def set_instance_template(instance_template)
         | 
| 38 | 
            +
                      service.set_instance_template self, instance_template
         | 
| 39 | 
            +
                    end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                    def recreate_instances(instances)
         | 
| 42 | 
            +
                      service.recreate_instances self, instances
         | 
| 43 | 
            +
                    end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    def abandon_instances(instances)
         | 
| 46 | 
            +
                      service.abandon_instances self, instances
         | 
| 47 | 
            +
                    end
         | 
| 48 | 
            +
                  end
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
            end
         | 
| @@ -0,0 +1,42 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class InstanceGroupManagers < Fog::Collection
         | 
| 5 | 
            +
                    model Fog::Compute::Google::InstanceGroupManager
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                    def all(zone: nil, filter: nil, max_results: nil,
         | 
| 8 | 
            +
                            order_by: nil, page_token: nil)
         | 
| 9 | 
            +
                      opts = {
         | 
| 10 | 
            +
                        :filter => filter,
         | 
| 11 | 
            +
                        :max_results => max_results,
         | 
| 12 | 
            +
                        :order_by => order_by,
         | 
| 13 | 
            +
                        :page_token => page_token
         | 
| 14 | 
            +
                      }
         | 
| 15 | 
            +
                      data = []
         | 
| 16 | 
            +
                      if zone
         | 
| 17 | 
            +
                        data += service.list_instance_group_managers(zone, opts).items || []
         | 
| 18 | 
            +
                      else
         | 
| 19 | 
            +
                        service.list_aggregated_instance_group_managers(opts).items.each_value do |group|
         | 
| 20 | 
            +
                          data.concat(group.instance_group_managers) if group.instance_group_managers
         | 
| 21 | 
            +
                        end
         | 
| 22 | 
            +
                      end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                      load(data.map(&:to_h))
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    def get(identity, zone = nil)
         | 
| 28 | 
            +
                      if zone
         | 
| 29 | 
            +
                        if instance_group_manager = service.get_instance_group_manager(identity, zone)
         | 
| 30 | 
            +
                          new(instance_group_manager.to_h)
         | 
| 31 | 
            +
                        end
         | 
| 32 | 
            +
                      else
         | 
| 33 | 
            +
                        all(:filter => "name eq .*#{identity}").first
         | 
| 34 | 
            +
                      end
         | 
| 35 | 
            +
                    rescue ::Google::Apis::ClientError => e
         | 
| 36 | 
            +
                      raise e unless e.status_code == 404
         | 
| 37 | 
            +
                      nil
         | 
| 38 | 
            +
                    end
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
            end
         | 
| @@ -0,0 +1,47 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class InstanceTemplate < Fog::Model
         | 
| 5 | 
            +
                    identity :name
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                    attribute :kind
         | 
| 8 | 
            +
                    attribute :self_link, :aliases => "selfLink"
         | 
| 9 | 
            +
                    attribute :description
         | 
| 10 | 
            +
                    # Properties is a hash describing the templates
         | 
| 11 | 
            +
                    # A minimal example is
         | 
| 12 | 
            +
                    # :properties => {
         | 
| 13 | 
            +
                    #   :machine_type => TEST_MACHINE_TYPE,
         | 
| 14 | 
            +
                    #   :disks => [{
         | 
| 15 | 
            +
                    #     :boot => true,
         | 
| 16 | 
            +
                    #     :initialize_params => {
         | 
| 17 | 
            +
                    #       :source_image => "projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20180522"}
         | 
| 18 | 
            +
                    #     }],
         | 
| 19 | 
            +
                    #     :network_interfaces => [{
         | 
| 20 | 
            +
                    #       :network => "global/networks/default"
         | 
| 21 | 
            +
                    #     }]
         | 
| 22 | 
            +
                    #   }
         | 
| 23 | 
            +
                    # }
         | 
| 24 | 
            +
                    # @see https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert
         | 
| 25 | 
            +
                    attribute :properties
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    def save
         | 
| 28 | 
            +
                      requires :name
         | 
| 29 | 
            +
                      requires :properties
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                      data = service.insert_instance_template(name, properties, description)
         | 
| 32 | 
            +
                      operation = Fog::Compute::Google::Operations.new(:service => service).get(data.name)
         | 
| 33 | 
            +
                      operation.wait_for { !pending? }
         | 
| 34 | 
            +
                      reload
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                    def destroy(async = true)
         | 
| 38 | 
            +
                      requires :name
         | 
| 39 | 
            +
                      data = service.delete_instance_template(name)
         | 
| 40 | 
            +
                      operation = Fog::Compute::Google::Operations.new(:service => service).get(data.name)
         | 
| 41 | 
            +
                      operation.wait_for { ready? } unless async
         | 
| 42 | 
            +
                      operation
         | 
| 43 | 
            +
                    end
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class InstanceTemplates < Fog::Collection
         | 
| 5 | 
            +
                    model Fog::Compute::Google::InstanceTemplate
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                    def all
         | 
| 8 | 
            +
                      data = service.list_instance_templates.items || []
         | 
| 9 | 
            +
                      load(data.map(&:to_h))
         | 
| 10 | 
            +
                    end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                    def get(identity)
         | 
| 13 | 
            +
                      if instance_template = service.get_instance_template(identity)
         | 
| 14 | 
            +
                        new(instance_template.to_h)
         | 
| 15 | 
            +
                      end
         | 
| 16 | 
            +
                    rescue ::Google::Apis::ClientError => e
         | 
| 17 | 
            +
                      raise e unless e.status_code == 404
         | 
| 18 | 
            +
                      nil
         | 
| 19 | 
            +
                    end
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def abandon_instances(_instance_group_manager, _instances)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def abandon_instances(instance_group_manager, instances)
         | 
| 12 | 
            +
                      request = ::Google::Apis::ComputeV1::InstanceGroupManagersAbandonInstancesRequest.new(
         | 
| 13 | 
            +
                        :instances => instances.map{ |i| i.class == String ? i : i.self_link }
         | 
| 14 | 
            +
                      )
         | 
| 15 | 
            +
                      if instance_group_manager.zone
         | 
| 16 | 
            +
                        zone = instance_group_manager.zone.split("/")[-1]
         | 
| 17 | 
            +
                        @compute.abandon_instance_group_manager_instances(@project, zone, instance_group_manager.name, request)
         | 
| 18 | 
            +
                      else
         | 
| 19 | 
            +
                        region = instance_group_manager.region.split("/")[-1]
         | 
| 20 | 
            +
                        @compute.abandon_region_instance_group_manager_instances(@project, region, instance_group_manager.name, request)
         | 
| 21 | 
            +
                      end
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
            end
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def delete_instance_group_manager(_name, _zone)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def delete_instance_group_manager(name, zone)
         | 
| 12 | 
            +
                      @compute.delete_instance_group_manager(@project, zone, name)
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def delete_instance_template(_name)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def delete_instance_template(name)
         | 
| 12 | 
            +
                      @compute.delete_instance_template(@project, name)
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def get_instance_group_manager(_name, _zone)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def get_instance_group_manager(name, zone)
         | 
| 12 | 
            +
                      @compute.get_instance_group_manager(@project, zone, name)
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def get_instance_template(_name)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def get_instance_template(name)
         | 
| 12 | 
            +
                      @compute.get_instance_template(@project, name)
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def insert_instance_group_manager(_name, _zone, _instance_template, _base_instance_name,
         | 
| 6 | 
            +
                                                      _target_size, _target_pools, _named_ports, _description)
         | 
| 7 | 
            +
                      Fog::Mock.not_implemented
         | 
| 8 | 
            +
                    end
         | 
| 9 | 
            +
                  end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  class Real
         | 
| 12 | 
            +
                    def insert_instance_group_manager(name, zone, instance_template, base_instance_name,
         | 
| 13 | 
            +
                                                      target_size, target_pools, named_ports, description)
         | 
| 14 | 
            +
                      instance_group_manager = ::Google::Apis::ComputeV1::InstanceGroupManager.new(
         | 
| 15 | 
            +
                        :description => description,
         | 
| 16 | 
            +
                        :name => name,
         | 
| 17 | 
            +
                        :instance_template => instance_template.self_link,
         | 
| 18 | 
            +
                        :base_instance_name => base_instance_name,
         | 
| 19 | 
            +
                        :target_size => target_size,
         | 
| 20 | 
            +
                        :named_ports => named_ports || [],
         | 
| 21 | 
            +
                        :target_pools => target_pools || [],
         | 
| 22 | 
            +
                      )
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                      @compute.insert_instance_group_manager(@project, zone, instance_group_manager)
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
            end
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def insert_instance_template(_name, _properties, _description)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    ##
         | 
| 12 | 
            +
                    # Create a new template.
         | 
| 13 | 
            +
                    #
         | 
| 14 | 
            +
                    # @param name [String]
         | 
| 15 | 
            +
                    #   Name to assign to the created template. Must be unique.
         | 
| 16 | 
            +
                    # @param descrption [String]
         | 
| 17 | 
            +
                    #   Optional description of the template
         | 
| 18 | 
            +
                    # @param properties [Hash]
         | 
| 19 | 
            +
                    #   Template attributes. You can use any of the options documented at
         | 
| 20 | 
            +
                    #   https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert
         | 
| 21 | 
            +
                    # @see https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert
         | 
| 22 | 
            +
                    # @return [::Google::Apis::ComputeV1::Operation]
         | 
| 23 | 
            +
                    #   response object that represents the insertion operation.
         | 
| 24 | 
            +
                    def insert_instance_template(name, properties, description)
         | 
| 25 | 
            +
                      instance_template = ::Google::Apis::ComputeV1::InstanceTemplate.new(
         | 
| 26 | 
            +
                        :description => description,
         | 
| 27 | 
            +
                        :name => name,
         | 
| 28 | 
            +
                        :properties => properties,
         | 
| 29 | 
            +
                      )
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                      @compute.insert_instance_template(@project, instance_template)
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def list_aggregated_instance_group_managers(_opts = {})
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def list_aggregated_instance_group_managers(filter: nil, max_results: nil,
         | 
| 12 | 
            +
                                                                order_by: nil, page_token: nil)
         | 
| 13 | 
            +
                      @compute.list_aggregated_instance_group_managers(
         | 
| 14 | 
            +
                        @project,
         | 
| 15 | 
            +
                        :filter => filter,
         | 
| 16 | 
            +
                        :max_results => max_results,
         | 
| 17 | 
            +
                        :order_by => order_by,
         | 
| 18 | 
            +
                        :page_token => page_token
         | 
| 19 | 
            +
                      )
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def list_instance_group_managers(_zone, _opts = {})
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def list_instance_group_managers(zone, filter: nil, max_results: nil,
         | 
| 12 | 
            +
                                                     order_by: nil, page_token: nil)
         | 
| 13 | 
            +
                      @compute.list_instance_group_managers(
         | 
| 14 | 
            +
                        @project, zone, :filter => filter, :max_results => max_results,
         | 
| 15 | 
            +
                                        :order_by => order_by, :page_token => page_token)
         | 
| 16 | 
            +
                    end
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def list_instance_templates
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def list_instance_templates(filter: nil, max_results: nil,
         | 
| 12 | 
            +
                                                order_by: nil, page_token: nil)
         | 
| 13 | 
            +
                      @compute.list_instance_templates(
         | 
| 14 | 
            +
                        @project,
         | 
| 15 | 
            +
                        :filter => filter,
         | 
| 16 | 
            +
                        :max_results => max_results,
         | 
| 17 | 
            +
                        :order_by => order_by,
         | 
| 18 | 
            +
                        :page_token => page_token
         | 
| 19 | 
            +
                      )
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def recreate_instances(_instance_group_manager, _instances)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def recreate_instances(instance_group_manager, instances)
         | 
| 12 | 
            +
                      request = ::Google::Apis::ComputeV1::InstanceGroupManagersAbandonInstancesRequest.new(
         | 
| 13 | 
            +
                        :instances => instances.map{ |i| i.class == String ? i : i.self_link }
         | 
| 14 | 
            +
                      )
         | 
| 15 | 
            +
                      if instance_group_manager.zone
         | 
| 16 | 
            +
                        zone = instance_group_manager.zone.split("/")[-1]
         | 
| 17 | 
            +
                        @compute.recreate_instance_group_manager_instances(@project, zone, instance_group_manager.name, request)
         | 
| 18 | 
            +
                      else
         | 
| 19 | 
            +
                        region = instance_group_manager.region.split("/")[-1]
         | 
| 20 | 
            +
                        @compute.recreate_region_instance_group_manager_instances(@project, region, instance_group_manager.name, request)
         | 
| 21 | 
            +
                      end
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
            end
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            module Fog
         | 
| 2 | 
            +
              module Compute
         | 
| 3 | 
            +
                class Google
         | 
| 4 | 
            +
                  class Mock
         | 
| 5 | 
            +
                    def set_instance_template(_instance_group_manager, _instance_template)
         | 
| 6 | 
            +
                      Fog::Mock.not_implemented
         | 
| 7 | 
            +
                    end
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  class Real
         | 
| 11 | 
            +
                    def set_instance_template(instance_group_manager, instance_template)
         | 
| 12 | 
            +
                      request = ::Google::Apis::ComputeV1::InstanceGroupManagersSetInstanceTemplateRequest.new(
         | 
| 13 | 
            +
                        :instance_template => instance_template.class == String ? instance_template : instance_template.self_link
         | 
| 14 | 
            +
                      )
         | 
| 15 | 
            +
                      if instance_group_manager.zone
         | 
| 16 | 
            +
                        zone = instance_group_manager.zone.split("/")[-1]
         | 
| 17 | 
            +
                        @compute.set_instance_group_manager_instance_template(@project, zone, instance_group_manager.name, request)
         | 
| 18 | 
            +
                      else
         | 
| 19 | 
            +
                        region = instance_group_manager.region.split("/")[-1]
         | 
| 20 | 
            +
                        @compute.set_region_instance_group_manager_instance_template(@project, region, instance_group_manager.name, request)
         | 
| 21 | 
            +
                      end
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
            end
         | 
    
        data/lib/fog/google/version.rb
    CHANGED
    
    
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            require "helpers/integration_test_helper"
         | 
| 2 | 
            +
            require "integration/factories/instance_group_manager_factory"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class TestInstanceGroupManager < FogIntegrationTest
         | 
| 5 | 
            +
              include TestCollection
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def setup
         | 
| 8 | 
            +
                @subject = Fog::Compute[:google].instance_group_managers
         | 
| 9 | 
            +
                @factory = InstanceGroupManagerFactory.new(namespaced_name)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            require "helpers/integration_test_helper"
         | 
| 2 | 
            +
            require "integration/factories/instance_template_factory"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class TestInstanceTemplates < FogIntegrationTest
         | 
| 5 | 
            +
              include TestCollection
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def setup
         | 
| 8 | 
            +
                @subject = Fog::Compute[:google].instance_templates
         | 
| 9 | 
            +
                @factory = InstanceTemplateFactory.new(namespaced_name)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            require "integration/factories/collection_factory"
         | 
| 2 | 
            +
            require "integration/factories/instance_template_factory"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class InstanceGroupManagerFactory < CollectionFactory
         | 
| 5 | 
            +
              def initialize(example)
         | 
| 6 | 
            +
                super(Fog::Compute[:google].instance_group_managers, example)
         | 
| 7 | 
            +
                @instance_template = InstanceTemplateFactory.new(example)
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def cleanup
         | 
| 11 | 
            +
                super
         | 
| 12 | 
            +
                @instance_template.cleanup
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              def params
         | 
| 16 | 
            +
                { :name => resource_name,
         | 
| 17 | 
            +
                  :zone => TEST_ZONE,
         | 
| 18 | 
            +
                  :base_instance_name => resource_name,
         | 
| 19 | 
            +
                  :target_size => 1,
         | 
| 20 | 
            +
                  :instance_template => @instance_template.create }
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            require "integration/factories/collection_factory"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class InstanceTemplateFactory < CollectionFactory
         | 
| 4 | 
            +
              def initialize(example)
         | 
| 5 | 
            +
                super(Fog::Compute[:google].instance_templates, example)
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def params
         | 
| 9 | 
            +
                {
         | 
| 10 | 
            +
                  :name => resource_name,
         | 
| 11 | 
            +
                  # TODO: Properties config is convoluted, needs to be refactored
         | 
| 12 | 
            +
                  :properties => {
         | 
| 13 | 
            +
                      :machine_type => TEST_MACHINE_TYPE,
         | 
| 14 | 
            +
                      :disks => [{
         | 
| 15 | 
            +
                                     :boot => true,
         | 
| 16 | 
            +
                                     :initialize_params =>
         | 
| 17 | 
            +
                                      { :source_image => "projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20180522" }
         | 
| 18 | 
            +
                                 }],
         | 
| 19 | 
            +
                      :network_interfaces => [{ :network => "global/networks/default" }]
         | 
| 20 | 
            +
                  }
         | 
| 21 | 
            +
                }
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: fog-google
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Nat Welch
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2018-06- | 
| 12 | 
            +
            date: 2018-06-16 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: fog-core
         | 
| @@ -316,7 +316,11 @@ files: | |
| 316 316 | 
             
            - lib/fog/compute/google/models/image.rb
         | 
| 317 317 | 
             
            - lib/fog/compute/google/models/images.rb
         | 
| 318 318 | 
             
            - lib/fog/compute/google/models/instance_group.rb
         | 
| 319 | 
            +
            - lib/fog/compute/google/models/instance_group_manager.rb
         | 
| 320 | 
            +
            - lib/fog/compute/google/models/instance_group_managers.rb
         | 
| 319 321 | 
             
            - lib/fog/compute/google/models/instance_groups.rb
         | 
| 322 | 
            +
            - lib/fog/compute/google/models/instance_template.rb
         | 
| 323 | 
            +
            - lib/fog/compute/google/models/instance_templates.rb
         | 
| 320 324 | 
             
            - lib/fog/compute/google/models/machine_type.rb
         | 
| 321 325 | 
             
            - lib/fog/compute/google/models/machine_types.rb
         | 
| 322 326 | 
             
            - lib/fog/compute/google/models/network.rb
         | 
| @@ -350,6 +354,7 @@ files: | |
| 350 354 | 
             
            - lib/fog/compute/google/models/zone.rb
         | 
| 351 355 | 
             
            - lib/fog/compute/google/models/zones.rb
         | 
| 352 356 | 
             
            - lib/fog/compute/google/real.rb
         | 
| 357 | 
            +
            - lib/fog/compute/google/requests/abandon_instances.rb
         | 
| 353 358 | 
             
            - lib/fog/compute/google/requests/add_backend_service_backends.rb
         | 
| 354 359 | 
             
            - lib/fog/compute/google/requests/add_instance_group_instances.rb
         | 
| 355 360 | 
             
            - lib/fog/compute/google/requests/add_server_access_config.rb
         | 
| @@ -368,6 +373,8 @@ files: | |
| 368 373 | 
             
            - lib/fog/compute/google/requests/delete_http_health_check.rb
         | 
| 369 374 | 
             
            - lib/fog/compute/google/requests/delete_image.rb
         | 
| 370 375 | 
             
            - lib/fog/compute/google/requests/delete_instance_group.rb
         | 
| 376 | 
            +
            - lib/fog/compute/google/requests/delete_instance_group_manager.rb
         | 
| 377 | 
            +
            - lib/fog/compute/google/requests/delete_instance_template.rb
         | 
| 371 378 | 
             
            - lib/fog/compute/google/requests/delete_network.rb
         | 
| 372 379 | 
             
            - lib/fog/compute/google/requests/delete_region_operation.rb
         | 
| 373 380 | 
             
            - lib/fog/compute/google/requests/delete_route.rb
         | 
| @@ -399,6 +406,8 @@ files: | |
| 399 406 | 
             
            - lib/fog/compute/google/requests/get_image.rb
         | 
| 400 407 | 
             
            - lib/fog/compute/google/requests/get_image_from_family.rb
         | 
| 401 408 | 
             
            - lib/fog/compute/google/requests/get_instance_group.rb
         | 
| 409 | 
            +
            - lib/fog/compute/google/requests/get_instance_group_manager.rb
         | 
| 410 | 
            +
            - lib/fog/compute/google/requests/get_instance_template.rb
         | 
| 402 411 | 
             
            - lib/fog/compute/google/requests/get_machine_type.rb
         | 
| 403 412 | 
             
            - lib/fog/compute/google/requests/get_network.rb
         | 
| 404 413 | 
             
            - lib/fog/compute/google/requests/get_project.rb
         | 
| @@ -428,6 +437,8 @@ files: | |
| 428 437 | 
             
            - lib/fog/compute/google/requests/insert_http_health_check.rb
         | 
| 429 438 | 
             
            - lib/fog/compute/google/requests/insert_image.rb
         | 
| 430 439 | 
             
            - lib/fog/compute/google/requests/insert_instance_group.rb
         | 
| 440 | 
            +
            - lib/fog/compute/google/requests/insert_instance_group_manager.rb
         | 
| 441 | 
            +
            - lib/fog/compute/google/requests/insert_instance_template.rb
         | 
| 431 442 | 
             
            - lib/fog/compute/google/requests/insert_network.rb
         | 
| 432 443 | 
             
            - lib/fog/compute/google/requests/insert_route.rb
         | 
| 433 444 | 
             
            - lib/fog/compute/google/requests/insert_server.rb
         | 
| @@ -444,6 +455,7 @@ files: | |
| 444 455 | 
             
            - lib/fog/compute/google/requests/list_aggregated_disk_types.rb
         | 
| 445 456 | 
             
            - lib/fog/compute/google/requests/list_aggregated_disks.rb
         | 
| 446 457 | 
             
            - lib/fog/compute/google/requests/list_aggregated_forwarding_rules.rb
         | 
| 458 | 
            +
            - lib/fog/compute/google/requests/list_aggregated_instance_group_managers.rb
         | 
| 447 459 | 
             
            - lib/fog/compute/google/requests/list_aggregated_instance_groups.rb
         | 
| 448 460 | 
             
            - lib/fog/compute/google/requests/list_aggregated_machine_types.rb
         | 
| 449 461 | 
             
            - lib/fog/compute/google/requests/list_aggregated_servers.rb
         | 
| @@ -461,7 +473,9 @@ files: | |
| 461 473 | 
             
            - lib/fog/compute/google/requests/list_http_health_checks.rb
         | 
| 462 474 | 
             
            - lib/fog/compute/google/requests/list_images.rb
         | 
| 463 475 | 
             
            - lib/fog/compute/google/requests/list_instance_group_instances.rb
         | 
| 476 | 
            +
            - lib/fog/compute/google/requests/list_instance_group_managers.rb
         | 
| 464 477 | 
             
            - lib/fog/compute/google/requests/list_instance_groups.rb
         | 
| 478 | 
            +
            - lib/fog/compute/google/requests/list_instance_templates.rb
         | 
| 465 479 | 
             
            - lib/fog/compute/google/requests/list_machine_types.rb
         | 
| 466 480 | 
             
            - lib/fog/compute/google/requests/list_networks.rb
         | 
| 467 481 | 
             
            - lib/fog/compute/google/requests/list_region_operations.rb
         | 
| @@ -480,6 +494,7 @@ files: | |
| 480 494 | 
             
            - lib/fog/compute/google/requests/list_zones.rb
         | 
| 481 495 | 
             
            - lib/fog/compute/google/requests/patch_firewall.rb
         | 
| 482 496 | 
             
            - lib/fog/compute/google/requests/patch_url_map.rb
         | 
| 497 | 
            +
            - lib/fog/compute/google/requests/recreate_instances.rb
         | 
| 483 498 | 
             
            - lib/fog/compute/google/requests/remove_instance_group_instances.rb
         | 
| 484 499 | 
             
            - lib/fog/compute/google/requests/remove_target_pool_health_checks.rb
         | 
| 485 500 | 
             
            - lib/fog/compute/google/requests/remove_target_pool_instance.rb
         | 
| @@ -488,6 +503,7 @@ files: | |
| 488 503 | 
             
            - lib/fog/compute/google/requests/set_common_instance_metadata.rb
         | 
| 489 504 | 
             
            - lib/fog/compute/google/requests/set_forwarding_rule_target.rb
         | 
| 490 505 | 
             
            - lib/fog/compute/google/requests/set_global_forwarding_rule_target.rb
         | 
| 506 | 
            +
            - lib/fog/compute/google/requests/set_instance_template.rb
         | 
| 491 507 | 
             
            - lib/fog/compute/google/requests/set_server_disk_auto_delete.rb
         | 
| 492 508 | 
             
            - lib/fog/compute/google/requests/set_server_metadata.rb
         | 
| 493 509 | 
             
            - lib/fog/compute/google/requests/set_server_scheduling.rb
         | 
| @@ -694,6 +710,8 @@ files: | |
| 694 710 | 
             
            - test/integration/compute/test_global_forwarding_rules.rb
         | 
| 695 711 | 
             
            - test/integration/compute/test_http_health_checks.rb
         | 
| 696 712 | 
             
            - test/integration/compute/test_images.rb
         | 
| 713 | 
            +
            - test/integration/compute/test_instance_group_managers.rb
         | 
| 714 | 
            +
            - test/integration/compute/test_instance_templates.rb
         | 
| 697 715 | 
             
            - test/integration/compute/test_regions.rb
         | 
| 698 716 | 
             
            - test/integration/compute/test_servers.rb
         | 
| 699 717 | 
             
            - test/integration/compute/test_snapshots.rb
         | 
| @@ -708,6 +726,8 @@ files: | |
| 708 726 | 
             
            - test/integration/factories/global_forwarding_rules_factory.rb
         | 
| 709 727 | 
             
            - test/integration/factories/http_health_checks_factory.rb
         | 
| 710 728 | 
             
            - test/integration/factories/images_factory.rb
         | 
| 729 | 
            +
            - test/integration/factories/instance_group_manager_factory.rb
         | 
| 730 | 
            +
            - test/integration/factories/instance_template_factory.rb
         | 
| 711 731 | 
             
            - test/integration/factories/servers_factory.rb
         | 
| 712 732 | 
             
            - test/integration/factories/target_http_proxies_factory.rb
         | 
| 713 733 | 
             
            - test/integration/factories/target_instances_factory.rb
         | 
| @@ -774,6 +794,8 @@ test_files: | |
| 774 794 | 
             
            - test/integration/compute/test_global_forwarding_rules.rb
         | 
| 775 795 | 
             
            - test/integration/compute/test_http_health_checks.rb
         | 
| 776 796 | 
             
            - test/integration/compute/test_images.rb
         | 
| 797 | 
            +
            - test/integration/compute/test_instance_group_managers.rb
         | 
| 798 | 
            +
            - test/integration/compute/test_instance_templates.rb
         | 
| 777 799 | 
             
            - test/integration/compute/test_regions.rb
         | 
| 778 800 | 
             
            - test/integration/compute/test_servers.rb
         | 
| 779 801 | 
             
            - test/integration/compute/test_snapshots.rb
         | 
| @@ -788,6 +810,8 @@ test_files: | |
| 788 810 | 
             
            - test/integration/factories/global_forwarding_rules_factory.rb
         | 
| 789 811 | 
             
            - test/integration/factories/http_health_checks_factory.rb
         | 
| 790 812 | 
             
            - test/integration/factories/images_factory.rb
         | 
| 813 | 
            +
            - test/integration/factories/instance_group_manager_factory.rb
         | 
| 814 | 
            +
            - test/integration/factories/instance_template_factory.rb
         | 
| 791 815 | 
             
            - test/integration/factories/servers_factory.rb
         | 
| 792 816 | 
             
            - test/integration/factories/target_http_proxies_factory.rb
         | 
| 793 817 | 
             
            - test/integration/factories/target_instances_factory.rb
         |