Ejemplo n.º 1
0
    def performEventSelectorTest(self, runid, destination):
        eventSystem = events.EventSystem.getDefaultEventSystem()

        prop = self.createPropertySet()

        # create and publish an event without a runid
        event = events.Event(prop)
        eventSystem.publishEvent(destination, event)

        # attempt to receive the event, which shouldn't arrive, because the
        # destination we send this to has a RUNID selector associated with
        # it, which this event didn't have.
        receivedEvent = eventSystem.receiveEvent(destination, 20)
        self.assertIsNone(receivedEvent)

        # create and publish an event with a runid
        event = events.Event(runid, prop)
        eventSystem.publishEvent(destination, event)

        # attempt to receive the event, which SHOULD arrive, because we
        # specified the RUNID
        receivedEvent = eventSystem.receiveEvent(destination, 20)
        self.assertIsNotNone(receivedEvent)

        # should be able to get the PropertySet we sent
        recvProp = receivedEvent.getPropertySet()
        self.assertIsNotNone(recvProp)

        # verify the RUNID
        self.assertEqual(recvProp.get(events.Event.RUNID), runid)

        # verify the other PropertySet contents
        self.verifyPropertySet(recvProp)
Ejemplo n.º 2
0
    def testQueueOrder(self):
        # this tests the order in which the sender and receiver are created
        # and event is created and sent before the receiver exists, and the
        # receiver should still get the message

        testEnv = EventsEnvironment()
        broker = testEnv.getBroker()

        eventSystem = events.EventSystem.getDefaultEventSystem()

        # test with default port
        queue = self.createDestination("test_queues4")
        eventSystem = events.EventSystem.getDefaultEventSystem()
        eventSystem.createEnqueuer(broker, queue)

        prop = self.createPropertySet()

        # create and publish an event without a runid, BEFORE
        # creating a receiver
        event = events.Event(prop)
        eventSystem.publishEvent(queue, event)

        eventSystem.createDequeuer(broker, queue)

        # should receive the event
        receivedEvent = eventSystem.receiveEvent(queue)
        self.assertIsNotNone(receivedEvent)

        # should be able to get the PropertySet we sent
        recvProp = receivedEvent.getPropertySet()
        self.assertIsNotNone(recvProp)

        # verify PropertySet contents
        self.verifyPropertySet(recvProp)
Ejemplo n.º 3
0
    def testEventRunID(self):
        runid = "testrunid"
        status = "my special status"
        root = PropertySet()
        MYNAME = "myname"
        root.set(MYNAME, MYNAME)
        root.set(events.Event.STATUS, status)

        event = events.Event(runid, root)

        # return the property set
        props = event.getPropertySet()
        self.assertGreater(props.get(events.Event.EVENTTIME), 0)
        self.assertEqual(props.get(events.Event.PUBTIME), 0)
        self.assertEqual(props.get(events.Event.RUNID), runid)
        self.assertEqual(props.get(events.Event.STATUS), status)
        self.assertEqual(props.get(events.Event.TOPIC),
                         events.Event.UNINITIALIZED)
        self.assertEqual(props.get(events.Event.TYPE), events.EventTypes.EVENT)
        self.assertEqual(props.get(MYNAME), MYNAME)

        filterableNames = event.getFilterablePropertyNames()
        filterableNames.remove(events.Event.EVENTTIME)
        filterableNames.remove(events.Event.PUBTIME)
        filterableNames.remove(events.Event.RUNID)
        filterableNames.remove(events.Event.STATUS)
        filterableNames.remove(events.Event.TOPIC)
        filterableNames.remove(events.Event.TYPE)
        assert len(filterableNames) == 0

        customNames = event.getCustomPropertyNames()
        self.assertEqual(len(customNames), 1)
        self.assertEqual(customNames[0], MYNAME)

        eventTime = event.getEventTime()
        self.assertEqual(event.getPubTime(), 0)

        self.assertEqual(event.getRunId(), runid)
        self.assertEqual(event.getType(), events.EventTypes.EVENT)
        self.assertEqual(event.getStatus(), status)

        # check to be sure we really update the time
        event.updateEventTime()
        self.assertLess(eventTime, event.getEventTime())

        # set the time to zero, and make sure we get back the same time.
        event.setEventTime(0)
        self.assertEqual(event.getEventTime(), 0)

        # reset the time to eventTime, and make sure we get back the same time.
        event.setEventTime(eventTime)
        self.assertEqual(event.getEventTime(), eventTime)
