Exemplo n.º 1
0
 def start(self):
     assert self.start_cmd, 'No start command defined'
     if self.stdout:
         self.stdout = self._reopen(self.stdout)
     if self.stderr:
         self.stderr = self._reopen(self.stderr, 'stderr')
     if isinstance(self.start_cmd, basestring):
         cmd = shlex.split(self.start_cmd)
     else:
         cmd = self.start_cmd
     # make sure we the ports are free
     for server in self.servers:
         assert not util.isUp(
             *server), 'Port already listening %s:%s' % server
     logging.info('Starting server %r', cmd)
     self.process = subprocess.Popen(cmd, **self.subprocess_args)
     to_start = deque(self.servers)
     while to_start:
         time.sleep(0.05)
         returncode = self.process.poll()
         if not returncode is None and returncode != 0:
             raise SystemError("Failed to start server rc=%s cmd=%s" %
                               (returncode, self.start_cmd))
         server = to_start.popleft()
         if not util.isUp(*server):
             logging.info('Server not up %s:%s', *server)
             to_start.append(server)
         else:
             logging.info('Server up %s:%s', *server)
Exemplo n.º 2
0
 def start(self):
     assert self.start_cmd, 'No start command defined'
     if self.stdout:
         self.stdout = self._reopen(self.stdout)
     if self.stderr:
         self.stderr = self._reopen(self.stderr, 'stderr')
     if isinstance(self.start_cmd, basestring):
         cmd = shlex.split(self.start_cmd)
     else:
         cmd = self.start_cmd
     # make sure we the ports are free
     for server in self.servers:
         assert not util.isUp(
             *server), 'Port already listening %s:%s' % server
     logging.info('Starting server %r', cmd)
     self.process = subprocess.Popen(cmd, **self.subprocess_args)
     to_start = deque(self.servers)
     while to_start:
         time.sleep(0.05)
         returncode = self.process.poll()
         if not returncode is None and returncode != 0:
             raise SystemError("Failed to start server rc=%s cmd=%s" %
                               (returncode, self.start_cmd))
         server = to_start.popleft()
         if not util.isUp(*server):
             logging.info('Server not up %s:%s', *server)
             to_start.append(server)
         else:
             logging.info('Server up %s:%s', *server)
Exemplo n.º 3
0
 def setUp(self):
     if util.isUp('', self.port):
         raise RuntimeError, "Port already listening: %r" % self.port
     if not os.path.exists(self.dbDir):
         self.srv.initDB()
     self.srv.start()
     exists, sp = self.snapshotInfo('__scripts__')
     if exists:
         if not self.srv.dbExists(self.dbName):
             self.srv.createDB(self.dbName)
         if self.setup is None:
             self.srv.restore(self.dbName, sp)
     else:
         self.srv.dropDB(self.dbName)
         self.srv.createDB(self.dbName)
         if self.scripts:
             try:
                 self.srv.runScripts(self.dbName, self.scripts)
             except:
                 self.srv.stop()
                 raise
         self.srv.dump(self.dbName, sp)
     # create the snapshot for app
     dirty = False
     if self.setup is not None:
         exists, sps = self.snapshotInfo(self.snapshotIdent)
         if not exists:
             self.setup(self)
             self.srv.dump(self.dbName, sps)
         else:
             self.srv.restore(self.dbName, sps)
Exemplo n.º 4
0
 def tearDown(self):
     self.stop()
     to_stop = deque(self.servers)
     time.sleep(0.05)
     while to_stop:
         server = to_stop.popleft()
         if util.isUp(*server):
             logging.info('Server still up %s:%s', *server)
             to_stop.append(server)
             time.sleep(0.05)
         else:
             logging.info('Server stopped %s:%s', *server)
Exemplo n.º 5
0
 def tearDown(self):
     self.stop()
     to_stop = deque(self.servers)
     time.sleep(0.05)
     while to_stop:
         server = to_stop.popleft()
         if util.isUp(*server):
             logging.info('Server still up %s:%s', *server)
             to_stop.append(server)
             time.sleep(0.05)
         else:
             logging.info('Server stopped %s:%s', *server)