Пример #1
0
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()
Пример #2
0
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()
Пример #3
0
    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))
Пример #4
0
    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))
Пример #5
0
    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))
Пример #6
0
    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))
Пример #7
0
    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))
Пример #8
0
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()
Пример #10
0
    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))
Пример #11
0
    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))
Пример #12
0
    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))
Пример #13
0
    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))