Ejemplo n.º 4
0
    def testEventProperties(self):
        status = "my special status"
        root = PropertySet()
        MYNAME = "myname"
        root.set(MYNAME, MYNAME)
        root.set(events.Event.STATUS, status)

        event = events.Event(root)
        props = event.getPropertySet()
        custom = event.getCustomPropertySet()

        self.assertEqual(props.nameCount(), 6)
        self.assertEqual(custom.nameCount(), 1)
Ejemplo n.º 5
0
    def sendEvent(self, topicName):

        root = base.PropertySet()
        root.set("DATE", "2007-07-01T14:28:32.546012")
        root.setInt("PID", 200)
        root.set("HOST", "lsstcorp.org")
        root.set("IP", "1.2.3.4")
        root.set("EVNT", "test")
        root.set("misc1", "data 1")
        root.set("misc2", "data 2")
        root.set("value", 3.14)

        eventSystem = events.EventSystem.getDefaultEventSystem()
        event = events.Event("runid_es6", root)
        eventSystem.publishEvent(topicName, event)
Ejemplo n.º 6
0
    def sendEvent(self, broker, topic):
        trans = events.EventTransmitter(broker, topic)

        root = base.PropertySet()
        root.set("DATE", "2007-07-01T14:28:32.546012")
        root.setInt("PID", 200)
        root.set("HOST", "lsstcorp.org")
        root.set("IP", "1.2.3.4")
        root.set("EVNT", "test")
        root.set("misc1", "data 1")
        root.set("misc2", "data 2")
        root.set("value", 3.14)

        event = events.Event("runid_test6", root)
        trans.publishEvent(event)
    def sendEvent(self, topicName):
        root = base.PropertySet()
        root.set("DATE","2007-07-01T14:28:32.546012")
        root.setInt("PID",200)
        root.set("HOST","lsstcorp.org")
        root.set("IP","1.2.3.4")
        root.set("EVNT","test")
        root.set("misc1","data 1")
        root.set("misc2","data 2")
        root.set("value", 3.14)
        root.set("array1", ('a', 'b', 'c', 'd'))
        root.set("array2", (1, 2, 3, 4, 5))
        root.set("array3", (6.1, 6.2, 6.3, 6.4, 6.5))

        eventSystem = events.EventSystem.getDefaultEventSystem()
        event = events.Event("runid_es4", root)
        eventSystem.publishEvent(topicName, event)
Ejemplo n.º 8
0
    def sendEvent(self, broker, topic):
        trans = events.EventTransmitter(broker, topic)

        root = PropertySet()
        root.set(events.Event.TOPIC, topic)
        root.set("myname", "myname")
        root.set(events.Event.STATUS, "my special status")
        root.set(events.Event.RUNID, "srptestrun")

        event = events.Event("srptestrun", root)

        # wait a short time so we can see the difference between the time
        # the event is created and the time it is published
        time.sleep(2)

        # ok...now publish it
        trans.publishEvent(event)
Ejemplo n.º 9
0
    def performEventTest(self, destination):
        eventSystem = events.EventSystem.getDefaultEventSystem()

        prop = self.createPropertySet()

        # create and publish an event without a runid
        event = events.Event(prop)
        eventSystem.publishEvent(destination, event)

        # should receive the event
        receivedEvent = eventSystem.receiveEvent(destination)
        self.assertIsNotNone(receivedEvent)

        # should be able to get the PropertySet we sent
        recvProp = receivedEvent.getPropertySet()
        self.assertIsNotNone(recvProp)

        # verify PropertySet contents
        # shouldn't have a RUNID
        with self.assertRaises(ex.Exception):
            recvProp.get(events.Event.RUNID)

        self.verifyPropertySet(recvProp)
Ejemplo n.º 10
0
# You should have received a copy of the LSST License Statement and
# the GNU General Public License along with this program.  If not,
# see <http://www.lsstcorp.org/LegalNotices/>.
#

import lsst.daf.base as base
import lsst.ctrl.events as events

if __name__ == "__main__":

    system = events.EventSystem().getDefaultEventSystem()
    system.createTransmitter("lsst8.ncsa.illinois.edu", "test1")
    system.createTransmitter("lsst8.ncsa.illinois.edu", "test2")
    system.createTransmitter("lsst8.ncsa.illinois.edu", "test3")

    newSystem = events.EventSystem().getDefaultEventSystem()

    root = base.PropertySet()
    root.add("DATE", "2007-07-01T14:28:32.546012")
    root.addInt("PID", 200)
    root.add("HOST", "lsst8.ncsa.illinois.edu")
    root.add("IP", "141.142.220.44")
    root.add("EVNT", "test")
    root.add("misc1", "data 1")
    root.add("misc2", "data 2")
    root.addDouble("float_value", 3.14)

    newSystem.publishEvent("test1", events.Event(root))
    newSystem.publishEvent("test2", events.Event(root))
    newSystem.publishEvent("test3", events.Event(root))
