Example #1
0
    def assert_driver_process_launch_success(self, driver_config):
        """
        Verify that we can launch a driver using a driver config.
        @param driver_config: driver configuration dictionary
        """
        driver_process = DriverProcess.get_process(driver_config, True)
        self.assertTrue(driver_process)

        driver_process.launch()
        self.assertTrue(driver_process.getpid())

        # command not portable
        #log.info("Driver memory usage after init: %d", driver_process.memory_usage())

        self.assertGreater(driver_process._command_port, 0)
        self.assertGreater(driver_process._event_port, 0)

        driver_client = driver_process.get_client()
        self.assertTrue(driver_client)

        driver_client.start_messaging(self.event_received)

        # command not portable
        # self.assertGreater(driver_process.memory_usage(), 0)
        # log.info("Driver memory usage before stop: %d", driver_process.memory_usage())

        driver_process.stop()
        self.assertFalse(driver_process.getpid())
    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")

        driver_config = {
            'dvr_mod'      : self.test_config.driver_module,
            'dvr_cls'      : self.test_config.driver_class,
            'workdir'      : self.test_config.working_dir,
            'comms_config' : self.port_agent_comm_config(),
            'process_type' : self.test_config.driver_process_type,
        }

        self.driver_process = DriverProcess.get_process(driver_config, True)
        self.driver_process.launch()

        # Verify the driver has started.
        if not self.driver_process.getpid():
            log.error('Error starting driver process.')
            raise InstrumentException('Error starting driver process.')

        try:
            driver_client = self.driver_process.get_client()
            driver_client.start_messaging(self.event_received)
            retval = driver_client.cmd_dvr('process_echo', 'Test.')

            self.driver_client = driver_client
        except Exception, e:
            self.driver_process.stop()
            log.error('Error starting driver client. %s', e)
            raise InstrumentException('Error starting driver client.')
    def assert_driver_process_launch_success(self, driver_config):
        """
        Verify that we can launch a driver using a driver config.
        @param driver_config: driver configuration dictionary
        """
        driver_process = DriverProcess.get_process(driver_config, True)
        self.assertTrue(driver_process)

        driver_process.launch()
        self.assertTrue(driver_process.getpid())

        # command not portable
        #log.info("Driver memory usage after init: %d", driver_process.memory_usage())

        self.assertGreater(driver_process._command_port, 0)
        self.assertGreater(driver_process._event_port, 0)

        driver_client = driver_process.get_client()
        self.assertTrue(driver_client)

        driver_client.start_messaging(self.event_received)

        # command not portable
        # self.assertGreater(driver_process.memory_usage(), 0)
        # log.info("Driver memory usage before stop: %d", driver_process.memory_usage())

        driver_process.stop()
        self.assertFalse(driver_process.getpid())
    def test_driver_process(self):
        """
        Test driver process launch
        """
        driver_process = DriverProcess.get_process(self._driver_config, True)
        self.assertTrue(driver_process)

        driver_process.launch()
        self.assertTrue(driver_process.getpid())
        log.info("Driver memory usage after init: %d", driver_process.memory_usage())

        self.assertGreater(driver_process._command_port, 0)
        self.assertGreater(driver_process._event_port, 0)

        driver_client = driver_process.get_client()
        self.assertTrue(driver_client)

        driver_client.start_messaging(self.event_received())

        packet_factories = driver_process.get_packet_factories()
        self.assertTrue(packet_factories)

        self.assertGreater(driver_process.memory_usage(), 0)
        log.info("Driver memory usage before stop: %d", driver_process.memory_usage())

        driver_process.stop()
        self.assertFalse(driver_process.getpid())
    def _start_driver(self, dvr_config):
        ## Part of <update-july-2012>
        ##
        ## Adapted from InstrumentAgent._start_driver(self, dvr_config).
        ##
        """
        Start the driver process and driver client.
        @param dvr_config The driver configuration.
        @raises InstDriverError If the driver or client failed to start properly.
        """

        from ion.agents.instrument.driver_process import DriverProcess

        self._dvr_proc = DriverProcess.get_process(dvr_config, True)
        self._dvr_proc.launch()

        # Verify the driver has started.
        if not self._dvr_proc.getpid():
            log.error('TrhphDriverProxy: error starting driver process.')
            raise InstDriverError('Error starting driver process.')

        def evt_recv(evt):
            """
            Callback to receive asynchronous driver events.
            @param evt The driver event received.
            """
            log.info('TrhphDriverProxy:received driver event %s' % str(evt))

        try:
            driver_client = self._dvr_proc.get_client()
            driver_client.start_messaging(evt_recv)
#            retval = driver_client.cmd_dvr('process_echo', 'Test.')
            self._dvr_client = driver_client

        except Exception, e:
            self._dvr_proc.stop()
            log.error('TrhphDriverProxy: error starting driver client: %s' % e)
            raise InstDriverError('Error starting driver client: %s' % e)
    def _start_driver(self, dvr_config):
        ## Part of <update-july-2012>
        ##
        ## Adapted from InstrumentAgent._start_driver(self, dvr_config).
        ##
        """
        Start the driver process and driver client.
        @param dvr_config The driver configuration.
        @raises InstDriverError If the driver or client failed to start properly.
        """

        from ion.agents.instrument.driver_process import DriverProcess

        self._dvr_proc = DriverProcess.get_process(dvr_config, True)
        self._dvr_proc.launch()

        # Verify the driver has started.
        if not self._dvr_proc.getpid():
            log.error('TrhphDriverProxy: error starting driver process.')
            raise InstDriverError('Error starting driver process.')

        def evt_recv(evt):
            """
            Callback to receive asynchronous driver events.
            @param evt The driver event received.
            """
            log.info('TrhphDriverProxy:received driver event %s' % str(evt))

        try:
            driver_client = self._dvr_proc.get_client()
            driver_client.start_messaging(evt_recv)
            #            retval = driver_client.cmd_dvr('process_echo', 'Test.')
            self._dvr_client = driver_client

        except Exception, e:
            self._dvr_proc.stop()
            log.error('TrhphDriverProxy: error starting driver client: %s' % e)
            raise InstDriverError('Error starting driver client: %s' % e)