Dcim.DcimInterfacesList tries to unmarshall number into string
DSpeichert opened this issue · 5 comments
When running:
params := dcim.NewDcimInterfacesListParamsWithTimeout(time.Second * 10)
params.SetMacAddress(&hwaddr)
ifList, err := netboxClient4.Dcim.DcimInterfacesList(params, nil)
We get:
json: cannot unmarshal number into Go struct field Interface.results.connected_endpoint of type string
I wasn't able to pinpoint what call exactly gets that (yet) because running the API call via e.g. curl does return a string value for that field ("connected_endpoint_type": "dcim.interface",
).
However, the model does expect a string and does not get one somehow.
This could you be related to #98 can you give that PR a try @DSpeichert
@awlx I have tried that PR and it didn't quite help.
The problem is this part of swagger.json (it repeats multiple times):
"connected_endpoint": {
"title": "Connected endpoint",
"description": "\nReturn the appropriate serializer for the type of connected object.\n",
"type": "object",
"additionalProperties": {
"type": "string"
},
"readOnly": true
},
which generates simply:
// Connected endpoint
//
//
// Return the appropriate serializer for the type of connected object.
//
// Read Only: true
ConnectedEndpoint map[string]string `json:"connected_endpoint,omitempty"`
Here's an example of connected_endpoint
as part of a response to /api/dcim/interfaces
query:
"connected_endpoint": {
"id": 57,
"url": "http://netbox/api/dcim/interfaces/57/",
"device": {
"id": 4,
"url": "http://netbox/api/dcim/devices/4/",
"name": "tor02",
"display_name": "tor02"
},
"name": "Ethernet3",
"cable": 181,
"connection_status": {
"value": true,
"label": "Connected"
}
},
It fails at id
, which is clearly an integer. Likely the swagger spec has to have the whole structure defined.
I agree with @DSpeichert, PR #98 won't fix his problem.
I still get this error:
cannot unmarshal number into Go struct field Interface.results.connected_endpoint of type string
How to get rid of it?
it looks like there is a fix out there:
replace github.com/netbox-community/go-netbox => github.com/stefanhipfel/go-netbox v0.0.0-20200928114340-fcd4119414a4