HostsApi method listHosts results in a deserialization error
VDubber opened this issue · comments
Describe the bug
The listHosts function fails to deserialize the response, resulting in the following error:
TypeError: unknown type 'string'
at Function.ObjectSerializer.deserialize (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/models/ObjectSerializer.ts:2163:15)
at Function.ObjectSerializer.deserialize (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/models/ObjectSerializer.ts:2105:28)
at Function.ObjectSerializer.deserialize (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/models/ObjectSerializer.ts:2171:52)
at Function.ObjectSerializer.deserialize (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/models/ObjectSerializer.ts:2171:52)
at Function.ObjectSerializer.deserialize (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/models/ObjectSerializer.ts:2105:28)
at Function.ObjectSerializer.deserialize (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/models/ObjectSerializer.ts:2171:52)
at HostsApiResponseProcessor.<anonymous> (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/packages/datadog-api-client-v1/apis/HostsApi.ts:312:38)
at step (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:48:23)
at Object.next (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:29:53)
at fulfilled (/Users/graph-datadog/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:20:58)
To Reproduce
Steps to reproduce the behavior:
- Create file called hostTest.ts
- Add the following code:
import { client, v1 } from '@datadog/datadog-api-client';
import fetch from "node-fetch"
(async () => {
const configuration = client.createConfiguration({
authMethods: {
apiKeyAuth: 'xxx',
appKeyAuth: 'xxx',
},
debug: true,
});
client.setServerVariables(configuration, {
site: 'us5.datadoghq.com',
});
const a = new v1.HostsApi(configuration);
const r = await a.listHosts().catch(e => console.error(e))
console.log(r)
// Using node-fetch
const nodeR = await fetch(
'https://api.us5.datadoghq.com/api/v1/hosts',
{
method: 'GET',
headers: {
Accept: 'application/json',
"DD-API-KEY": 'xxx',
"DD-APPLICATION-KEY": 'xxx'
}
})
console.log(await nodeR.json())
})();
- Execute with ts-node (provide dependencies)
Expected behavior
I expect to receive back an object with hosts similar to what node-fetch produces.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment and Versions (please complete the following information):
Using node v14
Using @datadog/datadog-api-client@1.8.0
MacOS Ventura 13.1
Additional context
Add any other context about the problem here.
Thanks for opening this issue. Could you curl the endpoint or log the http response by setting debug to true and share the result. Please redact any sensitive information.
Additionally, could you try the 1.9.0
of the library as well which was released today. We recently merged #1003 which might be related to this issue. Thanks again!
I gave 1.9.0 a go and it works great. Thanks!
If it is helpful, here is the result of the curl. It was failing on the MBP host. I added the docker host later.
{
"host_list": [
{
"id": 2323,
"tags_by_source": { "Datadog": ["host:s-MBP.local"] },
"aliases": ["s-MBP.local"],
"apps": ["ntp", "agent"],
"sources": ["agent"],
"name": "s-MBP.local",
"host_name": "s-MBP.local",
"up": true,
"last_reported_time": 1675971295,
"is_muted": false,
"mute_timeout": null,
"meta": {
"cpuCores": 8,
"socket-hostname": "s-MBP.local",
"agent_flavor": "agent",
"install_method": {
"tool": "install_script_mac",
"installer_version": "install_script_mac-1.1.0",
"tool_version": "install_script_mac"
},
"processor": "Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz",
"macV": ["13.1", ["", "", ""], "amd64"],
"nixV": [null, null, null],
"agent_checks": [
["ntp", "ntp", "ntp:xxx", "OK", "", ""],
["network", "network", "network:xxx", "OK", "", ""],
["load", "load", "load", "OK", "", ""],
["disk", "disk", "disk:xxx", "OK", "", ""],
["uptime", "uptime", "uptime", "OK", "", ""],
["memory", "memory", "memory", "OK", "", ""],
["io", "io", "io", "OK", "", ""],
["cpu", "cpu", "cpu", "OK", "", ""]
],
"pythonV": "3.xxx.16",
"machine": "amd64",
"winV": [null, null, null],
"fbsdV": [null, null, null],
"network": null,
"agent_version": "7.42.1",
"socket-fqdn": "localhost",
"platform": "darwin",
"logs_agent": {
"auto_multi_line_detection_enabled": false,
"transport": ""
},
"timezones": ["MST"],
"host_id": 22322323
},
"metrics": { "cpu": 8.535383, "iowait": 0, "load": 0.24775222 }
},
{
"id": 444,
"tags_by_source": { "Datadog": ["host:docker-desktop"] },
"aliases": ["docker-desktop"],
"apps": ["ntp", "agent", "container", "docker"],
"sources": ["agent"],
"name": "docker-desktop",
"host_name": "docker-desktop",
"up": true,
"last_reported_time": 1675971637,
"is_muted": false,
"mute_timeout": null,
"meta": {
"agent_version": "7.42.1",
"winV": ["", "", ""],
"fbsdV": ["", "", ""],
"socket-hostname": "dcef9da35b3a",
"container_meta": {
"docker_swarm": "inactive",
"docker_version": "20.10.10"
},
"pythonV": "3.8.16",
"nixV": ["ubuntu", "22.04", ""],
"processor": "Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz",
"logs_agent": {
"auto_multi_line_detection_enabled": false,
"transport": ""
},
"agent_flavor": "agent",
"platform": "linux",
"network": null,
"agent_checks": [
["container", "container", "container", "OK", "", ""],
["network", "network", "network:xx", "OK", "", ""],
["load", "load", "load", "OK", "", ""],
["cpu", "cpu", "cpu", "OK", "", ""],
["ntp", "ntp", "ntp:xxx", "OK", "", ""],
["file_handle", "file_handle", "file_handle", "OK", "", ""],
["memory", "memory", "memory", "OK", "", ""],
["io", "io", "io", "OK", "", ""],
["disk", "disk", "disk:xxx", "OK", "", ""],
["uptime", "uptime", "uptime", "OK", "", ""],
["docker", "docker", "docker", "OK", "", ""]
],
"install_method": {
"tool": "docker",
"installer_version": "docker",
"tool_version": "docker"
},
"socket-fqdn": "xxx",
"cpuCores": 1,
"timezones": ["UTC"],
"machine": "amd64",
"macV": ["", "", ""],
"host_id": 333
},
"metrics": {
"cpu": 1.5874131,
"iowait": 0.0051527563,
"load": 0.029211111
}
}
],
"total_returned": 2,
"total_matching": 2,
"exact_total_matching": true
}
I've reencountered this error 1.9.0. It was resolved for the above dataset but when run against our customer's data, it is failing with the same error. Unfortunately I can't provide the customer's data to additional insights.
TypeError: unknown type 'string'
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2091:23)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2038:55)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2097:60)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2097:60)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2038:55)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2097:60)
at HostsApiResponseProcessor.<anonymous> (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:283:37)
at step (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:48:23)
at Object.next (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:29:53)
at fulfilled (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:20:58)
Caused by: TypeError: unknown type 'string'
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2091:23)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2038:55)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2097:60)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2097:60)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2038:55)
at Function.ObjectSerializer.deserialize (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/models/ObjectSerializer.js:2097:60)
at HostsApiResponseProcessor.<anonymous> (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:283:37)
at step (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:48:23)
at Object.next (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:29:53)
at fulfilled (/opt/jupiterone/app/node_modules/@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/apis/HostsApi.js:20:58)