fix and cleanup usage of util.logexc
This commit is contained in:
		@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2009-2011 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -50,6 +50,5 @@ def handle(name, cfg, cloud, log, _args):
 | 
			
		||||
            cmd = ['/bin/sh', tmpf.name]
 | 
			
		||||
            util.subp(cmd, env=env, capture=False)
 | 
			
		||||
        except:
 | 
			
		||||
            util.logexc(log,
 | 
			
		||||
                        ("Failed to run bootcmd module %s"), name)
 | 
			
		||||
            util.logexc(log, "Failed to run bootcmd module %s", name)
 | 
			
		||||
            raise
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,10 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2011 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
#
 | 
			
		||||
#    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
 | 
			
		||||
@@ -121,15 +123,15 @@ class ResizeGrowPart(object):
 | 
			
		||||
            util.subp(["growpart", '--dry-run', diskdev, partnum])
 | 
			
		||||
        except util.ProcessExecutionError as e:
 | 
			
		||||
            if e.exit_code != 1:
 | 
			
		||||
                util.logexc(LOG, ("Failed growpart --dry-run for (%s, %s)" %
 | 
			
		||||
                                  (diskdev, partnum)))
 | 
			
		||||
                util.logexc(LOG, "Failed growpart --dry-run for (%s, %s)",
 | 
			
		||||
                            diskdev, partnum)
 | 
			
		||||
                raise ResizeFailedException(e)
 | 
			
		||||
            return (before, before)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            util.subp(["growpart", diskdev, partnum])
 | 
			
		||||
        except util.ProcessExecutionError as e:
 | 
			
		||||
            util.logexc(LOG, "Failed: growpart %s %s" % (diskdev, partnum))
 | 
			
		||||
            util.logexc(LOG, "Failed: growpart %s %s", diskdev, partnum)
 | 
			
		||||
            raise ResizeFailedException(e)
 | 
			
		||||
 | 
			
		||||
        return (before, get_size(partdev))
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2011 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -65,8 +65,8 @@ def handle(name, cfg, cloud, log, args):
 | 
			
		||||
        tries = int(tries)
 | 
			
		||||
    except:
 | 
			
		||||
        tries = 10
 | 
			
		||||
        util.logexc(log, ("Configuration entry 'tries'"
 | 
			
		||||
                          " is not an integer, using %s instead"), tries)
 | 
			
		||||
        util.logexc(log, "Configuration entry 'tries' is not an integer, "
 | 
			
		||||
                    "using %s instead", tries)
 | 
			
		||||
 | 
			
		||||
    if post_list == "all":
 | 
			
		||||
        post_list = POST_LIST_ALL
 | 
			
		||||
@@ -85,8 +85,8 @@ def handle(name, cfg, cloud, log, args):
 | 
			
		||||
        try:
 | 
			
		||||
            all_keys[n] = util.load_file(path)
 | 
			
		||||
        except:
 | 
			
		||||
            util.logexc(log, ("%s: failed to open, can not"
 | 
			
		||||
                              " phone home that data!"), path)
 | 
			
		||||
            util.logexc(log, "%s: failed to open, can not phone home that "
 | 
			
		||||
                        "data!", path)
 | 
			
		||||
 | 
			
		||||
    submit_keys = {}
 | 
			
		||||
    for k in post_list:
 | 
			
		||||
@@ -115,5 +115,5 @@ def handle(name, cfg, cloud, log, args):
 | 
			
		||||
                              retries=tries, sec_between=3,
 | 
			
		||||
                              ssl_details=util.fetch_ssl_details(cloud.paths))
 | 
			
		||||
    except:
 | 
			
		||||
        util.logexc(log, ("Failed to post phone home data to"
 | 
			
		||||
                          " %s in %s tries"), url, tries)
 | 
			
		||||
        util.logexc(log, "Failed to post phone home data to %s in %s tries",
 | 
			
		||||
                    url, tries)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2011 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -64,8 +64,8 @@ def handle(name, _cfg, cloud, log, _args):
 | 
			
		||||
                       " raw userdata"), name, MY_HOOKNAME)
 | 
			
		||||
            return
 | 
			
		||||
    except:
 | 
			
		||||
        util.logexc(log, ("Failed to parse query string %s"
 | 
			
		||||
                           " into a dictionary"), ud)
 | 
			
		||||
        util.logexc(log, "Failed to parse query string %s into a dictionary",
 | 
			
		||||
                    ud)
 | 
			
		||||
        raise
 | 
			
		||||
 | 
			
		||||
    wrote_fns = []
 | 
			
		||||
