@@ -30,7 +30,7 @@ export async function handleReadyPod(
3030) : Promise < void > {
3131 const workloadToScan : IWorkload [ ] = [ ] ;
3232 for ( const workload of workloadMetadata ) {
33- const scanned = await getWorkloadImageAlreadyScanned (
33+ const scanned = getWorkloadImageAlreadyScanned (
3434 workload ,
3535 workload . imageName ,
3636 workload . imageId ,
@@ -49,7 +49,7 @@ export async function handleReadyPod(
4949 { workloadToScan, imageId : workload . imageId } ,
5050 'image has not been scanned' ,
5151 ) ;
52- await setWorkloadImageAlreadyScanned (
52+ setWorkloadImageAlreadyScanned (
5353 workload ,
5454 workload . imageName ,
5555 workload . imageId ,
@@ -59,7 +59,7 @@ export async function handleReadyPod(
5959
6060 const workload = workloadToScan [ 0 ] ;
6161 if ( workloadToScan . length > 0 ) {
62- workloadsToScanQueue . push ( {
62+ await workloadsToScanQueue . pushAsync ( {
6363 key : workload . uid ,
6464 workloadMetadata : workloadToScan ,
6565 enqueueTimestampMs : Date . now ( ) ,
@@ -68,29 +68,21 @@ export async function handleReadyPod(
6868}
6969
7070export function isPodReady ( pod : V1Pod ) : boolean {
71- const podStatus = pod . status !== undefined ;
71+ const isTerminating = pod . metadata ?. deletionTimestamp !== undefined ;
7272 const podStatusPhase = pod . status ?. phase === PodPhase . Running ;
73- const podContainerStatuses = pod . status ?. containerStatuses !== undefined ;
74- const containerReadyStatuses = pod . status ?. containerStatuses ?. some (
75- ( container ) =>
76- container . state !== undefined &&
77- ( container . state . running !== undefined ||
78- container . state . waiting !== undefined ) ,
79- ) as boolean ;
73+ const containerReadyStatuses = Boolean (
74+ pod . status ?. containerStatuses ?. every (
75+ ( container ) => container . state ?. running !== undefined ,
76+ ) ,
77+ ) ;
8078
8179 const logContext = {
82- podStatus ,
80+ isTerminating ,
8381 podStatusPhase,
84- podContainerStatuses,
8582 containerReadyStatuses,
8683 } ;
8784 logger . debug ( logContext , 'checking to see if pod is ready to process' ) ;
88- return (
89- podStatus &&
90- podStatusPhase &&
91- podContainerStatuses &&
92- containerReadyStatuses
93- ) ;
85+ return ! isTerminating && podStatusPhase && containerReadyStatuses ;
9486}
9587
9688export async function paginatedNamespacedPodList ( namespace : string ) : Promise < {
@@ -155,12 +147,12 @@ export async function podWatchHandler(pod: V1Pod): Promise<void> {
155147 const workloadRevision = workloadMember . revision
156148 ? workloadMember . revision . toString ( )
157149 : '' ;
158- const scannedRevision = await getWorkloadAlreadyScanned ( workloadMember ) ;
150+ const scannedRevision = getWorkloadAlreadyScanned ( workloadMember ) ;
159151 const isRevisionDifferent =
160152 scannedRevision === undefined ||
161153 Number ( workloadRevision ) > Number ( scannedRevision ) ;
162154 if ( isRevisionDifferent ) {
163- await setWorkloadAlreadyScanned ( workloadMember , workloadRevision ) ;
155+ setWorkloadAlreadyScanned ( workloadMember , workloadRevision ) ;
164156 await sendWorkloadMetadata ( workloadMetadataPayload ) ;
165157 }
166158
@@ -177,16 +169,14 @@ export async function podDeletedHandler(pod: V1Pod): Promise<void> {
177169
178170 const workloadAlreadyScanned = kubernetesObjectToWorkloadAlreadyScanned ( pod ) ;
179171 if ( workloadAlreadyScanned !== undefined ) {
180- await Promise . all ( [
181- deleteWorkloadAlreadyScanned ( workloadAlreadyScanned ) ,
182- deleteWorkloadImagesAlreadyScanned ( {
183- ...workloadAlreadyScanned ,
184- imageIds : pod . spec . containers
185- . filter ( ( container ) => container . image !== undefined )
186- . map ( ( container ) => container . image ! ) ,
187- } ) ,
188- deleteWorkloadFromScanQueue ( workloadAlreadyScanned ) ,
189- ] ) ;
172+ deleteWorkloadAlreadyScanned ( workloadAlreadyScanned ) ;
173+ deleteWorkloadImagesAlreadyScanned ( {
174+ ...workloadAlreadyScanned ,
175+ imageIds : pod . spec . containers
176+ . filter ( ( container ) => container . image !== undefined )
177+ . map ( ( container ) => container . image ! ) ,
178+ } ) ;
179+ deleteWorkloadFromScanQueue ( workloadAlreadyScanned ) ;
190180 }
191181
192182 const workloadName = pod . metadata . name || FALSY_WORKLOAD_NAME_MARKER ;
0 commit comments