Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import java.io.IOException;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;
Expand All @@ -39,6 +40,7 @@ public final class JsonUtils {
private static final ObjectWriter WRITTER;
static {
MAPPER = new ObjectMapper()
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.registerModule(new JavaTimeModule())
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
WRITTER = MAPPER.writerWithDefaultPrettyPrinter();
Expand Down
10 changes: 8 additions & 2 deletions hadoop-ozone/dist/src/main/smoketest/basic/links.robot
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,14 @@ Bucket list contains links
Should Contain ${result} dangling-link

Bucket info shows source
${result} = Execute ozone sh bucket info ${target}/link1 | jq -r '.sourceVolume, .sourceBucket' | xargs
Should Be Equal ${result} ${source} bucket1
${result} = Execute ozone sh bucket info ${target}/link1
Should Contain ${result} ${source}
Should Contain ${result} bucket1
Should Contain ${result} ${target}
Should Contain ${result} link1
Should Contain ${result} modificationTime
Should Contain ${result} creationTime
Should Not contain ${result} metadata

Source and target have separate ACLs
Execute ozone sh bucket addacl --acl user:user1:rwxy ${target}/link1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import picocli.CommandLine.Command;

import java.io.IOException;
import java.time.Instant;

/**
* Executes Info bucket.
Expand All @@ -40,7 +41,56 @@ public void execute(OzoneClient client, OzoneAddress address)
.getVolume(address.getVolumeName())
.getBucket(address.getBucketName());

printObjectAsJson(bucket);
if (bucket.getSourceBucket() != null && bucket.getSourceVolume() != null) {
printObjectAsJson(new LinkBucket(bucket));
} else {
printObjectAsJson(bucket);
}
}

/**
* Class used for link buckets.
*/
private static class LinkBucket {
private String volumeName;
private String bucketName;
private String sourceVolume;
private String sourceBucket;
private Instant creationTime;
private Instant modificationTime;

LinkBucket(OzoneBucket ozoneBucket) {
this.volumeName = ozoneBucket.getVolumeName();
this.bucketName = ozoneBucket.getName();
this.sourceVolume = ozoneBucket.getSourceVolume();
this.sourceBucket = ozoneBucket.getSourceBucket();
this.creationTime = ozoneBucket.getCreationTime();
this.modificationTime = ozoneBucket.getModificationTime();
}

public String getVolumeName() {
return volumeName;
}

public String getBucketName() {
return bucketName;
}

public String getSourceVolume() {
return sourceVolume;
}

public String getSourceBucket() {
return sourceBucket;
}

public Instant getCreationTime() {
return creationTime;
}

public Instant getModificationTime() {
return modificationTime;
}
}

}