Class: CFoundry::V2::Base

Inherits:
BaseClient show all
Defined in:
lib/cfoundry/v2/base.rb

Constant Summary

Constants inherited from BaseClient

BaseClient::LOG_LENGTH

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BaseClient

#request_path, #token_data

Constructor Details

#initialize(target = "https://api.cloudfoundry.com", token = nil) ⇒ Base

Returns a new instance of Base.



13
14
15
16
17
# File 'lib/cfoundry/v2/base.rb', line 13

def initialize(
    target = "https://api.cloudfoundry.com",
    token = nil)
  super
end

Instance Attribute Details

#backtraceObject

Returns the value of attribute backtrace.



11
12
13
# File 'lib/cfoundry/v2/base.rb', line 11

def backtrace
  @backtrace
end

#logObject

Returns the value of attribute log.



11
12
13
# File 'lib/cfoundry/v2/base.rb', line 11

def log
  @log
end

#proxyObject

Returns the value of attribute proxy.



11
12
13
# File 'lib/cfoundry/v2/base.rb', line 11

def proxy
  @proxy
end

#targetObject

Returns the value of attribute target.



11
12
13
# File 'lib/cfoundry/v2/base.rb', line 11

def target
  @target
end

#tokenObject

Returns the value of attribute token.



11
12
13
# File 'lib/cfoundry/v2/base.rb', line 11

def token
  @token
end

#traceObject

Returns the value of attribute trace.



11
12
13
# File 'lib/cfoundry/v2/base.rb', line 11

def trace
  @trace
end

Instance Method Details

#all_pages(paginated) ⇒ Object



129
130
131
132
133
134
135
136
137
138
# File 'lib/cfoundry/v2/base.rb', line 129

def all_pages(paginated)
  payload = paginated[:resources]

  while next_page = paginated[:next_url]
    paginated = request_path(:get, next_page, nil => :json)
    payload += paginated[:resources]
  end

  payload
end

#crashes(guid) ⇒ Object



107
108
109
# File 'lib/cfoundry/v2/base.rb', line 107

def crashes(guid)
  get("v2", "apps", guid, "crashes", nil => :json)
end

#files(guid, instance, *path) ⇒ Object Also known as: file



98
99
100
# File 'lib/cfoundry/v2/base.rb', line 98

def files(guid, instance, *path)
  get("v2", "apps", guid, "instances", instance, "files", *path)
end

#infoObject

Cloud metadata



37
38
39
# File 'lib/cfoundry/v2/base.rb', line 37

def info
  get("info", nil => :json)
end

#instances(guid) ⇒ Object



103
104
105
# File 'lib/cfoundry/v2/base.rb', line 103

def instances(guid)
  get("v2", "apps", guid, "instances", nil => :json)
end

#params_from(args) ⇒ Object



116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/cfoundry/v2/base.rb', line 116

def params_from(args)
  depth, query = args
  depth ||= 1

  params = { :"inline-relations-depth" => depth }

  if query
    params[:q] = "#{query.keys.first}:#{query.values.first}"
  end

  params
end

#resource_match(fingerprints) ⇒ Object



77
78
79
# File 'lib/cfoundry/v2/base.rb', line 77

def resource_match(fingerprints)
  put(fingerprints, "v2", "resource_match", :json => :json)
end

#stats(guid) ⇒ Object



111
112
113
# File 'lib/cfoundry/v2/base.rb', line 111

def stats(guid)
  get("v2", "apps", guid, "stats", nil => :json)
end

#uaaObject

The UAA used for this client.

‘false` if no UAA (legacy)



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/cfoundry/v2/base.rb', line 23

def uaa
  return @uaa unless @uaa.nil?

  endpoint = info[:authorization_endpoint]
  return @uaa = false unless endpoint

  @uaa = CFoundry::UAAClient.new(endpoint)
  @uaa.trace = @trace
  @uaa.token = @token
  @uaa
end

#upload_app(guid, zipfile, resources = []) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/cfoundry/v2/base.rb', line 81

def upload_app(guid, zipfile, resources = [])
  payload = {
    :resources => MultiJson.dump(resources),
    :multipart => true,
    :application =>
      if zipfile.is_a? File
        zipfile
      elsif zipfile.is_a? String
        File.new(zipfile, "rb")
      end
  }

  put(payload, "v2", "apps", guid, "bits")
rescue RestClient::ServerBrokeConnection
  retry
end