lib/capistrano_extensions/service.rb in joekhoobyar-capistrano-extensions-0.0.3 vs lib/capistrano_extensions/service.rb in joekhoobyar-capistrano-extensions-0.0.5

- old
+ new

@@ -1,109 +1,21 @@ module CapistranoExtensions + module Service - LSB_DEFAULT_ACTIONS = %w(status start stop restart) - - CRM_DEFAULT_ACTIONS = [ [ :status, '-W' ], - [ :summary, "-x | awk '/^raw xml:/ { exit }; { print }'" ], - [ :start, "--meta -d 'target_role'" ], - [ :stop, "--meta -p 'target_role' -v 'stopped'" ] ] - - CRM_OCF_DEFAULT_ACTIONS = [ [ :validate, '-c -C' ], - [ :monitor, '-c -m' ] ] - SVC_ACTION_CAPTIONS = Hash.new do |h,k| h[k] = "#{k.to_s.capitalize} Service" - end - SVC_ACTION_CAPTIONS.update :status => 'Check Status', :check => 'Check Config', :summary => 'Status Summary' + end.update :status => 'Check Status', + :check => 'Check Config', + :summary => 'Status Summary' - def crm(id,*args) - svc_desc = next_description(:reset) - svc_cmd = "/usr/sbin/crm_resource -r #{id.to_s.split(':').last}" - svc_actions = CRM_DEFAULT_ACTIONS - - if Hash === args.last - options = args.pop - svc_desc = id.to_s.capitalize unless svc_desc or options.delete(:hide) - svc_actions += args.shift if Array === args.first - else - options = {} - end - - namespace id do - desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[:status]}" if svc_desc - task :default, options do - sudo "#{svc_cmd} -W" - end - - svc_actions.each do |svc_action,svc_args| - svc_action = svc_action.intern unless Symbol===svc_action - desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[svc_action]}" if svc_desc - task svc_action, options do - sudo "#{svc_cmd} #{svc_args}" - end - end - - instance_eval { yield } if block_given? - end + %w(lsb crm windows command).each do |k| + require File.join(File.dirname(__FILE__), 'service', k+'.rb') end - def crm_ocf(id,*args) - svc_desc = next_description(:reset) - svc_cmd = "ocf_resource -g #{id.to_s.split(':').last}" - svc_actions = CRM_OCF_DEFAULT_ACTIONS + include LSB, CRM, Windows, Command - if Hash === args.last - options = args.pop - svc_desc = id.to_s.capitalize unless svc_desc or options.delete(:hide) - svc_actions += args.shift if Array === args.first - else - options = {} - end - - namespace id do - svc_actions.each do |svc_action,svc_args| - svc_action = svc_action.intern unless Symbol===svc_action - desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[svc_action]}" if svc_desc - task svc_action, options do - sudo "#{svc_cmd} #{svc_args}" - end - end - - instance_eval { yield } if block_given? - end - end - - def lsb(id,*args) - svc_desc = next_description(:reset) - svc_cmd = "/etc/init.d/#{id.to_s.split(':').last}" - svc_actions = LSB_DEFAULT_ACTIONS - - if Hash === args.last - options = args.pop - svc_desc = id.to_s.capitalize unless svc_desc or options.delete(:hide) - svc_actions += args.shift if Array === args.first - else - options = {} - end - - namespace id do - desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[:status]}" if svc_desc - task :default, options do - sudo "#{svc_cmd} status" - end - - svc_actions.each do |svc_action| - svc_action = svc_action.intern - desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[svc_action]}" if svc_desc - task svc_action, options do - sudo "#{svc_cmd} #{svc_action}" - end - end - - instance_eval { yield } if block_given? - end - end end + end Capistrano.plugin :service, CapistranoExtensions::Service