Example #1
0
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
Example #2
0
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
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