Skip to content

Commit 4a4ad66

Browse files
committed
Update based on review to replace duplicated code with a function
- created new deleteIAMCredential() function.
1 parent b24f307 commit 4a4ad66

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

plugins/storage/object/cloudian/src/main/java/org/apache/cloudstack/storage/datastore/driver/CloudianHyperStoreObjectStoreDriverImpl.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -216,11 +216,7 @@ protected AccessKey createIAMCredentials(long storeId, Map<String, String> detai
216216
// Usually, there will only be 1 credential that we manage, but an error persisting
217217
// credentials might leave an un-managed credential which we can just delete. It is better
218218
// to delete as otherwise, we may hit a max credential limit for this IAM user.
219-
DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest();
220-
deleteAccessKeyRequest.setUserName(iamUser);
221-
deleteAccessKeyRequest.setAccessKeyId(accessKeyMetadata.getAccessKeyId());
222-
logger.info("Deleting un-managed IAM AccessKeyId {} for IAM User {}", accessKeyMetadata.getAccessKeyId(), iamUser);
223-
iamClient.deleteAccessKey(deleteAccessKeyRequest);
219+
deleteIAMCredential(iamClient, iamUser, accessKeyMetadata.getAccessKeyId());
224220
}
225221
} catch (NoSuchEntityException e) {
226222
// No IAM User. Ignore and fix this below.
@@ -246,11 +242,7 @@ protected AccessKey createIAMCredentials(long storeId, Map<String, String> detai
246242
logger.debug("Looking for any un-managed IAM credentials for IAM User {}", iamUser);
247243
ListAccessKeysResult listRes = iamClient.listAccessKeys(new ListAccessKeysRequest().withUserName(iamUser));
248244
for (AccessKeyMetadata accessKeyMetadata : listRes.getAccessKeyMetadata()) {
249-
DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest();
250-
deleteAccessKeyRequest.setUserName(iamUser);
251-
deleteAccessKeyRequest.setAccessKeyId(accessKeyMetadata.getAccessKeyId());
252-
logger.info("Deleting un-managed IAM AccessKeyId {} for IAM User {}", accessKeyMetadata.getAccessKeyId(), iamUser);
253-
iamClient.deleteAccessKey(deleteAccessKeyRequest);
245+
deleteIAMCredential(iamClient, iamUser, accessKeyMetadata.getAccessKeyId());
254246
}
255247
}
256248

@@ -260,6 +252,21 @@ protected AccessKey createIAMCredentials(long storeId, Map<String, String> detai
260252
return iamAccessKey;
261253
}
262254

255+
/**
256+
* Delete an IAM Credential.
257+
*
258+
* @param iamClient a valid iam connection
259+
* @param iamUser the IAM user that owns the credential to delete.
260+
* @param accessKeyId The IAM credential to delete
261+
*/
262+
protected void deleteIAMCredential(AmazonIdentityManagement iamClient, String iamUser, String accessKeyId) {
263+
DeleteAccessKeyRequest deleteAccessKeyRequest = new DeleteAccessKeyRequest();
264+
deleteAccessKeyRequest.setUserName(iamUser);
265+
deleteAccessKeyRequest.setAccessKeyId(accessKeyId);
266+
logger.info("Deleting un-managed IAM AccessKeyId {} for IAM User {}", accessKeyId, iamUser);
267+
iamClient.deleteAccessKey(deleteAccessKeyRequest);
268+
}
269+
263270
/**
264271
* Persist the Root and IAM user credentials with the Account as required.
265272
* @param storeId the store

0 commit comments

Comments
 (0)