Sha256: d693d4e0ab634d268b9b36f136666b8d708322982d9e34b9594a999840ede4a3

Contents?: true

Size: 1.69 KB

Versions: 15

Compression:

Stored size: 1.69 KB

Contents

# All examples presume that you have a ~/.fog credentials file set up.
# More info on it can be found here: http://fog.io/about/getting_started.html

require "bundler"
Bundler.require(:default, :development)
# Uncomment this if you want to make real requests to GCE (you _will_ be billed!)
# WebMock.disable!

def test
  connection = Fog::Compute.new(:provider => "Google")

  disk = connection.disks.create(
    :name => "fog-smoke-test-#{Time.now.to_i}",
    :size_gb => 10,
    :zone_name => "us-central1-f",
    :source_image => "debian-8-jessie-v20161215"
  )

  disk.wait_for { disk.ready? }

  server = connection.servers.create(
    :name => "fog-smoke-test-#{Time.now.to_i}",
    :disks => [disk],
    :machine_type => "n1-standard-1",
    :private_key_path => File.expand_path("~/.ssh/id_rsa"),
    :public_key_path => File.expand_path("~/.ssh/id_rsa.pub"),
    :zone_name => "us-central1-f",
    :username => ENV["USER"],
    :tags => ["fog"],
    :service_accounts => %w(sql-admin bigquery https://www.googleapis.com/auth/compute)
  )

  # Wait_for routine copied here to show errors, if necessary.
  duration = 0
  interval = 5
  timeout = 600
  start = Time.now
  until server.sshable? || duration > timeout
    # puts duration
    # puts " ----- "

    server.reload

    # p "ready?: #{server.ready?}"
    # p "public_ip_address: #{server.public_ip_address.inspect}"
    # p "public_key: #{server.public_key.inspect}"
    # p "metadata: #{server.metadata.inspect}"
    # p "sshable?: #{server.sshable?}"

    sleep(interval.to_f)
    duration = Time.now - start
  end

  raise "Could not bootstrap sshable server." unless server.ssh("whoami")
  raise "Could not delete server." unless server.destroy
end

test

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
fog-google-1.3.3 examples/create_instance.rb
fog-google-1.3.2 examples/create_instance.rb
fog-google-1.3.1 examples/create_instance.rb
fog-google-1.3.0 examples/create_instance.rb
fog-google-1.2.2 examples/create_instance.rb
fog-google-1.2.1 examples/create_instance.rb
fog-google-1.2.0 examples/create_instance.rb
fog-google-1.1.0 examples/create_instance.rb
fog-google-1.0.1 examples/create_instance.rb
fog-google-1.0.0 examples/create_instance.rb
fog-google-0.6.0 examples/create_instance.rb
fog-google-0.5.5 examples/create_instance.rb
fog-google-0.5.4 examples/create_instance.rb
fog-google-0.5.3 examples/create_instance.rb
fog-google-0.5.2 examples/create_instance.rb