Exemplo n.º 1
0
    def testSaveDeleteSimulationFeedConfiguration(self):
        logging.info("Test1: Saving and Deleting simulation feed configuration")

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("simulationPrimitive")
        svr.properties.timestampStartTime = 1488615136958
        svr.properties.timestampEndTime = None
        svr.properties.noOfEvents = 8
        svr.properties.timeInterval = 1000

        sm1 = SimulationSource(simulationType=SimulationSource.Type.RANDOM_DATA_SIMULATION, streamName="FooStream",
                               siddhiAppName="TestSiddhiApp", timestampInterval=5)

        sm1.attributeConfiguration.append(
            AttributeConfiguration(AttributeConfiguration.Type.PRIMITIVE_BASED, length=10))
        sm1.attributeConfiguration.append(
            AttributeConfiguration(AttributeConfiguration.Type.PRIMITIVE_BASED, min=35000, max=30000, precision=2))
        sm1.attributeConfiguration.append(
            AttributeConfiguration(AttributeConfiguration.Type.PRIMITIVE_BASED, min=150, max=300))

        svr.sources.append(sm1)

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")
        self.assertTrue(eventSimulatorClient.deleteSimulationFeedConfiguration("simulationPrimitive", username="******",
                                                                               password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")
Exemplo n.º 2
0
    def testRandomSimulationCustomList(self):
        logging.info("Test: Random Simulation using Custom List")

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("sim")
        svr.properties.timestampStartTime = 1488615136958
        svr.properties.timestampEndTime = 1488615136998
        svr.properties.noOfEvents = 5
        svr.properties.timeInterval = 1000

        s1 = SimulationSource(simulationType=SimulationSource.Type.RANDOM_DATA_SIMULATION)
        s1.streamName = "FooStream"
        s1.siddhiAppName = "TestSiddhiApp"
        s1.timestampInterval = 5
        svr.sources.append(s1)

        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.CUSTOM_DATA_BASED, list=["WSO2,AAA", "DDD", "IBM"]))
        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.CUSTOM_DATA_BASED, list=[1.0, 2.0, 3.0]))
        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.CUSTOM_DATA_BASED, list=[10, 20, 30]))

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.deleteSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")
Exemplo n.º 3
0
    def testCSVSimulationTwoSource(self):
        logging.info("Test: CSV Simulation - Two Source")

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("simCSV2")
        svr.properties.timestampStartTime = 1488615136957
        svr.properties.timestampEndTime = 1488615136973
        svr.properties.noOfEvents = 7
        svr.properties.timeInterval = 1000

        s1 = SimulationSource(simulationType=SimulationSource.Type.CSV_SIMULATION)
        s1.streamName = "FooStream"
        s1.siddhiAppName = "TestSiddhiApp"
        s1.fileName = "sample.csv"
        s1.timestampAttribute = 0
        s1.isOrdered = True
        s1.delimiter = ","
        svr.sources.append(s1)

        s2 = SimulationSource(simulationType=SimulationSource.Type.CSV_SIMULATION)
        s2.streamName = "FooStream"
        s2.siddhiAppName = "TestSiddhiApp"
        s2.fileName = "sample.csv"
        s2.timestampAttribute = 0
        s2.isOrdered = True
        s2.delimiter = ","
        svr.sources.append(s2)

        self.assertTrue(
            eventSimulatorClient.uploadCSV("sample.csv", path=resources_path + "sample.csv", username="******",
                                           password="******"))
        logging.info("Successfully Uploaded CSV")

        sleep(5)

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.deleteSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")

        self.assertTrue(eventSimulatorClient.deleteCSV("sample.csv", username="******",
                                                       password="******"))
        logging.info("Successfully Deleted CSV")
Exemplo n.º 4
0
 def retrieveSimulationFeedConfiguration(self, simulationName, username,
                                         password):
     '''
     Retrieves a SimulationFeedConfiguration from WSO2 SP Event Simulator
     :param simulationName: 
     :return: 
     '''
     r = self._sendGetRequest("/feed/" + simulationName,
                              auth=HTTPBasicAuth(username, password))
     if r.status_code == 200:
         result = r.json()
         if result["status"].lower() == "ok":
             jsonObject = json.loads(
                 result["message"])["Simulation configuration"]
             return FeedSimulationConfiguration.parse(jsonObject)
         else:
             raise Exception("Respose says not ok")
     elif r.status_code == 404:
         raise Exception(
             "EventSimulationConfiguration with specified name does not exist."
         )
     else:
         raise Exception(str(r.status_code) + ": " + r.text)
