On Fri, Jun 01, 2012 at 04:56:45PM -0400, John Eckersberg wrote:
On Fri, 1 Jun 2012 15:37:13 -0500, Steve Linabery
<slinaber(a)redhat.com> wrote:
> We need a script to stop,start,restart aeolus services so that we
> can stop them, insert data required by upgrade path, and restart.
> The existing aeolus-services script appears deprecated and is used
> nowhere else in the codebase for aeolus-configure or aeolus-conductor,
> so we'll refactor it to be useful for this purpose.
> ---
> bin/aeolus-services | 74 +++++++++++++++++++++++++++++++++++++++++++++++---
> 1 files changed, 69 insertions(+), 5 deletions(-)
> mode change 100644 => 100755 bin/aeolus-services
>
> diff --git a/bin/aeolus-services b/bin/aeolus-services
> old mode 100644
> new mode 100755
> index 76dbc5d..2becbfd
> --- a/bin/aeolus-services
> +++ b/bin/aeolus-services
> @@ -1,4 +1,4 @@
> -#!/bin/sh
> +#!/usr/bin/env ruby
>
> # Copyright 2011 Red Hat, Inc.
> #
> @@ -14,7 +14,71 @@
> # See the License for the specific language governing permissions and
> # limitations under the License.
>
> -puppet /usr/share/aeolus-configure/aeolus_stop_services.pp \
> - --modulepath=/usr/share/aeolus-configure/modules/ \
> - --logdest=/var/log/aeolus-configure/aeolus-services.log \
> - --logdest=console
> +if ARGV.include?('-h') || ARGV.include?('--help')
> + puts "Usage: #{$0} stop|start|restart
> +Stop, Start, or Restart Aeolus services.
> +
> + -h, --help display this help and exit
> +
> +To show status of aeolus services please use aeolus-check-services.
> +"
> + exit
> +end
> +
> +if !['stop','start','restart'].include?(ARGV[0])
> + puts "Usage: #{$0} stop|start|restart
> +Stop, Start, or Restart Aeolus services.
> +
> +To show status of aeolus services please use aeolus-check-services.
> +"
> + exit(1)
> +end
> +
> +# ordered as in rc.d
> +$services = %w(mongod iwhd postgresql httpd deltacloud-core libvirtd
aeolus-conductor conductor-dbomatic imagefactory ntpd)
> +
> +def perform(action, svcs)
> + action = action.to_s
> + svcs.map do |script|
> + puts "\n#{action.capitalize}ing #{script} ..."
> + cmd = "service #{script} #{action}"
> + out = `#{cmd}`
> + if $?.to_i == 0
> + puts " \e[1;32mSuccess:\e[0m #{out.strip}"
> + else
> + puts " \e[1;31mFAILURE:\e[0m #{out.strip}"
> + end
> + $?.to_i
> + end
> +end
> +
> +def mongod_cleanup_and_restart
> + if perform(:status, ['mongod']) == [1]
> + lockfile = '/var/lib/mongodb/mongod.lock'
> + if File.exists?(lockfile)
> + puts " \e[1;33mremoving\e[0m leftover #{lockfile}"
> + File.delete(lockfile)
> + perform :restart, %w(mongod iwhd)
> + end
> + end
> +end
> +
> +def start
> + perform :start, $services
> + mongod_cleanup_and_restart
> +end
> +
> +def stop
> + perform :stop, $services.reverse
> +end
> +
> +def restart
> + stop
> + start
> +end
> +
> +case ARGV[0]
> + when "start" then start
> + when "stop" then stop
> + when "restart" then restart
> +end
> --
> 1.7.6.5
>
Conditional ACK, works as advertised. Make sure this gets added to the
spec file; here's a patch for that.
diff --git a/contrib/aeolus-configure.spec.in
b/contrib/aeolus-configure.spec.in
index 22ba7b6..3432c91 100644
--- a/contrib/aeolus-configure.spec.in
+++ b/contrib/aeolus-configure.spec.in
@@ -51,6 +51,7 @@ Aeolus Configure Puppet Recipe
%{__cp} -R %{pbuild}/bin/aeolus-node-check %{buildroot}/%{aeolushome}/modules/aeolus/
%{__cp} -R %{pbuild}/bin/aeolus-check-services %{buildroot}/%{_bindir}/
%{__cp} -R %{pbuild}/bin/aeolus-restart-services %{buildroot}/%{_sbindir}/
+%{__cp} -R %{pbuild}/bin/aeolus-services %{buildroot}/%{_sbindir}/
%{__cp} -R %{pbuild}/bin/aeolus-configure %{buildroot}/%{_sbindir}/
%{__cp} -R %{pbuild}/bin/aeolus-cleanup %{buildroot}/%{_sbindir}/
%{__cp} %{pbuild}/docs/man1/* %{buildroot}/%{_mandir}/man1/
@@ -63,6 +64,7 @@ Aeolus Configure Puppet Recipe
%attr(0600, root, root) %{_sysconfdir}/aeolus-configure/nodes/*
%attr(0755, root, root) %{_bindir}/aeolus-check-services
%attr(0755, root, root) %{_sbindir}/aeolus-restart-services
+%attr(0755, root, root) %{_sbindir}/aeolus-services
%doc %{_mandir}/man1/*
%{aeolushome}
good catch re: spec, thank you.
adding, pushing.
s|e