class KumoDockerCloud::Service
Attributes
name[R]
stack_name[R]
Public Class Methods
new(stack_name, service_name, docker_cloud_api = DockerCloudApi.new)
click to toggle source
# 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
service_by_resource_uri(resource_uri)
click to toggle source
# 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
Public Instance Methods
containers()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 54 def containers get_service.containers end
deploy(version)
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 19 def deploy(version) update_image(version) redeploy end
linked_services()
click to toggle source
# 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
links()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 28 def links get_service.linked_to_service end
resource_uri()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 50 def resource_uri get_service.resource_uri end
set_link(service_to_link, link_internal_name)
click to toggle source
# 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
state()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 32 def state get_service.state end
stop()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 46 def stop docker_cloud_api.services.stop(uuid) end
uuid()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 58 def uuid get_service.uuid end
Private Instance Methods
docker_cloud_api()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 77 def docker_cloud_api @docker_cloud_api end
get_service()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 81 def get_service docker_cloud_api.service_by_stack_and_service_name(stack_name, name) end
image_name()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 85 def image_name get_service.image_name.split(':').first end
redeploy()
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 71 def redeploy docker_cloud_api.services.redeploy(uuid) rescue RestClient::InternalServerError raise KumoDockerCloud::ServiceDeployError.new("Something went wrong during service update on Docker Cloud's end") end
update_image(version)
click to toggle source
# File lib/kumo_dockercloud/service.rb, line 65 def update_image(version) docker_cloud_api.services.update(uuid, image: "#{image_name}:#{version}") rescue RestClient::InternalServerError raise KumoDockerCloud::ServiceDeployError.new("Something went wrong during service update on Docker Cloud's end") end