author | Drew Fisher <drew.fisher@oracle.com> |
Fri, 10 Jul 2015 20:29:35 +0000 | |
branch | s11-update |
changeset 4625 | 18adb92d4193 |
parent 3196 | 4c06db2d9388 |
permissions | -rw-r--r-- |
4625
18adb92d4193
20816335 move the core OpenStack components to Python 2.7
Drew Fisher <drew.fisher@oracle.com>
parents:
3196
diff
changeset
|
1 |
#!/usr/bin/python2.7 |
3135
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
2 |
|
4625
18adb92d4193
20816335 move the core OpenStack components to Python 2.7
Drew Fisher <drew.fisher@oracle.com>
parents:
3196
diff
changeset
|
3 |
# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. |
3135
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
# |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); you may |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
# not use this file except in compliance with the License. You may obtain |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
# a copy of the License at |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
# |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
# |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
# License for the specific language governing permissions and limitations |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
# under the License. |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
import errno |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
import os |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
import subprocess |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
import sys |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
import smf_include |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
def start(): |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
cfgfile = "/etc/swift/rsyncd.conf" |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
if not os.path.isfile(cfgfile): |
3178
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
28 |
smf_include.smf_method_exit( |
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
29 |
smf_include.SMF_EXIT_ERR_CONFIG, "missing_config", |
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
30 |
"Missing configuration file") |
3135
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
# This is the default delivered in /etc/swift/rsyncd.conf |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
try: |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
os.mkdir("/var/run/swift") |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
35 |
except OSError as e: |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
36 |
if e.errno != errno.EEXIST: |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
37 |
raise |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
38 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
39 |
cmdline = ["/usr/bin/rsync", "--daemon", "--config", cfgfile] |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
40 |
try: |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
41 |
proc = subprocess.Popen(cmdline) |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
42 |
except OSError as err: |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
43 |
print >> sys.stderr, "Error executing rsync: %s" % err |
3178
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
44 |
smf_include.smf_method_exit( |
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
45 |
smf_include.SMF_EXIT_ERR_FATAL, "exec_error", |
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
46 |
"Error executing rsync: %s" % err) |
3135
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
47 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
48 |
ret = proc.wait() |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
49 |
if ret != 0: |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
50 |
print >> sys.stderr, "rsync daemon failed to start (see message above)" |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
51 |
print >> sys.stderr, "commandline:", " ".join(cmdline) |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
52 |
print >> sys.stderr, "exit code:", ret |
3178
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
53 |
smf_include.smf_method_exit( |
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
54 |
smf_include.SMF_EXIT_ERR_FATAL, "exec_fail", |
77584387a894
PSARC/2014/207 OpenStack Glance Update to Havana
Drew Fisher <drew.fisher@oracle.com>
parents:
3135
diff
changeset
|
55 |
"rsync daemon failed to start (see service log)") |
3135
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
56 |
|
3196
4c06db2d9388
19073547 editing built-in flavors fails with name too long
Drew Fisher <drew.fisher@oracle.com>
parents:
3178
diff
changeset
|
57 |
return smf_include.SMF_EXIT_OK |
3135
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
58 |
|
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
59 |
if __name__ == "__main__": |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
60 |
os.putenv("LC_ALL", "C") |
0a68f5e884e0
PSARC 2014/050 OpenStack Swift (OpenStack Object Storage Service)
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
61 |
smf_include.smf_main() |