Class: KumoDockerCloud::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/kumo_dockercloud/service.rb

Direct Known Subclasses

HaproxyService

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stack_name, service_name, docker_cloud_api = DockerCloudApi.new) ⇒ Service

Returns a new instance of Service.



5
6
7
8
9
# File 'lib/kumo_dockercloud/service.rb', line 5

def initialize(stack_name, service_name, docker_cloud_api = DockerCloudApi.new)
  @stack_name = stack_name
  @name = service_name
  @docker_cloud_api = docker_cloud_api
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/kumo_dockercloud/service.rb', line 3

def name
  @name
end

Class Method Details

.service_by_resource_uri(resource_uri) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/kumo_dockercloud/service.rb', line 11

def self.service_by_resource_uri(resource_uri)
  api = KumoDockerCloud::DockerCloudApi.new
  service = api.service_by_resource_uri(resource_uri)
  stack = api.stacks.get_from_uri(service.info[:stack])

  self.new(stack.name, service.name)
end

Instance Method Details

#containersObject



54
55
56
# File 'lib/kumo_dockercloud/service.rb', line 54

def containers
  get_service.containers
end

#deploy(version) ⇒ Object



19
20
21
22
# File 'lib/kumo_dockercloud/service.rb', line 19

def deploy(version)
  update_image(version)
  redeploy
end

#linked_servicesObject



24
25
26
# File 'lib/kumo_dockercloud/service.rb', line 24

def linked_services
  get_service.linked_to_service.map { |link| KumoDockerCloud::Service.service_by_resource_uri(link[:to_service]) }
end


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

def links
  get_service.linked_to_service
end

#resource_uriObject



50
51
52
# File 'lib/kumo_dockercloud/service.rb', line 50

def resource_uri
  get_service.resource_uri
end


36
37
38
39
40
41
42
43
44
# File 'lib/kumo_dockercloud/service.rb', line 36

def set_link(service_to_link, link_internal_name)
  linked_service = {
    to_service: service_to_link.resource_uri,
    name: link_internal_name,
    from_service: resource_uri
  }

  docker_cloud_api.services.update(uuid, linked_to_service: [linked_service])
end

#stateObject



32
33
34
# File 'lib/kumo_dockercloud/service.rb', line 32

def state
  get_service.state
end

#stopObject



46
47
48
# File 'lib/kumo_dockercloud/service.rb', line 46

def stop
  docker_cloud_api.services.stop(uuid)
end

#uuidObject



58
59
60
# File 'lib/kumo_dockercloud/service.rb', line 58

def uuid
  get_service.uuid
end