Skip to content

Commit fbe3153

Browse files
authored
Merge pull request #132 from scality/improvement/OSIS-137-canonicalID-as-bucket-owner
2 parents 934ecc4 + 7a0ec56 commit fbe3153

File tree

5 files changed

+45
-14
lines changed

5 files changed

+45
-14
lines changed

osis-core/src/main/java/com/scality/osis/model/OsisTenant.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public class OsisTenant {
2121
// @NotNull
2222
private String tenantId;
2323

24+
private String canonicalId;
25+
2426
private List<String> cdTenantIds;
2527

2628
public OsisTenant active(boolean active) {
@@ -75,6 +77,30 @@ public void setTenantId(String tenantId) {
7577
this.tenantId = tenantId;
7678
}
7779

80+
/**
81+
* tenant canonical id
82+
* @param canonicalId
83+
* @return
84+
*/
85+
public OsisTenant canonicalId(String canonicalId) {
86+
this.canonicalId = canonicalId;
87+
return this;
88+
}
89+
90+
/**
91+
* tenant canonical id
92+
*
93+
* @return canonicalId
94+
*/
95+
@Schema(description = "tenant canonical id", required = true, example = "4f6117a3fd3a4aca27000e4b1c518d28484115e5722beb3ce5f380583000531f")
96+
public String getCanonicalId() {
97+
return canonicalId;
98+
}
99+
100+
public void setCanonicalId(String canonicalId) {
101+
this.canonicalId = canonicalId;
102+
}
103+
78104
public OsisTenant cdTenantIds(List<String> cdTenantIds) {
79105
this.cdTenantIds = cdTenantIds;
80106
return this;

osis-core/src/main/java/com/scality/osis/service/impl/ScalityOsisServiceImpl.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,21 +1178,23 @@ public PageOfOsisBucketMeta getBucketList(String tenantId, long offset, long lim
11781178
final AmazonS3 s3Client = this.s3.getS3Client(tempCredentials,
11791179
appEnv.getRegionInfo().get(0));
11801180

1181+
// Get account info by tenant ID for canonical ID
1182+
GetAccountRequestDTO getAccountRequest = ScalityModelConverter.toGetAccountRequestWithID(tenantId);
1183+
logger.debug("[Vault]GetAccount request:{}", new Gson().toJson(getAccountRequest));
1184+
1185+
AccountData accountData = vaultAdmin.getAccount(getAccountRequest);
1186+
logger.debug("[Vault]GetAccount response:{}", new Gson().toJson(accountData));
1187+
11811188
//s3 listBucket has no pagination, so list all
11821189
List<Bucket> buckets = s3Client.listBuckets();
1183-
11841190
logger.debug("[S3] List all Buckets size:{}", buckets.size());
11851191

1186-
final PageOfUsers pageOfUsers = listUsers(tenantId, 0, 1);
1187-
final String userId = pageOfUsers.getItems().get(0).getUserId();
1188-
1189-
PageOfOsisBucketMeta pageOfOsisBucketMeta = ScalityModelConverter.toPageOfOsisBucketMeta(buckets, userId, offset, limit);
1190-
1192+
PageOfOsisBucketMeta pageOfOsisBucketMeta = ScalityModelConverter.toPageOfOsisBucketMeta(
1193+
buckets, accountData.getCanonicalId(), offset, limit);
11911194
logger.info("List Buckets response:{}", new Gson().toJson(pageOfOsisBucketMeta));
11921195

11931196
return pageOfOsisBucketMeta;
11941197
} catch (Exception e) {
1195-
11961198
if (isAdminPolicyError(e)) {
11971199
try {
11981200
generateAdminPolicy(tenantId);

osis-core/src/main/java/com/scality/osis/utils/ScalityModelConverter.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -831,32 +831,33 @@ public static String maskSecretKey(String logStatement) {
831831
* Converts S3 Bucket to OSIS bucket meta
832832
*
833833
* @param bucket S3 Bucket instance
834+
* @param canonicalId canonicalId
834835
* @return the OSIS bucket meta
835836
*/
836-
public static OsisBucketMeta toOsisBucketMeta(Bucket bucket, String userId) {
837+
public static OsisBucketMeta toOsisBucketMeta(Bucket bucket, String canonicalId) {
837838

838839
return new OsisBucketMeta()
839840
.name(bucket.getName())
840841
.creationDate(bucket.getCreationDate().toInstant().toString())
841-
.userId(userId);
842+
.userId(canonicalId);
842843
}
843844

844845
/**
845846
* Converts S3 list buckets response to OSIS page of bucket meta
846847
*
847848
* @param buckets the bucket list response
848-
* @param userId userId
849+
* @param canonicalId canonical ID
849850
* @param offset offset
850851
* @param limit limit
851852
* @return the OSIS page of bucket meta
852853
*/
853-
public static PageOfOsisBucketMeta toPageOfOsisBucketMeta(List<Bucket> buckets, String userId, long offset, long limit) {
854+
public static PageOfOsisBucketMeta toPageOfOsisBucketMeta(List<Bucket> buckets, String canonicalId, long offset, long limit) {
854855
List<OsisBucketMeta> bucketItems = new ArrayList<>();
855856

856857
List<Bucket> selectedBuckets = buckets.stream().skip(offset).limit(limit).collect(Collectors.toList());
857858

858859
for (Bucket bucket : selectedBuckets) {
859-
bucketItems.add(toOsisBucketMeta(bucket, userId));
860+
bucketItems.add(toOsisBucketMeta(bucket, canonicalId));
860861
}
861862

862863
PageInfo pageInfo = new PageInfo(limit, offset, (long) buckets.size());

osis-core/src/test/java/com/scality/osis/service/impl/BaseOsisServiceTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,8 @@ protected void initGetAccountMocks() {
343343
final String accountArn = request.getAccountArn();
344344
final String emailAddress = request.getEmailAddress() == null ? SAMPLE_SCALITY_ACCOUNT_EMAIL
345345
: request.getEmailAddress();
346-
final String canonicalId = request.getCanonicalId() == null ? SAMPLE_ID : request.getCanonicalId();
346+
final String canonicalId = request.getCanonicalId() == null ? TEST_CANONICAL_ID
347+
: request.getCanonicalId();
347348
final Map<String, String> customAttributestes = new HashMap<>();
348349
customAttributestes.put(CD_TENANT_ID_PREFIX + SAMPLE_CD_TENANT_ID, "");
349350

@@ -550,7 +551,7 @@ protected List<Bucket> getBucketListMockResponse() {
550551
final Bucket bucket = new Bucket();
551552
bucket.setName(TEST_BUCKET_NAME + (index));
552553
bucket.setCreationDate(new Date());
553-
bucket.setOwner(new Owner(SAMPLE_TENANT_ID, SAMPLE_TENANT_NAME));
554+
bucket.setOwner(new Owner(TEST_CANONICAL_ID, SAMPLE_TENANT_NAME));
554555

555556
buckets.add(bucket);
556557
}

osis-core/src/test/java/com/scality/osis/service/impl/ScalityOsisServiceMiscTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ void testGetBucketList() {
128128

129129
// Verify the results
130130
assertEquals(TEST_BUCKET_TOTAL_NUMBER, response.getPageInfo().getTotal());
131+
assertEquals(TEST_CANONICAL_ID, response.getItems().get(0).getUserId());
131132
assertEquals(offset, response.getPageInfo().getOffset());
132133
assertEquals(limit, response.getPageInfo().getLimit());
133134
assertEquals((int) limit, response.getItems().size());

0 commit comments

Comments
 (0)