コード例 #1
0
    def testArrayOfDoubles(self):
        '''
        Test the ARRAYOFDOUBLES type
        '''
        iasValue = IasValue.fromJSon(self.jSonStrArrayOfDoubles)

        iasValueJson = iasValue.toJSonString()
        iasFomJson = IasValue.fromJSon(iasValueJson)
        self.assertEqual(iasValue.value, iasFomJson.value)
コード例 #2
0
    def testTimestamp(self):
        '''
        Test the TIMESTAMP type
        '''
        iasValue = IasValue.fromJSon(self.jSonStrTimestamp)

        iasValueJson = iasValue.toJSonString()
        iasFomJson = IasValue.fromJSon(iasValueJson)
        self.assertEqual(iasValue.value, iasFomJson.value)
コード例 #3
0
 def buildLONGValue(self,ident, value):
     '''
     Builds a IAsValue
     
     @param ident: the identifier of the IasValue
     @param value: (LONG) the value
     '''
     iasValue = IasValue.fromJSon(self.jsonStr)
     frid = self.fullRunningIdPrefix+ident+self.fullRunningIdSuffix
     iasValue.fullRunningId=frid
     iasValue.id=ident
     iasValue.value=str(value)
     return iasValue
コード例 #4
0
    def run(self):
        """
        The thread to get IasValues from the BSDB
        """
        logger.info('Thread to poll for IasValues started')

        partitionsIds = None
        n = 1
        if not self.terminateThread:
            while partitionsIds is None:
                partitionsIds = self.consumer.partitions_for_topic(self.topic)
                if partitionsIds is None:
                    if n % 10 == 0:
                        logger.info("Waiting for topic %s to be created",
                                    self.topic)
                    n = n + 1
                    time.sleep(0.100)

            partitionsIds = self.consumer.partitions_for_topic(self.topic)
            logger.info('%d partitions found on topic %s: %s',
                        len(partitionsIds), self.topic, partitionsIds)
            partitions = []
            for pId in partitionsIds:
                partitions.append(TopicPartition(self.topic, pId))
            self.consumer.assign(partitions)

            self.consumer.seek_to_end()

        self.isGettingEvents = True
        while True and not self.terminateThread:
            try:
                messages = self.consumer.poll(500)
            except:
                KeyboardInterrupt
                break
            for listOfConsumerRecords in messages.values():
                for cr in listOfConsumerRecords:
                    json = cr.value.decode("utf-8")
                    iasValue = IasValue.fromJSon(json)
                    iasValue.readFromBsdbTStamp = datetime.utcnow()
                    iasValue.readFromBsdbTStampStr = Iso8601TStamp.datetimeToIsoTimestamp(
                        iasValue.readFromBsdbTStamp)
                    self.listener.iasValueReceived(iasValue)
        self.isGettingEvents = False
        logger.info('Thread terminated')
