Call real API (#15589)

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
This commit is contained in:
Jacob Shandling 2023-12-12 10:03:34 -08:00 committed by GitHub
parent f1acd30bcf
commit 5bea0c5cb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 386 deletions

View file

@ -239,96 +239,6 @@ const HostDetailsPage = ({
mdm?.enrollment_status !== null && refetchMdm();
};
// TODO - remove dummy schedule
const dummySchedule: IQueryStats[] = [
{
scheduled_query_name: "cached query 1 - Never reported",
query_name: "query 1",
description: "should render 'Never' ",
discard_data: false,
last_fetched: null,
automations_enabled: false,
interval: 1000,
scheduled_query_id: 1,
pack_id: 1,
pack_name: "Team: 💻 Workstations",
average_memory: 435814,
denylisted: false,
executions: 5,
last_executed: "2023-11-29T15:20:02Z",
output_size: 1204,
system_time: 9,
user_time: 3,
wall_time: 0,
},
{
scheduled_query_name: "cached query 2 - stored results",
description: "should render with row clickable to its report",
discard_data: false,
query_name: "query 2",
last_fetched: "2023-11-29T15:20:02Z",
automations_enabled: false,
interval: 1000,
scheduled_query_id: 2,
pack_id: 1,
pack_name: "Team: 💻 Workstations",
average_memory: 435814,
denylisted: false,
executions: 5,
last_executed: "2023-11-29T15:20:02Z",
output_size: 1204,
system_time: 9,
user_time: 3,
wall_time: 0,
},
{
scheduled_query_name:
"cached query 3 - sending results to a log destination, not storing in Fleet",
description: "should render '---', not link to report",
interval: 1000,
discard_data: true,
automations_enabled: true,
query_name: "query 3",
last_fetched: null,
scheduled_query_id: 3,
pack_id: 1,
pack_name: "Team: 💻 Workstations",
average_memory: 435814,
denylisted: false,
executions: 5,
last_executed: "2023-11-29T15:20:02Z",
output_size: 1204,
system_time: 9,
user_time: 3,
wall_time: 0,
},
{
scheduled_query_name:
"cached query 4 - stored results, but no current interval",
description: "should render with row clickable to its report",
discard_data: false,
query_name: "query 4",
last_fetched: "2023-11-29T15:20:02Z",
automations_enabled: false,
interval: 0,
scheduled_query_id: 4,
pack_id: 1,
pack_name: "Team: 💻 Workstations",
average_memory: 435814,
denylisted: false,
executions: 5,
last_executed: "2023-11-29T15:20:02Z",
output_size: 1204,
system_time: 9,
user_time: 3,
wall_time: 0,
},
];
const {
isLoading: isLoadingHost,
data: host,
@ -391,8 +301,7 @@ const HostDetailsPage = ({
}
setHostSoftware(returnedHost.software || []);
setUsersState(returnedHost.users || []);
// TODO remove dummy data
setSchedule(dummySchedule);
setSchedule(schedule);
if (returnedHost.pack_stats) {
const packStatsByType = returnedHost.pack_stats.reduce(
(
@ -411,9 +320,7 @@ const HostDetailsPage = ({
},
{ packs: [], schedule: [] }
);
// TODO - restore real data
// setSchedule(packStatsByType.schedule);
setPacksState(packStatsByType.packs);
setSchedule(packStatsByType.schedule);
}
},
onError: (error) => handlePageError(error),

View file

@ -37,292 +37,34 @@ const HostQueryReport = ({
const [showQuery, setShowQuery] = useState(false);
// TODO - remove dummy data, restore API call
const [[hqrResponse, queryResponse], hqrLoading, hqrError] = [
// // render report
// [
// {
// host_name: "Haley's Macbook Air",
// report_clipped: false,
// last_fetched: "2021-01-01T00:00:00.000Z",
// results: [
// {
// columns: {
// username: "user1",
// email: "e@mail",
// ausername: "user1",
// aemail: "e@mail",
// aausername: "user1",
// aaemail: "e@mail",
// aaausername: "user1",
// aaaemail: "e@mail",
// aaaausername: "user1",
// aaaaemail: "e@mail",
// aaaaausername: "user1",
// aaaaaemail: "e@mail",
// aaaaaausername: "user1",
// aaaaaaemail: "e@mail",
// aaaaaaausername: "user1",
// aaaaaaaemail: "e@mail",
// aaaaaaaausername: "user1",
// aaaaaaaaemail: "e@mail",
// aaaaaaaaausername: "user1",
// aaaaaaaaaemail: "e@mail",
// aaaaaaaaaausername: "user1",
// aaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaausername: "user1",
// aaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// },
// },
// {
// columns: {
// username: "zser1",
// email: "e@mail",
// ausername: "user1",
// aemail: "e@mail",
// aausername: "user1",
// aaemail: "e@mail",
// aaausername: "user1",
// aaaemail: "e@mail",
// aaaausername: "user1",
// aaaaemail: "e@mail",
// aaaaausername: "user1",
// aaaaaemail: "e@mail",
// aaaaaausername: "user1",
// aaaaaaemail: "e@mail",
// aaaaaaausername: "user1",
// aaaaaaaemail: "e@mail",
// aaaaaaaausername: "user1",
// aaaaaaaaemail: "e@mail",
// aaaaaaaaausername: "user1",
// aaaaaaaaaemail: "e@mail",
// aaaaaaaaaausername: "user1",
// aaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaausername: "user1",
// aaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// },
// },
// {
// columns: {
// username: "aser1",
// email: "e@mail",
// ausername: "user1",
// aemail: "e@mail",
// aausername: "user1",
// aaemail: "e@mail",
// aaausername: "user1",
// aaaemail: "e@mail",
// aaaausername: "user1",
// aaaaemail: "e@mail",
// aaaaausername: "user1",
// aaaaaemail: "e@mail",
// aaaaaausername: "user1",
// aaaaaaemail: "e@mail",
// aaaaaaausername: "user1",
// aaaaaaaemail: "e@mail",
// aaaaaaaausername: "user1",
// aaaaaaaaemail: "e@mail",
// aaaaaaaaausername: "user1",
// aaaaaaaaaemail: "e@mail",
// aaaaaaaaaausername: "user1",
// aaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaausername: "user1",
// aaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// aaaaaaaaaaaaaaaaaaaaaaausername: "user1",
// aaaaaaaaaaaaaaaaaaaaaaaemail: "e@mail",
// },
// },
// ],
// },
// {
// name: "Test Query",
// description: "A great query",
// query: "SELECT * FROM users",
// discard_data: false,
// interval: 20,
// },
// ],
const {
data: hqrResponse,
isLoading: hqrLoading,
error: hqrError,
} = useQuery<IGetHQRResponse, Error>(
[hostId, queryId],
() => hqrAPI.load(hostId, queryId),
{
refetchOnMount: false,
refetchOnReconnect: false,
refetchOnWindowFocus: false,
}
);
// collecting results (A)
[
{
host_name: "Haley's Macbook Air",
report_clipped: false,
last_fetched: null,
results: [],
},
{
name: "Test Query",
description: "a great query",
query: "SELECT * FROM users",
discard_data: false,
inverval: 20,
},
],
// // nothing to report (B)
// [
// {
// host_name: "Haley's Macbook Air",
// report_clipped: false,
// last_fetched: "2021-01-01T00:00:00.000Z",
// results: [],
// },
// {
// name: "Test Query",
// description: "a great query",
// query: "SELECT * FROM users",
// discard_data: false,
// inverval: 20,
// },
// ],
// // report clipped (C)
// [
// {
// host_name: "Haley's Macbook Air",
// report_clipped: true,
// last_fetched: "2021-01-01T00:00:00.000Z",
// results: [],
// },
// {
// name: "Test Query",
// description: "a great query",
// query: "SELECT * FROM users",
// interval: 20,
// discard_data: false,
// },
// ],
// // reroute (local setting)
// [
// {
// host_name: "Haley's Macbook Air",
// report_clipped: false,
// last_fetched: "2021-01-01T00:00:00.000Z",
// results: [
// {
// columns: {
// username: "user1",
// email: "e@mail",
// },
// },
// ],
// },
// {
// name: 'Test Query',
// description: "a great query",
// query: "SELECT * FROM users",
// discard_data: true,
// inverval: 20,
// },
// ],
false,
null,
];
// const {
// data: hqrResponse,
// isLoading: hqrLoading,
// error: hqrError,
// } = useQuery<IGetHQRResponse, Error>(
// [hostId, queryId],
// () => hqrAPI.load(hostId, queryId),
// {
// refetchOnMount: false,
// refetchOnReconnect: false,
// refetchOnWindowFocus: false,
// }
// );
// const {
// isLoading: queryLoading,
// data: queryResponse,
// error: queryError,
// } = useQuery<IGetQueryResponse, Error, ISchedulableQuery>(
// ["query", queryId],
// () => queryAPI.load(queryId),
// {
// enabled: !!queryId,
// refetchOnMount: false,
// refetchOnReconnect: false,
// refetchOnWindowFocus: false,
// }
// );
// TODO - remove mock loading state
const queryLoading = false;
const {
isLoading: queryLoading,
data: queryResponse,
error: queryError,
} = useQuery<ISchedulableQuery, Error, ISchedulableQuery>(
["query", queryId],
() => queryAPI.load(queryId),
{
enabled: !!queryId,
refetchOnMount: false,
refetchOnReconnect: false,
refetchOnWindowFocus: false,
}
);
const isLoading = queryLoading || hqrLoading;
@ -331,8 +73,7 @@ const HostQueryReport = ({
report_clipped: reportClipped,
last_fetched: lastFetched,
results,
// TODO - remove below casting, just for testing
} = (hqrResponse || {}) as Partial<IGetHQRResponse>;
} = hqrResponse || {};
// API response is nested this way to mirror that of the full Query Reports response (IQueryReport)
const rows = results?.map((row) => row.columns) ?? [];
@ -342,7 +83,7 @@ const HostQueryReport = ({
description: queryDescription,
query: querySQL,
discard_data: queryDiscardData,
} = (queryResponse || {}) as Partial<ISchedulableQuery>;
} = queryResponse || {};
// TODO - finalize local setting reroute conditions
// previous reroute can be done before API call, not this one, hence 2

View file

@ -74,9 +74,7 @@ const HostQueries = ({
if (!hostId || !queryId || !should_link_to_hqr || queryReportsDisabled) {
return;
}
// TODO - restore real hostId
router.push(`${PATHS.HOST_QUERY_REPORT(82, queryId)}`);
// router.push(`${PATHS.HOST_QUERY_REPORT(hostId, queryId)}`);
router.push(`${PATHS.HOST_QUERY_REPORT(hostId, queryId)}`);
},
[hostId, queryReportsDisabled, router]
);