def main(): try: _setup() single_sensor_mode = (cfg.CONF.single_sensor_mode or cfg.CONF.sensorcontainer.single_sensor_mode) if single_sensor_mode and not cfg.CONF.sensor_ref: raise ValueError( '--sensor-ref argument must be provided when running in single ' 'sensor mode') sensors_partitioner = get_sensors_partitioner() container_manager = SensorContainerManager( sensors_partitioner=sensors_partitioner, single_sensor_mode=single_sensor_mode) return container_manager.run_sensors() except SystemExit as exit_code: return exit_code except SensorNotFoundException as e: LOG.exception(e) return 1 except: LOG.exception('(PID:%s) SensorContainer quit due to exception.', os.getpid()) return FAILURE_EXIT_CODE finally: _teardown()
def main(): try: _setup() single_sensor_mode = (cfg.CONF.single_sensor_mode or cfg.CONF.sensorcontainer.single_sensor_mode) if single_sensor_mode and not cfg.CONF.sensor_ref: raise ValueError('--sensor-ref argument must be provided when running in single ' 'sensor mode') sensors_partitioner = get_sensors_partitioner() container_manager = SensorContainerManager(sensors_partitioner=sensors_partitioner, single_sensor_mode=single_sensor_mode) return container_manager.run_sensors() except SystemExit as exit_code: return exit_code except SensorNotFoundException as e: LOG.exception(e) return 1 except: LOG.exception('(PID:%s) SensorContainer quit due to exception.', os.getpid()) return FAILURE_EXIT_CODE finally: _teardown()
def test_file_partitioner(self): partition_file = FixturesLoader().get_fixture_file_path_abs( fixtures_pack=PACK, fixtures_type="sensors", fixture_name="partition_file.yaml", ) cfg.CONF.set_override( name="partition_provider", override={ "name": FILE_PARTITION_LOADER, "partition_file": partition_file }, group="sensorcontainer", ) provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), 2) sensor1 = self.models["sensors"]["sensor1.yaml"] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor3 = self.models["sensors"]["sensor3.yaml"] self.assertFalse(provider.is_sensor_owner(sensor3))
def test_hash_partitioner(self): # no specific partitioner testing here for that see test_hash_partitioner.py # This test is to make sure the wiring and some basics work cfg.CONF.set_override(name='partition_provider', override={ 'name': HASH_PARTITION_LOADER, 'hash_ranges': '%s..%s' % (Range.RANGE_MIN_ENUM, Range.RANGE_MAX_ENUM) }, group='sensorcontainer') provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), 3) sensor1 = self.models['sensors']['sensor1.yaml'] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor2 = self.models['sensors']['sensor2.yaml'] self.assertTrue(provider.is_sensor_owner(sensor2)) sensor3 = self.models['sensors']['sensor3.yaml'] self.assertTrue(provider.is_sensor_owner(sensor3))
def test_hash_partitioner(self): # no specific partitioner testing here for that see test_hash_partitioner.py # This test is to make sure the wiring and some basics work cfg.CONF.set_override( name="partition_provider", override={ "name": HASH_PARTITION_LOADER, "hash_ranges": "%s..%s" % (Range.RANGE_MIN_ENUM, Range.RANGE_MAX_ENUM), }, group="sensorcontainer", ) provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), 3) sensor1 = self.models["sensors"]["sensor1.yaml"] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor2 = self.models["sensors"]["sensor2.yaml"] self.assertTrue(provider.is_sensor_owner(sensor2)) sensor3 = self.models["sensors"]["sensor3.yaml"] self.assertTrue(provider.is_sensor_owner(sensor3))
def test_default_partitioner(self): provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), len(FIXTURES_1['sensors']), 'Failed to provider all sensors') sensor1 = self.models['sensors']['sensor1.yaml'] self.assertTrue(provider.is_sensor_owner(sensor1))
def main(): try: _setup() sensors_partitioner = get_sensors_partitioner() container_manager = SensorContainerManager(sensors_partitioner=sensors_partitioner) return container_manager.run_sensors() except SystemExit as exit_code: return exit_code except SensorNotFoundException as e: LOG.exception(e) return 1 except: LOG.exception('(PID:%s) SensorContainer quit due to exception.', os.getpid()) return 2 finally: _teardown()
def main(): try: _setup() sensors_partitioner = get_sensors_partitioner() container_manager = SensorContainerManager(sensors_partitioner=sensors_partitioner) return container_manager.run_sensors() except SystemExit as exit_code: return exit_code except SensorNotFoundException as e: LOG.exception(e) return 1 except: LOG.exception('(PID:%s) SensorContainer quit due to exception.', os.getpid()) return FAILURE_EXIT_CODE finally: _teardown()
def test_file_partitioner(self): partition_file = FixturesLoader().get_fixture_file_path_abs( fixtures_pack=PACK, fixtures_type='sensors', fixture_name='partition_file.yaml') cfg.CONF.set_override(name='partition_provider', override={'name': FILE_PARTITION_LOADER, 'partition_file': partition_file}, group='sensorcontainer') provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), 2) sensor1 = self.models['sensors']['sensor1.yaml'] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor3 = self.models['sensors']['sensor3.yaml'] self.assertFalse(provider.is_sensor_owner(sensor3))
def test_kvstore_partitioner(self): cfg.CONF.set_override(name='partition_provider', override={'name': KVSTORE_PARTITION_LOADER}, group='sensorcontainer') kvp = KeyValuePairDB(**{'name': 'sensornode1.sensor_partition', 'value': 'generic.Sensor1, generic.Sensor2'}) KeyValuePair.add_or_update(kvp, publish=False, dispatch_trigger=False) provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), len(kvp.value.split(','))) sensor1 = self.models['sensors']['sensor1.yaml'] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor3 = self.models['sensors']['sensor3.yaml'] self.assertFalse(provider.is_sensor_owner(sensor3))
def test_hash_partitioner(self): # no specific partitioner testing here for that see test_hash_partitioner.py # This test is to make sure the wiring and some basics work cfg.CONF.set_override(name='partition_provider', override={'name': HASH_PARTITION_LOADER, 'hash_ranges': '%s..%s' % (Range.RANGE_MIN_ENUM, Range.RANGE_MAX_ENUM)}, group='sensorcontainer') provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), 3) sensor1 = self.models['sensors']['sensor1.yaml'] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor2 = self.models['sensors']['sensor2.yaml'] self.assertTrue(provider.is_sensor_owner(sensor2)) sensor3 = self.models['sensors']['sensor3.yaml'] self.assertTrue(provider.is_sensor_owner(sensor3))
def test_kvstore_partitioner(self): cfg.CONF.set_override( name="partition_provider", override={"name": KVSTORE_PARTITION_LOADER}, group="sensorcontainer", ) kvp = KeyValuePairDB( **{ "name": "sensornode1.sensor_partition", "value": "generic.Sensor1, generic.Sensor2", }) KeyValuePair.add_or_update(kvp, publish=False, dispatch_trigger=False) provider = get_sensors_partitioner() sensors = provider.get_sensors() self.assertEqual(len(sensors), len(kvp.value.split(","))) sensor1 = self.models["sensors"]["sensor1.yaml"] self.assertTrue(provider.is_sensor_owner(sensor1)) sensor3 = self.models["sensors"]["sensor3.yaml"] self.assertFalse(provider.is_sensor_owner(sensor3))