def main(): """ Point d'entrée pour le script de réglage des permissions. """ prepare_argparse() options = _parse_args(sys.argv[1:]) # Map les aliases vers la commande "standard". aliases = { 'delete': 'remove', 'rm': 'remove', 'del': 'remove', 'update': 'add', } current_user = pwd.getpwuid(os.getuid()) # Seul "root" (UID 0) est autorisé à changer les permissions # dans Vigilo de façon arbitraire. if current_user.pw_uid != 0: print _("You must be root to use this script.") sys.exit(1) if not _prepare_db(options): # Inutile d'afficher un message d'erreur ici : # _prepare_db() le fait déjà. sys.exit(1) from vigilo.models.scripts.permissions import commands # On récupère la commande à exécuter (en gérant le cas des aliases) # et on appelle la fonction associée. cmd = aliases.get(options.action, options.action) func = getattr(commands, "cmd_" + cmd) sys.exit(func(options))
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)
def main(): # Chargement des traductions d'optparse. prepare_argparse() parser = optparse.OptionParser(_("%prog [options] command [arguments]")) parser.add_option("-n", "--dry-run", action="store_true", dest="dryrun", help=_("Only print the command that would be run")) opts, args = parser.parse_args() if not args: parser.error(N_("No command selected. Available commands: %s") % ", ".join(COMMANDS.keys())) cmd_name = args[0] if cmd_name not in COMMANDS: parser.error(N_("Unknown command. Available commands: %s") % ", ".join(COMMANDS.keys())) settings.load_module("vigilo.vigiconf", "settings-local.ini") cmd_args = inspect.getargspec(COMMANDS[cmd_name].__init__) cmd_min_args = len(cmd_args[0]) - 1 if cmd_args[3]: cmd_min_args -= len(cmd_args[3]) if len(args) < cmd_min_args or len(args) > len(cmd_args[0]): args_list = [] for index, arg in enumerate(cmd_args[0][1:]): if index + 1 > cmd_min_args: arg = "[%s]" % arg args_list.append(arg) parser.error(N_("Wrong number of arguments. Expected: %s") % " ".join(args_list)) cmd = COMMANDS[cmd_name](*args[1:]) if opts.dryrun: cmd.debug = True try: cmd.run() except CommandPrereqError, e: print >> sys.stderr, N_("Setup error: %s") % e sys.exit(11)
def main(): """ Cette fonction est appelée lorsqu'un utilisateur lance la commande 'vigilo-plugins'. Cet utilitaire permet de lister le contenu d'un point d'entrée. """ prepare_argparse() parser = OptionParser() parser.add_option('-p', '--provider', action="store_true", dest="display_provider", default=False, help=_("Displays the name and location of the Python package " "which provides this feature.")) opts, args = parser.parse_args() # Sans argument, liste les noms des groupes de points d'entrée # se rapportant à Vigilo. if not args: groups = {} vigilo_groups = ('vigilo.', 'vigiadmin.', 'vigiboard.', 'vigiconf.', 'vigigraph.', 'vigimap.', 'vigirrd.') for distro in working_set: for group in distro.get_entry_map().keys(): if group.startswith(vigilo_groups): groups.setdefault(group, []) groups[group].append( distro.project_name + ' ' + distro.version) print _("Available entry-points groups:") for group in sorted(list(groups)): print "-", group, if opts.display_provider: print "--", _("Provided by:"), \ ", ".join(sorted(groups[group])), print sys.exit(0) for ep in working_set.iter_entry_points(args[0]): print "-", ep.name, if opts.display_provider: print "--", _("Provided by:"), ep.dist, print sys.exit(0)