Exemple #1
0
    def wait_for_idle(self, timeout=None):

        if "--processes" in self.cmdline:
            print(
                "Warning: wait_for_idle() doesn't support multiprocess workers yet"
            )
            return False

        if self.agent:
            print("Warning: wait_for_idle() doesn't support agent yet")
            return False

        if self.process.returncode is not None:
            return True

        try:
            wait_for_net_service("127.0.0.1",
                                 self.admin_port,
                                 poll_interval=0.01,
                                 timeout=timeout)
            f = urllib.request.urlopen("http://127.0.0.1:%s/wait_for_idle" %
                                       self.admin_port)
            data = f.read().decode('utf-8')
            assert data == "idle"
            return True
        except Exception as e:
            print("Couldn't wait_for_idle: %s" % e)
            return False
Exemple #2
0
 def get_report(self, with_memory=False):
     wait_for_net_service("127.0.0.1", 20020, poll_interval=0.01)
     f = urllib.request.urlopen("http://127.0.0.1:20020/report%s" %
                                ("_mem" if with_memory else ""))
     data = json.loads(f.read().decode('utf-8'))
     f.close()
     return data
Exemple #3
0
    def start(self, cmdline=None, env=None, expected_children=0):

        self.stopped = False
        self.process_children = []

        if not cmdline:
            cmdline = self.cmdline
        if env is None:
            env = {}

        # Kept from parent env
        for env_key in ["PATH", "GEVENT_LOOP", "VIRTUAL_ENV"]:
            if os.environ.get(env_key) and not env.get(env_key):
                env[env_key] = os.environ.get(env_key)

        if self.quiet:
            stdout = open(os.devnull, 'w')
        else:
            stdout = None

        self.cmdline = cmdline
        # print cmdline
        self.process = subprocess.Popen(re.split(
            r"\s+", cmdline) if isinstance(cmdline, basestring) else cmdline,
                                        shell=False,
                                        close_fds=True,
                                        env=env,
                                        cwd=os.getcwd(),
                                        stdout=stdout)

        if self.quiet:
            stdout.close()

        # Wait for children to start
        if expected_children > 0:
            psutil_process = psutil.Process(self.process.pid)

            while True:
                self.process_children = psutil_process.children(recursive=True)
                # print("Expecting %s children of pid %s, got %s" % (
                #     expected_children, self.process.pid, len(self.process_children))
                # )
                if len(self.process_children) >= expected_children:
                    break
                time.sleep(0.1)

        if self.wait_port:
            wait_for_net_service("127.0.0.1",
                                 int(self.wait_port),
                                 poll_interval=0.01)

        self.started = True
Exemple #4
0
    def start(self, cmdline=None, env=None, expected_children=0):

        self.stopped = False
        self.process_children = []

        if not cmdline:
            cmdline = self.cmdline
        if env is None:
            env = {}

        # Kept from parent env
        for env_key in ["PATH", "GEVENT_LOOP", "VIRTUAL_ENV"]:
            if os.environ.get(env_key) and not env.get(env_key):
                env[env_key] = os.environ.get(env_key)

        if self.quiet:
            stdout = open(os.devnull, 'w')
        else:
            stdout = None

        self.cmdline = cmdline
        # print cmdline
        self.process = subprocess.Popen(re.split(r"\s+", cmdline) if type(cmdline) in [str, unicode] else cmdline,
                                        shell=False, close_fds=True, env=env, cwd=os.getcwd(), stdout=stdout)

        if self.quiet:
            stdout.close()

        # Wait for children to start
        if expected_children > 0:
            psutil_process = psutil.Process(self.process.pid)

            # print "Expecting %s children, got %s" % (expected_children,
            # psutil_process.get_children(recursive=False))
            while True:
                self.process_children = psutil_process.get_children(
                    recursive=True)
                if len(self.process_children) >= expected_children:
                    break
                time.sleep(0.1)

        if self.wait_port:
            wait_for_net_service("127.0.0.1", int(self.wait_port), poll_interval=0.01)
Exemple #5
0
 def get_report(self):
   wait_for_net_service("127.0.0.1", 20020)
   f = urllib2.urlopen("http://127.0.0.1:20020")
   data = json.load(f)
   f.close()
   return data
Exemple #6
0
 def get_report(self, with_memory=False):
     wait_for_net_service("127.0.0.1", 20020, poll_interval=0.01)
     f = urllib2.urlopen("http://127.0.0.1:20020/report%s" % ("_mem" if with_memory else ""))
     data = json.load(f)
     f.close()
     return data
Exemple #7
0
 def get_report(self):
     wait_for_net_service("127.0.0.1", 20020, poll_interval=0.01)
     f = urllib2.urlopen("http://127.0.0.1:20020")
     data = json.load(f)
     f.close()
     return data