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
- Install DAS Python Client by following Installation Guide.
- WSO2 DAS 4.0 must be already installed and running. If not, follow the steps below.
- Obtain WSO2 DAS 4.0-M6 binary distribution from https://github.com/wso2/product-das/releases/tag/v4.0.0-M6.
- Extract
wso2das-4.0.0-SNAPSHOT.zipto a suitable location (sayDAS_HOME). - Navigate to
DAS_Home/bin/and runsh worker.sh.
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.