Ejemplo n.º 11
0
 def testEventEmpty(self):
     event = events.Event()
     props = event.getPropertySet()
     self.assertEqual(props.nameCount(), 0)
Ejemplo n.º 12
0
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the LSST License Statement and
# the GNU General Public License along with this program.  If not,
# see <http://www.lsstcorp.org/LegalNotices/>.
#

import lsst.ctrl.events as events
import lsst.daf.base as base

if __name__ == "__main__":
    x = events.EventTransmitter("lsst8.ncsa.illinois.edu", "test_logging")

    root = base.PropertySet()
    root.add("DATE", "2007-07-01T14:28:32.546012")
    root.addInt("PID", 200)
    root.add("HOST", "lsst8.ncsa.illinois.edu")
    root.add("IP", "141.142.220.44")
    root.add("EVNT", "test")
    root.add("misc1", "data 1")
    root.add("misc2", "data 2")
    root.addFloat("float_value", 3.14)

    ev = events.Event(root)

    x.publishEvent(ev)
Ejemplo n.º 13
0
 def sendEvent(self, broker, topicName, port, value):
     root = base.PropertySet()
     root.addInt("FOO", value)
     trans = events.EventEnqueuer(broker, topicName, port)
     event = events.Event("myrunid", root)
     trans.publishEvent(event)
Ejemplo n.º 14
0
    def testFilterableSendEvent(self):
        testEnv = EventsEnvironment()
        broker = testEnv.getBroker()
        thisHost = platform.node()

        topic = "test_events_filters_%s_%d" % (thisHost, os.getpid())

        runId = "test_filters_runid"
        recv = events.EventReceiver(broker, topic)

        trans = events.EventTransmitter(broker, topic)

        root = PropertySet()

        DATE = "date"
        DATE_VAL = "2007-07-01T14:28:32.546012"
        root.set(DATE, DATE_VAL)

        BLANK = "blank"
        BLANK_VAL = ""
        root.set(BLANK, BLANK_VAL)

        PID = "pid"
        PID_VAL = os.getpid()
        root.setInt(PID, PID_VAL)

        HOST = "host"
        HOST_VAL = "lsstcorp.org"
        root.set(HOST, HOST_VAL)

        IP = "ip"
        IP_VAL = "1.2.3.4"
        root.set(IP, IP_VAL)

        EVNT = "evnt"
        EVNT_VAL = "test"
        root.set(EVNT, EVNT_VAL)

        MISC1 = "misc1"
        MISC1_VAL = "data 1"
        root.set(MISC1, MISC1_VAL)

        MISC2 = "misc2"
        MISC2_VAL = "data 2"
        root.set(MISC2, MISC2_VAL)

        MISC3 = "misc3"
        MISC3_VAL = ""
        root.set(MISC3, MISC3_VAL)

        DATA = "data"
        DATA_VAL = 3.14
        root.setDouble(DATA, DATA_VAL)

        filterable = PropertySet()
        filterable.set("FOO", "bar")
        filterable.set("XYZZY", 123)
        filterable.set("PLOUGH", 0.867)

        event = events.Event(runId, root, filterable)
        trans.publishEvent(event)

        val = recv.receiveEvent()
        self.assertIsNotNone(val)

        ps = val.getPropertySet()

        self.assertEqual(ps.get(DATE), DATE_VAL)
        self.assertEqual(ps.get(BLANK), BLANK_VAL)
        self.assertEqual(ps.get(PID), PID_VAL)
        self.assertEqual(ps.get(HOST), HOST_VAL)
        self.assertEqual(ps.get(IP), IP_VAL)
        self.assertEqual(ps.get(EVNT), EVNT_VAL)
        self.assertEqual(ps.get(MISC1), MISC1_VAL)
        self.assertEqual(ps.get(MISC2), MISC2_VAL)
        self.assertEqual(ps.get(MISC3), MISC3_VAL)
        self.assertEqual(ps.get(DATA), DATA_VAL)

        self.assertGreater(ps.get(events.Event.EVENTTIME), 0)
        self.assertGreater(ps.get(events.Event.PUBTIME), 0)
        self.assertEqual(ps.get(events.Event.RUNID), runId)
        self.assertEqual(ps.get(events.Event.STATUS), "unknown")
        self.assertEqual(ps.get(events.Event.TOPIC), topic)
        self.assertEqual(ps.get(events.Event.TYPE), events.EventTypes.EVENT)
        self.assertEqual(ps.get("FOO"), "bar")
        self.assertEqual(ps.get("XYZZY"), 123)
        self.assertEqual(ps.get("PLOUGH"), 0.867)

        names = val.getFilterablePropertyNames()

        values = [
            events.Event.EVENTTIME, 'FOO', 'PLOUGH', events.Event.PUBTIME,
            events.Event.RUNID, events.Event.STATUS, events.Event.TOPIC,
            events.Event.TYPE, 'XYZZY'
        ]

        for x in values:
            self.assertTrue(x in names)

        #
        # wait a short time to receive an event.  none was sent, so we should
        # time out and confirm that we didn't get anything
        #
        val = recv.receiveEvent(1000)
        self.assertIsNone(val)
