Sha256: 145c6f101db817ea33a16c58e5015f24b8aeb927c6d91c2b2ca7fb6b8598575c

Contents?: true

Size: 953 Bytes

Versions: 14

Compression:

Stored size: 953 Bytes

Contents

require "bosh-bootstrap/network_providers"
require "bosh-bootstrap/network_providers/dummy"

class Bosh::Bootstrap::Network

  attr_reader :provider_name
  attr_reader :cyoi_provider_client
  attr_reader :settings

  def initialize(provider_name, cyoi_provider_client, settings)
    @provider_name = provider_name
    @cyoi_provider_client = cyoi_provider_client
    @settings = settings
  end

  def deploy
    network_provider.perform(settings)
  end

  # Attempt to load and instantiate a NetworkProviders class
  # Else return NetworkProviders::Dummy which does nothing
  def network_provider
    @network_provider ||= begin
      begin
        require "bosh-bootstrap/network_providers/#{provider_name}"
        klass = Bosh::Bootstrap::NetworkProviders.provider_class(provider_name)
      rescue LoadError
        klass = Bosh::Bootstrap::NetworkProviders.provider_class("dummy")
      end
      klass.new(cyoi_provider_client)
    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
bosh-bootstrap-0.18.1 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.18.0 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.17.1 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.17.0 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.16.2 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.16.1 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.16.0 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.15.0 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.14.5 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.14.4 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.14.3 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.14.2 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.14.1 lib/bosh-bootstrap/network.rb
bosh-bootstrap-0.14.0 lib/bosh-bootstrap/network.rb