我正在使用以下代码使用Google Compute Engine Java API将目标池添加到java中的Google计算引擎。
Operation operation = compute.targetPools().insert(PROJECT_ID, REGION_NAME, targetPool).execute();
在执行下一行之前,我需要确保成功添加目标池。在Google Compute Engine API中执行此操作的最佳方式是什么?
答案 0 :(得分:2)
您需要等待操作处于DONE状态,然后检查它是否没有错误。为此,您需要使用计算机对轮廓进行轮询。"操作"()。get() - 我将操作放在引号中,因为有三种类型的操作:global,区域和区域,每个都有自己的服务:globalOperations(),regionOperations()和zoneOperations()。由于targetPools是区域资源,因此insert创建的操作也是区域性的,因此您需要使用compute()。regionOperations()。get()。代码:
while (!operation.getStatus().equals("DONE")) {
RegionOperations.Get getOperation = compute.regionOperations().get(
PROJECT_ID, REGION_NAME, operation.getName());
operation = getOperation.execute();
}
if (operation.getError() == null) {
// targetPools has been successfully created
}
答案 1 :(得分:1)
一种可能性是检查状态
while(!operation.getStatus().equals("DONE")) {
//wait
System.out.println("Progress: " + operation.getProgress());
}
// Check if Success
if(operation.getError() != null) {
// Handle Error
} else {
// Succeed with Program
}
答案 2 :(得分:0)
您是否尝试过使用try / catch块? 你可以这样做:
try
{
Operation operation = compute.targetPools().insert(PROJECT_ID, REGION_NAME, targetPool).execute();
}
catch(Exception ex)
{
//Error handling stuff
}
希望有所帮助:)