class Algo::Docker::Service

Constants

Spec

Attributes

spec[R]

Public Class Methods

all(conn=Docker.connection) click to toggle source
# File lib/algo/docker/service.rb, line 79
def self.all(conn=Docker.connection)
  hashes = conn.get('/services')
  hashes.map{ |h| new(conn, h) }
end
create(init_spec, conn=Docker.connection) click to toggle source
# File lib/algo/docker/service.rb, line 65
def self.create(init_spec, conn=Docker.connection)
  new(conn, conn.post('/services/create', nil, body: JSON.generate(init_spec)))
end
find(id_or_name, conn=Docker.connection) click to toggle source
# File lib/algo/docker/service.rb, line 61
def self.find(id_or_name, conn=Docker.connection)
  new(conn, conn.get("/services/#{id_or_name}"))
end
new(conn, hash) click to toggle source
Calls superclass method Algo::Docker::Base::new
# File lib/algo/docker/service.rb, line 12
def initialize conn, hash
  super(conn, hash)
  @spec = nil
end
remove(id_or_name, conn=Docker.connection) click to toggle source
# File lib/algo/docker/service.rb, line 69
def self.remove(id_or_name, conn=Docker.connection)
  conn.delete("/services/#{id_or_name}")
end
update(id_or_name, version, next_spec, conn=Docker.connection) click to toggle source
# File lib/algo/docker/service.rb, line 73
def self.update(id_or_name, version, next_spec, conn=Docker.connection)
  conn.post("/services/#{id_or_name}/update",
            { version: version },
            body: JSON.generate(next_spec))
end

Public Instance Methods

info() click to toggle source
# File lib/algo/docker/service.rb, line 21
def info
  @info = Docker::Service.find(@info["Id"]).info if @info["Spec"].blank?
  @info
end
inspect() click to toggle source
# File lib/algo/docker/service.rb, line 48
def inspect
  "<Algo::Docker::Service name=#{spec.name}>"
end
name() click to toggle source
# File lib/algo/docker/service.rb, line 17
def name
  info["Spec"]["Name"]
end
raw_spec() click to toggle source
# File lib/algo/docker/service.rb, line 44
def raw_spec
  info["Spec"]
end
remove() click to toggle source
# File lib/algo/docker/service.rb, line 52
def remove
  self.class.remove info['Id']
end
update(next_spec) click to toggle source
# File lib/algo/docker/service.rb, line 56
def update next_spec
  self.class.update info['Id'], info['Version']['Index'], next_spec
  @info = self.class.find(@info["Id"]).info
end