Class: Scaltainer::DockerService

Inherits:
ReplicaSetBase show all
Defined in:
lib/scaltainer/orchestrators/swarm.rb

Instance Attribute Summary

Attributes inherited from ReplicaSetBase

#id, #name, #namespace, #type

Instance Method Summary collapse

Constructor Details

#initialize(service_name, namespace) ⇒ DockerService

Returns a new instance of DockerService.



3
4
5
6
7
8
9
10
# File 'lib/scaltainer/orchestrators/swarm.rb', line 3

def initialize(service_name, namespace)
  # set logger?
  full_name = namespace ? "#{namespace}_#{service_name}" : service_name
  @service = Docker::Service.all(filters: {name: [full_name]}.to_json)[0]
  raise "Docker Service not found: #{full_name}" unless @service
  @id = @service.id
  super(service_name, 'service', namespace)
end

Instance Method Details

#get_replicasObject



12
13
14
15
16
# File 'lib/scaltainer/orchestrators/swarm.rb', line 12

def get_replicas
  replicated = @service.info["Spec"]["Mode"]["Replicated"]
  raise ConfigurationError.new "Cannot replicate a global service: #{@name}" unless replicated
  replicated["Replicas"]
end

#set_replicas(replicas) ⇒ Object



18
19
20
# File 'lib/scaltainer/orchestrators/swarm.rb', line 18

def set_replicas(replicas)
  @service.scale replicas
end