Here's sample to construct "mpls ldp" config and mpls ldp sync under ospf:
def config_ospf(provider, keys, router_info, ospf):
..
..
..
name_scope = area_area_id.name_scopes.NameScope()
name_scope.interface_name = interface_name
if interface_ospf_ldp=="Y":
name_scope.ldp_sync=True <<<<<
def config_mplsldp(provider, keys, router_info, mplsldp):
lines=read_interface_files()
connected_router=router_info[12]
interface_mpls_ldp_config=mplsldp.default_vrf.interfaces.Interface()
for line in lines:
p=line.split(",")
if p[0]==connected_router:
# Create router_id
interface_name=p[1]
ipv4addr, netmask = cidr_to_netmask(p[2])
interface_mpls_ldp=p[7]
if interface_name=="Loopback0":
mplsldp.default_vrf.global_.router_id=ipv4addr
else:
if interface_mpls_ldp=="Y":
interface_mpls_ldp_config.interface_name=interface_name
interface_mpls_ldp_config.enable=Empty()
mplsldp.default_vrf.interfaces.interface.append(interface_mpls_ldp_config)
mplsldp.enable=Empty()
# create configuration on NETCONF device
crud.create(provider, mplsldp)