예제 #1
0
    def test_01_InitPutGet(self):
        global selector
        selector = cselector(name="myselector",
                             namespace='unittest',
                             storage=storage)
        selector.nocache = True

        _id = selector._id
        print "Selector Id: %s" % _id

        dump = selector.dump()

        ## Put in db
        storage.put(selector)

        ## Load
        selector = cselector(name="myselector", storage=storage)
        ndump = selector.dump()

        if dump['_id'] != ndump['_id'] or dump['namespace'] != ndump[
                'namespace'] or dump['mfilter'] != ndump['mfilter'] or dump[
                    'aaa_owner'] != ndump['aaa_owner']:
            print dump
            print ndump
            raise Exception('Invalid dump ...')
예제 #2
0
	def load_selectors(self):
		## Load selectors
		self.clean_selectors()
		
		## New selector or modified selector
		records = self.storage.find({'crecord_type': 'selector', 'loaded': False, 'enable': True}, namespace="object")
		
		for record in records:
			self.logger.debug("Load selector %s: %s" % (record._id, record.name))
			_id = record._id
			
			# Set loaded
			self.storage.update(_id, {'loaded': True})
			
			# Del old
			if self.selectors.get(_id, None):
				del self.selectors[_id]
				del self.selectors_events[_id]
				
			## store
			self.selectors[_id] = cselector(storage=self.storage, record=record, logging_level=self.logging_level)
			self.selectors_events[_id] = 0
			
			## Publish state	
			(rk, event) = self.selectors[_id].event()
			if event:
				# Set State
				self.storage.update(_id, {'state': event['state']})
				# Publish
				self.amqp.publish(event, rk, self.amqp.exchange_name_events)
예제 #3
0
    def test_01_Init(self):
        self.engine.pre_run()

        selectorTest = cselector(self.storage, name='selectorTest')
        selectorTest.mfilter = {'test_key': 'value'}
        selectorTest.load(selectorTest.dump())

        self.engine.selectors = [selectorTest]

        self.engine.work({'test_key': 'not a value'})
        self.assertTrue(self.engine.selector_refresh == {})

        self.engine.selectors = [selectorTest]
        self.engine.work({'test_key': 'value'})
        self.assertTrue(self.engine.selector_refresh ==
                        {'selector.account.root.selectorTest': True})

        from camqp import camqp
        self.engine.amqp = camqp(logging_level=logging.INFO,
                                 logging_name="test selector engine")

        for event_append in xrange(10):
            self.engine.beat()

        self.engine.beat()

        self.engine.post_run()
예제 #4
0
	def test_01_Init(self):
		self.engine.pre_run()

		selectorTest = cselector(self.storage, name='selectorTest')
		selectorTest.mfilter = {'test_key': 'value'}
		selectorTest.load(selectorTest.dump())

		self.engine.selectors = [selectorTest]

		self.engine.work({'test_key':'not a value'})
		self.assertTrue(self.engine.selector_refresh == {})

		self.engine.selectors = [selectorTest]
		self.engine.work({'test_key':'value'})
		self.assertTrue(self.engine.selector_refresh == {'selector.account.root.selectorTest': True})

		from camqp import camqp
		self.engine.amqp = camqp(logging_level=logging.INFO, logging_name="test selector engine")

		for event_append in xrange(10):
			self.engine.beat()

		self.engine.beat()

		self.engine.post_run()
예제 #5
0
	def reload_selectors(self):
		self.selectors = []
		selectorsjson = self.storage.find({'crecord_type': 'selector', 'enable': True}, namespace="object")
		
		for	selectorjson in selectorsjson:
			# let say selector is loaded
			self.storage.update(selectorjson._id, {'loaded': True})
			selector = cselector(storage=self.storage, record=selectorjson, logging_level=self.logging_level)
			self.selectors.append(selector)
예제 #6
0
	def test_01_InitPutGet(self):
		global selector 
		selector = cselector(name="myselector", namespace='unittest', storage=storage)
		selector.nocache = True

		_id = selector._id
		print "Selector Id: %s" % _id

		dump = selector.dump()

		## Put in db
		storage.put(selector)

		## Load
		selector = cselector(name="myselector", storage=storage)
		ndump = selector.dump()
		
		if dump['_id'] != ndump['_id'] or dump['namespace'] != ndump['namespace'] or dump['mfilter'] != ndump['mfilter'] or dump['aaa_owner'] != ndump['aaa_owner']:
			print dump
			print ndump
			raise Exception('Invalid dump ...')		
예제 #7
0
    def reload_selectors(self):
        self.selectors = []
        selectorsjson = self.storage.find(
            {
                'crecord_type': 'selector',
                'enable': True
            }, namespace="object")

        for selectorjson in selectorsjson:
            # let say selector is loaded
            self.storage.update(selectorjson._id, {'loaded': True})
            selector = cselector(storage=self.storage,
                                 record=selectorjson,
                                 logging_level=self.logging_level)
            self.selectors.append(selector)
예제 #8
0
파일: selector.py 프로젝트: moas/canopsis
    def load_selectors(self):
        ## Load selectors
        self.clean_selectors()

        ## New selector or modified selector
        records = self.storage.find(
            {
                'crecord_type': 'selector',
                'loaded': False,
                'enable': True
            },
            namespace="object")

        for record in records:
            self.logger.debug("Load selector %s: %s" %
                              (record._id, record.name))
            _id = record._id

            # Set loaded
            self.storage.update(_id, {'loaded': True})

            # Del old
            if self.selectors.get(_id, None):
                del self.selectors[_id]
                del self.selectors_events[_id]

            ## store
            self.selectors[_id] = cselector(storage=self.storage,
                                            record=record,
                                            logging_level=self.logging_level)
            self.selectors_events[_id] = 0

            ## Publish state
            if self.selectors[_id].dostate:
                (rk, event) = self.selectors[_id].event()
                if event:
                    # Set State
                    self.storage.update(_id, {'state': event['state']})
                    # Publish
                    self.amqp.publish(event, rk,
                                      self.amqp.exchange_name_events)