Ejemplo n.º 15
0
    def testSendEvent(self):
        """Send an Event"""
        testEnv = EventsEnvironment()
        self.thisHost = platform.node()
        self.broker = testEnv.getBroker()

        topic = "test_events_3_%s_%d" % (self.thisHost, os.getpid())

        runID = "test3_runid"
        recv = events.EventReceiver(self.broker, topic)

        trans = events.EventTransmitter(self.broker, topic)

        DATE = "date"
        DATE_VAL = "2007-07-01T14:28:32.546012"

        BLANK = "blank"
        BLANK_VAL = ""

        PID = "pid"
        PID_VAL = os.getpid()

        HOST = "host"
        HOST_VAL = "lsstcorp.org"

        IP = "ip"
        IP_VAL = "1.2.3.4"

        EVNT = "evnt"
        EVNT_VAL = "test"

        MISC1 = "misc1"
        MISC1_VAL = "data 1"

        MISC2 = "misc2"
        MISC2_VAL = "data 2"

        MISC3 = "misc3"
        MISC3_VAL = ""

        DATA = "data"
        DATA_VAL = 3.14

        root = PropertySet()
        root.set(DATE, DATE_VAL)
        root.set(BLANK, BLANK_VAL)
        root.setInt(PID, PID_VAL)
        root.set(HOST, HOST_VAL)
        root.set(IP, IP_VAL)
        root.set(EVNT, EVNT_VAL)
        root.set(MISC1, MISC1_VAL)
        root.set(MISC2, MISC2_VAL)
        root.set(MISC3, MISC3_VAL)
        root.setDouble(DATA, DATA_VAL)

        event = events.Event(runID, root)
        trans.publishEvent(event)

        val = recv.receiveEvent()
        self.assertIsNotNone(val)

        # check the validity of all sent values
        ps = val.getPropertySet()
        self.assertEqual(ps.get(DATE), DATE_VAL)
        self.assertEqual(ps.get(BLANK), BLANK_VAL)
        self.assertEqual(ps.get(PID), PID_VAL)
        self.assertEqual(ps.get(HOST), HOST_VAL)
        self.assertEqual(ps.get(IP), IP_VAL)
        self.assertEqual(ps.get(EVNT), EVNT_VAL)
        self.assertEqual(ps.get(MISC1), MISC1_VAL)
        self.assertEqual(ps.get(MISC2), MISC2_VAL)
        self.assertEqual(ps.get(MISC3), MISC3_VAL)
        self.assertEqual(ps.get(DATA), DATA_VAL)

        self.assertGreater(ps.get(events.Event.EVENTTIME), 0)
        self.assertGreater(ps.get(events.Event.PUBTIME), 0)
        self.assertEqual(ps.get(events.Event.RUNID), runID)
        self.assertEqual(ps.get(events.Event.STATUS), "unknown")
        self.assertEqual(ps.get(events.Event.TOPIC), topic)
        self.assertEqual(ps.get(events.Event.TYPE), events.EventTypes.EVENT)

        #
        # wait a short time to receive an event.  none was sent, so we should
        # time out and confirm that we didn't get anything
        #
        val = recv.receiveEvent(1000)
        self.assertIsNone(val)
Ejemplo n.º 16
0
 def create(self):
     """create a new instance of the event"""
     return ev.Event(self.runid, self.props)