Exemplo n.º 1
0
def main(): # pragma: no cover
    # Évite des problèmes d'accès aux fichiers ensuite
    # sur les machines durcies avec un UMASK en 077 (#324).
    os.umask(0022)

    prepare_argparse()
    args = parse_args()

    if args.debug:
        import logging
        LOGGER.parent.setLevel(logging.DEBUG)

    # Pour la commande discover, il n'est pas nécessaire de poser un verrou
    # ou de changer d'utilisateur car la commande ne se connecte pas en SSH
    # aux autres machines (voir #705).
    if args.func != discover and not args.nochuid:
        change_user()

    LOGGER.debug("VigiConf starting...")

    if args.func != discover:
        lockfile = settings["vigiconf"].get("lockfile",
                            "/var/lock/vigilo-vigiconf/vigiconf.token")
        lock_result = grab_lock(lockfile)
        if not lock_result:
            sys.exit(1)

    try:
        args.func(args)
    except VigiConfError, e:
        if args.debug:
            LOGGER.exception(_("VigiConf error: %s"), e.value)
        else:
            LOGGER.error(_("VigiConf error: %s"), e.value)
        sys.exit(1)
Exemplo n.º 2
0
 def create_lockfile(self):
     """
     Gère un verrou fichier pour que le connecteur ne soit exécuté qu'une
     fois.
     """
     if self.lock_file is None:
         return
     self._logger.debug(_("Creating lock file in %s"), self.lock_file)
     result = grab_lock(self.lock_file)
     if result:
         self._logger.debug(_("Lock file successfully created in %s"),
                            self.lock_file)
     else:
         self._result = 4
         self._logger.error(
             _("Error: lockfile found, another instance may be running.")
         )
         reactor.stop()