Index: trunk/server/common/oursrc/hacron/hacron
===================================================================
--- trunk/server/common/oursrc/hacron/hacron	(revision 1466)
+++ trunk/server/common/oursrc/hacron/hacron	(revision 1467)
@@ -1,3 +1,4 @@
 #!/usr/bin/env python
+from __future__ import with_statement
 import glob
 import logging.handlers
@@ -29,4 +30,5 @@
         self.errno = errno
         self.msg = msg
+        logger.error(msg)
     
 class HaLogHandler(logging.Handler):
@@ -80,4 +82,8 @@
 
 def _remove(dest):
+    if not path.exists(dest) and not path.islink(dest):
+        logger.info('Tried to remove nonexistant path %s' % dest)
+        return True
+
     try:
         if path.isdir(dest):
@@ -128,5 +134,10 @@
     else:
         cmd = ['service', 'crond', 'reload']
-    subprocess.check_call(cmd)
+    try:
+        subprocess.check_call(cmd)
+    except OSError, e:
+        raise HacronError(OCF_ERR_GENERIC, 'Cron restart exited with return code %d' % e.errno)
+    else:
+        logger.info('Restarted crond')
 
 def start_cron(args, options):
@@ -155,10 +166,7 @@
                 logger.info('Created slave dummy directory %s' % crondir)
     try:
-        _restart_crond()
+        _restart_crond(args, options)
     except OSError, e:
-        logger.error('Cron restart exited with return code %d' % e.errno)
-        return OCF_ERR_GENERIC
-    else:
-        logger.info('Restarted crond')
+        return e.errno
     return OCF_SUCCESS
 
@@ -175,10 +183,7 @@
         # TODO: should we do something else here?
         try:
-            _restart_crond()
+            _restart_crond(args, options)
         except OSError, e:
-            logger.error('Cron restart exited with return code %d' % e.errno)
-            return OCF_ERR_GENERIC
-        else:
-            logger.info('Restarted crond')
+            return e.errno
         return OCF_SUCCESS
 
@@ -276,5 +281,5 @@
 
 def main():
-    usage_str = """usage: %%prog [-s server] [-c cronroot] [-d] cmd
+    usage_str = """usage: %prog [-s server] [-c cronroot] [-d] cmd
 
 Script for starting and stopping cron in a multiserver environment.
@@ -320,5 +325,4 @@
         _set_globals(args, options)
     except HacronError, e:
-        logger.error(e.msg)
         return e.errno
 
