|
37 | 37 | import org.apache.cloudstack.storage.service.model.ProtocolType; |
38 | 38 | import org.apache.cloudstack.storage.utils.OntapStorageConstants; |
39 | 39 | import org.apache.cloudstack.storage.utils.OntapStorageUtils; |
| 40 | +import org.apache.commons.collections.CollectionUtils; |
40 | 41 | import org.apache.logging.log4j.LogManager; |
41 | 42 | import org.apache.logging.log4j.Logger; |
42 | 43 | import javax.inject.Inject; |
@@ -274,47 +275,49 @@ public void deleteAccessGroup(AccessGroup accessGroup) { |
274 | 275 | String authHeader = OntapStorageUtils.generateAuthHeader(storage.getUsername(), storage.getPassword()); |
275 | 276 | String svmName = storage.getSvmName(); |
276 | 277 | //Get iGroup name per host |
277 | | - for(HostVO host : accessGroup.getHostsToConnect()) { |
278 | | - String igroupName = OntapStorageUtils.getIgroupName(svmName, host.getName()); |
279 | | - logger.info("deleteAccessGroup: iGroup name '{}'", igroupName); |
280 | | - |
281 | | - // Get the iGroup to retrieve its UUID |
282 | | - Map<String, Object> igroupParams = Map.of( |
283 | | - OntapStorageConstants.SVM_DOT_NAME, svmName, |
284 | | - OntapStorageConstants.NAME, igroupName |
285 | | - ); |
286 | | - |
287 | | - try { |
288 | | - OntapResponse<Igroup> igroupResponse = sanFeignClient.getIgroupResponse(authHeader, igroupParams); |
289 | | - if (igroupResponse == null || igroupResponse.getRecords() == null || igroupResponse.getRecords().isEmpty()) { |
290 | | - logger.warn("deleteAccessGroup: iGroup '{}' not found, may have been already deleted", igroupName); |
291 | | - return; |
292 | | - } |
293 | | - |
294 | | - Igroup igroup = igroupResponse.getRecords().get(0); |
295 | | - String igroupUuid = igroup.getUuid(); |
296 | | - |
297 | | - if (igroupUuid == null || igroupUuid.isEmpty()) { |
298 | | - throw new CloudRuntimeException(" iGroup UUID is null or empty for iGroup: " + igroupName); |
299 | | - } |
300 | | - |
301 | | - logger.info("deleteAccessGroup: Deleting iGroup '{}' with UUID '{}'", igroupName, igroupUuid); |
302 | | - |
303 | | - // Delete the iGroup using the UUID |
304 | | - sanFeignClient.deleteIgroup(authHeader, igroupUuid); |
| 278 | + if(!CollectionUtils.isEmpty(accessGroup.getHostsToConnect())) { |
| 279 | + for (HostVO host : accessGroup.getHostsToConnect()) { |
| 280 | + String igroupName = OntapStorageUtils.getIgroupName(svmName, host.getName()); |
| 281 | + logger.info("deleteAccessGroup: iGroup name '{}'", igroupName); |
305 | 282 |
|
306 | | - logger.info("deleteAccessGroup: Successfully deleted iGroup '{}'", igroupName); |
307 | | - |
308 | | - } catch (FeignException e) { |
309 | | - if (e.status() == 404) { |
310 | | - logger.warn("deleteAccessGroup: iGroup '{}' does not exist (status 404), skipping deletion", igroupName); |
311 | | - } else { |
312 | | - logger.error("deleteAccessGroup: FeignException occurred: Status: {}, Exception: {}", e.status(), e.getMessage(), e); |
| 283 | + // Get the iGroup to retrieve its UUID |
| 284 | + Map<String, Object> igroupParams = Map.of( |
| 285 | + OntapStorageConstants.SVM_DOT_NAME, svmName, |
| 286 | + OntapStorageConstants.NAME, igroupName |
| 287 | + ); |
| 288 | + |
| 289 | + try { |
| 290 | + OntapResponse<Igroup> igroupResponse = sanFeignClient.getIgroupResponse(authHeader, igroupParams); |
| 291 | + if (igroupResponse == null || igroupResponse.getRecords() == null || igroupResponse.getRecords().isEmpty()) { |
| 292 | + logger.warn("deleteAccessGroup: iGroup '{}' not found, may have been already deleted", igroupName); |
| 293 | + return; |
| 294 | + } |
| 295 | + |
| 296 | + Igroup igroup = igroupResponse.getRecords().get(0); |
| 297 | + String igroupUuid = igroup.getUuid(); |
| 298 | + |
| 299 | + if (igroupUuid == null || igroupUuid.isEmpty()) { |
| 300 | + throw new CloudRuntimeException(" iGroup UUID is null or empty for iGroup: " + igroupName); |
| 301 | + } |
| 302 | + |
| 303 | + logger.info("deleteAccessGroup: Deleting iGroup '{}' with UUID '{}'", igroupName, igroupUuid); |
| 304 | + |
| 305 | + // Delete the iGroup using the UUID |
| 306 | + sanFeignClient.deleteIgroup(authHeader, igroupUuid); |
| 307 | + |
| 308 | + logger.info("deleteAccessGroup: Successfully deleted iGroup '{}'", igroupName); |
| 309 | + |
| 310 | + } catch (FeignException e) { |
| 311 | + if (e.status() == 404) { |
| 312 | + logger.warn("deleteAccessGroup: iGroup '{}' does not exist (status 404), skipping deletion", igroupName); |
| 313 | + } else { |
| 314 | + logger.error("deleteAccessGroup: FeignException occurred: Status: {}, Exception: {}", e.status(), e.getMessage(), e); |
| 315 | + throw e; |
| 316 | + } |
| 317 | + } catch (Exception e) { |
| 318 | + logger.error("deleteAccessGroup: Exception occurred: {}", e.getMessage(), e); |
313 | 319 | throw e; |
314 | 320 | } |
315 | | - } catch (Exception e) { |
316 | | - logger.error("deleteAccessGroup: Exception occurred: {}", e.getMessage(), e); |
317 | | - throw e; |
318 | 321 | } |
319 | 322 | } |
320 | 323 | } catch (FeignException e) { |
|
0 commit comments