23 |
23 |
24 |
24 |
25 def start(): |
25 def start(): |
26 cfgfile = "/etc/swift/rsyncd.conf" |
26 cfgfile = "/etc/swift/rsyncd.conf" |
27 if not os.path.isfile(cfgfile): |
27 if not os.path.isfile(cfgfile): |
28 smf_include.smf_method_exit(smf_include.SMF_EXIT_ERR_CONFIG, |
28 smf_include.smf_method_exit( |
29 "missing_config", "Missing configuration file") |
29 smf_include.SMF_EXIT_ERR_CONFIG, "missing_config", |
|
30 "Missing configuration file") |
30 |
31 |
31 # This is the default delivered in /etc/swift/rsyncd.conf |
32 # This is the default delivered in /etc/swift/rsyncd.conf |
32 try: |
33 try: |
33 os.mkdir("/var/run/swift") |
34 os.mkdir("/var/run/swift") |
34 except OSError as e: |
35 except OSError as e: |
38 cmdline = ["/usr/bin/rsync", "--daemon", "--config", cfgfile] |
39 cmdline = ["/usr/bin/rsync", "--daemon", "--config", cfgfile] |
39 try: |
40 try: |
40 proc = subprocess.Popen(cmdline) |
41 proc = subprocess.Popen(cmdline) |
41 except OSError as err: |
42 except OSError as err: |
42 print >> sys.stderr, "Error executing rsync: %s" % err |
43 print >> sys.stderr, "Error executing rsync: %s" % err |
43 smf_include.smf_method_exit(smf_include.SMF_EXIT_ERR_FATAL, |
44 smf_include.smf_method_exit( |
44 "exec_error", "Error executing rsync: %s" % err) |
45 smf_include.SMF_EXIT_ERR_FATAL, "exec_error", |
|
46 "Error executing rsync: %s" % err) |
45 |
47 |
46 ret = proc.wait() |
48 ret = proc.wait() |
47 if ret != 0: |
49 if ret != 0: |
48 print >> sys.stderr, "rsync daemon failed to start (see message above)" |
50 print >> sys.stderr, "rsync daemon failed to start (see message above)" |
49 print >> sys.stderr, "commandline:", " ".join(cmdline) |
51 print >> sys.stderr, "commandline:", " ".join(cmdline) |
50 print >> sys.stderr, "exit code:", ret |
52 print >> sys.stderr, "exit code:", ret |
51 smf_include.smf_method_exit(smf_include.SMF_EXIT_ERR_FATAL, |
53 smf_include.smf_method_exit( |
52 "exec_fail", "rsync daemon failed to start (see service log)") |
54 smf_include.SMF_EXIT_ERR_FATAL, "exec_fail", |
|
55 "rsync daemon failed to start (see service log)") |
53 |
56 |
54 return smf_include.SMF_EXIT_OK |
57 return smf_include.SMF_EXIT_OK |
55 |
58 |
56 if __name__ == "__main__": |
59 if __name__ == "__main__": |
57 os.putenv("LC_ALL", "C") |
60 os.putenv("LC_ALL", "C") |