/usr/lib/python2.6/site-packages/cloudinit
NameSizeModeActions
config/-0755rm
distros/-0755rm
filters/-0755rm
handlers/-0755rm
mergers/-0755rm
sources/-0755rm
cloud.py34970644editdlrm
cloud.pyc37230644editdlrm
cloud.pyo37230644editdlrm
cs_utils.py33210644editdlrm
cs_utils.pyc42660644editdlrm
cs_utils.pyo42660644editdlrm
ec2_utils.py65770644editdlrm
ec2_utils.pyc57550644editdlrm
ec2_utils.pyo57550644editdlrm
helpers.py150450644editdlrm
helpers.pyc166000644editdlrm
helpers.pyo166000644editdlrm
importer.py23170644editdlrm
importer.pyc15020644editdlrm
importer.pyo15020644editdlrm
log.py46200644editdlrm
log.pyc37000644editdlrm
log.pyo37000644editdlrm
netinfo.py68540644editdlrm
netinfo.pyc53470644editdlrm
netinfo.pyo53470644editdlrm
patcher.py18200644editdlrm
patcher.pyc15310644editdlrm
patcher.pyo15310644editdlrm
safeyaml.py10600644editdlrm
safeyaml.pyc8910644editdlrm
safeyaml.pyo8910644editdlrm
settings.py21110644editdlrm
settings.pyc10350644editdlrm
settings.pyo10350644editdlrm
signal_handler.py23780644editdlrm
signal_handler.pyc23260644editdlrm
signal_handler.pyo23260644editdlrm
ssh_util.py106360644editdlrm
ssh_util.pyc100720644editdlrm
ssh_util.pyo100720644editdlrm
stages.py279440644editdlrm
stages.pyc213990644editdlrm
stages.pyo213990644editdlrm
templater.py13620644editdlrm
templater.pyc10030644editdlrm
templater.pyo10030644editdlrm
type_utils.py12240644editdlrm
type_utils.pyc5240644editdlrm
type_utils.pyo5240644editdlrm
url_helper.py128520644editdlrm
url_helper.pyc112950644editdlrm
url_helper.pyo112950644editdlrm
user_data.py131430644editdlrm
user_data.pyc95690644editdlrm
user_data.pyo95690644editdlrm
util.py622590644editdlrm
util.pyc574450644editdlrm
util.pyo574450644editdlrm
version.py8540644editdlrm
version.pyc5610644editdlrm
version.pyo5610644editdlrm
__init__.py9250644editdlrm
__init__.pyc1410644editdlrm
__init__.pyo1410644editdlrm
Edit: /usr/lib/python2.6/site-packages/cloudinit/signal_handler.py (2378B)
# vi: ts=4 expandtab # # Copyright (C) 2012 Canonical Ltd. # Copyright (C) 2012 Yahoo! Inc. # # Author: Scott Moser # Author: Joshua Harlow # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import inspect import signal import sys from StringIO import StringIO from cloudinit import log as logging from cloudinit import util from cloudinit import version as vr LOG = logging.getLogger(__name__) BACK_FRAME_TRACE_DEPTH = 3 EXIT_FOR = { signal.SIGINT: ('Cloud-init %(version)s received SIGINT, exiting...', 1), signal.SIGTERM: ('Cloud-init %(version)s received SIGTERM, exiting...', 1), # Can't be caught... # signal.SIGKILL: ('Cloud-init killed, exiting...', 1), signal.SIGABRT: ('Cloud-init %(version)s received SIGABRT, exiting...', 1), } def _pprint_frame(frame, depth, max_depth, contents): if depth > max_depth or not frame: return frame_info = inspect.getframeinfo(frame) prefix = " " * (depth * 2) contents.write("%sFilename: %s\n" % (prefix, frame_info.filename)) contents.write("%sFunction: %s\n" % (prefix, frame_info.function)) contents.write("%sLine number: %s\n" % (prefix, frame_info.lineno)) _pprint_frame(frame.f_back, depth + 1, max_depth, contents) def _handle_exit(signum, frame): (msg, rc) = EXIT_FOR[signum] msg = msg % ({'version': vr.version()}) contents = StringIO() contents.write("%s\n" % (msg)) _pprint_frame(frame, 1, BACK_FRAME_TRACE_DEPTH, contents) util.multi_log(contents.getvalue(), console=True, stderr=False, log=LOG) sys.exit(rc) def attach_handlers(): sigs_attached = 0 for signum in EXIT_FOR.keys(): signal.signal(signum, _handle_exit) sigs_attached += len(EXIT_FOR) return sigs_attached