Event Simulator - madhawav/DASPythonClient GitHub Wiki

Following operations are supported by WSO2 DAS 4.0 Event Simulator Client.

  • Single Simulations
  • Saving a simulation configuration
  • Editing a simulation configuration
  • Deleting a simulation configuration
  • Retrieving a simulation configuration
  • Uploading a CSV file
  • Editing and uploaded CSV file
  • Deleting an uploaded CSV file
  • Pausing an event simulation
  • Resuming an event simulation
  • Stopping an event simulation

Refer Documentation of WSO2 DAS 4.0 Event simulator REST API for more details.

Pre-requisites

  1. Install DAS Python Client by following Installation Guide.
  2. WSO2 DAS 4.0 must be already installed and running. If not, follow the steps below.

Single Simulations

from DAS4PythonAPI.DAS4PythonClient import DAS4PythonClient
from DAS4PythonAPI.EventSimulator.SingleSimulationConfiguration import SingleSimulationConfiguration

dasPythonClient = DAS4PythonClient('http://localhost:9090') # host URL of DAS
eventSimulatorClient = dasPythonClient.getEventSimulatorClient()

singleSimulationConfiguration = SingleSimulationConfiguration("TestSiddhiApp","FooStream",[None, 9, 45])

if eventSimulatorClient.simulateSingleEvent(singleSimulationConfiguration):
    logging.info("Successfully Simulated Single Event")

Saving a Simulation Configuration (Feed Simulation Configuration)

from DAS4PythonAPI.DAS4PythonClient import DAS4PythonClient
from DAS4PythonAPI.EventSimulator.AttributeConfiguration import AttributeConfiguration
from DAS4PythonAPI.EventSimulator.FeedSimulationConfiguration import FeedSimulationConfiguration
from DAS4PythonAPI.EventSimulator.SimulationSource import SimulationSource

dasPythonClient = DAS4PythonClient('http://localhost:9090') # host URL of DAS
eventSimulatorClient = dasPythonClient.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)

if eventSimulatorClient.saveSimulationFeedConfiguration(svr):
    print("Successfully Saved Simulation Feed Configuration")

For more examples on Event Simulator, refer EventSimulatorTests.