예제 #1
0
    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)
예제 #2
0
    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):
        """
        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)
예제 #5
0
    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
예제 #6
0
    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