Skip to content

Commit 4d966fc

Browse files
authored
Merge pull request #3094 from andrewbaldwin44/feature/api-base-url
Web UI: Add optional base url for locust requests to an external API
2 parents d207e2c + 89e2f50 commit 4d966fc

File tree

6 files changed

+18
-5
lines changed

6 files changed

+18
-5
lines changed

Diff for: locust/webui/src/components/StateButtons/ResetButton.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Button } from '@mui/material';
22

33
export default function ResetButton() {
44
const onResetStatsClick = () => {
5-
fetch('stats/reset');
5+
fetch((window.baseUrl ? `${window.baseUrl}/` : '') + 'stats/reset');
66
};
77

88
return (

Diff for: locust/webui/src/components/StateButtons/StopButton.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default function StopButton() {
99
}, []);
1010

1111
const onStopButtonClick = () => {
12-
fetch('stop');
12+
fetch((window.baseUrl ? `${window.baseUrl}/` : '') + 'stop');
1313
setIsLoading(true);
1414
};
1515

Diff for: locust/webui/src/components/SwarmForm/SwarmForm.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ function SwarmForm({
203203
</Accordion>
204204
</>
205205
)}
206-
{!isEmpty(extraOptions) && <CustomParameters extraOptions={extraOptions} />}
206+
{!!extraOptions && !isEmpty(extraOptions) && (
207+
<CustomParameters extraOptions={extraOptions} />
208+
)}
207209
{alert && !errorMessage && (
208210
<Alert severity={alert.level || 'info'}>{alert.message}</Alert>
209211
)}

Diff for: locust/webui/src/constants/swarm.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const swarmTemplateArgs = window.templateArgs
2020
export const htmlReportProps: IReport | false = !!(swarmTemplateArgs as IReportTemplateArgs)
2121
.isReport && {
2222
...(swarmTemplateArgs as IReportTemplateArgs),
23-
charts: swarmTemplateArgs.history?.reduce(
23+
charts: (swarmTemplateArgs.history || []).reduce(
2424
(charts, { currentResponseTimePercentiles, ...history }) =>
2525
updateArraysAtProps(charts, { ...currentResponseTimePercentiles, ...history }),
2626
{} as ICharts,

Diff for: locust/webui/src/redux/api/swarm.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,18 @@ import {
1010
import { createFormData } from 'utils/object';
1111
import { camelCaseKeys, snakeCaseKeys } from 'utils/string';
1212

13+
const baseQuery = (args: any, api: any, extraOptions: any) =>
14+
fetchBaseQuery(
15+
window.baseUrl
16+
? {
17+
baseUrl: window.baseUrl,
18+
credentials: 'include',
19+
}
20+
: undefined,
21+
)(args, api, extraOptions);
22+
1323
export const api = createApi({
14-
baseQuery: fetchBaseQuery(),
24+
baseQuery: baseQuery,
1525
endpoints: builder => ({
1626
getStats: builder.query<IStatsResponse, void>({
1727
query: () => 'stats/requests',

Diff for: locust/webui/src/types/window.types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ export interface IWindow {
77
templateArgs: IReportTemplateArgs | ISwarmState;
88
authArgs: IAuthArgs;
99
theme?: PaletteMode;
10+
baseUrl?: string;
1011
}

0 commit comments

Comments
 (0)