Sha256: dd9fc04bdc9b4211d930bf6624865ef44dea2b838bdfc8d5959bf7403f8bc28e

Contents?: true

Size: 1.56 KB

Versions: 8

Compression:

Stored size: 1.56 KB

Contents

module Fog
  module Compute
    class AzureRM
      # This class is giving implementation of all/list, and get
      # for Server.
      class Servers < Fog::Collection
        attribute :resource_group
        model Fog::Compute::AzureRM::Server

        def all
          requires :resource_group
          virtual_machines = []
          service.list_virtual_machines(resource_group).each do |vm|
            virtual_machines << Fog::Compute::AzureRM::Server.parse(vm)
          end
          load(virtual_machines)
        end

        def create_async(attributes = {})
          server = new(attributes)
          async_response = server.save(true)
          Fog::AzureRM::AsyncResponse.new(server, async_response)
        end

        def get(resource_group_name, virtual_machine_name, async = false)
          response = service.get_virtual_machine(resource_group_name, virtual_machine_name, async)
          virtual_machine = Fog::Compute::AzureRM::Server.new(service: service)
          if async
            Fog::AzureRM::AsyncResponse.new(virtual_machine, response)
          else
            virtual_machine.merge_attributes(Fog::Compute::AzureRM::Server.parse(response))
          end
        end

        def check_vm_exists(resource_group, name, async = false)
          response = service.check_vm_exists(resource_group, name, async)
          if async
            server = Fog::Compute::AzureRM::Server.new(service: service)
            Fog::AzureRM::AsyncResponse.new(server, response)
          else
            response
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
fog-azure-rm-0.3.5 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-0.3.4 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-temp-0.0.4 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-temp-0.0.3 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-0.3.3 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-temp-0.0.2 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-temp-0.0.1 lib/fog/azurerm/models/compute/servers.rb
fog-azure-rm-0.3.2 lib/fog/azurerm/models/compute/servers.rb