def nas_mirror_op(op, data_dict,commit=True): obj = cps_utils.CPSObject( module="base-mirror/entry", data=data_dict) if commit: nas_ut.get_cb_method(op)(obj) else: return obj
def set_stp_state(stg_id, interface, state): obj = cps_object.CPSObject(module=nas_stg_utils.get_stg_keys()[0], data={"switch-id": "0", "id": stg_id}) el = ["intf", "0", "ifindex"] obj.add_embed_attr(el, nas_os_utils.if_nametoindex(interface)) el[2] = "state" obj.add_embed_attr(el, port_state_map[state]) nas_ut.get_cb_method("set")(obj)
def nas_vlan_op(op, data_dict): if op == 'get': obj = cps_object.CPSObject( nas_if.get_if_key(), data=data_dict) else: if op in intf_rpc_op_type_map: data_dict[intf_rpc_op_attr_id] = intf_rpc_op_type_map[op] obj = cps_object.CPSObject( intf_rpc_key_id, data=data_dict) op = 'rpc' nas_ut.get_cb_method(op)(obj)
def nas_lag_op(op, data_dict, commit=True): cps_utils.add_attr_type("base-lag/entry/mac-address", "mac") obj = cps_object.CPSObject(module=nas_lag_utils.get_lag_keys()[0], data=data_dict) obj.add_attr("if/interfaces/interface/type", "ianaift:ieee8023adLag") if commit: nas_ut.get_cb_method(op)(obj) else: return obj
def nas_lag_op(op, data_dict,commit=True): cps_utils.add_attr_type("base-lag/entry/mac-address", "mac") obj = cps_object.CPSObject( module=nas_lag_utils.get_lag_keys()[0], data=data_dict) obj.add_attr("if/interfaces/interface/type","ianaift:ieee8023adLag") if commit: nas_ut.get_cb_method(op)(obj) else: return obj
def set_stp_state(stg_id, interface, state): obj = cps_object.CPSObject(module=nas_stg_utils.get_stg_keys()[0], data={ "switch-id": "0", "id": stg_id }) el = ["intf", "0", "ifindex"] obj.add_embed_attr(el, nas_os_utils.if_nametoindex(interface)) el[2] = "state" obj.add_embed_attr(el, port_state_map[state]) nas_ut.get_cb_method("set")(obj)
def nas_vlan_op(op, data_dict): if op == 'get': obj = cps_object.CPSObject(nas_if.get_if_key(), data=data_dict) else: if op in intf_rpc_op_type_map: data_dict[intf_rpc_op_attr_id] = intf_rpc_op_type_map[op] else: print 'Unknown operation type %s' % op return False obj = cps_object.CPSObject(intf_rpc_key_id, data=data_dict) op = 'rpc' nas_ut.get_cb_method(op)(obj)
def nas_lag_op(op, data_dict, commit=True): if op == 'get': obj = cps_object.CPSObject(module=nas_lag_utils.get_lag_keys()[0], data=data_dict) else: if op in intf_rpc_op_type_map: data_dict[intf_rpc_op_attr_id] = intf_rpc_op_type_map[op] else: print 'Unknown operation type %s' % op return False obj = cps_object.CPSObject(module=intf_rpc_key_id, data=data_dict) op = 'rpc' obj.add_attr("if/interfaces/interface/type", "ianaift:ieee8023adLag") if commit: nas_ut.get_cb_method(op)(obj) else: return (obj, op)
def nas_vlan_op(op, data_dict): obj = cps_object.CPSObject( nas_if.get_if_key(), data=data_dict) nas_ut.get_cb_method(op)(obj)
def nas_route_op(op, obj, ver): nas_route.init(ver) nas_ut.get_cb_method(op)(obj)
def main(argv): ''' The main function will read the user input from the command line argument and process the request ''' lag_id = '' choice = '' port = '' mac_addr = '' admn_status = '' frwd_enable = '' lag_name = '' mode = '' try: opts, args = getopt.getopt(argv, "hladpi:", [ "id=", "port=", "lname=", "mac=", "admn=", "frwd=", "help", "create", "delete", "set", "get", "add", "remove", "mac-learn=" ]) except getopt.GetoptError: usage() for opt, arg in opts: if opt in ('-h', '--help'): choice = 'help' elif opt in ('-p', '--port'): port = arg elif opt in ('-m', '--mac'): mac_addr = arg elif opt in ('-i', '--id'): lag_id = arg elif opt in ('-c', '--create'): choice = 'create' elif opt in ('-d', '--delete'): choice = 'delete' elif opt in ('-s', '--set'): choice = 'set' elif opt in ('-g', '--get'): choice = 'get' elif opt in ('-a', '--add'): choice = 'add' elif opt in ('-r', '--remove'): choice = 'remove' elif opt == '--lname': lag_name = arg elif opt == '--admn': admn_status = arg elif opt == '--frwd': frwd_enable = arg elif opt in ('-ml', '--mac-learn'): choice = 'mac-learn' mode = arg if choice == 'create' and lag_name != '': cmd_data = {"if/interfaces/interface/name": lag_name} nas_lag_op("create", cmd_data) if port != '': (obj, op) = nas_lag_op("set", cmd_data, False) port_list = port.split(",") l = ["dell-if/if/interfaces/interface/member-ports", "0", "name"] index = 0 for i in port_list: l[1] = str(index) index = index + 1 obj.add_embed_attr(l, i) nas_ut.get_cb_method(op)(obj) if frwd_enable != '': cmd_data[ "dell-if/if/interfaces/interface/member-ports/name"] = port_list # Member ports are unblocked by default if frwd_enable == 'no': cmd_data[ "base-if-lag/if/interfaces/interface/block-port-list"] = port_list nas_lag_op("set", cmd_data) elif choice == 'mac-learn' and lag_name != '': nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "base-if-lag/if/interfaces/interface/learn-mode": learn_mode_to_val[mode] }) elif choice == 'delete' and lag_name != '': nas_lag_op("delete", {"if/interfaces/interface/name": lag_name}) elif choice == 'get' and lag_name != '': nas_lag_op("get", {"if/interfaces/interface/name": lag_name}) elif choice == 'set' and port != '' and lag_name != '' and frwd_enable != '': port_list = port.split(",") nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "base-if-lag/if/interfaces/interface/unblock-port-list" if (frwd_enable == 'yes') else "base-if-lag/if/interfaces/interface/block-port-list": port_list }) elif (choice == 'add' or choice == 'remove' or choice == 'set') and port != '' and lag_name != '': op = "set" if (choice == "add" or choice == "set") else "delete" attr_data = {"if/interfaces/interface/name": lag_name} (obj, op) = nas_lag_op(op, attr_data, False) cur_mem_ports = [] if choice == "add": obj_list = [] r_obj = cps_object.CPSObject(module=intf_lag_key, data=attr_data) if cps.get([r_obj.get()], obj_list): if len(obj_list) == 1: cps_obj = cps_object.CPSObject(obj=obj_list[0]) member_ports_obj = cps_obj.get_attr_data( 'dell-if/if/interfaces/interface/member-ports') for key in member_ports_obj: cur_mem_ports.append(member_ports_obj[key]['name']) port_list = sorted(port.split(",") + cur_mem_ports) l = ["dell-if/if/interfaces/interface/member-ports", "0", "name"] index = 0 for i in port_list: l[1] = str(index) index = index + 1 obj.add_embed_attr(l, i) nas_ut.get_cb_method(op)(obj) elif choice == 'set' and mac_addr != '' and lag_name != '': nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "dell-if/if/interfaces/interface/phys-address": mac_addr }) elif choice == 'set' and admn_status != '' and lag_name != '': nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "if/interfaces/interface/enabled": "0" if (admn_status == 'down') else "1" }) else: usage()
def nas_stg_op(op, data_dict, type): obj = cps_object.CPSObject( module=nas_stg_utils.get_stg_keys()[int(type)], data=data_dict) obj.add_attr("base-stg/entry/switch-id", "0") nas_ut.get_cb_method(op)(obj)
def nas_vlan_op(op, data_dict): obj = cps_object.CPSObject(nas_if.get_if_key(), data=data_dict) nas_ut.get_cb_method(op)(obj)
if __name__ == '__main__': if len(sys.argv) == 1: usage() elif sys.argv[1] == "create" and len(sys.argv) >=6: obj = nas_mirror_op("create", {"type":mirror_type[sys.argv[2]], "dst-intf":nas_os_utils.if_nametoindex(sys.argv[3])},False) nas_mirror_add_source(obj,sys.argv[4],sys.argv[5]) if sys.argv[2]=="rspan" and len(sys.argv) == 7: obj.add_attr("vlan",sys.argv[6]) elif sys.argv[2] !="rspan" and len(sys.argv) == 6: usage() print obj.get() nas_ut.get_cb_method("create")(obj) elif sys.argv[1] == "delete" and len(sys.argv) == 3: nas_mirror_op("delete", {"id": sys.argv[2]}) elif sys.argv[1] == "get" and len(sys.argv) == 3: nas_mirror_op("get", {"id": sys.argv[2]}) elif sys.argv[1] == "set_source" and len(sys.argv) == 5: obj = nas_mirror_op("set", {"id": sys.argv[2]},False) nas_mirror_add_source(obj,sys.argv[3],sys.argv[4]) print obj.get() nas_ut.get_cb_method("set")(obj) elif sys.argv[1] == "set_dest" and len(sys.argv) == 4: nas_mirror_op("set", {"id": sys.argv[2],
if len(sys.argv) == 1: usage() elif sys.argv[1] == "create" and len(sys.argv) >= 6: obj = nas_mirror_op( "create", { "type": mirror_type[sys.argv[2]], "dst-intf": nas_os_utils.if_nametoindex(sys.argv[3]) }, False) nas_mirror_add_source(obj, sys.argv[4], sys.argv[5]) if sys.argv[2] == "rspan" and len(sys.argv) == 7: obj.add_attr("vlan", sys.argv[6]) elif sys.argv[2] != "rspan" and len(sys.argv) == 6: usage() print obj.get() nas_ut.get_cb_method("create")(obj) elif sys.argv[1] == "delete" and len(sys.argv) == 3: nas_mirror_op("delete", {"id": sys.argv[2]}) elif sys.argv[1] == "get" and len(sys.argv) == 3: nas_mirror_op("get", {"id": sys.argv[2]}) elif sys.argv[1] == "set_source" and len(sys.argv) == 5: obj = nas_mirror_op("set", {"id": sys.argv[2]}, False) nas_mirror_add_source(obj, sys.argv[3], sys.argv[4]) print obj.get() nas_ut.get_cb_method("set")(obj) elif sys.argv[1] == "set_dest" and len(sys.argv) == 4: nas_mirror_op(
def nas_port_learn_op(op, data_dict): obj = cps_object.CPSObject(module=nas_os_if_utils.get_if_keys()[0], data=data_dict) nas_ut.get_cb_method(op)(obj)
def main(argv): ''' The main function will read the user input from the command line argument and process the request ''' lag_id = '' choice = '' port = '' mac_addr = '' admn_status = '' frwd_enable = '' lag_name = '' try: opts, args = getopt.getopt(argv, "hladpi:", ["id=", "port=", "lname=", "mac=", "admn=", "frwd=", "help", "create", "delete", "set", "get","add","remove"]) except getopt.GetoptError: usage() for opt, arg in opts: if opt in ('-h', '--help'): choice = 'help' elif opt in ('-p', '--port'): port = arg elif opt in ('-m', '--mac'): mac_addr = arg elif opt in ('-i', '--id'): lag_id = arg elif opt in ('-c', '--create'): choice = 'create' elif opt in ('-d', '--delete'): choice = 'delete' elif opt in ('-s', '--set'): choice = 'set' elif opt in ('-g', '--get'): choice = 'get' elif opt in ('-a', '--add'): choice = 'add' elif opt in ('-r', '--remove'): choice = 'remove' elif opt == '--lname': lag_name = arg elif opt == '--admn': admn_status = arg elif opt == '--frwd': frwd_enable = arg if choice == 'create' and lag_name != '': nas_lag_op("create", {"if/interfaces/interface/name":lag_name}) elif choice == 'delete' and lag_name != '': nas_lag_op( "delete", {"if/interfaces/interface/name":lag_name }) elif choice == 'get' and lag_name != '': nas_lag_op("get", {"if/interfaces/interface/name": lag_name}) elif choice == 'set' and port != '' and lag_name != '' and frwd_enable != '': ifindex_list = [] port_list = port.split(",") nas_lag_op("set", {"if/interfaces/interface/name":lag_name, "base-if-lag/if/interfaces/interface/unblock-port-list" if (frwd_enable == 'yes') else "base-if-lag/if/interfaces/interface/block-port-list": port_list}) elif (choice == 'add' or choice == 'remove') and port != '' and lag_name != '': op = "create" if (choice == "add") else "delete" obj = nas_lag_op(op, {"if/interfaces/interface/name": lag_name},False) port_list = port.split(",") l = ["dell-if/if/interfaces/interface/member-ports","0","name"] index = 0 for i in port_list: l[1]=str(index) index = index +1 obj.add_embed_attr(l,i) nas_ut.get_cb_method(op)(obj) elif choice == 'set' and mac_addr != '' and lag_name != '': nas_lag_op( "set", {"if/interfaces/interface/name": lag_name, "dell-if/if/interfaces/interface/phys-address": mac_addr}) elif choice == 'set' and admn_status != '' and lag_name != '': nas_lag_op("set", {"if/interfaces/interface/name": lag_name, "if/interfaces/interface/enabled": "0" if (admn_status == 'down') else "1"}) else: usage()
def nas_sflow_op(op, data_dict): obj = cps_object.CPSObject(module=nas_sflow_utils.get_sflow_keys()[0], data=data_dict) print obj.get() nas_ut.get_cb_method(op)(obj)
def main(argv): ''' The main function will read the user input from the command line argument and process the request ''' lag_id = '' choice = '' port = '' mac_addr = '' admn_status = '' frwd_enable = '' lag_name = '' mode = '' try: opts, args = getopt.getopt(argv, "hladpi:", [ "id=", "port=", "lname=", "mac=", "admn=", "frwd=", "help", "create", "delete", "set", "get", "add", "remove", "mac-learn=" ]) except getopt.GetoptError: usage() for opt, arg in opts: if opt in ('-h', '--help'): choice = 'help' elif opt in ('-p', '--port'): port = arg elif opt in ('-m', '--mac'): mac_addr = arg elif opt in ('-i', '--id'): lag_id = arg elif opt in ('-c', '--create'): choice = 'create' elif opt in ('-d', '--delete'): choice = 'delete' elif opt in ('-s', '--set'): choice = 'set' elif opt in ('-g', '--get'): choice = 'get' elif opt in ('-a', '--add'): choice = 'add' elif opt in ('-r', '--remove'): choice = 'remove' elif opt == '--lname': lag_name = arg elif opt == '--admn': admn_status = arg elif opt == '--frwd': frwd_enable = arg elif opt in ('-ml', '--mac-learn'): choice = 'mac-learn' mode = arg if choice == 'create' and lag_name != '': nas_lag_op("create", {"if/interfaces/interface/name": lag_name}) elif choice == 'mac-learn' and lag_name != '': nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "base-if-lag/if/interfaces/interface/learn-mode": learn_mode_to_val[mode] }) elif choice == 'delete' and lag_name != '': nas_lag_op("delete", {"if/interfaces/interface/name": lag_name}) elif choice == 'get' and lag_name != '': nas_lag_op("get", {"if/interfaces/interface/name": lag_name}) elif choice == 'set' and port != '' and lag_name != '' and frwd_enable != '': ifindex_list = [] port_list = port.split(",") nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "base-if-lag/if/interfaces/interface/unblock-port-list" if (frwd_enable == 'yes') else "base-if-lag/if/interfaces/interface/block-port-list": port_list }) elif (choice == 'add' or choice == 'remove') and port != '' and lag_name != '': op = "create" if (choice == "add") else "delete" (obj, op) = nas_lag_op(op, {"if/interfaces/interface/name": lag_name}, False) port_list = port.split(",") l = ["dell-if/if/interfaces/interface/member-ports", "0", "name"] index = 0 for i in port_list: l[1] = str(index) index = index + 1 obj.add_embed_attr(l, i) nas_ut.get_cb_method(op)(obj) elif choice == 'set' and mac_addr != '' and lag_name != '': nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "dell-if/if/interfaces/interface/phys-address": mac_addr }) elif choice == 'set' and admn_status != '' and lag_name != '': nas_lag_op( "set", { "if/interfaces/interface/name": lag_name, "if/interfaces/interface/enabled": "0" if (admn_status == 'down') else "1" }) else: usage()
def nas_stg_op(op, data_dict, type): obj = cps_object.CPSObject(module=nas_stg_utils.get_stg_keys()[int(type)], data=data_dict) obj.add_attr("base-stg/entry/switch-id", "0") nas_ut.get_cb_method(op)(obj)
def nas_mirror_op(op, data_dict, commit=True): obj = cps_utils.CPSObject(module="base-mirror/entry", data=data_dict) if commit: nas_ut.get_cb_method(op)(obj) else: return obj
def nas_port_learn_op(op, data_dict): obj = cps_object.CPSObject( module=nas_os_if_utils.get_if_keys()[0], data=data_dict) nas_ut.get_cb_method(op)(obj)