Exemplo n.º 1
0
    def test_expand6(self):
        "Try self-referential expansions"
        enva = Environment(ENV4a, CONFIG4a)
        self.assertEqual(canonical(enva.expanded()),
"[('ADMINVAR1', 'user'), ('ADMINVAR2', ''), ('ADMINVAR3', 'admin'), ('PATH', '/usr/local/bin:/bin'), ('THEREPATH', '/there')]")
        envb = Environment(enva)
        self.assertEqual(canonical(envb.expanded()),
"[('ADMINVAR1', 'user'), ('ADMINVAR2', ''), ('ADMINVAR3', 'admin'), ('PATH', '/usr/local/bin:/bin'), ('THEREPATH', '/there')]")
        envc = Environment(envb, CONFIG4c)
        self.assertEqual(canonical(envc.expanded()),
"[('ADMINVAR1', 'user'), ('ADMINVAR2', ''), ('ADMINVAR3', 'admin'), ('MISCPATH', '/mislibs'), ('PATH', '/usr/python/bin:/usr/local/bin:/bin'), ('PYAGAIN', '/mislibs:/pythonlibs:'), ('PYPATH', '/pythonlibs:'), ('THEREPATH', '/mislibs:/there')]")
Exemplo n.º 2
0
 def test_expand6(self):
     "Try self-referential expansions"
     enva = Environment(ENV4a, CONFIG4a)
     self.assertEqual(
         canonical(enva.expanded()),
         "[('ADMINVAR1', 'user'), ('ADMINVAR2', ''), ('ADMINVAR3', 'admin'), ('PATH', '/usr/local/bin:/bin'), ('THEREPATH', '/there')]"
     )
     envb = Environment(enva)
     self.assertEqual(
         canonical(envb.expanded()),
         "[('ADMINVAR1', 'user'), ('ADMINVAR2', ''), ('ADMINVAR3', 'admin'), ('PATH', '/usr/local/bin:/bin'), ('THEREPATH', '/there')]"
     )
     envc = Environment(envb, CONFIG4c)
     self.assertEqual(
         canonical(envc.expanded()),
         "[('ADMINVAR1', 'user'), ('ADMINVAR2', ''), ('ADMINVAR3', 'admin'), ('MISCPATH', '/mislibs'), ('PATH', '/usr/python/bin:/usr/local/bin:/bin'), ('PYAGAIN', '/mislibs:/pythonlibs:'), ('PYPATH', '/pythonlibs:'), ('THEREPATH', '/mislibs:/there')]"
     )
Exemplo n.º 3
0
    def __init__(self, options):
        self.sockname = options['--socket']
        if not self.sockname:
            self.sockname = "/tmp/sdnotify-proxy-{0}.sock".format(os.getpid())

        self.proxy_enabled = parent_socket and not options['--noproxy']
        if options['--wait-stop']:
            self.wait_mode = 'stop'
        elif options['--wait-ready']:
            self.wait_mode = 'ready'

        if options['--timeout'] and self.wait_mode:
            self.timeout = float(options['--timeout'])

        self.verbose = options['--verbose']

        # Modify original environment

        os.environ['NOTIFY_SOCKET'] = self.sockname

        # Set up the environment, reparse the options, build the final command
        Environment.set_parse_parameters('%', '{')
        env = Environment()

        env['PID'] = str(os.getpid())
        env['SOCKET_ARGS'] = options['--template'] or DEFAULT_TEMPLATE
        if parent_socket:
            env['ORIG_NOTIFY_SOCKET'] = parent_socket

        env = env.expanded()

        self.proc_args = shlex.split(
            env.expand(' '.join(
                maybe_quote(arg)
                for arg in [options['COMMAND']] + options['ARGS'])))

        self.listener = NotifyListener(self.sockname,
                                       onNotify=self.notify_received,
                                       onClose=self._parent_closed)
        loop.add_signal_handler(signal.SIGTERM, self._got_sig)
        loop.add_signal_handler(signal.SIGINT, self._got_sig)

        proctitle = '[sdnotify-exec]'

        try:
            from setproctitle import setproctitle
            setproctitle(proctitle)
        except ImportError:
            pass
Exemplo n.º 4
0
    def __init__(self, options):
        self.sockname = options['--socket']
        if not self.sockname:
            self.sockname = "/tmp/sdnotify-proxy-{0}.sock".format(os.getpid())

        self.proxy_enabled = parent_socket and not options['--noproxy']
        if options['--wait-stop']:
            self.wait_mode = 'stop'
        elif options['--wait-ready']:
            self.wait_mode = 'ready'

        if options['--timeout'] and self.wait_mode:
            self.timeout = float(options['--timeout'])

        self.verbose = options['--verbose']

        # Modify original environment

        os.environ['NOTIFY_SOCKET'] = self.sockname

        # Set up the environment, reparse the options, build the final command
        Environment.set_parse_parameters('%', '{')
        env = Environment()

        env['PID'] = str(os.getpid())
        env['SOCKET_ARGS'] = options['--template'] or DEFAULT_TEMPLATE
        if parent_socket:
            env['ORIG_NOTIFY_SOCKET'] = parent_socket
        
        env = env.expanded()

        self.proc_args = shlex.split(env.expand(' '.join(maybe_quote(arg) 
                                                         for arg in [options['COMMAND']] + options['ARGS'])))

        self.listener = NotifyListener(self.sockname, 
                                       onNotify = self.notify_received,
                                       onClose = self._parent_closed)
        loop.add_signal_handler(signal.SIGTERM, self._got_sig)
        loop.add_signal_handler(signal.SIGINT, self._got_sig)

        proctitle = '[sdnotify-exec]'

        try:
            from setproctitle import setproctitle
            setproctitle(proctitle)
        except ImportError:
            pass