def _trigger_func(self, stream_id): while True: length = random.randint(1,20) c = [random.uniform(0.0,75.0) for i in xrange(length)] t = [random.uniform(-1.7, 21.0) for i in xrange(length)] p = [random.lognormvariate(1,2) for i in xrange(length)] lat = [random.uniform(-90.0, 90.0) for i in xrange(length)] lon = [random.uniform(0.0, 360.0) for i in xrange(length)] tvar = [self.last_time + i for i in xrange(1,length+1)] self.last_time = max(tvar) ctd_packet = ctd_stream_packet(stream_id=stream_id, c=c, t=t, p=p, lat=lat, lon=lon, time=tvar) log.warn('SimpleCtdPublisher sending %d values!' % length) self.publisher.publish(ctd_packet) time.sleep(2.0)
def test_chop_chop(self): # Override couch self.couch = self.container.datastore_manager.get_datastore( ds_name='chopping_block', profile=DataStore.DS_PROFILE.SCIDATA ) self.datastore_name = 'chopping_block' granule = ctd_stream_packet( stream_id='this_is_only_a_test', time='12345', #Same combo on my luggage create_hdf=False ) self.couch.create(granule) log.debug("Granule: %s", granule) dataset_id = self.dsm_cli.create_dataset( stream_id='this_is_only_a_test', datastore_name=self.datastore_name, view_name='datasets/dataset_by_id', name='sci_data_granule_chop' ) replay_id, stream_id = self.dr_cli.define_replay( dataset_id=dataset_id, delivery_format={'chop':True} ) replay = self.rr_cli.read(replay_id) self.assertTrue(self.container.proc_manager.procs[replay.process_id]) async_result = gevent.event.AsyncResult() def consume(message, headers): async_result.set(message) stream_subscriber = StreamSubscriberRegistrar(process=self.container, node=self.container.node) subscriber = stream_subscriber.create_subscriber(exchange_name = 'chopping_block', callback=consume) subscriber.start() query = StreamQuery(stream_ids=[stream_id]) subscription_id = self.ps_cli.create_subscription(query=query, exchange_name='chopping_block') self.ps_cli.activate_subscription(subscription_id=subscription_id) self.dr_cli.start_replay(replay_id) for fields in xrange(4): self.assertTrue(async_result.get(timeout=10)) subscriber.stop() self.dr_cli.cancel_replay(replay_id=replay_id)
def _create_packet( stream_id): """ Create a ctd_packet for scientific data """ length = random.randint(1,20) c = [random.uniform(0.0,75.0) for i in xrange(length)] t = [random.uniform(-1.7, 21.0) for i in xrange(length)] p = [random.lognormvariate(1,2) for i in xrange(length)] lat = [random.uniform(-90.0, 90.0) for i in xrange(length)] lon = [random.uniform(0.0, 360.0) for i in xrange(length)] tvar = [ i for i in xrange(1,length+1)] ctd_packet = ctd_stream_packet(stream_id=stream_id, c=c, t=t, p=p, lat=lat, lon=lon, time=tvar, create_hdf=True) return ctd_packet
def _generate_point(self, entropy=5): points = [] random_values = self._random_data(entropy) point = ctd_stream_packet(stream_id='test_data', p=random_values[0], c=random_values[1], t=random_values[2],time=random_values[3], lat=random_values[4], lon=random_values[5], create_hdf=False) return point