def sup_l2_config_show(node, ): oper = 'query' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'vlan_show') data = tmp.get_data() return config_ipc.config_api(node, data)
def sup_show_dhcp_server_all(self,node): oper='query' tmp=config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName','dhcp_pool_show') data=tmp.get_data() msg=config_ipc.config_api(node,data)
def sup_l2_config_native(node, interface, nativeid): oper = 'edit' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'vlan') tmp.set_config_member('interface_name', "{}".format(interface)) tmp.set_config_member('access_vlanid', 0) tmp.set_config_member('native_vlanid', int(nativeid)) tmp.set_config_level_structName('interface') tmp.set_config_level_member('ifname', "{}".format(interface)) data = tmp.get_data() msg = config_ipc.config_api(node, data)
def sup_unset_interface_dhcpServer(self, node, interface): if node['type'] == 'DUT': oper = 'unset' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'interface') tmp.set_config_member('ifname', "{}".format(interface)) tmp.set_config_member('dhcp_pool_name', "") data = tmp.get_data() msg = config_ipc.config_api(node, data) else: logger.debug("type : {} ,don't unset ip".format(node['type']))
def sup_set_interface_ip4(self, node, interface, ip4, profix): if node['type'] == 'DUT': oper = 'edit' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'interface') tmp.set_config_member('ifname', "{}".format(interface)) tmp.set_config_member('ipv4', "{}".format(ip4)) tmp.set_config_member('ipmaskv4', "{}".format(_profix_to_ip4(profix))) data = tmp.get_data() msg = config_ipc.config_api(node, data) else: logger.debug("type : {} ,don't set ip".format(node['type']))
def sup_del_interface_secondary_ip4(self, node, interface, ip4, profix): if node['type'] == 'DUT': oper = 'delete' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'interface_secondary_ipv4') tmp.set_config_member('ipv4', ip4) tmp.set_config_member('ipmaskv4', profix) tmp.set_config_level_structName('interface') tmp.set_config_level_member('ifname', "{}".format(interface)) data = tmp.get_data() msg = config_ipc.config_api(node, data) else: logger.debug("type : {} ,don't set ip".format(node['type']))
def sup_unset_static_route(self, node, network, prefix, nexthop, metric=1): oper = 'delete' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'route') tmp.set_config_member('destip', "{}".format(network)) tmp.set_config_member('masklen', int(prefix)) tmp.set_config_member('gateway', nexthop) tmp.set_config_member('flag', 0) tmp.set_config_member('distance', int(metric)) tmp.set_config_member('weight', 1) tmp.set_config_member("ifname", "") data = tmp.get_data() logger.debug(data) msg = config_ipc.config_api(node, data)
def sup_del_dhcp_server(self, node, dhcp_pool_name): '''config dhcp server for sangfor sup :param node: sangfor sup node. :param dhcp_pool_name: dhcp pool name. :type node: node :type string: str ''' oper='delete' tmp=config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName','dhcp_pool') tmp.set_config_member('dhcp_pool_name',"{}".format(dhcp_pool_name)) data=tmp.get_data() msg=config_ipc.config_api(node,data)
def sup_l2_config_trunk(node, interface, trunk_list=[]): oper = 'edit' tmp = config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName', 'vlan') tmp.set_config_member('interface_name', "{}".format(interface)) tmp.set_config_member('access_vlanid', 0) tmp.set_config_level_structName('interface') tmp.set_config_level_member('ifname', "{}".format(interface)) trunk_list = json.loads(trunk_list) MIN_VLAN_ID = 1 MAX_VLAN_ID = 4094 bitmap = [0] * 512 if trunk_list and len(trunk_list) > 0: for i in range(0, len(trunk_list)): element = trunk_list[i] list = element.split("-") if list and len(list) == 1: min_vlanid = int(str(list[0])) max_vlanid = min_vlanid elif list and len(list) == 2: min_vlanid = int(str(list[0])) max_vlanid = int(str(list[1])) else: logger.warning( "vlan_type is {}, vlanid_range input error ".format( vlan_type)) raise Exception( "vlan_type is {}, vlanid_range input error ".format( vlan_type)) if min_vlanid < MIN_VLAN_ID \ or max_vlanid > MAX_VLAN_ID \ or min_vlanid > max_vlanid: logger.warning( "vlanid_range input error ,please input {}-{}".format( MIN_VLAN_ID, MAX_VLAN_ID)) raise Exception( "vlanid_range input error ,please input {}-{}".format( MIN_VLAN_ID, MAX_VLAN_ID)) for ele in range(min_vlanid, max_vlanid + 1): mask = 0x1 << (ele % 8) bitmap[(ele / 8)] |= mask tmp.set_config_member('vlan_bitmap', bitmap) data = tmp.get_data() msg = config_ipc.config_api(node, data)
def sup_set_dhcp_server(self, node, dhcp_pool_name, start_ip, end_ip, gateway, netmask, lease , dns=[], wins=[]): '''config dhcp server for sangfor sup :param node: sangfor sup node. :param dhcp_pool_name: dhcp pool name. :param start_ip: dhcp pool start ip. :param end_ip: dhcp pool end ip. :param gateway: dhcp pool gataway. :param netmask: dhcp pool netmask. :param lease: dhcp pool lease. :param dns: dhcp pool dns. :param wins: dhcp pool dns. :type node: node :type string: str :type string: ipv4 eg 1.1.1.10 :type string: ipv4 eg 1.1.1.20 :type string: ipv4 eg 1.1.1.1 :type string: ipv4 eg 255.255.255.0 :type list: list eg ['202.106.0.20'] or ['192.168.0.1','202.106.0.20'] :type list: list eg ['202.106.0.20'] or ['192.168.0.1','202.106.0.20'] :type list: int eg 3600 ''' oper='edit' tmp=config_ipc_data() tmp.set_oper(oper) tmp.set_config_member('configStructName','dhcp_pool') tmp.set_config_member('dhcp_pool_name',"{}".format(dhcp_pool_name)) tmp.set_config_member('gateway',"{}".format(gateway)) tmp.set_config_member('netmask',"{}".format(netmask)) tmp.set_config_member('start_ip',"{}".format(start_ip)) tmp.set_config_member('end_ip',"{}".format(end_ip)) tmp.set_config_member('lease',"{}".format(lease)) if isinstance(dns, list): tmp.set_config_member('dns',dns) else raise "type(dns) is not list : {}".format(dns) if isinstance(wins, list): tmp.set_config_member('wins',wins) else raise "type(wins) is not list : {}".format(wins) data=tmp.get_data() msg=config_ipc.config_api(node,data)