Class: DeployTool::Target::CloudFoundry

Inherits:
DeployTool::Target show all
Defined in:
lib/deploytool/target/cloudfoundry.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DeployTool::Target

find, from_config, get_json_resource

Constructor Details

#initialize(options) ⇒ CloudFoundry

Returns a new instance of CloudFoundry.



23
24
25
# File 'lib/deploytool/target/cloudfoundry.rb', line 23

def initialize(options)
  # FIXME
end

Class Method Details

.create(target_spec) ⇒ Object



27
28
29
30
# File 'lib/deploytool/target/cloudfoundry.rb', line 27

def self.create(target_spec)
  app_name, api_server = parse_target_spec(target_spec)
  CloudFoundry.new('api_server' => api_server, 'app_name' => app_name)
end

.matches?(target_spec) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/deploytool/target/cloudfoundry.rb', line 19

def self.matches?(target_spec)
  return true if parse_target_spec(target_spec)
end

.parse_target_spec(target_spec) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/deploytool/target/cloudfoundry.rb', line 2

def self.parse_target_spec(target_spec)
  app_name, server = target_spec.split('.', 2)
  return false if server.nil? or app_name.nil?
  # Test through multiple versions of API server URLs
  [target_spec, 'api.' + target_spec, 'api.' + server].each do |api_server|
    begin
      if get_json_resource("http://%s/info" % api_server)['name'] == "vcap"
        app_name = nil if server.gsub('api.') == api_server.gsub('api.')
        return [app_name, api_server]
      end
    rescue => e
      $logger.debug "Exception: %s\n%s" % [e.message, e.backtrace.join("\n")]
    end
  end
  false
end