def test(self): messaging_system = QueueMessagingSystem() messager = Messager() visibility_endpoint = messager.get_endpoint(messaging_system, "visibility", VisibilityDatagram) visibility_control_endpoint = messager.get_endpoint(messaging_system, "visibilitycontrol", StringMessage) visibility_string_endpoint = messager.get_endpoint(messaging_system, "visibilitystring", StringMessage) tostring_control_endpoint = messager.get_endpoint(messaging_system, "tostringcontrol", StringMessage) string_writer_control_endpoint = messager.get_endpoint(messaging_system, "stringwritercontrol", StringMessage) # set up the visibility datagram source service visibility_datagram_source_service = VisibilityDatagramSourceService("localhost", 3000, visibility_endpoint, visibility_control_endpoint) visibility_datagram_source_service_container = ServiceContainer(visibility_datagram_source_service, messager) tostring_service = ToStringService(visibility_endpoint, visibility_string_endpoint, tostring_control_endpoint) tostring_service_container = ServiceContainer(tostring_service, messager) string_writer_service = StringWriterService(visibility_string_endpoint, string_writer_control_endpoint, "output.txt") string_writer_service_container = ServiceContainer(string_writer_service, messager) # start Ice logging.info("Starting Ice") ice_runner = IceRunner("testbed_data") ice_runner.start() logging.info("Starting services") string_writer_service_container.start() tostring_service_container.start() visibility_datagram_source_service_container.start() logging.info("Starting processing") messager.publish(string_writer_control_endpoint, StringMessage("Start")) messager.publish(tostring_control_endpoint, StringMessage("Start")) messager.publish(visibility_control_endpoint, StringMessage("Start")) # start playback logging.info("Starting playback") playback = Playback("testbed_data") playback.playback("data/ade1card.ms") playback.wait() time.sleep(10) messager.publish(visibility_control_endpoint, StringMessage("Stop")) time.sleep(10) messager.publish(tostring_control_endpoint, StringMessage("Stop")) time.sleep(10) messager.publish(string_writer_control_endpoint, StringMessage("Stop")) time.sleep(10) visibility_datagram_source_service_container.terminate() tostring_service_container.terminate() string_writer_service_container.terminate() # stop Ice logging.info("stopping Ice") ice_runner.stop()
def test(self): messaging_system = QueueMessagingSystem() messager = Messager() metadata_endpoint = messager.get_endpoint(messaging_system, "metadata", TOSMetadata) metadata_control_endpoint = messager.get_endpoint(messaging_system, " metadatacontrol", StringMessage) metadata_string_endpoint = messager.get_endpoint(messaging_system, "metadatastring", StringMessage) tostring_control_endpoint = messager.get_endpoint(messaging_system, "tostringcontrol", StringMessage) string_writer_control_endpoint = messager.get_endpoint(messaging_system, "stringwritercontrol", StringMessage) # start Ice logging.info("Starting Ice") ice_runner = IceRunner("testbed_data") ice_runner.start() # set up the ice metadata source service ice_metadata_source_service = IceMetadataSourceService("localhost", 4061, "IceStorm/[email protected]", "metadata", "IngestPipeline", metadata_endpoint, metadata_control_endpoint) ice_metadata_source_service_container = ServiceContainer(ice_metadata_source_service, messager) tostring_service = ToStringService(metadata_endpoint, metadata_string_endpoint, tostring_control_endpoint) tostring_service_container = ServiceContainer(tostring_service, messager) string_writer_service = StringWriterService(metadata_string_endpoint, string_writer_control_endpoint, "output.txt") string_writer_service_container = ServiceContainer(string_writer_service, messager) logging.info("Starting services") string_writer_service_container.start() tostring_service_container.start() ice_metadata_source_service_container.start() logging.info("Starting processing") messager.publish(string_writer_control_endpoint, StringMessage("Start")) messager.publish(tostring_control_endpoint, StringMessage("Start")) messager.publish(metadata_control_endpoint, StringMessage("Start")) # start playback logging.info("Starting playback") playback = Playback("testbed_data") playback.playback("data/ade1card.ms") playback.wait() time.sleep(10) messager.publish(metadata_control_endpoint, StringMessage("Stop")) time.sleep(10) messager.publish(tostring_control_endpoint, StringMessage("Stop")) time.sleep(10) messager.publish(string_writer_control_endpoint, StringMessage("Stop")) time.sleep(10) ice_metadata_source_service_container.terminate() tostring_service_container.terminate() string_writer_service_container.terminate() # stop Ice logging.info("stopping Ice") ice_runner.stop()
def test(self): messaging_system = QueueMessagingSystem() messager = Messager() metadata_endpoint = messager.get_endpoint(messaging_system, "metadata", TOSMetadata) metadata_control_endpoint = messager.get_endpoint( messaging_system, "metadatacontrol", StringMessage) metadata_metrics_endpoint = messager.get_endpoint( messaging_system, "metadatametrics", Metrics) datagram_endpoint = messager.get_endpoint(messaging_system, "datagram", VisibilityDatagram) datagram_control_endpoint = messager.get_endpoint( messaging_system, "datagramcontrol", StringMessage) datagram_metrics_endpoint = messager.get_endpoint( messaging_system, "datagrammetrics", Metrics) chunk_endpoint = messager.get_endpoint(messaging_system, "chunk", VisibilityChunk) align_control_endpoint = messager.get_endpoint(messaging_system, "aligncontrol", StringMessage) align_metrics_endpoint = messager.get_endpoint(messaging_system, "alignmetrics", Metrics) chunk_string_endpoint = messager.get_endpoint(messaging_system, "chunkstring", StringMessage) to_string_control_endpoint = messager.get_endpoint( messaging_system, "to_stringcontrol", StringMessage) to_string_metrics_endpoint = messager.get_endpoint( messaging_system, "to_stringmetrics", Metrics) string_writer_control_endpoint = messager.get_endpoint( messaging_system, "stringwritercontrol", StringMessage) string_writer_metrics_endpoint = messager.get_endpoint( messaging_system, "stringwritermetrics", Metrics) # start Ice logging.info("Starting Ice") ice_runner = IceRunner("testbed_data") ice_runner.start() # set up the ice metadata source service ice_metadata_source_service = IceMetadataSourceService( "localhost", 4061, "IceStorm/[email protected]", "metadata", "IngestPipeline", metadata_endpoint, metadata_control_endpoint) ice_metadata_source_monitor_adapter = MonitorAdapter( ice_metadata_source_service, "ice_metadata_source_service", metadata_metrics_endpoint) ice_metadata_source_service_container = ServiceContainer( ice_metadata_source_monitor_adapter, messager) # set up the visibility datagram source service visibility_datagram_source_service = VisibilityDatagramSourceService( "localhost", 3000, datagram_endpoint, datagram_control_endpoint) visibility_datagram_source_monitor_adapter = MonitorAdapter( visibility_datagram_source_service, "visibility_datagram_source_service", datagram_metrics_endpoint) visibility_datagram_source_service_container = ServiceContainer( visibility_datagram_source_monitor_adapter, messager) # set up the align service align_service = AlignService(metadata_endpoint, datagram_endpoint, chunk_endpoint, align_control_endpoint) align_monitor_adapter = MonitorAdapter(align_service, "align_service", align_metrics_endpoint) align_service_container = ServiceContainer(align_monitor_adapter, messager) to_string_service = ToStringService(chunk_endpoint, chunk_string_endpoint, to_string_control_endpoint) to_string_monitor_adapter = MonitorAdapter(to_string_service, "to_string_service", to_string_metrics_endpoint) to_string_service_container = ServiceContainer( to_string_monitor_adapter, messager) string_writer_service = StringWriterService( chunk_string_endpoint, string_writer_control_endpoint, "output.txt") string_writer_monitor_adapter = MonitorAdapter( string_writer_service, "string_writer_service", string_writer_metrics_endpoint) string_writer_service_container = ServiceContainer( string_writer_monitor_adapter, messager) monitor_service = GenericMonitorService([ datagram_metrics_endpoint, metadata_metrics_endpoint, align_metrics_endpoint, to_string_metrics_endpoint, string_writer_metrics_endpoint ]) monitor_service_container = ServiceContainer(monitor_service, messager) logging.info("Starting services") monitor_service_container.start() visibility_datagram_source_service_container.start() ice_metadata_source_service_container.start() align_service_container.start() to_string_service_container.start() string_writer_service_container.start() logging.info("Starting processing") messager.publish(datagram_control_endpoint, StringMessage("Start")) messager.publish(metadata_control_endpoint, StringMessage("Start")) messager.publish(align_control_endpoint, StringMessage("Start")) messager.publish(to_string_control_endpoint, StringMessage("Start")) messager.publish(string_writer_control_endpoint, StringMessage("Start")) # start playback logging.info("Starting playback") playback = Playback("testbed_data") playback.playback("data/ade1card.ms") playback.wait() time.sleep(10) messager.publish(datagram_control_endpoint, StringMessage("Stop")) time.sleep(5) messager.publish(metadata_control_endpoint, StringMessage("Stop")) time.sleep(5) messager.publish(align_control_endpoint, StringMessage("Stop")) time.sleep(5) messager.publish(to_string_control_endpoint, StringMessage("Stop")) time.sleep(5) messager.publish(string_writer_control_endpoint, StringMessage("Stop")) ice_metadata_source_service_container.terminate() visibility_datagram_source_service_container.terminate() align_service_container.terminate() to_string_service_container.terminate() string_writer_service_container.terminate() monitor_service_container.terminate() # stop Ice logging.info("stopping Ice") ice_runner.stop()
def test(self): messaging_system = QueueMessagingSystem() messager = Messager() service_runner_factory = ServiceRunnerFactory(messager) configuration_stream = messager.get_stream(messaging_system, "configuration", ConfigurationMessage) control_stream = messager.get_stream(messaging_system, "control", StringMessage) metadata_stream = messager.get_stream(messaging_system, "metadata", TOSMetadata) metadata_metrics_stream = messager.get_stream(messaging_system, "metadatametrics", Metrics) ice_metadata_source_service_runner = service_runner_factory.get_service_runner( IceMetadataSourceService, { "name": "ice_metadata_source_service", "metadata_endpoint": metadata_stream.get_write_endpoint(), "control_endpoint": control_stream.get_read_endpoint() }, metrics_stream=metadata_metrics_stream, configuration_stream=configuration_stream) datagram_stream = messager.get_stream(messaging_system, "datagram", VisibilityDatagram) datagram_metrics_stream = messager.get_stream(messaging_system, "datagrammetrics", Metrics) visibility_datagram_source_service_runner = service_runner_factory.get_service_runner( VisibilityDatagramSourceService, { "name": "visibility_datagram_source_service", "visibility_datagram_endpoint": datagram_stream.get_write_endpoint(), "control_endpoint": control_stream.get_read_endpoint() }, metrics_stream=datagram_metrics_stream, configuration_stream=configuration_stream) # set up the align service chunk_stream = messager.get_stream(messaging_system, "chunk", VisibilityChunk) align_metrics_stream = messager.get_stream(messaging_system, "alignmetrics", Metrics) align_service_runner = service_runner_factory.get_service_runner( AlignService, { "name": "align_service", "datagram_endpoint": datagram_stream.get_read_endpoint(), "metadata_endpoint": metadata_stream.get_read_endpoint(), "chunk_endpoint": chunk_stream.get_write_endpoint(), "control_endpoint": control_stream.get_read_endpoint() }, metrics_stream=align_metrics_stream, configuration_stream=configuration_stream) # set up the uvwcalculation service uvw_chunk_stream = messager.get_stream(messaging_system, "uvwchunk", UVWChunk) uvw_calculation_metrics_stream = messager.get_stream( messaging_system, "uvwcalcmetrics", Metrics) uvw_calculation_service_runner = service_runner_factory.get_service_runner( UVWCalculationService, { "name": "uvw_calculation_service", "observatory_name": "ASKAP", "visibility_chunk_endpoint": chunk_stream.get_read_endpoint(), "metadata_endpoint": metadata_stream.get_read_endpoint(), "uvw_chunk_endpoint": uvw_chunk_stream.get_write_endpoint(), "control_endpoint": control_stream.get_read_endpoint() }, metrics_stream=uvw_calculation_metrics_stream, configuration_stream=configuration_stream) uvw_chunk_string_stream = messager.get_stream(messaging_system, "chunkstring", StringMessage) to_string_metrics_stream = messager.get_stream(messaging_system, "to_stringmetrics", Metrics) to_string_service_runner = service_runner_factory.get_service_runner( ToStringService, { "name": "to_string_service", "input_endpoint": uvw_chunk_stream.get_read_endpoint(), "output_endpoint": uvw_chunk_string_stream.get_write_endpoint(), "control_endpoint": control_stream.get_read_endpoint() }, metrics_stream=to_string_metrics_stream, configuration_stream=configuration_stream) string_writer_metrics_stream = messager.get_stream( messaging_system, "stringwritermetrics", Metrics) string_writer_service_runner = service_runner_factory.get_service_runner( StringWriterService, { "name": "string_writer_service", "string_endpoint": uvw_chunk_string_stream.get_read_endpoint(), "control_endpoint": control_stream.get_read_endpoint() }, metrics_stream=string_writer_metrics_stream, configuration_stream=configuration_stream) monitor_service = GenericMonitorService("generic_monitor_service", [ datagram_metrics_stream.get_read_endpoint(), metadata_metrics_stream.get_read_endpoint(), align_metrics_stream.get_read_endpoint(), uvw_calculation_metrics_stream.get_read_endpoint(), to_string_metrics_stream.get_read_endpoint(), string_writer_metrics_stream.get_read_endpoint() ]) monitor_service_runner = ServiceRunner(monitor_service, messager) configuration_control_stream = messager.get_stream( messaging_system, "configurationcontrol", StringMessage) configuration_service = HardConfigurationService( "configuration_service", configuration_control_stream.get_read_endpoint(), configuration_stream.get_write_endpoint()) configuration_service_runner = ServiceRunner(configuration_service, messager) # start Ice logging.info("Starting Ice") ice_runner = IceRunner("testbed_data") ice_runner.start() logging.info("Starting services") configuration_service_runner.start() monitor_service_runner.start() visibility_datagram_source_service_runner.start() ice_metadata_source_service_runner.start() align_service_runner.start() uvw_calculation_service_runner.start() to_string_service_runner.start() string_writer_service_runner.start() logging.info("Publishing configuration") mainline_configuration_control_endpoint = configuration_control_stream.get_write_endpoint( ) logging.info("Issuing configuration") messager.publish(mainline_configuration_control_endpoint, StringMessage("Start")) time.sleep(10) logging.info("Starting processing") mainline_control_endpoint = control_stream.get_write_endpoint() messager.publish(mainline_control_endpoint, StringMessage("Start")) # start playback logging.info("Starting playback") playback = Playback("testbed_data") playback.playback("data/ade1card.ms") playback.wait() time.sleep(10) messager.publish(mainline_control_endpoint, StringMessage("Stop")) time.sleep(10) ice_metadata_source_service_runner.terminate() visibility_datagram_source_service_runner.terminate() align_service_runner.terminate() uvw_calculation_service_runner.terminate() to_string_service_runner.terminate() string_writer_service_runner.terminate() monitor_service_runner.terminate() configuration_service_runner.terminate() # stop Ice logging.info("stopping Ice") ice_runner.stop()
def test(self): messaging_system = QueueMessagingSystem() messager = Messager() configuration_stream = messager.get_stream(messaging_system, "configuration", ConfigurationMessage) control_stream = messager.get_stream(messaging_system, "control", StringMessage) service_runner_factory = ServiceRunnerFactory(messager) visibility_stream = messager.get_stream(messaging_system, "visibility", VisibilityDatagram) visibility_datagram_source_service_runner = service_runner_factory.get_service_runner( VisibilityDatagramSourceService, { "name": "visibility_datagram_source_service", "visibility_datagram_endpoint": visibility_stream.get_endpoint(), "control_endpoint": control_stream.get_endpoint() }, configuration_stream=configuration_stream) visibility_string_stream = messager.get_stream(messaging_system, "visibilitystring", StringMessage) tostring_service_runner = service_runner_factory.get_service_runner( ToStringService, { "name": "tostring_service", "input_endpoint": visibility_stream.get_endpoint(), "output_endpoint": visibility_string_stream.get_endpoint(), "control_endpoint": control_stream.get_endpoint() }, configuration_stream=configuration_stream) string_writer_service_runner = service_runner_factory.get_service_runner( StringWriterService, { "name": "string_writer_service", "string_endpoint": visibility_string_stream.get_endpoint(), "control_endpoint": control_stream.get_endpoint() }, configuration_stream=configuration_stream) # start Ice logging.info("Starting Ice") ice_runner = IceRunner("testbed_data") ice_runner.start() time.sleep(5) logging.info("Starting services") string_writer_service_runner.start() tostring_service_runner.start() visibility_datagram_source_service_runner.start() time.sleep(5) logging.info("Publishing configuration") mainline_configuration_endpoint = configuration_stream.get_endpoint() configuration_message = ConfigurationMessage({ "antennas": { "ant2": { "name": "ak02", "itrf": (-2556109.976515, 5097388.699862, -2848440.12097248) }, "ant4": { "name": "ak04", "itrf": (-2556087.396082, 5097423.589662, -2848396.867933) }, "ant5": { "name": "ak05", "itrf": (-2556028.607336, 5097451.468188, -2848399.83113161) }, "ant10": { "name": "ak10", "itrf": (-2556059.228687, 5097560.766055, -2848178.119367) }, "ant12": { "name": "ak12", "itrf": (-2556496.237175, 5097333.724901, -2848187.33832738) }, # other to get 12-antennas "ant7": { "name": "ak07", "itrf": (-2556282.880670, 5097252.290820, -2848527.104272) }, "ant11": { "name": "ak11", "itrf": (-2556397.233607, 5097421.429903, -2848124.497319) }, # old BETA antennas "ant1": { "name": "ak01", "itrf": (-2556084.669, 5097398.337, -2848424.133) }, "ant15": { "name": "ak15", "itrf": (-2555389.850372, 5097664.627578, -2848561.95991566) }, "ant3": { "name": "ak03", "itrf": (-2556118.109261, 5097384.719695, -2848417.19642608) }, "ant6": { "name": "ak06", "itrf": (-2556227.878593, 5097380.442223, -2848323.44598377) }, "ant8": { "name": "ak08", "itrf": (-2556002.509816, 5097320.293832, -2848637.482106) }, "ant9": { "name": "ak09", "itrf": (-2555888.891875, 5097552.280516, -2848324.679547) } }, "metadata_source": { "host": "localhost", "port": "4061", "topicmanager": "IceStorm/[email protected]", "topic": "metadata", "adapter": "IngestPipeline" }, "datagram_source": { "host": "localhost", "port": "3000" }, "correlation_modes": { "standard": { "channel_width": "18.518518", "interval": "5000000", "number_of_channels": "216", "stokes": ["XX", "XY", "YX", "YY"] } }, "maximum_number_of_beams": "36", "string_writer_service.output_path": "output.txt" }) messager.publish(mainline_configuration_endpoint, configuration_message) logging.info("Starting processing") mainline_control_endpoint = control_stream.get_endpoint() messager.publish(mainline_control_endpoint, StringMessage("Start")) # start playback logging.info("Starting playback") playback = Playback("testbed_data") playback.playback("data/ade1card.ms") playback.wait() time.sleep(10) messager.publish(mainline_control_endpoint, StringMessage("Stop")) time.sleep(10) visibility_datagram_source_service_runner.terminate() tostring_service_runner.terminate() string_writer_service_runner.terminate() # stop Ice logging.info("stopping Ice") ice_runner.stop()