Sha256: a0bdd12b159089bc630f9ac9f4047c494e3f307f2235c0af6b6b2d0db64b0d66
Contents?: true
Size: 1.93 KB
Versions: 8
Compression:
Stored size: 1.93 KB
Contents
module Sprinkle # = Actors # # An actor is a method of command delivery to a remote machine. Actors are the # layer setting between Sprinkle and the systems you and wanting to apply # policies to. # # Sprinkle ships with actors for Capistrano, Vlad, localhost and pure SSH. module Actors # == Writing an actor # # All actors should inherit from Sprinkle::Actors::Actor. Actors must provide the # following methods: # # * #install (installer, roles, options) # * #verify (verifier, roles, options) # * #servers_for_role? (roles) # * #sudo? # * #sudo_command # # Hopefully these methods are kind of fairly obvious. They should return true # to indicate success and false to indicate failure. # The actual commands you need to execute can be retrived from # +installer.install_sequence+ and +verifier.commands+. class Actor # an actor must define this method so that each policy can ask the actor # if there are any servers with that policy's roles so the policy knows # whether it should execute or not # # input: a single role or array of roles def servers_for_role?(role) raise "please define servers_for_role?" end def install(installer, roles, options) raise "you must define install" end # an actor must define this and let the installers know if it plans # to try and add sudo to all of their commands or not since some # installers might need to handle sudo their own special way def sudo? raise "you must define sudo?" end # if an installer needs to call sudo this is the command the actor # would prefer the installers to use def sudo_command raise "you must define sudo_command" end def verify(verifier, roles, options) raise "you must define verify" end end end end
Version data entries
8 entries across 8 versions & 1 rubygems