blob: 9d709a0b747a56513c2500f4a4a20cf3b67415cb [file] [log] [blame]
#! /usr/bin/env python
import requests
from requests.auth import HTTPBasicAuth
import sys
if len(sys.argv) != 6:
print "usage: create-flow onos-node name device in-port out-port"
sys.exit(1)
node = sys.argv[1]
name = sys.argv[2]
device = sys.argv[3]
inPort = sys.argv[4]
outPort = sys.argv[5]
flowJsonTemplate = \
'{{' + \
'"priority": 1,' + \
'"isPermanent": true,' + \
'"treatment": {{' + \
'"instructions": [' + \
'{{' + \
'"type": "OUTPUT",' + \
'"port": {}' + \
'}}' + \
']' + \
'}},' + \
'"selector": {{' + \
'"criteria": [' + \
'{{' + \
'"type": "IN_PORT",' + \
'"port": {}' + \
'}}' + \
']' + \
'}}' + \
'}}'
flowJson = flowJsonTemplate.format(inPort, outPort)
payload = {'appId': 'org.onosproject.cli'}
flowRequest = requests.post('http://' + node + ':8181/onos/v1/flows/' + device,
auth=HTTPBasicAuth('onos', 'rocks'),
data=flowJson,
params=payload)
if flowRequest.status_code != 201:
print flowRequest.text
sys.exit(1)
location = flowRequest.headers["location"]
print "@stc " + name + "Location=" + location
sys.exit(0)