Class: TrainPlugins::Digitalocean::Connection

Inherits:
Train::Plugins::Transport::BaseConnection
  • Object
show all
Includes:
Platform
Defined in:
lib/train-digitalocean/connection.rb

Instance Method Summary collapse

Methods included from Platform

#platform

Constructor Details

#initialize(options) ⇒ Connection

Returns a new instance of Connection.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/train-digitalocean/connection.rb', line 9

def initialize(options)
  msg = 'You need to set the Digitalocean access token via \'export DIGITALOCEAN_TOKEN=.\''
  if options.nil? || options[:access_token].nil?
    raise Train::TransportError, msg
  end

  super(options)

  # check account to verify authentication
  begin
    @uuid = droplet_client..info.uuid
  rescue DropletKit::Error
    raise Train::TransportError, msg
  end
end

Instance Method Details

#droplet_clientObject



33
34
35
36
37
# File 'lib/train-digitalocean/connection.rb', line 33

def droplet_client
  klass = ::DropletKit::Client
  return klass.new(access_token: @options[:access_token]) unless cache_enabled?(:api_call)
  @cache[:api_call][klass.to_s.to_sym] ||= klass.new(access_token: @options[:access_token])
end

#local?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/train-digitalocean/connection.rb', line 25

def local?
  false
end

#unique_identifierObject



39
40
41
# File 'lib/train-digitalocean/connection.rb', line 39

def unique_identifier
  @uuid
end

#uriObject



29
30
31
# File 'lib/train-digitalocean/connection.rb', line 29

def uri
  "digitalocean://"
end