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