solaris: fix SMF manifest dependency model and start method
Resolves an issue where quagga daemons restart in an infinite loop.
Quagga daemons declare a dependency on zebra that requires a restart
of the daemon when zebra restarts and they explicitly restart zebra,
which again triggers their own restart.
Restarting zebra when other daemons are started is explicitly removed,
leaving dependency management up to SMF rather than handling it in the
start method.
solaris/quagga.init.in: Remove calls to routeadm_zebra_enable, and the
routeadm_zebra_enable function.
solaris/quagga.xml.in: Set dependency zebra grouping to require_all.
Fixes: #818
Signed-off-by: Greg Troxel <gdt@ir.bbn.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/solaris/quagga.xml.in b/solaris/quagga.xml.in
index 50c52c2..60427b0 100644
--- a/solaris/quagga.xml.in
+++ b/solaris/quagga.xml.in
@@ -21,6 +21,8 @@
Copyright 2007 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
+ Copyright 2015 Joyent, Inc.
+
ident "@(#)quagga.xml 1.0 05/03/15 SMI"
-->
@@ -189,7 +191,7 @@
<!-- ensure that restart of zebra is propogated to daemon -->
<dependency
name='zebra'
- grouping='optional_all'
+ grouping='require_all'
restart_on='restart'
type='service'>
<service_fmri value='svc:/network/routing/zebra:quagga' />
@@ -320,7 +322,7 @@
<!-- ensure that restart of zebra is propogated to daemon -->
<dependency
name='zebra'
- grouping='optional_all'
+ grouping='require_all'
restart_on='restart'
type='service'>
<service_fmri value='svc:/network/routing/zebra:quagga' />
@@ -449,7 +451,7 @@
<!-- ensure that restart of zebra is propogated to daemon -->
<dependency
name='zebra'
- grouping='optional_all'
+ grouping='require_all'
restart_on='restart'
type='service'>
<service_fmri value='svc:/network/routing/zebra:quagga' />
@@ -580,7 +582,7 @@
<!-- ensure that restart of zebra is propogated to daemon -->
<dependency
name='zebra'
- grouping='optional_all'
+ grouping='require_all'
restart_on='restart'
type='service'>
<service_fmri value='svc:/network/routing/zebra:quagga' />
@@ -715,7 +717,7 @@
<!-- ensure that restart of zebra is propogated to daemon -->
<dependency
name='zebra'
- grouping='optional_all'
+ grouping='require_all'
restart_on='restart'
type='service'>
<service_fmri value='svc:/network/routing/zebra:quagga' />