コード例 #5
0
ファイル: testIasValue.py プロジェクト: nicosingh/ias
    def testName(self):
        iasValue = IasValue.fromJSon(self.jSonStr)

        self.assertEqual(iasValue.id, "TooManyHighTempAlarm")

        expectedProps = {"key1": "value1", "key2": "value2"}
        expectedDeps = [
            "(MonitoredSystemID:MONITORED_SOFTWARE_SYSTEM)@(PluginID:PLUGIN)@(ConverterID:CONVERTER)@(Temperature3:IASIO)",
            "(MonitoredSystemID:MONITORED_SOFTWARE_SYSTEM)@(PluginID:PLUGIN)@(ConverterID:CONVERTER)@(Temperature2:IASIO)",
            "(MonitoredSystemID:MONITORED_SOFTWARE_SYSTEM)@(PluginID:PLUGIN)@(ConverterID:CONVERTER)@(Temperature4:IASIO)",
            "(MonitoredSystemID:MONITORED_SOFTWARE_SYSTEM)@(PluginID:PLUGIN)@(ConverterID:CONVERTER)@(Temperature1:IASIO)"
        ]

        self.assertEqual(iasValue.value, "CLEARED")
        self.assertEqual(iasValue.valueTypeStr, "ALARM")
        self.assertEqual(iasValue.valueType, IASType.ALARM)
        self.assertEqual(
            iasValue.fullRunningId,
            "(SupervId:SUPERVISOR)@(DasuWith7ASCEs:DASU)@(ASCE-AlarmsThreshold:ASCE)@(TooManyHighTempAlarm:IASIO)"
        )
        self.assertEqual(iasValue.id, "TooManyHighTempAlarm")
        self.assertEqual(iasValue.dependentsFullRuningIds, expectedDeps)
        self.assertEqual(iasValue.modeStr, "UNKNOWN")
        self.assertEqual(iasValue.mode, OperationalMode.UNKNOWN)
        self.assertEqual(iasValue.iasValidityStr, "RELIABLE")
        self.assertEqual(iasValue.iasValidity, Validity.RELIABLE)
        self.assertEqual(iasValue.props, expectedProps)

        self.assertEqual(iasValue.pluginProductionTStampStr, None)
        self.assertEqual(iasValue.sentToConverterTStampStr, None)
        self.assertEqual(iasValue.receivedFromPluginTStampStr, None)
        self.assertEqual(iasValue.convertedProductionTStampStr, None)
        self.assertEqual(iasValue.sentToBsdbTStampStr,
                         "2018-03-07T13:08:43.525")
        self.assertEqual(iasValue.readFromBsdbTStampStr, None)
        self.assertEqual(iasValue.dasuProductionTStampStr,
                         "2018-03-07T13:08:43.524")

        expectedDeps2 = [
            "(SupervId1:SUPERVISOR)@(dasuVID1:DASU)@(asceVID1:ASCE)@(AlarmID1:IASIO)",
            "(SupervId2:SUPERVISOR)@(dasuVID2:DASU)@(asceVID2:ASCE)@(AlarmID2:IASIO)"
        ]

        iasValue2 = IasValue.fromJSon(self.jSonStr2)
        self.assertEqual(iasValue2.value, "SET_HIGH")
        self.assertEqual(iasValue2.valueTypeStr, "ALARM")
        self.assertEqual(iasValue2.valueType, IASType.ALARM)
        self.assertEqual(
            iasValue2.fullRunningId,
            "(Monitored-System-ID:MONITORED_SOFTWARE_SYSTEM)@(plugin-ID:PLUGIN)@(Converter-ID:CONVERTER)@(AlarmType-ID:IASIO)"
        )
        self.assertEqual(iasValue2.id, "AlarmType-ID")
        self.assertEqual(iasValue2.dependentsFullRuningIds, expectedDeps2)
        self.assertEqual(iasValue2.modeStr, "DEGRADED")
        self.assertEqual(iasValue2.mode, OperationalMode.DEGRADED)
        self.assertEqual(iasValue2.iasValidityStr, "RELIABLE")
        self.assertEqual(iasValue2.iasValidity, Validity.RELIABLE)
        self.assertEqual(iasValue2.props, None)

        self.assertEqual(iasValue2.pluginProductionTStampStr,
                         "1970-01-01T00:00:00.1")
        self.assertEqual(
            iasValue2.pluginProductionTStamp,
            Iso8601TStamp.Iso8601ToDatetime(
                iasValue2.pluginProductionTStampStr))

        self.assertEqual(iasValue2.sentToConverterTStampStr,
                         "1970-01-01T00:00:00.2")
        self.assertEqual(
            iasValue2.sentToConverterTStamp,
            Iso8601TStamp.Iso8601ToDatetime(
                iasValue2.sentToConverterTStampStr))

        self.assertEqual(iasValue2.receivedFromPluginTStampStr,
                         "1970-01-01T00:00:00.3")
        self.assertEqual(
            iasValue2.receivedFromPluginTStamp,
            Iso8601TStamp.Iso8601ToDatetime(
                iasValue2.receivedFromPluginTStampStr))

        self.assertEqual(iasValue2.convertedProductionTStampStr,
                         "1970-01-01T00:00:00.4")
        self.assertEqual(
            iasValue2.convertedProductionTStamp,
            Iso8601TStamp.Iso8601ToDatetime(
                iasValue2.convertedProductionTStampStr))

        self.assertEqual(iasValue2.sentToBsdbTStampStr,
                         "1970-01-01T00:00:00.5")
        self.assertEqual(
            iasValue2.sentToBsdbTStamp,
            Iso8601TStamp.Iso8601ToDatetime(iasValue2.sentToBsdbTStampStr))

        self.assertEqual(iasValue2.readFromBsdbTStampStr,
                         "1970-01-01T00:00:00.6")
        self.assertEqual(
            iasValue2.readFromBsdbTStamp,
            Iso8601TStamp.Iso8601ToDatetime(iasValue2.readFromBsdbTStampStr))

        self.assertEqual(iasValue2.dasuProductionTStampStr,
                         "1970-01-01T00:00:00.7")
        self.assertEqual(
            iasValue2.dasuProductionTStamp,
            Iso8601TStamp.Iso8601ToDatetime(iasValue2.dasuProductionTStampStr))
