def init_driver_process_client(self): """ @brief Launch the driver process and driver client @retval return driver process and driver client object """ log.info("Startup Driver Process") this_pid = os.getpid() (dvr_proc, cmd_port, evt_port) = ZmqDriverProcess.launch_process( self._test_config.driver_module, self._test_config.driver_class, self._test_config.working_dir, this_pid) self.driver_process = dvr_proc log.info('Started driver process for %d %d %s %s' % (cmd_port, evt_port, self._test_config.driver_module, self._test_config.driver_class)) log.info('Driver process pid %d' % self.driver_process.pid) # Create driver client. self.driver_client = ZmqDriverClient('localhost', cmd_port, evt_port) log.info('Created driver client for %d %d %s %s' % (cmd_port, evt_port, self._test_config.driver_module, self._test_config.driver_class)) # Start client messaging. self.driver_client.start_messaging(self.event_received) log.info('Driver messaging started.') gevent.sleep(.5)
def init_driver_process_client(self): """ @brief Launch the driver process and driver client @retval return driver process and driver client object """ log.info("Startup Driver Process") this_pid = os.getpid() (dvr_proc, cmd_port, evt_port) = ZmqDriverProcess.launch_process( self._test_config.driver_module, self._test_config.driver_class, self._test_config.working_dir, this_pid ) self.driver_process = dvr_proc log.info( "Started driver process for %d %d %s %s" % (cmd_port, evt_port, self._test_config.driver_module, self._test_config.driver_class) ) log.info("Driver process pid %d" % self.driver_process.pid) # Create driver client. self.driver_client = ZmqDriverClient("localhost", cmd_port, evt_port) log.info( "Created driver client for %d %d %s %s" % (cmd_port, evt_port, self._test_config.driver_module, self._test_config.driver_class) ) # Start client messaging. self.driver_client.start_messaging(self.event_received) log.info("Driver messaging started.") gevent.sleep(0.5)
def start_driver(self): """ Start the driver process. """ # Launch driver process based on test config. this_pid = os.getpid() (dvr_proc, cmd_port, evt_port) = ZmqDriverProcess.launch_process(self.driver_module, self.driver_class, self.work_dir, this_pid) self._dvr_proc = dvr_proc mi_logger.info('Started driver process for %d %d %s %s', cmd_port, evt_port, self.driver_module, self.driver_class) mi_logger.info('Driver process pid %d', self._dvr_proc.pid) # Create driver client. self._dvr_client = ZmqDriverClient('localhost', cmd_port, evt_port) mi_logger.info('Created driver client for %d %d %s %s', cmd_port, evt_port, self.driver_module, self.driver_class) # Start client messaging. self._dvr_client.start_messaging(self.evt_recd) mi_logger.info('Driver messaging started.') gevent.sleep(.5)
def _start_driver(self, dvr_config): """ Start the driver process and driver client. @param dvr_config The driver configuration. @param comms_config The driver communications configuration. @retval None or error. """ try: cmd_port = dvr_config['cmd_port'] evt_port = dvr_config['evt_port'] dvr_mod = dvr_config['dvr_mod'] dvr_cls = dvr_config['dvr_cls'] svr_addr = dvr_config['svr_addr'] except (TypeError, KeyError): # Not a dict. or missing required parameter. log.error( 'CiLogger._start_driver(): missing required parameter in start_driver.' ) return InstErrorCode.REQUIRED_PARAMETER # Launch driver process. self._dvr_proc = ZmqDriverProcess.launch_process( cmd_port, evt_port, dvr_mod, dvr_cls) self._dvr_proc.poll() if self._dvr_proc.returncode: # Error proc didn't start. log.error( 'CiLogger._start_driver(): driver process did not launch.') return InstErrorCode.AGENT_INIT_FAILED log.info('CiLogger._start_driver(): launched driver process.') # Create client and start messaging. self._dvr_client = ZmqDriverClient(svr_addr, cmd_port, evt_port) self._dvr_client.start_messaging(self.evt_recv) log.info('CiLogger._start_driver(): driver process client started.') time.sleep(1) try: retval = self._dvr_client.cmd_dvr('process_echo', 'Test.') log.info( 'CiLogger._start_driver(): driver process echo test: %s.' % str(retval)) except Exception: self._dvr_proc.terminate() self._dvr_proc.wait() self._dvr_proc = None self._dvr_client = None log.error( 'CiLogger._start_driver(): error commanding driver process.') return InstErrorCode.AGENT_INIT_FAILED else: log.info('CiLogger._start_driver(): started its driver.') return self._dvr_proc.pid
def _start_driver(self, dvr_config): """ Start the driver process and driver client. @param dvr_config The driver configuration. @param comms_config The driver communications configuration. @retval None or error. """ try: cmd_port = dvr_config['cmd_port'] evt_port = dvr_config['evt_port'] dvr_mod = dvr_config['dvr_mod'] dvr_cls = dvr_config['dvr_cls'] svr_addr = dvr_config['svr_addr'] except (TypeError, KeyError): # Not a dict. or missing required parameter. log.error('CiLogger._start_driver(): missing required parameter in start_driver.') return InstErrorCode.REQUIRED_PARAMETER # Launch driver process. self._dvr_proc = ZmqDriverProcess.launch_process(cmd_port, evt_port, dvr_mod, dvr_cls) self._dvr_proc.poll() if self._dvr_proc.returncode: # Error proc didn't start. log.error('CiLogger._start_driver(): driver process did not launch.') return InstErrorCode.AGENT_INIT_FAILED log.info('CiLogger._start_driver(): launched driver process.') # Create client and start messaging. self._dvr_client = ZmqDriverClient(svr_addr, cmd_port, evt_port) self._dvr_client.start_messaging(self.evt_recv) log.info('CiLogger._start_driver(): driver process client started.') time.sleep(1) try: retval = self._dvr_client.cmd_dvr('process_echo', 'Test.') log.info('CiLogger._start_driver(): driver process echo test: %s.' %str(retval)) except Exception: self._dvr_proc.terminate() self._dvr_proc.wait() self._dvr_proc = None self._dvr_client = None log.error('CiLogger._start_driver(): error commanding driver process.') return InstErrorCode.AGENT_INIT_FAILED else: log.info('CiLogger._start_driver(): started its driver.') return self._dvr_proc.pid