本文整理汇总了Python中pybvc.controller.controller.Controller.create_data_change_event_subscription方法的典型用法代码示例。如果您正苦于以下问题:Python Controller.create_data_change_event_subscription方法的具体用法?Python Controller.create_data_change_event_subscription怎么用?Python Controller.create_data_change_event_subscription使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pybvc.controller.controller.Controller
的用法示例。
在下文中一共展示了Controller.create_data_change_event_subscription方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: of_demo_30
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import create_data_change_event_subscription [as 别名]
def of_demo_30():
f = "cfg.yml"
d = {}
if(load_dict_from_file(f, d) is False):
print("Config file '%s' read error: " % f)
exit()
try:
ctrlIpAddr = d['ctrlIpAddr']
ctrlPortNum = d['ctrlPortNum']
ctrlUname = d['ctrlUname']
ctrlPswd = d['ctrlPswd']
rundelay = d['rundelay']
except:
print ("Failed to get Controller device attributes")
exit(0)
description = (
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
" This demo illustrates how to use Controller's notification\n"
" subscription service for tracing dynamic changes in the\n"
" the Controller's inventory data store.\n"
"\n"
" It is implied that core network services (OpenFlow, NETCONF)\n"
" are functioning on the Controller.\n"
"\n"
" This script creates an event listener on the Controller and\n"
" establishes permanent connection to the events notification\n"
" stream. Once a data change event in the inventory data store\n"
" (such as add/remove node or flow entry) is detected\n"
" it will be reported to the screen.\n"
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
)
print "\n".strip()
print description
print "\n".strip()
time.sleep(rundelay)
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print ("<<< Demo 30 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
print "\n".strip()
print ("<<< 'Controller': %s" % (ctrlIpAddr))
time.sleep(rundelay)
# Data store for the changes
# Can be one of:
# - CONFIGURATION: Logical data store representing configuration
# state of the system and it's components.
# - OPERATIONAL: Logical data store representing operational
# state of the system and it's components
datastore = "OPERATIONAL"
# Scope of the data changes
# Can be one of:
# - BASE: Represents only a direct change of the node, such as
# replacement, addition or deletion of the node.
# - ONE: Represent a change (addition, replacement, deletion)
# of the node or one of its direct children.
# This scope is a superset of BASE.
# - SUBTREE: Represents a change of the node or any of its child
# nodes, direct and nested.
# This scope is superset of ONE and BASE.
scope = "SUBTREE"
# Path to the inventory data store in the YANG data tree
path = ctrl.get_inventory_nodes_yang_schema_path()
# Create listener on the Controller (if it does already exist Controller
# just returns the stream name to subscribe to)
result = ctrl.create_data_change_event_subscription(datastore, scope, path)
status = result.get_status()
if not status.eq(STATUS.OK):
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(1)
stream_name = result.get_data()
# Subscribe to the stream
result = ctrl.subscribe_to_stream(stream_name)
status = result.get_status()
if not status.eq(STATUS.OK):
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(1)
print "\n".strip()
print " Successfully subscribed for data change notifications"
print " Stream location:"
stream_location = result.get_data()
print " %s" % stream_location
print "\n".strip()
print " Listening ... (CTRL-C to exit)"
print "\n".strip()
#.........这里部分代码省略.........
示例2: of_demo_29
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import create_data_change_event_subscription [as 别名]
def of_demo_29():
f = "cfg.yml"
d = {}
if(load_dict_from_file(f, d) is False):
print("Config file '%s' read error: " % f)
exit()
try:
ctrlIpAddr = d['ctrlIpAddr']
ctrlPortNum = d['ctrlPortNum']
ctrlUname = d['ctrlUname']
ctrlPswd = d['ctrlPswd']
rundelay = d['rundelay']
except:
print ("Failed to get Controller device attributes")
exit(0)
description = (
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
" This demo illustrates how to use Controller's notification \n"
" subscription service for tracing dynamic changes in the\n"
" network topology data tree maintained by the Controller.\n"
"\n"
" It is implied that core network services (Forwarding Rules\n"
" Manager, Topology Manager, Switch Manager, Host Tracker)\n"
" are functioning on the Controller\n"
"\n"
" This script creates an event listener on the Controller and\n"
" establishes permanent connection to the events notification\n"
" stream. Once a data change event in the topology tree (such\n"
" as add/remove switch, host or link) is detected it will be\n"
" reported to the screen.\n"
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"
)
print "\n".strip()
print description
print "\n".strip()
time.sleep(rundelay)
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print ("<<< Demo 29 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
# Identifier of the network topology to be traced
# (name used by Controller for default topology instance)
topo_id = 'flow:1'
print "\n".strip()
print ("<<< 'Controller': %s, Topology Identifier: '%s'"
% (ctrlIpAddr, topo_id))
time.sleep(rundelay)
# Data store for the changes
# Can be one of:
# - CONFIGURATION: Logical data store representing configuration
# state of the system and it's components.
# - OPERATIONAL: Logical data store representing operational
# state of the system and it's components
datastore = "OPERATIONAL"
# Scope of the data changes
# Can be one of:
# - BASE: Represents only a direct change of the node, such as
# replacement, addition or deletion of the node.
# - ONE: Represent a change (addition, replacement, deletion)
# of the node or one of its direct children.
# This scope is a superset of BASE.
# - SUBTREE: Represents a change of the node or any of its child
# nodes, direct and nested.
# This scope is superset of ONE and BASE.
scope = "SUBTREE"
# Path to the network topology node in the YANG data tree
path = ctrl.get_network_topology_yang_schema_path(topo_id)
# Create listener on the Controller (if it does already exist Controller
# just returns the stream name to subscribe to)
print path
result = ctrl.create_data_change_event_subscription(datastore, scope, path)
status = result.get_status()
if not status.eq(STATUS.OK):
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(1)
print "Here1"
stream_name = result.get_data()
print "here2"
# Subscribe to the stream
result = ctrl.subscribe_to_stream(stream_name)
print "here 3"
status = result.get_status()
if not status.eq(STATUS.OK):
print ("\n")
#.........这里部分代码省略.........
示例3: change
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import create_data_change_event_subscription [as 别名]
# - BASE: Represents only a direct change of the node, such as
# replacement, addition or deletion of the node.
# - ONE: Represent a change (addition, replacement, deletion)
# of the node or one of its direct children.
# This scope is a superset of BASE.
# - SUBTREE: Represents a change of the node or any of its child
# nodes, direct and nested.
# This scope is superset of ONE and BASE.
scope = "SUBTREE"
# Path to the inventory data store in the YANG data tree
path = ctrl.get_inventory_nodes_yang_schema_path()
# Create listener on the Controller (if it does already exist Controller
# just returns the stream name to subscribe to)
result = ctrl.create_data_change_event_subscription(datastore, scope, path)
status = result.get_status()
if not status.eq(STATUS.OK):
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(1)
stream_name = result.get_data()
# Subscribe to the stream
result = ctrl.subscribe_to_stream(stream_name)
status = result.get_status()
if not status.eq(STATUS.OK):
print ("\n")
print ("!!!Demo terminated, reason: %s" % status.detailed())
exit(1)