I've spent some trying to fix the bugs that the original implementation had (related to rpn not being cached properly and the retrieval of VLAN from an RPN, that cannot be done by querying Online.net). After a few tries I've come to the conclusion that the coupling between of server and rpn had a few issues:
It was making the server resource more complicated than it should
It didn't match the Online.net native entities
The fact that VLAN is as property of the association rather than the RPN made things complicated
So instead of fixing the bugs, I've modified the online_server resource to not have any kind of rpn logic and added the server_ids property to the original rpn resource (now named online_rpnv2 to make clearer what it represents)
Since no empty rpn can be created, I've preferred to create a online_rpnv2 resource instead of online_rpnv2_association. It also had two benefits:
It played very well with current API implementation
It enforces the idea of just one VLANid per RPNv2. For some reason I still don't understand, it's possible to add servers to an RPN with different VLANids.
I've spent some trying to fix the bugs that the original implementation had (related to rpn not being cached properly and the retrieval of VLAN from an RPN, that cannot be done by querying Online.net). After a few tries I've come to the conclusion that the coupling between of server and rpn had a few issues:
So instead of fixing the bugs, I've modified the
online_server
resource to not have any kind of rpn logic and added theserver_ids
property to the original rpn resource (now namedonline_rpnv2
to make clearer what it represents)Since no empty rpn can be created, I've preferred to create a
online_rpnv2
resource instead ofonline_rpnv2_association
. It also had two benefits:Fixes #6, #7 and #8