Class: Capricorn::Server

Inherits:
Daemon::Base show all
Includes:
Daemon, Security, DRbUndumped
Defined in:
lib/capricorn/server.rb,
lib/capricorn/server/proxy.rb,
lib/capricorn/server/daemon.rb,
lib/capricorn/server/security.rb

Overview

the Server is supposed to be a simple DRb interface to the System.

Defined Under Namespace

Modules: Daemon, Security Classes: Proxy

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Security

included

Methods included from Daemon

included

Methods inherited from Daemon::Base

daemonize

Class Method Details

.proxyObject



19
20
21
# File 'lib/capricorn/server.rb', line 19

def self.proxy
  @proxy ||= Capricorn::Server::Proxy.new(self.shared)
end

.sharedObject



15
16
17
# File 'lib/capricorn/server.rb', line 15

def self.shared
  @shared ||= new
end

Instance Method Details

#cancel_job(id) ⇒ Object



104
105
106
# File 'lib/capricorn/server.rb', line 104

def cancel_job(id)
  Capricorn.system.queue.cancel(id)
end

#immediate_job(id) ⇒ Object



108
109
110
# File 'lib/capricorn/server.rb', line 108

def immediate_job(id)
  Capricorn.system.queue.immediate(id)
end

#install_engine(domain, name, options = {}) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/capricorn/server.rb', line 64

def install_engine(domain, name, options={})
  satellite = Capricorn.system.find_satellite(domain)
  if satellite
    Capricorn.system.install_engine(satellite, name, options)
  else
    Capricorn.log "Satellite not found (#{domain})"
  end
end

#install_satellite(domain) ⇒ Object



51
52
53
# File 'lib/capricorn/server.rb', line 51

def install_satellite(domain)
  Capricorn.system.install_satellite(domain)
end

#queued_jobsObject



95
96
97
98
99
100
101
102
# File 'lib/capricorn/server.rb', line 95

def queued_jobs
  queued_jobs = []
  Capricorn.system.queue.each do |job, canceled, immediated|
    job_delay = job.delay
    queued_jobs.push([job.id, job.name, canceled, immediated, job.running?, job.waiting?, job_delay])
  end
  queued_jobs
end

#reload_serverObject



35
36
37
38
39
# File 'lib/capricorn/server.rb', line 35

def reload_server
  Capricorn.log "reloading the server..."
  $exitstatus = Capricorn::RELOAD_STATUS
  DRb.stop_service
end

#restart_serverObject



29
30
31
32
33
# File 'lib/capricorn/server.rb', line 29

def restart_server
  Capricorn.log "restarting the server..."
  $exitstatus = Capricorn::RESTART_STATUS
  DRb.stop_service
end

#satellitesObject



91
92
93
# File 'lib/capricorn/server.rb', line 91

def satellites
  Capricorn.system.satellites
end

#server_versionObject



41
42
43
# File 'lib/capricorn/server.rb', line 41

def server_version
  Capricorn.version
end

#stop_serverObject



23
24
25
26
27
# File 'lib/capricorn/server.rb', line 23

def stop_server
  Capricorn.log "stopping the server..."
  $exitstatus = Capricorn::STOP_STATUS
  DRb.stop_service
end

#uninstall_engine(domain, name) ⇒ Object



82
83
84
85
86
87
88
89
# File 'lib/capricorn/server.rb', line 82

def uninstall_engine(domain, name)
  satellite = Capricorn.system.find_satellite(domain)
  if satellite
    Capricorn.system.uninstall_engine(satellite, name)
  else
    Capricorn.log "Satellite not found (#{domain})"
  end
end

#uninstall_satellite(domain) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/capricorn/server.rb', line 55

def uninstall_satellite(domain)
  satellite = Capricorn.system.find_satellite(domain)
  if satellite
    Capricorn.system.uninstall_satellite(satellite)
  else
    Capricorn.log "Satellite not found (#{domain})"
  end
end

#update_engine(domain, name, options = {}) ⇒ Object



73
74
75
76
77
78
79
80
# File 'lib/capricorn/server.rb', line 73

def update_engine(domain, name, options={})
  satellite = Capricorn.system.find_satellite(domain)
  if satellite
    Capricorn.system.update_engine(satellite, name, options)
  else
    Capricorn.log "Satellite not found (#{domain})"
  end
end

#update_serverObject



45
46
47
48
49
# File 'lib/capricorn/server.rb', line 45

def update_server
  if Capricorn.system.gem_update('capricorn', :user => 'root')
    reload_server
  end
end