本文整理汇总了Python中pybvc.controller.controller.Controller.build_inventory_object方法的典型用法代码示例。如果您正苦于以下问题:Python Controller.build_inventory_object方法的具体用法?Python Controller.build_inventory_object怎么用?Python Controller.build_inventory_object使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pybvc.controller.controller.Controller
的用法示例。
在下文中一共展示了Controller.build_inventory_object方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Controller
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import build_inventory_object [as 别名]
rundelay = 3
print "\n"
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
print ("<<< Controller '%s:%s'" % (ctrlIpAddr, ctrlPortNum))
time.sleep(rundelay)
print "\n".strip()
print ("<<< Get OpenFlow switches information")
time.sleep(rundelay)
inv_obj = None
result = ctrl.build_inventory_object()
status = result.get_status()
if(status.eq(STATUS.OK) == True):
inv_obj = result.get_data()
assert(isinstance(inv_obj, Inventory))
else:
print ("\n")
print ("!!!Error, failed to obtain inventory info, reason: %s"
% status.brief().lower())
exit(0)
assert(inv_obj)
openflow_node_ids = inv_obj.get_openflow_node_ids()
for node_id in openflow_node_ids:
node = inv_obj.get_openflow_node(node_id)
assert(isinstance(node, OpenFlowCapableNode))
示例2: of_demo_28
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import build_inventory_object [as 别名]
def of_demo_28():
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)
openflow_node_ids = []
openflow_nodes = []
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print ("<<< Demo 28 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print "\n"
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
print ("<<< Controller '%s:%s'" % (ctrlIpAddr, ctrlPortNum))
time.sleep(rundelay)
print "\n"
print ("<<< Get OpenFlow Inventory Information")
time.sleep(rundelay)
inv_obj = None
result = ctrl.build_inventory_object()
status = result.get_status()
if(status.eq(STATUS.OK)):
inv_obj = result.get_data()
assert(isinstance(inv_obj, Inventory))
else:
print ("\n")
print ("!!!Error, failed to obtain inventory info, reason: %s"
% status.brief().lower())
exit(0)
assert(inv_obj)
openflow_node_ids = inv_obj.get_openflow_node_ids()
for node_id in openflow_node_ids:
node = inv_obj.get_openflow_node(node_id)
assert(isinstance(node, OpenFlowCapableNode))
openflow_nodes.append(node)
print "\n"
print ("<<< OpenFlow switches")
s1 = 'IP Address'
s2 = 'OpenFlow Id'
sym = '-'
print "\n".strip()
print " {0:<15} {1:<30}".format(s1, s2)
print " {0:<15} {1:<30}".format(sym*15, sym*30)
for node in openflow_nodes:
addr = node.get_ip_address()
node_id = node.get_id()
print " {0:<15} {1:<30}".format(addr, node_id)
for node in openflow_nodes:
assert(isinstance(node, OpenFlowCapableNode))
time.sleep(rundelay)
print "\n".strip()
print "<<< Information for '%s' switch\n" % node.get_id()
print " IP Address : %s" % node.get_ip_address()
print " Max tables : %s" % node.get_max_tables_info()
print " Number of flows : %s" % node.get_flows_cnt()
clist = node.get_capabilities()
g = 2
chunks = [clist[x:x+g] for x in xrange(0, len(clist), g)]
s = 'Capabilities'
print " %s :" % s,
for i in range(0, len(chunks)):
n = 0 if i == 0 else len(s) + 14
print "%s%s" % (" "*n, ", ".join(chunks[i]))
s1 = 'Table Id'
s2 = 'Flows Cnt'
print "\n".strip()
print " {0:<8} {1:<10}".format(s1, s2)
sym = '-'
print " {0:<8} {1:<10}".format(sym*len(s1), sym*len(s2))
flow_tables_cnt = node.get_flow_tables_cnt()
for table_id in range(0, flow_tables_cnt+1):
cnt = node.get_flows_in_table_cnt(table_id)
if (cnt != 0):
print " {0:<8} {1:<10}".format(table_id, cnt)
s1 = 'Port Num'
s2 = 'OpenFlow Id'
print "\n".strip()
#.........这里部分代码省略.........
示例3: of_demo_32
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import build_inventory_object [as 别名]
def of_demo_32():
f = "cfg.yml"
d = {}
if(load_dict_from_file(f, d) is False):
print("Config file '%s' read error: " % f)
exit(0)
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)
openflow_node_ids = []
openflow_nodes = []
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print ("<<< Demo 32 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print "\n"
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
print ("<<< Controller '%s:%s'" % (ctrlIpAddr, ctrlPortNum))
time.sleep(rundelay)
print "\n".strip()
print ("<<< Get OpenFlow switches information")
time.sleep(rundelay)
inv_obj = None
result = ctrl.build_inventory_object()
status = result.get_status()
if(status.eq(STATUS.OK)):
inv_obj = result.get_data()
assert(isinstance(inv_obj, Inventory))
else:
print ("\n")
print ("!!!Error, failed to obtain inventory info, reason: %s"
% status.brief().lower())
exit(0)
assert(inv_obj)
openflow_node_ids = inv_obj.get_openflow_node_ids()
for node_id in openflow_node_ids:
node = inv_obj.get_openflow_node(node_id)
assert(isinstance(node, OpenFlowCapableNode))
openflow_nodes.append(node)
print "\n".strip()
print ("<<< OpenFlow switches in the inventory store")
s1 = 'IP Address'
s2 = 'OpenFlow Id'
sym = '-'
print "\n".strip()
print " {0:<15} {1:<30}".format(s1, s2)
print " {0:<15} {1:<30}".format(sym*15, sym*30)
for node in openflow_nodes:
addr = node.get_ip_address()
node_id = node.get_id()
print " {0:<15} {1:<30}".format(addr, node_id)
print "\n".strip()
print ("<<< Get Group Table Information")
time.sleep(rundelay)
for node in openflow_nodes:
assert(isinstance(node, OpenFlowCapableNode))
print "\n".strip()
switch_id = node.get_id()
print (" Switch '%s'") % switch_id
print "\n".strip()
group_features = node.get_group_features()
assert(isinstance(group_features, GroupFeatures))
q = 2 # number of list items to be in a single chunk (output string)
s = 'Max groups'
alist = group_features.get_max_groups()
if alist:
chunks = [alist[x:x+q] for x in xrange(0, len(alist), q)]
print " %s :" % s,
for i in range(0, len(chunks)):
n = 0 if i == 0 else len(s) + 19
print "%s%s" % (" "*n, ", ".join(map(str, chunks[i])))
else:
print " %s : %s" % (s, "n/a")
s = 'Group types'
alist = group_features.get_types()
if alist:
chunks = [alist[x:x+q] for x in xrange(0, len(alist), q)]
print " %s :" % s,
for i in range(0, len(chunks)):
n = 0 if i == 0 else len(s) + 18
print "%s%s" % (" "*n, ", ".join(chunks[i]))
#.........这里部分代码省略.........
示例4: of_demo_27
# 需要导入模块: from pybvc.controller.controller import Controller [as 别名]
# 或者: from pybvc.controller.controller.Controller import build_inventory_object [as 别名]
def of_demo_27():
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)
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
print ("<<< Demo 27 Start")
print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
print "\n"
print ("<<< Controller '%s:%s'" % (ctrlIpAddr, ctrlPortNum))
time.sleep(rundelay)
print ("\n")
print ("<<< Get OpenFlow Network Topology information")
time.sleep(rundelay)
topology_ids = []
topologies = []
inventory = None
result = ctrl.build_inventory_object()
status = result.get_status()
if(status.eq(STATUS.OK)):
inventory = result.get_data()
assert(isinstance(inventory, Inventory))
else:
print ("\n")
print ("!!!Error, failed to obtain inventory info, reason: %s" %
status.brief().lower())
exit(0)
result = ctrl.get_topology_ids()
status = result.get_status()
if(status.eq(STATUS.OK)):
topology_ids = result.get_data()
assert(isinstance(topology_ids, list))
else:
print ("\n")
print ("!!!Error, failed to obtain topology info, reason: %s" %
status.brief().lower())
exit(0)
print "\n"
print ("<<< Network topologies")
for topo_id in topology_ids:
print " '%s'" % topo_id
of_topo_id = 'flow:1'
for topo_id in topology_ids:
if (topo_id != of_topo_id):
continue
result = ctrl.build_topology_object(topo_id)
status = result.get_status()
if(status.eq(STATUS.OK)):
topo = result.get_data()
topologies.append(topo)
assert(isinstance(topo, Topology))
else:
print ("\n")
print ("!!!Error, failed to parse '%s' topology info, reason: %s" %
(topo_id, status.brief().lower()))
exit(0)
for topo in topologies:
if topo.get_id() != of_topo_id:
continue
time.sleep(rundelay)
print "\n"
print ("<<< Information for '%s' network topology:") % topo.get_id()
print "\n".strip()
flows_cnt = 0
sids = topo.get_switch_ids()
for sid in sids:
flows_cnt += inventory.get_openflow_node_flows_cnt(sid)
print (" Number of flows : %s" %
flows_cnt)
print (" Number of switches : %s" %
topo.get_switches_cnt())
print (" Number of inter-switch links : %s" %
topo.get_inter_switch_links_cnt())
print (" Number of hosts : %s" %
topo.get_hosts_cnt())
#.........这里部分代码省略.........