Skip to content

session.VirtualAddresses() failed to parse json response if RouteAdvertisement is "selective" #50

@hoangnng

Description

@hoangnng

Issue:
Calling session.VirtualAddresses() with a VIP's RouteAdvertisement set to "selective" caused this error

Getting error: 2020-08-10_20:32:31.10538 I0810 20:32:31.105345 9459 tim_f5_ingestor.go:301] Polling failed (failed to list virtual addresses on F5 5f31ac7d497d4f723ca20dff: Unknown boolean conversion for RouteAdvertisement: selective)

This happens after upgrading big-ip to 13.0.

Analysis:
It appears the json declaration for virtualAddressDTO still uses the old value "enabled" for RouteAdvertisement
https://github.com/f5devcentral/go-bigip/blob/master/ltm.go#L596
This is a knowledge base article about the change of "enabled" to "selective" for RouteAdvertisement
https://support.f5.com/csp/article/K85543242

Proposed fix:

diff --git a/golang/src/vendor/github.com/f5devcentral/go-bigip/ltm.go b/golang/src/vendor/github.com/f5devcentral/go-bigip/ltm.go
index eb78ec6cbcf..a79d5266863 100644
--- a/golang/src/vendor/github.com/f5devcentral/go-bigip/ltm.go
+++ b/golang/src/vendor/github.com/f5devcentral/go-bigip/ltm.go
@@ -567,7 +567,7 @@ type virtualAddressDTO struct {
        ICMPEcho              string `json:"icmpEcho,omitempty" bool:"enabled"`
        InheritedTrafficGroup string `json:"inheritedTrafficGroup,omitempty" bool:"yes"`
        Mask                  string `json:"mask,omitempty"`
-       RouteAdvertisement    string `json:"routeAdvertisement,omitempty" bool:"enabled"`
+       RouteAdvertisement    string `json:"routeAdvertisement,omitempty" bool:"selective"`
        ServerScope           string `json:"serverScope,omitempty"`
        TrafficGroup          string `json:"trafficGroup,omitempty"`
        Unit                  int    `json:"unit,omitempty"`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions