def create_loopback_interface(obj, params): name = None mac_str = None mac = None try: name = obj.get_attr_data('if/interfaces/interface/name') mac_str = obj.get_attr_data( 'dell-if/if/interfaces/interface/phys-address') except: pass if name is None: nas_if.log_err("Failed to create interface without name") return False nas_if.log_info("interface name is" + str(name)) lst = dn_base_ip_tool.get_if_details(name) if (len(lst)) > 0: nas_if.log_err("Interface already exists" + str(name)) return False if mac_str is None: mac_str = ma.get_offset_mac_addr(ma.get_base_mac_addr(), 0) rc = dn_base_ip_tool.create_loopback_if(name, mac=mac_str) if rc: nas_if.log_info("loopback interface is created" + str(name)) rc = set_loopback_interface(obj) if_index = ifindex_utils.if_nametoindex(name) obj.add_attr(nas_comm.yang.get_value('if_index', 'attr_name'), if_index) params['change'] = obj.get() return rc
def handle_create_op(obj, params): # if no mac specified use the system MAC mac = None try: mac = obj.get_attr_data('base-interface/entry/mac-address') except: pass if mac is None: chassis_obj = cps_object.CPSObject('base-pas/chassis') l = [] if cps.get([chassis_obj.get()], l) and len(l) > 0: chassis_obj = cps_object.CPSObject(obj=l[0]) try: mac = chassis_obj.get_attr_data( 'base-pas/chassis/base_mac_addresses') except: pass else: # since we will set it via the set method.. don't bother setting it at # init time mac = None name = None try: name = obj.get_attr_data('base-interface/entry/name') except: pass if name is None: print("Failed to create interface without name") return False lst = dn_base_ip_tool.get_if_details(name) if len(lst) > 0: print("Failed to create an existing interface ", name) return False rc = dn_base_ip_tool.create_loopback_if(name, mac=mac) if rc: rc = handle_set_obj(obj) if_index = ifindex_utils.if_nametoindex(name) obj.add_attr('base-interface/entry/ifindex', if_index) params['change'] = obj.get() return rc