Conversation
| is_destination: | ||
| description: | ||
| - Mark the IP address as a destination IP address. | ||
| required: false | ||
| type: bool |
There was a problem hiding this comment.
Is this something from firewall models? I'm not quite following this.
There was a problem hiding this comment.
Apparently these have been here since v2.0.0 (nautobot/nautobot#3399): https://github.com/nautobot/nautobot/blob/develop/nautobot/ipam/models.py#L1626-L1632
There was a problem hiding this comment.
These exist in the data model but aren't really fully baked at this time (i.e. they don't actually do anything) and aren't (IIRC) exposed in the UI either.
There was a problem hiding this comment.
I don't think it hurts to include them, my comment was more of just an FYI.
| # Used by parent modules to declare inline M2M / child-object fields. | ||
| # Keys match self.endpoint values (plural API endpoint names). | ||
| # Values are the API endpoint name to manage the association/assignment. | ||
| M2M_FIELDS = { |
There was a problem hiding this comment.
Note for reviewers: if you only have time to thoroughly review one file it should be this file. This is where almost all of the new logic lives. The rest of the files are primarily the field definitions and tests.
gsnider2195
left a comment
There was a problem hiding this comment.
I didn't see any problems in the module utils. I admit that I didn't understand some of the field name mappings.

First off, I'm sorry for the extra lengthy PR. This has been a personal hackathon project that I've been working on for the last month or so and I think it's going to be something many people will want.
This PR introduces a framework for implementing inline M2M fields on parent modules. This replaces the need to separately create (for example) clusters, devices and device to cluster associations. Now, you can create the cluster and then associate it to the device as part of the
devicemodule:You can also now create Select and Multi-Select custom fields with the choices all with one module:
Each of these M2M associations support their own independent state: merge (default), replace or delete. The rest of the module remains 100% the same and backwards compatible.
As part of this PR, I have deprecated all existing modules that solely made these M2M associations. Once this is merged in, I plan to add any missing M2M associations that haven't been implemented yet or anything else that may benefit from this new framework (e.g., #370, #624, #716).