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) ⇒ Service

Returns a new instance of Service.



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

def initialize(stack_name, service_name)
  @stack_name = stack_name
  @name = service_name
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



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

def name
  @name
end

Class Method Details

.service_by_resource_uri(resource_uri) ⇒ Object



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

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



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

def containers
  get_service.containers
end

#deploy(version) ⇒ Object



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

def deploy(version)
  update_image(version)
  redeploy
end

#linked_servicesObject



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

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


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

def links
  get_service.linked_to_service
end

#resource_uriObject



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

def resource_uri
  get_service.resource_uri
end


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

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



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

def state
  get_service.state
end

#stopObject



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

def stop
  docker_cloud_api.services.stop(uuid)
end

#uuidObject



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

def uuid
  get_service.uuid
end