Exemplo n.º 5
0
    def testRunPausePrimitiveRandom(self):
        logging.info("Test: Random Simulation - Primitive. Save, Run, Pause, Resume, Stop and Delete.")

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("simulationPrimitive")
        svr.properties.noOfEvents = 8
        svr.properties.timeInterval = 30000

        s1 = SimulationSource(simulationType=SimulationSource.Type.RANDOM_DATA_SIMULATION)
        s1.streamName = "FooStream"
        s1.siddhiAppName = "TestSiddhiApp"
        s1.timestampInterval = 5
        svr.sources.append(s1)

        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.PRIMITIVE_BASED, length=10))
        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.PRIMITIVE_BASED, min=35000, max=30000, precision=2))
        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.PRIMITIVE_BASED, min=150, max=300)
        )

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(eventSimulatorClient.runSimulationFeedConfiguration(svr, username="******",
                                                                            password="******"))
        logging.info("Successfully Started Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.pauseSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                  password="******"))
        logging.info("Successfully Paused Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.resumeSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Resumed Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.stopSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                 password="******"))
        logging.info("Successfully Stopped Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.deleteSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")
Exemplo n.º 6
0
    def testDBandCSVSimulation(self):
        logging.info("Test: Random Simulation - Property and Primitive")

        target = {
            "properties": {
                "simulationName": "simulationCSV",
                "timestampStartTime": "1488615136958",
                "timestampEndTime": "1488615136966",
                "timeInterval": "1000"
            },
            "sources": [
                {
                    "simulationType": "DATABASE_SIMULATION",
                    "streamName": "FooStream",
                    "siddhiAppName": "TestSiddhiApp",
                    "dataSourceLocation": "jdbc:mysql://localhost:3306/DatabaseFeedSimulation?useSSL=false",
                    "driver": "com.mysql.jdbc.Driver",
                    "username": "******",
                    "password": "******",
                    "tableName": "foostream3",
                    "timestampAttribute": "timestamp",
                    "columnNamesList": "symbol,price,volume"
                },
                {
                    "simulationType": "CSV_SIMULATION",
                    "streamName": "FooStream",
                    "siddhiAppName": "TestSiddhiApp",
                    "fileName": "sample.csv",
                    "timestampAttribute": "0",
                    "isOrdered": "False",
                    "delimiter": ","
                }
            ]
        }

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("simulationCSV")
        svr.properties.timestampStartTime = 1488615136958
        svr.properties.timestampEndTime = 1488615136966
        svr.properties.timeInterval = 1000

        s1 = SimulationSource(simulationType=SimulationSource.Type.DATABASE_SIMULATION)
        s1.streamName = "FooStream"
        s1.siddhiAppName = "TestSiddhiApp"
        s1.dataSourceLocation = "jdbc:mysql://localhost:3306/DatabaseFeedSimulation?useSSL=false"
        s1.driver = "com.mysql.jdbc.Driver"
        s1.username = "******"
        s1.password = "******"
        s1.tableName = "foostream3"
        s1.timestampAttribute = "timestamp"
        s1.columnNamesList = "symbol,price,volume"

        svr.sources.append(s1)

        s2 = SimulationSource(simulationType=SimulationSource.Type.CSV_SIMULATION)
        s2.streamName = "FooStream"
        s2.siddhiAppName = "TestSiddhiApp"
        s2.fileName = "sample.csv"
        s2.timestampAttribute = 0
        s2.isOrdered = False
        s2.delimiter = ","

        svr.sources.append(s2)

        match = svr.toJSONObject()

        self.assertDictEqual(target["sources"][1], match["sources"][1])

        self.assertTrue(
            eventSimulatorClient.uploadCSV("sample.csv", path=resources_path + "sample.csv", username="******",
                                           password="******"))
        logging.info("Successfully Uploaded CSV")

        sleep(5)

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(eventSimulatorClient.runSimulationFeedConfiguration(svr, username="******",
                                                                            password="******"))
        logging.info("Successfully Started Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.deleteSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")

        self.assertTrue(eventSimulatorClient.deleteCSV("sample.csv", username="******",
                                                       password="******"))
        logging.info("Successfully Deleted CSV")
Exemplo n.º 7
0
    def testRandomSimulationRegexAndPrimitive(self):
        logging.info("Test: Random Simulation - Regex and Primitive")

        target = {
            "properties": {
                "simulationName": "simRndm",
                "timestampStartTime": "1488615136958",
                "timestampEndTime": "1488615136998",
                "noOfEvents": None,
                "timeInterval": "1000"
            },
            "sources": [
                {
                    "simulationType": "RANDOM_DATA_SIMULATION",
                    "streamName": "FooStream",
                    "siddhiAppName": "TestSiddhiApp",
                    "timestampInterval": "5",
                    "attributeConfiguration": [
                        {
                            "type": "REGEX_BASED",
                            "pattern": "[a-zA-Z]*"
                        },
                        {
                            "type": "REGEX_BASED",
                            "pattern": "[0-9]*"
                        },
                        {
                            "type": "PRIMITIVE_BASED",
                            "primitiveType": "LONG",
                            "min": "1500000",
                            "max": "30000000"
                        }
                    ]
                }
            ]
        }

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("simRndm")
        svr.properties.timestampStartTime = 1488615136958
        svr.properties.timestampEndTime = 1488615136998
        svr.properties.noOfEvents = None
        svr.properties.timeInterval = 1000

        s1 = SimulationSource(simulationType=SimulationSource.Type.RANDOM_DATA_SIMULATION)
        s1.streamName = "FooStream"
        s1.siddhiAppName = "TestSiddhiApp"
        s1.timestampInterval = 5
        svr.sources.append(s1)

        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.REGEX_BASED, pattern="[a-zA-Z]*"))
        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.REGEX_BASED, pattern="[0-9]*"))
        s1.attributeConfiguration.append(
            AttributeConfiguration(type=AttributeConfiguration.Type.PRIMITIVE_BASED, min=1500000, max=30000000,
                                   primitiveType=AttributeConfiguration.PrimitiveType.LONG)
        )

        match = svr.toJSONObject()

        self.assertDictEqual(target, match)

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(eventSimulatorClient.runSimulationFeedConfiguration(svr, username="******",
                                                                            password="******"))
        logging.info("Successfully Started Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.deleteSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")