コード例 #6
0
ファイル: testIasValue.py プロジェクト: nicosingh/ias
    def testToJSON(self):
        iasValue = IasValue.fromJSon(self.jSonStr)

        iasValueJson = iasValue.toJSonString()
        iasFomJson = IasValue.fromJSon(iasValueJson)

        self.assertEqual(iasValue.value, iasFomJson.value)
        self.assertEqual(iasValue.valueTypeStr, iasFomJson.valueTypeStr)
        self.assertEqual(iasValue.valueType, iasFomJson.valueType)
        self.assertEqual(iasValue.fullRunningId, iasFomJson.fullRunningId)
        self.assertEqual(iasValue.modeStr, iasFomJson.modeStr)
        self.assertEqual(iasValue.mode, iasFomJson.mode)
        self.assertEqual(iasValue.iasValidityStr, iasFomJson.iasValidityStr)
        self.assertEqual(iasValue.iasValidity, iasFomJson.iasValidity)

        self.assertEqual(iasValue.dependentsFullRuningIds,
                         iasFomJson.dependentsFullRuningIds)
        self.assertEqual(iasValue.props, iasFomJson.props)

        self.assertEqual(iasValue.pluginProductionTStampStr,
                         iasFomJson.pluginProductionTStampStr)
        self.assertEqual(iasValue.pluginProductionTStamp,
                         iasFomJson.pluginProductionTStamp)
        self.assertEqual(iasValue.sentToConverterTStampStr,
                         iasFomJson.sentToConverterTStampStr)
        self.assertEqual(iasValue.sentToConverterTStamp,
                         iasFomJson.sentToConverterTStamp)
        self.assertEqual(iasValue.receivedFromPluginTStampStr,
                         iasFomJson.receivedFromPluginTStampStr)
        self.assertEqual(iasValue.receivedFromPluginTStamp,
                         iasFomJson.receivedFromPluginTStamp)
        self.assertEqual(iasValue.convertedProductionTStampStr,
                         iasFomJson.convertedProductionTStampStr)
        self.assertEqual(iasValue.convertedProductionTStamp,
                         iasFomJson.convertedProductionTStamp)
        self.assertEqual(iasValue.sentToBsdbTStampStr,
                         iasFomJson.sentToBsdbTStampStr)
        self.assertEqual(iasValue.sentToBsdbTStamp,
                         iasFomJson.sentToBsdbTStamp)
        self.assertEqual(iasValue.readFromBsdbTStampStr,
                         iasFomJson.readFromBsdbTStampStr)
        self.assertEqual(iasValue.readFromBsdbTStamp,
                         iasFomJson.readFromBsdbTStamp)
        self.assertEqual(iasValue.dasuProductionTStampStr,
                         iasFomJson.dasuProductionTStampStr)
        self.assertEqual(iasValue.dasuProductionTStamp,
                         iasFomJson.dasuProductionTStamp)

        #### Same test with the other JSON string

        iasValue2 = IasValue.fromJSon(self.jSonStr2)
        iasValueJson2 = iasValue2.toJSonString()
        iasFomJson2 = IasValue.fromJSon(iasValueJson2)

        self.assertEqual(iasValue2.value, iasFomJson2.value)
        self.assertEqual(iasValue2.valueTypeStr, iasFomJson2.valueTypeStr)
        self.assertEqual(iasValue2.valueType, iasFomJson2.valueType)
        self.assertEqual(iasValue2.fullRunningId, iasFomJson2.fullRunningId)
        self.assertEqual(iasValue2.modeStr, iasFomJson2.modeStr)
        self.assertEqual(iasValue2.mode, iasFomJson2.mode)
        self.assertEqual(iasValue2.iasValidityStr, iasFomJson2.iasValidityStr)
        self.assertEqual(iasValue2.iasValidity, iasFomJson2.iasValidity)

        self.assertEqual(iasValue2.dependentsFullRuningIds,
                         iasFomJson2.dependentsFullRuningIds)
        self.assertEqual(iasValue2.props, iasFomJson2.props)

        self.assertEqual(iasValue2.pluginProductionTStampStr,
                         iasFomJson2.pluginProductionTStampStr)
        self.assertEqual(iasValue2.pluginProductionTStamp,
                         iasFomJson2.pluginProductionTStamp)
        self.assertEqual(iasValue2.sentToConverterTStampStr,
                         iasFomJson2.sentToConverterTStampStr)
        self.assertEqual(iasValue2.sentToConverterTStamp,
                         iasFomJson2.sentToConverterTStamp)
        self.assertEqual(iasValue2.receivedFromPluginTStampStr,
                         iasFomJson2.receivedFromPluginTStampStr)
        self.assertEqual(iasValue2.receivedFromPluginTStamp,
                         iasFomJson2.receivedFromPluginTStamp)
        self.assertEqual(iasValue2.convertedProductionTStampStr,
                         iasFomJson2.convertedProductionTStampStr)
        self.assertEqual(iasValue2.convertedProductionTStamp,
                         iasFomJson2.convertedProductionTStamp)
        self.assertEqual(iasValue2.sentToBsdbTStampStr,
                         iasFomJson2.sentToBsdbTStampStr)
        self.assertEqual(iasValue2.sentToBsdbTStamp,
                         iasFomJson2.sentToBsdbTStamp)
        self.assertEqual(iasValue2.readFromBsdbTStampStr,
                         iasFomJson2.readFromBsdbTStampStr)
        self.assertEqual(iasValue2.readFromBsdbTStamp,
                         iasFomJson2.readFromBsdbTStamp)
        self.assertEqual(iasValue2.dasuProductionTStampStr,
                         iasFomJson2.dasuProductionTStampStr)
        self.assertEqual(iasValue2.dasuProductionTStamp,
                         iasFomJson2.dasuProductionTStamp)