Esempio n. 1
0
    def wait_start(self):
        """Start the process and wait for it to respond on HTTP."""

        for _ in xrange(0, self.START_RETRIES):
            self.port = environment.get_port(self.port_name)
            if environment.get_protocol() == "grpc":
                self.grpc_port = environment.get_port(self.port_name, protocol="grpc")
            else:
                self.grpc_port = None
            logs_subdirectory = environment.get_logs_directory(self.directory)
            cmd = [self.binary, "-port", "%u" % self.port, "-log_dir", logs_subdirectory]
            if environment.get_protocol() == "grpc":
                cmd.extend(["-grpc_port", "%u" % self.grpc_port])
            cmd.extend(self.extraparams)
            logging.info("Starting process: %s", cmd)
            stdout = os.path.join(logs_subdirectory, "%s.%d.log" % (self.name, self.port))
            self.stdout = open(stdout, "w")
            self.process = subprocess.Popen(cmd, stdout=self.stdout, stderr=subprocess.STDOUT)
            timeout = time.time() + 60.0
            while time.time() < timeout:
                if environment.process_is_healthy(self.name, self.addr()) and self.get_vars():
                    logging.info("%s started.", self.name)
                    return
                elif self.process.poll() is not None:
                    logging.error("%s process exited prematurely.", self.name)
                    break
                time.sleep(0.3)

            logging.error("cannot start %s process on time: %s ", self.name, socket.getfqdn())
            self.kill()

        raise Exception("Failed %d times to run %s" % (self.START_RETRIES, self.name))
Esempio n. 2
0
  def vtgate_addr(self):
    """Get the host:port for vtgate."""
    if self.use_vtcombo:
      if environment.get_protocol() == 'grpc':
        return vt_processes.vtcombo_process.grpc_addr()
      return vt_processes.vtcombo_process.addr()

    if environment.get_protocol() == 'grpc':
      return vt_processes.vtgate_process.grpc_addr()
    return vt_processes.vtgate_process.addr()
Esempio n. 3
0
    def wait_start(self):
        """Start the process and wait for it to respond on HTTP."""

        for _ in xrange(0, self.START_RETRIES):
            self.port = environment.get_port(self.port_name,
                                             instance=self.port_instance)
            if environment.get_protocol() == 'grpc':
                self.grpc_port = environment.get_port(
                    self.port_name,
                    instance=self.port_instance,
                    protocol='grpc')
            else:
                self.grpc_port = None
            logs_subdirectory = environment.get_logs_directory(self.directory)
            cmd = [
                self.binary,
                '-port',
                '%u' % self.port,
                '-log_dir',
                logs_subdirectory,
            ]
            if environment.get_protocol() == 'grpc':
                cmd.extend(['-grpc_port', '%u' % self.grpc_port])
            cmd.extend(self.extraparams)
            logging.info('Starting process: %s', cmd)
            stdout = os.path.join(logs_subdirectory,
                                  '%s.%d.log' % (self.name, self.port))
            self.stdout = open(stdout, 'w')
            self.process = subprocess.Popen(cmd,
                                            stdout=self.stdout,
                                            stderr=subprocess.STDOUT)
            timeout = time.time() + 60.0
            while time.time() < timeout:
                if environment.process_is_healthy(
                        self.name, self.addr()) and self.get_vars():
                    logging.info('%s started.', self.name)
                    return
                elif self.process.poll() is not None:
                    logging.error('%s process exited prematurely.', self.name)
                    break
                time.sleep(0.3)

            logging.error('cannot start %s process on time: %s ', self.name,
                          socket.getfqdn())
            self.kill()

        raise Exception('Failed %d times to run %s' %
                        (self.START_RETRIES, self.name))
Esempio n. 4
0
 def config(self):
   """Returns a dict with enough information to be able to connect."""
   if self.mysql_only:
     return self.mysql_db.config()
   elif self.use_vtcombo:
     result = {
         'port': vt_processes.vtcombo_process.port,
         }
     if environment.get_protocol() == 'grpc':
       result['grpc_port'] = vt_processes.vtcombo_process.grpc_port
     return result
   else:
     result = {
         'port': vt_processes.vtgate_process.port,
         }
     if environment.get_protocol() == 'grpc':
       result['grpc_port'] = vt_processes.vtgate_process.grpc_port
     return result
Esempio n. 5
0
    def config(self):
        """Returns a dict with enough information to be able to connect."""
        if self.mysql_only:
            return self.mysql_db.config()

        result = {
            'port': vt_processes.vtcombo_process.port,
            'socket': self.mysql_db.unix_socket(),
        }

        if environment.get_protocol() == 'grpc':
            result['grpc_port'] = vt_processes.vtcombo_process.grpc_port
        return result