class PodUnknownGcController extends BaseGcController<V1Pod> {

    @VisibleForTesting
    boolean isPodUnknownToJobManagement(V1Pod pod, Map<String, Task> currentTasks) {
        V1ObjectMeta metadata = pod.getMetadata();
        V1PodStatus status = pod.getStatus();

        if (metadata == null || status == null) {
            // this pod is missing data so GC it
            return true;
        }

        if (KubeUtil.isPodPhaseTerminal(status.getPhase()) || currentTasks.containsKey(metadata.getName())) {
            return false;
        }

        DateTime creationTimestamp = metadata.getCreationTimestamp();
        return creationTimestamp != null &&
                clock.isPast(creationTimestamp.getMillis() + kubeControllerConfiguration.getPodUnknownGracePeriodMs());
    }

    @Inject public  PodUnknownGcController(
            TitusRuntime titusRuntime,
            LocalScheduler scheduler,
            @Named(POD_UNKNOWN_GC_CONTROLLER) FixedIntervalTokenBucketConfiguration tokenBucketConfiguration,
            @Named(POD_UNKNOWN_GC_CONTROLLER) ControllerConfiguration controllerConfiguration,
            KubeApiFacade kubeApiFacade,
            KubeControllerConfiguration kubeControllerConfiguration,
            V3JobOperations v3JobOperations
    );

}