@@ -86,8 +86,8 @@ def handle(name, _cfg, cloud, log, _args):
 | 
			
		||||
                wrote_fns.append(fname)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            captured_excps.append(e)
 | 
			
		||||
            util.logexc(log, "%s failed to read %s and write %s",
 | 
			
		||||
                        MY_NAME, url, fname)
 | 
			
		||||
            util.logexc(log, "%s failed to read %s and write %s", MY_NAME, url,
 | 
			
		||||
                        fname)
 | 
			
		||||
 | 
			
		||||
    if wrote_fns:
 | 
			
		||||
        log.debug("Wrote out rightscale userdata to %s files", len(wrote_fns))
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2011 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -32,6 +32,6 @@ def handle(name, cfg, cloud, log, _args):
 | 
			
		||||
        log.debug("Setting the hostname to %s (%s)", fqdn, hostname)
 | 
			
		||||
        cloud.distro.set_hostname(hostname, fqdn)
 | 
			
		||||
    except Exception:
 | 
			
		||||
        util.logexc(log, "Failed to set the hostname to %s (%s)",
 | 
			
		||||
                    fqdn, hostname)
 | 
			
		||||
        util.logexc(log, "Failed to set the hostname to %s (%s)", fqdn,
 | 
			
		||||
                    hostname)
 | 
			
		||||
        raise
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2009-2010 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -81,8 +81,8 @@ def handle(_name, cfg, cloud, log, args):
 | 
			
		||||
            util.subp(['chpasswd'], ch_in)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            errors.append(e)
 | 
			
		||||
            util.logexc(log,
 | 
			
		||||
                        "Failed to set passwords with chpasswd for %s", users)
 | 
			
		||||
            util.logexc(log, "Failed to set passwords with chpasswd for %s",
 | 
			
		||||
                        users)
 | 
			
		||||
 | 
			
		||||
        if len(randlist):
 | 
			
		||||
            blurb = ("Set the following 'random' passwords\n",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2009-2010 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -85,8 +85,8 @@ def handle(_name, cfg, cloud, log, _args):
 | 
			
		||||
                    util.subp(cmd, capture=False)
 | 
			
		||||
                log.debug("Generated a key for %s from %s", pair[0], pair[1])
 | 
			
		||||
            except:
 | 
			
		||||
                util.logexc(log, ("Failed generated a key"
 | 
			
		||||
                                  " for %s from %s"), pair[0], pair[1])
 | 
			
		||||
                util.logexc(log, "Failed generated a key for %s from %s",
 | 
			
		||||
                            pair[0], pair[1])
 | 
			
		||||
    else:
 | 
			
		||||
        # if not, generate them
 | 
			
		||||
        genkeys = util.get_cfg_option_list(cfg,
 | 
			
		||||
@@ -102,8 +102,8 @@ def handle(_name, cfg, cloud, log, _args):
 | 
			
		||||
                    with util.SeLinuxGuard("/etc/ssh", recursive=True):
 | 
			
		||||
                        util.subp(cmd, capture=False)
 | 
			
		||||
                except:
 | 
			
		||||
                    util.logexc(log, ("Failed generating key type"
 | 
			
		||||
                                      " %s to file %s"), keytype, keyfile)
 | 
			
		||||
                    util.logexc(log, "Failed generating key type %s to "
 | 
			
		||||
                                "file %s", keytype, keyfile)
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        (users, _groups) = ds.normalize_users_groups(cfg, cloud.distro)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2009-2010 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -71,8 +71,8 @@ def handle(_name, cfg, cloud, log, args):
 | 
			
		||||
        try:
 | 
			
		||||
            import_ssh_ids(import_ids, user, log)
 | 
			
		||||
        except Exception as exc:
 | 
			
		||||
            util.logexc(log, "ssh-import-id failed for: %s %s" %
 | 
			
		||||
                            (user, import_ids), exc)
 | 
			
		||||
            util.logexc(log, "ssh-import-id failed for: %s %s", user,
 | 
			
		||||
                        import_ids)
 | 
			
		||||
            elist.append(exc)
 | 
			
		||||
 | 
			
		||||
    if len(elist):
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2011 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
@@ -38,6 +38,6 @@ def handle(name, cfg, cloud, log, _args):
 | 
			
		||||
        log.debug("Updating hostname to %s (%s)", fqdn, hostname)
 | 
			
		||||
        cloud.distro.update_hostname(hostname, fqdn, prev_fn)
 | 
			
		||||
    except Exception:
 | 
			
		||||
        util.logexc(log, "Failed to update the hostname to %s (%s)",
 | 
			
		||||
                    fqdn, hostname)
 | 
			
		||||
        util.logexc(log, "Failed to update the hostname to %s (%s)", fqdn,
 | 
			
		||||
                    hostname)
 | 
			
		||||
        raise
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2012 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -142,8 +142,8 @@ class Distro(object):
 | 
			
		||||
        try:
 | 
			
		||||
            util.subp(['hostname', hostname])
 | 
			
		||||
        except util.ProcessExecutionError:
 | 
			
		||||
            util.logexc(LOG, ("Failed to non-persistently adjust"
 | 
			
		||||
                              " the system hostname to %s"), hostname)
 | 
			
		||||
            util.logexc(LOG, "Failed to non-persistently adjust the system "
 | 
			
		||||
                        "hostname to %s", hostname)
 | 
			
		||||
 | 
			
		||||
    @abc.abstractmethod
 | 
			
		||||
    def _select_hostname(self, hostname, fqdn):
 | 
			
		||||
@@ -200,8 +200,8 @@ class Distro(object):
 | 
			
		||||
            try:
 | 
			
		||||
                self._write_hostname(hostname, fn)
 | 
			
		||||
            except IOError:
 | 
			
		||||
                util.logexc(LOG, "Failed to write hostname %s to %s",
 | 
			
		||||
                            hostname, fn)
 | 
			
		||||
                util.logexc(LOG, "Failed to write hostname %s to %s", hostname,
 | 
			
		||||
                            fn)
 | 
			
		||||
 | 
			
		||||
        if (sys_hostname and prev_hostname and
 | 
			
		||||
            sys_hostname != prev_hostname):
 | 
			
		||||
@@ -347,7 +347,7 @@ class Distro(object):
 | 
			
		||||
            try:
 | 
			
		||||
                util.subp(adduser_cmd, logstring=x_adduser_cmd)
 | 
			
		||||
            except Exception as e:
 | 
			
		||||
                util.logexc(LOG, "Failed to create user %s due to error.", e)
 | 
			
		||||
                util.logexc(LOG, "Failed to create user %s", name)
 | 
			
		||||
                raise e
 | 
			
		||||
 | 
			
		||||
        # Set password if plain-text password provided
 | 
			
		||||
@@ -360,8 +360,8 @@ class Distro(object):
 | 
			
		||||
            try:
 | 
			
		||||
                util.subp(['passwd', '--lock', name])
 | 
			
		||||
            except Exception as e:
 | 
			
		||||
                util.logexc(LOG, ("Failed to disable password logins for"
 | 
			
		||||
                            "user %s" % name), e)
 | 
			
		||||
                util.logexc(LOG, "Failed to disable password logins for "
 | 
			
		||||
                            "user %s", name)
 | 
			
		||||
                raise e
 | 
			
		||||
 | 
			
		||||
        # Configure sudo access
 | 
			
		||||
@@ -385,7 +385,7 @@ class Distro(object):
 | 
			
		||||
        try:
 | 
			
		||||
            util.subp(cmd, pass_string, logstring="chpasswd for %s" % user)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            util.logexc(LOG, "Failed to set password for %s" % user)
 | 
			
		||||
            util.logexc(LOG, "Failed to set password for %s", user)
 | 
			
		||||
            raise e
 | 
			
		||||
 | 
			
		||||
        return True
 | 
			
		||||
@@ -427,7 +427,7 @@ class Distro(object):
 | 
			
		||||
                    util.append_file(sudo_base, sudoers_contents)
 | 
			
		||||
                LOG.debug("Added '#includedir %s' to %s" % (path, sudo_base))
 | 
			
		||||
            except IOError as e:
 | 
			
		||||
                util.logexc(LOG, "Failed to write %s" % sudo_base, e)
 | 
			
		||||
                util.logexc(LOG, "Failed to write %s", sudo_base)
 | 
			
		||||
                raise e
 | 
			
		||||
        util.ensure_dir(path, 0750)
 | 
			
		||||
 | 
			
		||||
@@ -478,15 +478,15 @@ class Distro(object):
 | 
			
		||||
            try:
 | 
			
		||||
                util.subp(group_add_cmd)
 | 
			
		||||
                LOG.info("Created new group %s" % name)
 | 
			
		||||
            except Exception as e:
 | 
			
		||||
                util.logexc("Failed to create group %s" % name, e)
 | 
			
		||||
            except Exception:
 | 
			
		||||
                util.logexc("Failed to create group %s", name)
 | 
			
		||||
 | 
			
		||||
        # Add members to the group, if so defined
 | 
			
		||||
        if len(members) > 0:
 | 
			
		||||
            for member in members:
 | 
			
		||||
                if not util.is_user(member):
 | 
			
		||||
                    LOG.warn("Unable to add group member '%s' to group '%s'"
 | 
			
		||||
                            "; user does not exist." % (member, name))
 | 
			
		||||
                            "; user does not exist.", member, name)
 | 
			
		||||
                    continue
 | 
			
		||||
 | 
			
		||||
                util.subp(['usermod', '-a', '-G', name, member])
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2012 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -72,9 +72,8 @@ class Distro(distros.Distro):
 | 
			
		||||
            r_conf = ResolvConf(util.load_file(self.resolve_conf_fn))
 | 
			
		||||
            r_conf.parse()
 | 
			
		||||
        except IOError:
 | 
			
		||||
            util.logexc(LOG,
 | 
			
		||||
                        "Failed at parsing %s reverting to an empty instance",
 | 
			
		||||
                        self.resolve_conf_fn)
 | 
			
		||||
            util.logexc(LOG, "Failed at parsing %s reverting to an empty "
 | 
			
		||||
                        "instance", self.resolve_conf_fn)
 | 
			
		||||
            r_conf = ResolvConf('')
 | 
			
		||||
            r_conf.parse()
 | 
			
		||||
        if dns_servers:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2012 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -117,10 +117,9 @@ def run_part(mod, data, filename, payload, frequency, headers):
 | 
			
		||||
        else:
 | 
			
		||||
            raise ValueError("Unknown module version %s" % (mod_ver))
 | 
			
		||||
    except:
 | 
			
		||||
        util.logexc(LOG, ("Failed calling handler %s (%s, %s, %s)"
 | 
			
		||||
                         " with frequency %s"),
 | 
			
		||||
                    mod, content_type, filename,
 | 
			
		||||
                    mod_ver, frequency)
 | 
			
		||||
        util.logexc(LOG, "Failed calling handler %s (%s, %s, %s) with "
 | 
			
		||||
                    "frequency %s", mod, content_type, filename, mod_ver,
 | 
			
		||||
                    frequency)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def call_begin(mod, data, frequency):
 | 
			
		||||
@@ -158,8 +157,8 @@ def walker_handle_handler(pdata, _ctype, _filename, payload):
 | 
			
		||||
        handlers.register(mod)
 | 
			
		||||
        pdata['handlercount'] = curcount + 1
 | 
			
		||||
    except:
 | 
			
		||||
        util.logexc(LOG, ("Failed at registering python file: %s"
 | 
			
		||||
                          " (part handler %s)"), modfname, curcount)
 | 
			
		||||
        util.logexc(LOG, "Failed at registering python file: %s (part "
 | 
			
		||||
                    "handler %s)", modfname, curcount)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _extract_first_or_bytes(blob, size):
 | 
			
		||||
 
 | 
			
		||||
@@ -70,5 +70,5 @@ class BootHookPartHandler(handlers.Handler):
 | 
			
		||||
        except util.ProcessExecutionError:
 | 
			
		||||
            util.logexc(LOG, "Boothooks script %s execution error", filepath)
 | 
			
		||||
        except Exception:
 | 
			
		||||
            util.logexc(LOG, ("Boothooks unknown "
 | 
			
		||||
                              "error when running %s"), filepath)
 | 
			
		||||
            util.logexc(LOG, "Boothooks unknown error when running %s",
 | 
			
		||||
                        filepath)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2012 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -216,8 +216,8 @@ class ConfigMerger(object):
 | 
			
		||||
                if ds_cfg and isinstance(ds_cfg, (dict)):
 | 
			
		||||
                    d_cfgs.append(ds_cfg)
 | 
			
		||||
            except:
 | 
			
		||||
                util.logexc(LOG, ("Failed loading of datasource"
 | 
			
		||||
                                  " config object from %s"), self._ds)
 | 
			
		||||
                util.logexc(LOG, "Failed loading of datasource config object "
 | 
			
		||||
                            "from %s", self._ds)
 | 
			
		||||
        return d_cfgs
 | 
			
		||||
 | 
			
		||||
    def _get_env_configs(self):
 | 
			
		||||
@@ -227,8 +227,8 @@ class ConfigMerger(object):
 | 
			
		||||
            try:
 | 
			
		||||
                e_cfgs.append(util.read_conf(e_fn))
 | 
			
		||||
            except:
 | 
			
		||||
                util.logexc(LOG, ('Failed loading of env. config'
 | 
			
		||||
                                  ' from %s'), e_fn)
 | 
			
		||||
                util.logexc(LOG, 'Failed loading of env. config from %s',
 | 
			
		||||
                            e_fn)
 | 
			
		||||
        return e_cfgs
 | 
			
		||||
 | 
			
		||||
    def _get_instance_configs(self):
 | 
			
		||||
@@ -242,8 +242,8 @@ class ConfigMerger(object):
 | 
			
		||||
            try:
 | 
			
		||||
                i_cfgs.append(util.read_conf(cc_fn))
 | 
			
		||||
            except:
 | 
			
		||||
                util.logexc(LOG, ('Failed loading of cloud-config'
 | 
			
		||||
                                      ' from %s'), cc_fn)
 | 
			
		||||
                util.logexc(LOG, 'Failed loading of cloud-config from %s',
 | 
			
		||||
                            cc_fn)
 | 
			
		||||
        return i_cfgs
 | 
			
		||||
 | 
			
		||||
    def _read_cfg(self):
 | 
			
		||||
@@ -259,8 +259,8 @@ class ConfigMerger(object):
 | 
			
		||||
                try:
 | 
			
		||||
                    cfgs.append(util.read_conf(c_fn))
 | 
			
		||||
                except:
 | 
			
		||||
                    util.logexc(LOG, ("Failed loading of configuration"
 | 
			
		||||
                                       " from %s"), c_fn)
 | 
			
		||||
                    util.logexc(LOG, "Failed loading of configuration from %s",
 | 
			
		||||
                                c_fn)
 | 
			
		||||
 | 
			
		||||
        cfgs.extend(self._get_env_configs())
 | 
			
		||||
        cfgs.extend(self._get_instance_configs())
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,11 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2009-2010 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Joe VLcek <JVLcek@RedHat.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
#
 | 
			
		||||
#    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
 | 
			
		||||
@@ -79,7 +80,7 @@ def read_user_data_callback(mount_dir):
 | 
			
		||||
        try:
 | 
			
		||||
            user_data = util.load_file(user_data_file).strip()
 | 
			
		||||
        except IOError:
 | 
			
		||||
            util.logexc(LOG, ('Failed accessing user data file.'))
 | 
			
		||||
            util.logexc(LOG, 'Failed accessing user data file.')
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
    return user_data
 | 
			
		||||
@@ -178,7 +179,7 @@ class DataSourceAltCloud(sources.DataSource):
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
        # No user data found
 | 
			
		||||
        util.logexc(LOG, ('Failed accessing user data.'))
 | 
			
		||||
        util.logexc(LOG, 'Failed accessing user data.')
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    def user_data_rhevm(self):
 | 
			
		||||
@@ -205,12 +206,12 @@ class DataSourceAltCloud(sources.DataSource):
 | 
			
		||||
            (cmd_out, _err) = util.subp(cmd)
 | 
			
		||||
            LOG.debug(('Command: %s\nOutput%s') % (' '.join(cmd), cmd_out))
 | 
			
		||||
        except ProcessExecutionError, _err:
 | 
			
		||||
            util.logexc(LOG, (('Failed command: %s\n%s') % \
 | 
			
		||||
                (' '.join(cmd), _err.message)))
 | 
			
		||||
            util.logexc(LOG, 'Failed command: %s\n%s', ' '.join(cmd),
 | 
			
		||||
                        _err.message)
 | 
			
		||||
            return False
 | 
			
		||||
        except OSError, _err:
 | 
			
		||||
            util.logexc(LOG, (('Failed command: %s\n%s') % \
 | 
			
		||||
                (' '.join(cmd), _err.message)))
 | 
			
		||||
            util.logexc(LOG, 'Failed command: %s\n%s', ' '.join(cmd),
 | 
			
		||||
                        _err.message)
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
        floppy_dev = '/dev/fd0'
 | 
			
		||||
@@ -222,12 +223,12 @@ class DataSourceAltCloud(sources.DataSource):
 | 
			
		||||
            (cmd_out, _err) = util.subp(cmd)
 | 
			
		||||
            LOG.debug(('Command: %s\nOutput%s') % (' '.join(cmd), cmd_out))
 | 
			
		||||
        except ProcessExecutionError, _err:
 | 
			
		||||
            util.logexc(LOG, (('Failed command: %s\n%s') % \
 | 
			
		||||
                (' '.join(cmd), _err.message)))
 | 
			
		||||
            util.logexc(LOG, 'Failed command: %s\n%s', ' '.join(cmd),
 | 
			
		||||
                        _err.message)
 | 
			
		||||
            return False
 | 
			
		||||
        except OSError, _err:
 | 
			
		||||
            util.logexc(LOG, (('Failed command: %s\n%s') % \
 | 
			
		||||
                (' '.join(cmd), _err.message)))
 | 
			
		||||
            util.logexc(LOG, 'Failed command: %s\n%s', ' '.join(cmd),
 | 
			
		||||
                        _err.message)
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
@@ -236,8 +237,8 @@ class DataSourceAltCloud(sources.DataSource):
 | 
			
		||||
            if err.errno != errno.ENOENT:
 | 
			
		||||
                raise
 | 
			
		||||
        except util.MountFailedError:
 | 
			
		||||
            util.logexc(LOG, ("Failed to mount %s"
 | 
			
		||||
                              " when looking for user data"), floppy_dev)
 | 
			
		||||
            util.logexc(LOG, "Failed to mount %s when looking for user data",
 | 
			
		||||
                        floppy_dev)
 | 
			
		||||
 | 
			
		||||
        self.userdata_raw = return_str
 | 
			
		||||
        self.metadata = META_DATA_NOT_SUPPORTED
 | 
			
		||||
@@ -272,8 +273,8 @@ class DataSourceAltCloud(sources.DataSource):
 | 
			
		||||
                if err.errno != errno.ENOENT:
 | 
			
		||||
                    raise
 | 
			
		||||
            except util.MountFailedError:
 | 
			
		||||
                util.logexc(LOG, ("Failed to mount %s"
 | 
			
		||||
                                  " when looking for user data"), cdrom_dev)
 | 
			
		||||
                util.logexc(LOG, "Failed to mount %s when looking for user "
 | 
			
		||||
                            "data", cdrom_dev)
 | 
			
		||||
 | 
			
		||||
        self.userdata_raw = return_str
 | 
			
		||||
        self.metadata = META_DATA_NOT_SUPPORTED
 | 
			
		||||
 
 | 
			
		||||
@@ -4,11 +4,13 @@
 | 
			
		||||
#    Copyright (C) 2012 Cosmin Luta
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#    Copyright (C) 2012 Gerard Dethier
 | 
			
		||||
#    Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Cosmin Luta <q4break@gmail.com>
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
#    Author: Joshua Harlow <harlowja@yahoo-inc.com>
 | 
			
		||||
#    Author: Gerard Dethier <g.dethier@gmail.com>
 | 
			
		||||
#    Author: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
			
		||||
#
 | 
			
		||||
#    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
 | 
			
		||||
@@ -109,8 +111,8 @@ class DataSourceCloudStack(sources.DataSource):
 | 
			
		||||
                      int(time.time() - start_time))
 | 
			
		||||
            return True
 | 
			
		||||
        except Exception:
 | 
			
		||||
            util.logexc(LOG, ('Failed fetching from metadata '
 | 
			
		||||
                              'service %s'), self.metadata_address)
 | 
			
		||||
            util.logexc(LOG, 'Failed fetching from metadata service %s',
 | 
			
		||||
                        self.metadata_address)
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def get_instance_id(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2009-2010 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -119,8 +119,8 @@ class DataSourceNoCloud(sources.DataSource):
 | 
			
		||||
                    if e.errno != errno.ENOENT:
 | 
			
		||||
                        raise
 | 
			
		||||
                except util.MountFailedError:
 | 
			
		||||
                    util.logexc(LOG, ("Failed to mount %s"
 | 
			
		||||
                                      " when looking for data"), dev)
 | 
			
		||||
                    util.logexc(LOG, "Failed to mount %s when looking for "
 | 
			
		||||
                                "data", dev)
 | 
			
		||||
 | 
			
		||||
        # There was no indication on kernel cmdline or data
 | 
			
		||||
        # in the seeddir suggesting this handler should be used.
 | 
			
		||||
 
 | 
			
		||||
@@ -229,11 +229,9 @@ def extract_authorized_keys(username):
 | 
			
		||||
        except (IOError, OSError):
 | 
			
		||||
            # Give up and use a default key filename
 | 
			
		||||
            auth_key_fn = os.path.join(ssh_dir, 'authorized_keys')
 | 
			
		||||
            util.logexc(LOG, ("Failed extracting 'AuthorizedKeysFile'"
 | 
			
		||||
                              " in ssh config"
 | 
			
		||||
                              " from %r, using 'AuthorizedKeysFile' file"
 | 
			
		||||
                              " %r instead"),
 | 
			
		||||
                        DEF_SSHD_CFG, auth_key_fn)
 | 
			
		||||
            util.logexc(LOG, "Failed extracting 'AuthorizedKeysFile' in ssh "
 | 
			
		||||
                        "config from %r, using 'AuthorizedKeysFile' file "
 | 
			
		||||
                        "%r instead", DEF_SSHD_CFG, auth_key_fn)
 | 
			
		||||
    return (auth_key_fn, parse_authorized_keys(auth_key_fn))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2012 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -154,9 +154,8 @@ class Init(object):
 | 
			
		||||
                try:
 | 
			
		||||
                    util.chownbyname(log_file, u, g)
 | 
			
		||||
                except OSError:
 | 
			
		||||
                    util.logexc(LOG, ("Unable to change the ownership"
 | 
			
		||||
                                      " of %s to user %s, group %s"),
 | 
			
		||||
                                log_file, u, g)
 | 
			
		||||
                    util.logexc(LOG, "Unable to change the ownership of %s to "
 | 
			
		||||
                                "user %s, group %s", log_file, u, g)
 | 
			
		||||
 | 
			
		||||
    def read_cfg(self, extra_fns=None):
 | 
			
		||||
        # None check so that we don't keep on re-loading if empty
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# vi: ts=4 expandtab
 | 
			
		||||
#
 | 
			
		||||
#    Copyright (C) 2012 Canonical Ltd.
 | 
			
		||||
#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012, 2013 Hewlett-Packard Development Company, L.P.
 | 
			
		||||
#    Copyright (C) 2012 Yahoo! Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Author: Scott Moser <scott.moser@canonical.com>
 | 
			
		||||
@@ -219,8 +219,7 @@ def fork_cb(child_cb, *args):
 | 
			
		||||
            child_cb(*args)
 | 
			
		||||
            os._exit(0)  # pylint: disable=W0212
 | 
			
		||||
        except:
 | 
			
		||||
            logexc(LOG, ("Failed forking and"
 | 
			
		||||
                         " calling callback %s"),
 | 
			
		||||
            logexc(LOG, "Failed forking and calling callback %s",
 | 
			
		||||
                   type_utils.obj_name(child_cb))
 | 
			
		||||
            os._exit(1)  # pylint: disable=W0212
 | 
			
		||||
    else:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user