def METHOD_NAME(context):
    if_host = context.new_ifname
    if_vlan = context.new_ifname
    ifaddr1 = context.new_ipaddr
    ifaddr2 = context.new_ipaddr
    router = context.new_ipaddr
    dst = str(context.ipnets[1].network)
    (
        context.ndb.interfaces.create(
            ifname=if_host, kind='dummy', state='up'
        ).commit()
    )
    (
        context.ndb.interfaces.create(
            ifname=if_vlan, kind='vlan', state='up', vlan_id=1001, link=if_host
        )
        .add_ip(address=ifaddr1, prefixlen=24)
        .add_ip(address=ifaddr2, prefixlen=24)
        .commit()
    )
    (context.ndb.routes.create(dst=dst, dst_len=24, gateway=router).commit())
    # check everything is in place
    assert interface_exists(context.netns, ifname=if_host)
    assert interface_exists(context.netns, ifname=if_vlan)
    assert address_exists(context.netns, ifname=if_vlan, address=ifaddr1)
    assert address_exists(context.netns, ifname=if_vlan, address=ifaddr2)
    assert route_exists(context.netns, dst=dst, gateway=router)
    # remove the interface
    iface = context.ndb.interfaces[if_host].remove().commit()
    # check there is no interface, no route
    assert not interface_exists(context.netns, ifname=if_host)
    assert not interface_exists(context.netns, ifname=if_vlan)
    assert not address_exists(context.netns, ifname=if_vlan, address=ifaddr1)
    assert not address_exists(context.netns, ifname=if_vlan, address=ifaddr2)
    assert not route_exists(context.netns, dst=dst, gateway=router)
    # revert the changes using the implicit last_save
    iface.rollback()
    assert interface_exists(context.netns, ifname=if_host)
    assert interface_exists(context.netns, ifname=if_vlan)
    assert address_exists(context.netns, ifname=if_vlan, address=ifaddr1)
    assert address_exists(context.netns, ifname=if_vlan, address=ifaddr2)
    assert route_exists(context.netns, dst=dst, gateway=router)