Я создаю пользовательский объект с помощью java-клиента для API Kubernetes в методе beforeAll интеграционных тестов.После того, как пользовательский объект создан, стручки также созданы.Однако это работает только тогда, когда я установил Thread.sleep на несколько секунд.Без него объект создается, а затем выполняются все тесты.Я также определил наблюдение за статусами пользовательских объектов, но это тоже не помогает.Есть ли другой способ (кроме Thread.sleep) удерживать несколько секунд, пока не будут созданы модули?
Мой код для создания пользовательского объекта:
def createWatchCustomObjectsCalls() = {
client.getHttpClient.setReadTimeout(0, TimeUnit.SECONDS)
val watchCalls: Watch[V1Namespace] = Watch.createWatch(client,
apiInstance.listNamespacedCustomObjectCall(crdGroup, crdVersion, crdNamespace, crdPlural, "true", null, null, true,null, null),
new TypeToken[Watch.Response[V1Namespace]]{}.getType)
watchCalls
}
override def beforeAll(): Unit = {
val creationResourcePath = Source.getClass.getResource("/" + httpServerScriptName).getPath
val serverStartupProcessBuilder = Seq("sh", creationResourcePath, "&") #> Console.out
serverStartupProcessBuilder.run()
val body = convertYamlToJson()
val sparkAppCreation = apiInstance.createNamespacedCustomObject(crdGroup, crdVersion, crdNamespace, crdPlural, body,"true")
println(sparkAppCreation)
}