Class: MotherBrain::Upgrade::Manager
- Inherits:
-
Object
- Object
- MotherBrain::Upgrade::Manager
- Includes:
- Celluloid, Logging
- Defined in:
- lib/mb/upgrade/manager.rb
Overview
Handles upgrading nodes in already environments.
Class Method Summary collapse
Instance Method Summary collapse
-
#async_upgrade(environment, plugin, options = {}) ⇒ JobTicket
Asynchronously upgrade an environment.
-
#initialize ⇒ Manager
constructor
A new instance of Manager.
-
#upgrade(job, environment, plugin, options = {}) ⇒ Job
Synchronously upgrade an environment.
Methods included from Logging
add_argument_header, dev, filename, #log_exception, logger, #logger, reset, set_logger, setup
Constructor Details
#initialize ⇒ Manager
Returns a new instance of Manager.
19 20 21 |
# File 'lib/mb/upgrade/manager.rb', line 19 def initialize log.debug { "Upgrade Manager starting..." } end |
Class Method Details
.instance ⇒ Celluloid::Actor(Upgrade::Manager)
9 10 11 |
# File 'lib/mb/upgrade/manager.rb', line 9 def instance MB::Application[:upgrade_manager] or raise Celluloid::DeadActorError, "upgrade manager not running" end |
Instance Method Details
#async_upgrade(environment, plugin, options = {}) ⇒ JobTicket
Asynchronously upgrade an environment
42 43 44 45 46 47 48 |
# File 'lib/mb/upgrade/manager.rb', line 42 def async_upgrade(environment, plugin, = {}) job = Job.new(:upgrade) async(:upgrade, job, environment, plugin, ) job.ticket end |
#upgrade(job, environment, plugin, options = {}) ⇒ Job
Synchronously upgrade an environment
70 71 72 73 74 75 76 |
# File 'lib/mb/upgrade/manager.rb', line 70 def upgrade(job, environment, plugin, = {}) worker = Worker.new(job, environment.freeze, plugin.freeze, .freeze) worker.run ensure worker.terminate if worker && worker.alive? job.terminate if job && job.alive? end |