Skip to content

Commit bf3fe90

Browse files
authored
Merge pull request #64 from nirupama-dev/bug-api-call-performance-vertex
Bug api call performance vertex
2 parents eec9266 + fe8c7d2 commit bf3fe90

6 files changed

Lines changed: 360 additions & 294 deletions

File tree

src/scheduler/vertex/CreateVertexScheduler.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -586,8 +586,8 @@ const CreateVertexScheduler = ({
586586
/**
587587
* Hosts the machine type API service
588588
*/
589-
const machineTypeAPI = async () => {
590-
await VertexServices.machineTypeAPIService(
589+
const machineTypeAPI = () => {
590+
VertexServices.machineTypeAPIService(
591591
region,
592592
setMachineTypeList,
593593
setMachineTypeLoading,
@@ -600,8 +600,8 @@ const CreateVertexScheduler = ({
600600
/**
601601
* Hosts the cloud storage API service
602602
*/
603-
const cloudStorageAPI = async () => {
604-
await StorageServices.cloudStorageAPIService(
603+
const cloudStorageAPI = () => {
604+
StorageServices.cloudStorageAPIService(
605605
setCloudStorageList,
606606
setCloudStorageLoading,
607607
setErrorMessageBucket
@@ -611,8 +611,8 @@ const CreateVertexScheduler = ({
611611
/**
612612
* To create the new cloud storage bucket API service
613613
*/
614-
const newCloudStorageAPI = async () => {
615-
await StorageServices.newCloudStorageAPIService(
614+
const newCloudStorageAPI = () => {
615+
StorageServices.newCloudStorageAPIService(
616616
searchValue,
617617
setIsCreatingNewBucket,
618618
setBucketError
@@ -622,8 +622,8 @@ const CreateVertexScheduler = ({
622622
/**
623623
* Hosts the service account API service
624624
*/
625-
const serviceAccountAPI = async () => {
626-
await IamServices.serviceAccountAPIService(
625+
const serviceAccountAPI = () => {
626+
IamServices.serviceAccountAPIService(
627627
setServiceAccountList,
628628
setServiceAccountLoading,
629629
setErrorMessageServiceAccount
@@ -633,8 +633,8 @@ const CreateVertexScheduler = ({
633633
/**
634634
* Hosts the primary network API service
635635
*/
636-
const primaryNetworkAPI = async () => {
637-
await ComputeServices.primaryNetworkAPIService(
636+
const primaryNetworkAPI = () => {
637+
ComputeServices.primaryNetworkAPIService(
638638
setPrimaryNetworkList,
639639
setPrimaryNetworkLoading,
640640
setErrorMessagePrimaryNetwork
@@ -644,8 +644,8 @@ const CreateVertexScheduler = ({
644644
/**
645645
* Hosts the sub network API service based on the primary network
646646
*/
647-
const subNetworkAPI = async (primaryNetwork: string | undefined) => {
648-
await ComputeServices.subNetworkAPIService(
647+
const subNetworkAPI = (primaryNetwork: string | undefined) => {
648+
ComputeServices.subNetworkAPIService(
649649
region,
650650
primaryNetwork,
651651
setSubNetworkList,
@@ -657,8 +657,8 @@ const CreateVertexScheduler = ({
657657
/**
658658
* Hosts the shared network API service
659659
*/
660-
const sharedNetworkAPI = async () => {
661-
await ComputeServices.sharedNetworkAPIService(
660+
const sharedNetworkAPI = () => {
661+
ComputeServices.sharedNetworkAPIService(
662662
setSharedNetworkList,
663663
setSharedNetworkLoading,
664664
hostProject?.name,
@@ -782,7 +782,7 @@ const CreateVertexScheduler = ({
782782
/**
783783
* Cancel a job schedule
784784
*/
785-
const handleCancel = async () => {
785+
const handleCancel = () => {
786786
if (!editMode) {
787787
setCreateCompleted(false);
788788
app.shell.activeWidget?.close();

src/scheduler/vertex/VertexInterfaces.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,10 @@ export interface IActivePaginationVariables {
117117
pageTokenList: string[];
118118
nextPageToken: string | null;
119119
}
120+
121+
// Define the expected type for formattedResponse
122+
export interface IFormattedResponse {
123+
schedules?: IVertexScheduleList[];
124+
nextPageToken?: string;
125+
error?: { code: number; message: string };
126+
}

src/services/Compute.tsx

Lines changed: 100 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
import { toast } from 'react-toastify';
1818
import { requestAPI } from '../handler/Handler';
1919
import { SchedulerLoggingService, LOG_LEVEL } from './LoggingService';
20-
import { toastifyCustomStyle } from '../utils/Config';
20+
import { toastifyCustomStyle, toastifyCustomWidth } from '../utils/Config';
21+
import ExpandToastMessage from '../scheduler/common/ExpandToastMessage';
22+
import React from 'react';
2123

2224
export class ComputeServices {
2325
static getParentProjectAPIService = async (
@@ -39,38 +41,43 @@ export class ComputeServices {
3941
toast.error('Failed to fetch host project');
4042
}
4143
};
42-
static primaryNetworkAPIService = async (
44+
static primaryNetworkAPIService = (
4345
setPrimaryNetworkList: (value: { name: string; link: string }[]) => void,
4446
setPrimaryNetworkLoading: (value: boolean) => void,
4547
setErrorMessagePrimaryNetwork: (value: string) => void
4648
) => {
47-
try {
48-
setPrimaryNetworkLoading(true);
49-
const formattedResponse: any = await requestAPI('api/compute/network');
50-
if (formattedResponse.length > 0) {
51-
const primaryNetworkList = formattedResponse.map((network: any) => ({
52-
name: network.name,
53-
link: network.selfLink
54-
}));
55-
primaryNetworkList.sort();
56-
setPrimaryNetworkList(primaryNetworkList);
57-
} else if (formattedResponse.error) {
58-
setErrorMessagePrimaryNetwork(formattedResponse.error);
59-
setPrimaryNetworkList([]);
60-
} else {
61-
setPrimaryNetworkList([]);
62-
}
49+
setPrimaryNetworkLoading(true);
50+
requestAPI('api/compute/network')
51+
.then((formattedResponse: any) => {
52+
if (formattedResponse.length > 0) {
53+
const primaryNetworkList = formattedResponse.map((network: any) => ({
54+
name: network.name,
55+
link: network.selfLink
56+
}));
57+
primaryNetworkList.sort();
58+
setPrimaryNetworkList(primaryNetworkList);
59+
} else if (formattedResponse.error) {
60+
setErrorMessagePrimaryNetwork(formattedResponse.error);
61+
setPrimaryNetworkList([]);
62+
} else {
63+
setPrimaryNetworkList([]);
64+
}
6365

64-
setPrimaryNetworkLoading(false);
65-
} catch (error) {
66-
setPrimaryNetworkList([]);
67-
setPrimaryNetworkLoading(false);
68-
SchedulerLoggingService.log(
69-
'Error listing primary network',
70-
LOG_LEVEL.ERROR
71-
);
72-
toast.error('Failed to fetch primary network list', toastifyCustomStyle);
73-
}
66+
setPrimaryNetworkLoading(false);
67+
})
68+
.catch(error => {
69+
setPrimaryNetworkList([]);
70+
setPrimaryNetworkLoading(false);
71+
SchedulerLoggingService.log(
72+
`Error listing primary network ${error}`,
73+
LOG_LEVEL.ERROR
74+
);
75+
const errorResponse = `Failed to fetch primary network list : ${error}`;
76+
toast.error(
77+
<ExpandToastMessage message={errorResponse} />,
78+
errorResponse.length > 500 ? toastifyCustomWidth : toastifyCustomStyle
79+
);
80+
});
7481
};
7582

7683
static subNetworkAPIService = async (
@@ -80,37 +87,42 @@ export class ComputeServices {
8087
setSubNetworkLoading: (value: boolean) => void,
8188
setErrorMessageSubnetworkNetwork: (value: string) => void
8289
) => {
83-
try {
84-
setSubNetworkLoading(true);
85-
const formattedResponse: any = await requestAPI(
86-
`api/compute/subNetwork?region_id=${region}&network_id=${primaryNetworkSelected}`
87-
);
88-
if (formattedResponse.length > 0) {
89-
const subNetworkList = formattedResponse
90-
.filter((network: any) => network.privateIpGoogleAccess === true)
91-
.map((network: any) => ({
92-
name: network.name,
93-
link: network.selfLink
94-
}));
95-
subNetworkList.sort();
96-
setSubNetworkList(subNetworkList);
97-
setErrorMessageSubnetworkNetwork('');
98-
} else if (formattedResponse.error) {
99-
setErrorMessageSubnetworkNetwork(formattedResponse.error);
90+
setSubNetworkLoading(true);
91+
requestAPI(
92+
`api/compute/subNetwork?region_id=${region}&network_id=${primaryNetworkSelected}`
93+
)
94+
.then((formattedResponse: any) => {
95+
if (formattedResponse.length > 0) {
96+
const subNetworkList = formattedResponse
97+
.filter((network: any) => network.privateIpGoogleAccess === true)
98+
.map((network: any) => ({
99+
name: network.name,
100+
link: network.selfLink
101+
}));
102+
subNetworkList.sort();
103+
setSubNetworkList(subNetworkList);
104+
setErrorMessageSubnetworkNetwork('');
105+
} else if (formattedResponse.error) {
106+
setErrorMessageSubnetworkNetwork(formattedResponse.error);
107+
setSubNetworkList([]);
108+
} else {
109+
setSubNetworkList([]);
110+
}
111+
setSubNetworkLoading(false);
112+
})
113+
.catch(error => {
100114
setSubNetworkList([]);
101-
} else {
102-
setSubNetworkList([]);
103-
}
104-
setSubNetworkLoading(false);
105-
} catch (error) {
106-
setSubNetworkList([]);
107-
setSubNetworkLoading(false);
108-
SchedulerLoggingService.log(
109-
'Error listing sub networks',
110-
LOG_LEVEL.ERROR
111-
);
112-
toast.error('Failed to fetch sub networks list', toastifyCustomStyle);
113-
}
115+
setSubNetworkLoading(false);
116+
SchedulerLoggingService.log(
117+
`Error listing sub networks ${error}`,
118+
LOG_LEVEL.ERROR
119+
);
120+
const errorResponse = `Failed to fetch sub networks list : ${error}`;
121+
toast.error(
122+
<ExpandToastMessage message={errorResponse} />,
123+
errorResponse.length > 500 ? toastifyCustomWidth : toastifyCustomStyle
124+
);
125+
});
114126
};
115127

116128
static sharedNetworkAPIService = async (
@@ -121,31 +133,36 @@ export class ComputeServices {
121133
hostProject: string,
122134
region: string
123135
) => {
124-
try {
125-
setSharedNetworkLoading(true);
126-
const formattedResponse: any = await requestAPI(
127-
`api/compute/sharedNetwork?project_id=${hostProject}&region_id=${region}`
128-
);
129-
if (formattedResponse.length > 0) {
130-
const sharedNetworkList = formattedResponse.map((network: any) => ({
131-
name: network.subnetwork.split('/').pop(),
132-
network: network.network,
133-
subnetwork: network.subnetwork
134-
}));
135-
sharedNetworkList.sort();
136-
setSharedNetworkList(sharedNetworkList);
137-
} else {
136+
setSharedNetworkLoading(true);
137+
requestAPI(
138+
`api/compute/sharedNetwork?project_id=${hostProject}&region_id=${region}`
139+
)
140+
.then((formattedResponse: any) => {
141+
if (formattedResponse.length > 0) {
142+
const sharedNetworkList = formattedResponse.map((network: any) => ({
143+
name: network.subnetwork.split('/').pop(),
144+
network: network.network,
145+
subnetwork: network.subnetwork
146+
}));
147+
sharedNetworkList.sort();
148+
setSharedNetworkList(sharedNetworkList);
149+
} else {
150+
setSharedNetworkList([]);
151+
}
152+
setSharedNetworkLoading(false);
153+
})
154+
.catch(error => {
138155
setSharedNetworkList([]);
139-
}
140-
setSharedNetworkLoading(false);
141-
} catch (error) {
142-
setSharedNetworkList([]);
143-
setSharedNetworkLoading(false);
144-
SchedulerLoggingService.log(
145-
'Error listing shared networks',
146-
LOG_LEVEL.ERROR
147-
);
148-
toast.error('Failed to fetch shared networks list', toastifyCustomStyle);
149-
}
156+
setSharedNetworkLoading(false);
157+
SchedulerLoggingService.log(
158+
`Error listing shared networks ${error}`,
159+
LOG_LEVEL.ERROR
160+
);
161+
const errorResponse = `Failed to fetch shared networks list : ${error}`;
162+
toast.error(
163+
<ExpandToastMessage message={errorResponse} />,
164+
errorResponse.length > 500 ? toastifyCustomWidth : toastifyCustomStyle
165+
);
166+
});
150167
};
151168
}

src/services/Iam.tsx

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -17,43 +17,48 @@
1717
import { toast } from 'react-toastify';
1818
import { requestAPI } from '../handler/Handler';
1919
import { SchedulerLoggingService, LOG_LEVEL } from './LoggingService';
20-
import { toastifyCustomStyle } from '../utils/Config';
20+
import { toastifyCustomStyle, toastifyCustomWidth } from '../utils/Config';
21+
import ExpandToastMessage from '../scheduler/common/ExpandToastMessage';
22+
import React from 'react';
2123

2224
export class IamServices {
23-
static serviceAccountAPIService = async (
25+
static serviceAccountAPIService = (
2426
setServiceAccountList: (
2527
value: { displayName: string; email: string }[]
2628
) => void,
2729
setServiceAccountLoading: (value: boolean) => void,
2830
setErrorMessage: (value: string) => void
2931
) => {
30-
try {
31-
setServiceAccountLoading(true);
32-
const formattedResponse: any = await requestAPI(
33-
'api/iam/listServiceAccount'
34-
);
35-
if (formattedResponse.length > 0) {
36-
const serviceAccountList = formattedResponse.map((account: any) => ({
37-
displayName: account.displayName,
38-
email: account.email
39-
}));
40-
serviceAccountList.sort();
41-
setServiceAccountList(serviceAccountList);
42-
} else if (formattedResponse.error) {
43-
setErrorMessage(formattedResponse.error);
32+
setServiceAccountLoading(true);
33+
requestAPI('api/iam/listServiceAccount')
34+
.then((formattedResponse: any) => {
35+
if (formattedResponse.length > 0) {
36+
const serviceAccountList = formattedResponse.map((account: any) => ({
37+
displayName: account.displayName,
38+
email: account.email
39+
}));
40+
serviceAccountList.sort();
41+
setServiceAccountList(serviceAccountList);
42+
} else if (formattedResponse.error) {
43+
setErrorMessage(formattedResponse.error);
44+
setServiceAccountList([]);
45+
} else {
46+
setServiceAccountList([]);
47+
}
48+
setServiceAccountLoading(false);
49+
})
50+
.catch(error => {
4451
setServiceAccountList([]);
45-
} else {
46-
setServiceAccountList([]);
47-
}
48-
setServiceAccountLoading(false);
49-
} catch (error) {
50-
setServiceAccountList([]);
51-
setServiceAccountLoading(false);
52-
SchedulerLoggingService.log(
53-
'Error listing service accounts',
54-
LOG_LEVEL.ERROR
55-
);
56-
toast.error('Failed to fetch service accounts list', toastifyCustomStyle);
57-
}
52+
setServiceAccountLoading(false);
53+
SchedulerLoggingService.log(
54+
`Error listing service accounts : ${error}`,
55+
LOG_LEVEL.ERROR
56+
);
57+
const errorResponse = `Failed to fetch service accounts list : ${error}`;
58+
toast.error(
59+
<ExpandToastMessage message={errorResponse} />,
60+
errorResponse.length > 500 ? toastifyCustomWidth : toastifyCustomStyle
61+
);
62+
});
5863
};
5964
}

0 commit comments

Comments
 (0)