components/openstack/swift/files/swift-replicator-rsync
author Drew Fisher <drew.fisher@oracle.com>
Wed, 02 Jul 2014 06:53:43 -0700
branchs11u2-sru
changeset 3198 46289f36c1ca
parent 3178 77584387a894
child 4625 18adb92d4193
permissions -rw-r--r--
19073547 editing built-in flavors fails with name too long 19056291 A couple of links to zone consoles still exist 19049098 unable to set gateway interface or gateway port for neutron router 19034270 IPv6 filter rules are not properly handled 19031678 The Instances pop-up in Network Topology should remove 'open console' 19031443 nova package needs a require dependency on library/python-2/sqlalchemy 19026639 solaris.css doesn't display network topology pop-ups correctly 19026240 Extract tenantid using the framework provided function 19026100 every tenant should be able to allocate floating IPs for themselves 19022958 Unable to specify solaris device names when attaching volumes to instances 18646500 Unable to attach a volume to a KZ instance using Horizon

#!/usr/bin/python2.6

# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

import errno
import os
import subprocess
import sys

import smf_include


def start():
    cfgfile = "/etc/swift/rsyncd.conf"
    if not os.path.isfile(cfgfile):
        smf_include.smf_method_exit(
            smf_include.SMF_EXIT_ERR_CONFIG, "missing_config",
            "Missing configuration file")

    # This is the default delivered in /etc/swift/rsyncd.conf
    try:
        os.mkdir("/var/run/swift")
    except OSError as e:
        if e.errno != errno.EEXIST:
            raise

    cmdline = ["/usr/bin/rsync", "--daemon", "--config", cfgfile]
    try:
        proc = subprocess.Popen(cmdline)
    except OSError as err:
        print >> sys.stderr, "Error executing rsync: %s" % err
        smf_include.smf_method_exit(
            smf_include.SMF_EXIT_ERR_FATAL, "exec_error",
            "Error executing rsync: %s" % err)

    ret = proc.wait()
    if ret != 0:
        print >> sys.stderr, "rsync daemon failed to start (see message above)"
        print >> sys.stderr, "commandline:", " ".join(cmdline)
        print >> sys.stderr, "exit code:", ret
        smf_include.smf_method_exit(
            smf_include.SMF_EXIT_ERR_FATAL, "exec_fail",
            "rsync daemon failed to start (see service log)")

    return smf_include.SMF_EXIT_OK

if __name__ == "__main__":
    os.putenv("LC_ALL", "C")
    smf_include.smf_main()