Class: KumoDockerCloud::DockerCloudApi

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/kumo_dockercloud/docker_cloud_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ DockerCloudApi

Returns a new instance of DockerCloudApi.



10
11
12
13
14
15
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 10

def initialize(options = {})
  options[:username] ||= ENV['DOCKERCLOUD_USER']
  options[:api_key] ||= ENV['DOCKERCLOUD_APIKEY']

  @client = options[:client] || ::DockerCloud::Client.new(options.fetch(:username), options.fetch(:api_key))
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



8
9
10
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 8

def client
  @client
end

Instance Method Details

#containers_by_stack_name(stack_name) ⇒ Object



32
33
34
35
36
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 32

def containers_by_stack_name(stack_name)
  services_by_stack_name(stack_name).collect do |service|
    service.containers
  end.flatten
end

#service_by_resource_uri(resource_uri) ⇒ Object



38
39
40
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 38

def service_by_resource_uri(resource_uri)
  @client.services.get_from_uri(resource_uri)
end

#service_by_stack_and_service_name(stack_name, service_name) ⇒ Object



27
28
29
30
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 27

def service_by_stack_and_service_name(stack_name, service_name)
  services = services_by_stack_name(stack_name)
  services.find { |s| s.name == service_name }
end

#services_by_stack_name(stack_name) ⇒ Object



21
22
23
24
25
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 21

def services_by_stack_name(stack_name)
  stack = stack_by_name(stack_name)
  return [] unless stack
  stack.services
end

#stack_by_name(name) ⇒ Object



17
18
19
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 17

def stack_by_name(name)
  @client.stacks.all.find { |s| s.name == name }
end

#stack_by_resource_uri(resource_uri) ⇒ Object



42
43
44
# File 'lib/kumo_dockercloud/docker_cloud_api.rb', line 42

def stack_by_resource_uri(resource_uri)
  @client.stacks.get_from_uri(resource_uri)
end