RYA-422 Corrected the text that is writen when executing the 'print-instance-details' command of Rya Shell when connected to Mongo DB. Closes #258,#259,#260.
Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/31e06cb1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/31e06cb1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/31e06cb1 Branch: refs/heads/master Commit: 31e06cb1baa128d85537b4779d9a4a6ca6480b60 Parents: eadfcdd Author: kchilton2 <kevin.e.chil...@gmail.com> Authored: Fri Jan 5 15:56:55 2018 -0500 Committer: caleb <caleb.me...@parsons.com> Committed: Fri Jan 5 19:34:28 2018 -0500 ---------------------------------------------------------------------- .../org/apache/rya/shell/RyaAdminCommands.java | 2 +- .../rya/shell/util/RyaDetailsFormatter.java | 79 +++++++++++--------- .../rya/shell/util/RyaDetailsFormatterTest.java | 39 +++++++++- 3 files changed, 83 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/31e06cb1/extras/shell/src/main/java/org/apache/rya/shell/RyaAdminCommands.java ---------------------------------------------------------------------- diff --git a/extras/shell/src/main/java/org/apache/rya/shell/RyaAdminCommands.java b/extras/shell/src/main/java/org/apache/rya/shell/RyaAdminCommands.java index f8fee10..ef33df1 100644 --- a/extras/shell/src/main/java/org/apache/rya/shell/RyaAdminCommands.java +++ b/extras/shell/src/main/java/org/apache/rya/shell/RyaAdminCommands.java @@ -363,7 +363,7 @@ public class RyaAdminCommands implements CommandMarker { try { final Optional<RyaDetails> details = commands.getGetInstanceDetails().getDetails(ryaInstance); if(details.isPresent()) { - return new RyaDetailsFormatter().format(details.get()); + return new RyaDetailsFormatter().format(shellState.getStorageType().get(), details.get()); } else { return "This instance of Rya does not have a Rya Details table. Consider migrating to a newer version of Rya."; } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/31e06cb1/extras/shell/src/main/java/org/apache/rya/shell/util/RyaDetailsFormatter.java ---------------------------------------------------------------------- diff --git a/extras/shell/src/main/java/org/apache/rya/shell/util/RyaDetailsFormatter.java b/extras/shell/src/main/java/org/apache/rya/shell/util/RyaDetailsFormatter.java index dace754..3eacb54 100644 --- a/extras/shell/src/main/java/org/apache/rya/shell/util/RyaDetailsFormatter.java +++ b/extras/shell/src/main/java/org/apache/rya/shell/util/RyaDetailsFormatter.java @@ -20,17 +20,18 @@ package org.apache.rya.shell.util; import static java.util.Objects.requireNonNull; -import edu.umd.cs.findbugs.annotations.DefaultAnnotation; -import edu.umd.cs.findbugs.annotations.NonNull; - import org.apache.rya.api.instance.RyaDetails; import org.apache.rya.api.instance.RyaDetails.PCJIndexDetails; import org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.PCJDetails; +import org.apache.rya.shell.SharedShellState.StorageType; import com.google.common.base.Joiner; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; +import edu.umd.cs.findbugs.annotations.DefaultAnnotation; +import edu.umd.cs.findbugs.annotations.NonNull; + /** * Formats an instance of {@link RyaDetails}. */ @@ -40,10 +41,11 @@ public class RyaDetailsFormatter { /** * Pretty formats an instance of {@link RyaDetails}. * + * @param storageType - The type of storage the instance is installed on. (not null) * @param details - The object to format. (not null) * @return A pretty render of the object. */ - public String format(final RyaDetails details) { + public String format(StorageType storageType, final RyaDetails details) { requireNonNull(details); final StringBuilder report = new StringBuilder(); @@ -51,11 +53,18 @@ public class RyaDetailsFormatter { report.append("General Metadata:\n"); report.append(" Instance Name: ").append(details.getRyaInstanceName()).append("\n"); report.append(" RYA Version: ").append( details.getRyaVersion() ).append("\n"); - report.append(" Users: ").append( Joiner.on(", ").join(details.getUsers()) ).append("\n"); + + if(storageType == StorageType.ACCUMULO) { + report.append(" Users: ").append( Joiner.on(", ").join(details.getUsers()) ).append("\n"); + } report.append("Secondary Indicies:\n"); - report.append(" Entity Centric Index:\n"); - report.append(" Enabled: ").append( details.getEntityCentricIndexDetails().isEnabled() ).append("\n"); + + if(storageType == StorageType.ACCUMULO) { + report.append(" Entity Centric Index:\n"); + report.append(" Enabled: ").append( details.getEntityCentricIndexDetails().isEnabled() ).append("\n"); + } + //RYA-215 report.append(" Geospatial Index:\n"); //RYA-215 report.append(" Enabled: ").append( details.getGeoIndexDetails().isEnabled() ).append("\n"); report.append(" Free Text Index:\n"); @@ -63,40 +72,42 @@ public class RyaDetailsFormatter { report.append(" Temporal Index:\n"); report.append(" Enabled: ").append( details.getTemporalIndexDetails().isEnabled() ).append("\n"); - report.append(" PCJ Index:\n"); - final PCJIndexDetails pcjDetails = details.getPCJIndexDetails(); - report.append(" Enabled: ").append( pcjDetails.isEnabled() ).append("\n"); - if(pcjDetails.isEnabled()) { - if(pcjDetails.getFluoDetails().isPresent()) { - final String fluoAppName = pcjDetails.getFluoDetails().get().getUpdateAppName(); - report.append(" Fluo App Name: ").append(fluoAppName).append("\n"); - } + if(storageType == StorageType.ACCUMULO) { + report.append(" PCJ Index:\n"); + final PCJIndexDetails pcjDetails = details.getPCJIndexDetails(); + report.append(" Enabled: ").append( pcjDetails.isEnabled() ).append("\n"); + if(pcjDetails.isEnabled()) { + if(pcjDetails.getFluoDetails().isPresent()) { + final String fluoAppName = pcjDetails.getFluoDetails().get().getUpdateAppName(); + report.append(" Fluo App Name: ").append(fluoAppName).append("\n"); + } - final ImmutableMap<String, PCJDetails> pcjs = pcjDetails.getPCJDetails(); - report.append(" PCJs:\n"); - if(pcjs.isEmpty()) { - report.append(" No PCJs have been added yet.\n"); - } else { - for(final PCJDetails pcj : pcjs.values()) { - report.append(" ID: ").append(pcj.getId()).append("\n"); + final ImmutableMap<String, PCJDetails> pcjs = pcjDetails.getPCJDetails(); + report.append(" PCJs:\n"); + if(pcjs.isEmpty()) { + report.append(" No PCJs have been added yet.\n"); + } else { + for(final PCJDetails pcj : pcjs.values()) { + report.append(" ID: ").append(pcj.getId()).append("\n"); - final String updateStrategy = format( pcj.getUpdateStrategy(), "None" ); - report.append(" Update Strategy: ").append(updateStrategy).append("\n"); + final String updateStrategy = format( pcj.getUpdateStrategy(), "None" ); + report.append(" Update Strategy: ").append(updateStrategy).append("\n"); - final String lastUpdateTime = format( pcj.getLastUpdateTime(), "unavailable"); - report.append(" Last Update Time: ").append(lastUpdateTime).append("\n"); + final String lastUpdateTime = format( pcj.getLastUpdateTime(), "unavailable"); + report.append(" Last Update Time: ").append(lastUpdateTime).append("\n"); + } } } - } - report.append("Statistics:\n"); - report.append(" Prospector:\n"); - final String prospectorLastUpdateTime = format(details.getProspectorDetails().getLastUpdated(), "unavailable"); - report.append(" Last Update Time: ").append( prospectorLastUpdateTime).append("\n"); + report.append("Statistics:\n"); + report.append(" Prospector:\n"); + final String prospectorLastUpdateTime = format(details.getProspectorDetails().getLastUpdated(), "unavailable"); + report.append(" Last Update Time: ").append( prospectorLastUpdateTime).append("\n"); - report.append(" Join Selectivity:\n"); - final String jsLastUpdateTime = format(details.getJoinSelectivityDetails().getLastUpdated(), "unavailable"); - report.append(" Last Updated Time: ").append( jsLastUpdateTime ).append("\n"); + report.append(" Join Selectivity:\n"); + final String jsLastUpdateTime = format(details.getJoinSelectivityDetails().getLastUpdated(), "unavailable"); + report.append(" Last Updated Time: ").append( jsLastUpdateTime ).append("\n"); + } return report.toString(); } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/31e06cb1/extras/shell/src/test/java/org/apache/rya/shell/util/RyaDetailsFormatterTest.java ---------------------------------------------------------------------- diff --git a/extras/shell/src/test/java/org/apache/rya/shell/util/RyaDetailsFormatterTest.java b/extras/shell/src/test/java/org/apache/rya/shell/util/RyaDetailsFormatterTest.java index 9e45a4f..e11b50f 100644 --- a/extras/shell/src/test/java/org/apache/rya/shell/util/RyaDetailsFormatterTest.java +++ b/extras/shell/src/test/java/org/apache/rya/shell/util/RyaDetailsFormatterTest.java @@ -33,6 +33,7 @@ import org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.PCJDetails; import org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.PCJDetails.PCJUpdateStrategy; import org.apache.rya.api.instance.RyaDetails.ProspectorDetails; import org.apache.rya.api.instance.RyaDetails.TemporalIndexDetails; +import org.apache.rya.shell.SharedShellState.StorageType; import org.junit.Test; import com.google.common.base.Optional; @@ -43,7 +44,7 @@ import com.google.common.base.Optional; public class RyaDetailsFormatterTest { @Test - public void format() { + public void format_accumulo() { // This test failed if the default timezone was not EST, so now it's fixed at EST. TimeZone.setDefault(TimeZone.getTimeZone("America/New_York")); // Create the object that will be formatted. @@ -73,7 +74,7 @@ public class RyaDetailsFormatterTest { .setJoinSelectivityDetails( new JoinSelectivityDetails(Optional.of(new Date(125221351L))) ) .build(); - final String formatted = new RyaDetailsFormatter().format(details); + final String formatted = new RyaDetailsFormatter().format(StorageType.ACCUMULO, details); // Verify the created object matches the expected result. final String expected = @@ -108,4 +109,38 @@ public class RyaDetailsFormatterTest { assertEquals(expected, formatted); } + + @Test + public void format_mongo() { + // This test failed if the default timezone was not EST, so now it's fixed at EST. + TimeZone.setDefault(TimeZone.getTimeZone("America/New_York")); + // Create the object that will be formatted. + final RyaDetails details = RyaDetails.builder().setRyaInstanceName("test_instance") + .setRyaVersion("1.2.3.4") + .setEntityCentricIndexDetails(new EntityCentricIndexDetails(false)) + //RYA-215 .setGeoIndexDetails( new GeoIndexDetails(true) ) + .setTemporalIndexDetails( new TemporalIndexDetails(true) ) + .setFreeTextDetails( new FreeTextIndexDetails(true) ) + .setPCJIndexDetails(PCJIndexDetails.builder().setEnabled(false)) + .setProspectorDetails( new ProspectorDetails(Optional.absent()) ) + .setJoinSelectivityDetails( new JoinSelectivityDetails(Optional.absent()) ) + .build(); + + final String formatted = new RyaDetailsFormatter().format(StorageType.MONGO, details); + + // Verify the created object matches the expected result. + final String expected = + "General Metadata:\n" + + " Instance Name: test_instance\n" + + " RYA Version: 1.2.3.4\n" + + "Secondary Indicies:\n" + + //RYA-215 " Geospatial Index:\n" + + //RYA-215 " Enabled: true\n" + + " Free Text Index:\n" + + " Enabled: true\n" + + " Temporal Index:\n" + + " Enabled: true\n"; + + assertEquals(expected, formatted); + } } \ No newline at end of file