Exemplo n.º 8
0
    def testDBSimulationOneSourceWOColumnNames(self):
        logging.info("Test: DB Simulation - One Source w/o column names")

        target = {
            "properties": {
                "simulationName": "simDbNoColumnsList",
                "timestampStartTime": "1488615136958",
                "timestampEndTime": "1488615136961",
                "timeInterval": "1000"
            },
            "sources": [
                {
                    "simulationType": "DATABASE_SIMULATION",
                    "streamName": "FooStream",
                    "siddhiAppName": "TestSiddhiApp",
                    "dataSourceLocation": "jdbc:mysql://localhost:3306/DatabaseFeedSimulation?useSSL=false",
                    "driver": "com.mysql.jdbc.Driver",
                    "username": "******",
                    "password": "******",
                    "tableName": "foostream3",
                    "timestampAttribute": "timestamp",
                    "columnNamesList": None
                }
            ]
        }

        spPythonClient = SPClient(self.hostUrl)
        eventSimulatorClient = spPythonClient.getEventSimulatorClient()

        svr = FeedSimulationConfiguration("simDbNoColumnsList")
        svr.properties.timestampStartTime = 1488615136958
        svr.properties.timestampEndTime = 1488615136961
        svr.properties.timeInterval = 1000

        s1 = SimulationSource(simulationType=SimulationSource.Type.DATABASE_SIMULATION)
        s1.streamName = "FooStream"
        s1.siddhiAppName = "TestSiddhiApp"
        s1.dataSourceLocation = "jdbc:mysql://localhost:3306/DatabaseFeedSimulation?useSSL=false"
        s1.driver = "com.mysql.jdbc.Driver"
        s1.username = "******"
        s1.password = "******"
        s1.tableName = "foostream3"
        s1.timestampAttribute = "timestamp"
        s1.columnNamesList = None
        svr.sources.append(s1)

        match = svr.toJSONObject()

        self.assertDictEqual(target, match)

        self.assertTrue(eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="******",
                                                                             password="******"))
        logging.info("Successfully Saved Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(eventSimulatorClient.runSimulationFeedConfiguration(svr, username="******",
                                                                            password="******"))
        logging.info("Successfully Started Simulation Feed Configuration")

        sleep(5)

        self.assertTrue(
            eventSimulatorClient.deleteSimulationFeedConfiguration(svr.properties.simulationName, username="******",
                                                                   password="******"))
        logging.info("Successfully Deleted Simulation Feed Configuration")