class Scaltainer::DockerService

Public Class Methods

new(service_name, namespace) click to toggle source
Calls superclass method Scaltainer::ReplicaSetBase::new
# 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

Public Instance Methods

get_replicas() click to toggle source
# 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) click to toggle source
# File lib/scaltainer/orchestrators/swarm.rb, line 18
def set_replicas(replicas)
  @service.scale replicas
end