Subject: [netmod] Question on schema-mount

From: "Bogaert, Bart (Nokia - BE/Antwerp)" <[email-masked]>
Date: Thu, 8 Feb 2018 08:40:50 +0000

Hi,

We have a question w.r.t. deletion of entry in a list using mounted schema knowing that in NC/Y there is no such thing as a "cascading delete" (leafref constructions in many cases even makes it impossible to delete a resource if it is still referred).

How does this apply to such a schema being mounted.  Using the example from the draft:

     +--rw interfaces
     |  +--rw interface* [name]
     |     ...
     +--rw logical-device* [name]
        +--rw name
        |   ...
        +--rw interfaces
          +--rw interface* [name]
             ...

Is it possible in this case to delete /logical-device[name='x'] and the server has to remove all the data associated with the mounted schema?  Or does the edit-config also explicitly has to delete the data related to the mounted schema?

I could not find something in the draft that deals with this (or it is there, but then I did not understand that section very well).

Thanks in advance,
Bart

---

From: Martin Bjorklund <[email-masked]>
Date: Thu, 08 Feb 2018 09:56:18 +0100 (CET)

Hi,

"Bogaert, Bart (Nokia - BE/Antwerp)" <[email-masked]> wrote:
> Hi,
> 
> We have a question w.r.t. deletion of entry in a list using mounted
> schema knowing that in NC/Y there is no such thing as a "cascading
> delete" (leafref constructions in many cases even makes it impossible
> to delete a resource if it is still referred).
> 
> Is it possible in this case to delete /logical-device[name='x'] and
> the server has to remove all the data associated with the mounted
> schema?  Or does the edit-config also explicitly has to delete the
> data related to the mounted schema?

This is not a generic schema mount question, but a question for the
model that provides the mount.

Suppose the model that defines logical-device also augments the
/interfaces list with an leaf to assign interfaces to logical-devices:

  augment /if:interfaces/if:interface {
    leaf assign-to-logical-device {
      type leafref {
        path /logical-device/name;
      }
    }
  }

Then you wouldn't be able to delete the logical-device if it still has
an interface assigned to it.

Also, if you actually remove /logical-device[name='x'], schema mount
doesn't say anything about what really happens - will the server first
delete all config on the logical device and then delete the logical
device entry in the parent, or will the server just delete the entry
in the parent?  These are all questions for the specific model.  I
don't know if the LNE/NI documents specify this behaviour, but they
probably should.

> I could not find something in the draft that deals with this (or it is
> there, but then I did not understand that section very well).

Schema mount doesn't change anything in this regard; it doesn't add
any magical implicit delete or anything like that.

/martin