Search in sources :

Example 11 with FluoDetails

use of org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails in project incubator-rya by apache.

the class RyaDetailsFormatterTest method format_accumulo.

@Test
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.
    final RyaDetails details = RyaDetails.builder().setRyaInstanceName("test_instance").setRyaVersion("1.2.3.4").addUser("alice").addUser("bob").addUser("charlie").setEntityCentricIndexDetails(new EntityCentricIndexDetails(true)).setTemporalIndexDetails(new TemporalIndexDetails(true)).setFreeTextDetails(new FreeTextIndexDetails(true)).setPCJIndexDetails(PCJIndexDetails.builder().setEnabled(true).setFluoDetails(new FluoDetails("test_instance_rya_pcj_updater")).addPCJDetails(PCJDetails.builder().setId("pcj 1").setUpdateStrategy(PCJUpdateStrategy.BATCH).setLastUpdateTime(new Date(1252521351L))).addPCJDetails(PCJDetails.builder().setId("pcj 2").setUpdateStrategy(PCJUpdateStrategy.INCREMENTAL))).setProspectorDetails(new ProspectorDetails(Optional.of(new Date(12525211L)))).setJoinSelectivityDetails(new JoinSelectivityDetails(Optional.of(new Date(125221351L)))).build();
    final String formatted = new RyaDetailsFormatter().format(StorageType.ACCUMULO, 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" + "  Users: alice, bob, charlie\n" + "Secondary Indicies:\n" + "  Entity Centric Index:\n" + "    Enabled: true\n" + // RYA-215                "    Enabled: true\n" +
    "  Free Text Index:\n" + "    Enabled: true\n" + "  Temporal Index:\n" + "    Enabled: true\n" + "  PCJ Index:\n" + "    Enabled: true\n" + "    Fluo App Name: test_instance_rya_pcj_updater\n" + "    PCJs:\n" + "      ID: pcj 1\n" + "        Update Strategy: BATCH\n" + "        Last Update Time: Thu Jan 15 06:55:21 EST 1970\n" + "      ID: pcj 2\n" + "        Update Strategy: INCREMENTAL\n" + "        Last Update Time: unavailable\n" + "Statistics:\n" + "  Prospector:\n" + "    Last Update Time: Wed Dec 31 22:28:45 EST 1969\n" + "  Join Selectivity:\n" + "    Last Updated Time: Fri Jan 02 05:47:01 EST 1970\n";
    assertEquals(expected, formatted);
}
Also used : ProspectorDetails(org.apache.rya.api.instance.RyaDetails.ProspectorDetails) EntityCentricIndexDetails(org.apache.rya.api.instance.RyaDetails.EntityCentricIndexDetails) TemporalIndexDetails(org.apache.rya.api.instance.RyaDetails.TemporalIndexDetails) FreeTextIndexDetails(org.apache.rya.api.instance.RyaDetails.FreeTextIndexDetails) RyaDetails(org.apache.rya.api.instance.RyaDetails) FluoDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails) Date(java.util.Date) JoinSelectivityDetails(org.apache.rya.api.instance.RyaDetails.JoinSelectivityDetails) Test(org.junit.Test)

Example 12 with FluoDetails

use of org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails in project incubator-rya by apache.

the class RyaAdminCommandsTest method getInstanceDetails.

@Test
public void getInstanceDetails() throws InstanceDoesNotExistException, RyaClientException {
    // This test is failed if the default timezone was not EST, so now it's fixed at EST.
    // If you get assert mismatch of EST!=EDT, try the deprecated getTimeZone("EST") instead.
    TimeZone.setDefault(TimeZone.getTimeZone("America/New_York"));
    // Mock the object that performs the get operation.
    final GetInstanceDetails mockGetInstanceDetails = mock(GetInstanceDetails.class);
    final String instanceName = "test_instance";
    final RyaDetails details = RyaDetails.builder().setRyaInstanceName(instanceName).setRyaVersion("1.2.3.4").addUser("alice").addUser("bob").addUser("charlie").setEntityCentricIndexDetails(new EntityCentricIndexDetails(true)).setTemporalIndexDetails(new TemporalIndexDetails(true)).setFreeTextDetails(new FreeTextIndexDetails(true)).setPCJIndexDetails(PCJIndexDetails.builder().setEnabled(true).setFluoDetails(new FluoDetails("test_instance_rya_pcj_updater")).addPCJDetails(PCJDetails.builder().setId("pcj 1").setUpdateStrategy(PCJUpdateStrategy.BATCH).setLastUpdateTime(new Date(1252521351L))).addPCJDetails(PCJDetails.builder().setId("pcj 2").setUpdateStrategy(PCJUpdateStrategy.INCREMENTAL))).setProspectorDetails(new ProspectorDetails(Optional.of(new Date(12525211L)))).setJoinSelectivityDetails(new JoinSelectivityDetails(Optional.of(new Date(125221351L)))).build();
    when(mockGetInstanceDetails.getDetails(eq(instanceName))).thenReturn(Optional.of(details));
    final RyaClient mockCommands = mock(RyaClient.class);
    when(mockCommands.getGetInstanceDetails()).thenReturn(mockGetInstanceDetails);
    final SharedShellState state = new SharedShellState();
    state.connectedToAccumulo(mock(AccumuloConnectionDetails.class), mockCommands);
    state.connectedToInstance(instanceName);
    // Execute the command.
    final RyaAdminCommands commands = new RyaAdminCommands(state, mock(InstallPrompt.class), mock(SparqlPrompt.class), mock(UninstallPrompt.class));
    final String message = commands.printInstanceDetails();
    // Verify the values that were provided to the command were passed through to the GetInstanceDetails.
    verify(mockGetInstanceDetails).getDetails(eq(instanceName));
    // Verify a message is returned that includes the details.
    final String expected = "General Metadata:\n" + "  Instance Name: test_instance\n" + "  RYA Version: 1.2.3.4\n" + "  Users: alice, bob, charlie\n" + "Secondary Indicies:\n" + "  Entity Centric Index:\n" + "    Enabled: true\n" + // RYA-215"    Enabled: true\n" +
    "  Free Text Index:\n" + "    Enabled: true\n" + "  Temporal Index:\n" + "    Enabled: true\n" + "  PCJ Index:\n" + "    Enabled: true\n" + "    Fluo App Name: test_instance_rya_pcj_updater\n" + "    PCJs:\n" + "      ID: pcj 1\n" + "        Update Strategy: BATCH\n" + "        Last Update Time: Thu Jan 15 06:55:21 EST 1970\n" + "      ID: pcj 2\n" + "        Update Strategy: INCREMENTAL\n" + "        Last Update Time: unavailable\n" + "Statistics:\n" + "  Prospector:\n" + "    Last Update Time: Wed Dec 31 22:28:45 EST 1969\n" + "  Join Selectivity:\n" + "    Last Updated Time: Fri Jan 02 05:47:01 EST 1970\n";
    assertEquals(expected, message);
}
Also used : ProspectorDetails(org.apache.rya.api.instance.RyaDetails.ProspectorDetails) RyaDetails(org.apache.rya.api.instance.RyaDetails) RyaClient(org.apache.rya.api.client.RyaClient) Date(java.util.Date) JoinSelectivityDetails(org.apache.rya.api.instance.RyaDetails.JoinSelectivityDetails) UninstallPrompt(org.apache.rya.shell.util.UninstallPrompt) EntityCentricIndexDetails(org.apache.rya.api.instance.RyaDetails.EntityCentricIndexDetails) TemporalIndexDetails(org.apache.rya.api.instance.RyaDetails.TemporalIndexDetails) AccumuloConnectionDetails(org.apache.rya.api.client.accumulo.AccumuloConnectionDetails) SparqlPrompt(org.apache.rya.shell.util.SparqlPrompt) GetInstanceDetails(org.apache.rya.api.client.GetInstanceDetails) FreeTextIndexDetails(org.apache.rya.api.instance.RyaDetails.FreeTextIndexDetails) FluoDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails) InstallPrompt(org.apache.rya.shell.util.InstallPrompt) Test(org.junit.Test)

Example 13 with FluoDetails

use of org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails in project incubator-rya by apache.

the class AccumuloInstall method initializeRyaDetails.

/**
 * Initializes the {@link RyaDetails} and stores them for the new instance.
 *
 * @param instanceName - The name of the instance that is being created. (not null)
 * @param installConfig - The instance's install configuration. (not null)
 * @param installUser - The user who is installing the instance of Rya. (not null)
 * @return The {@link RyaDetails} that were stored.
 * @throws AlreadyInitializedException Could not be initialized because
 *   a table with this instance name has already exists and is holding the details.
 * @throws RyaDetailsRepositoryException Something caused the initialization
 *   operation to fail.
 */
private RyaDetails initializeRyaDetails(final String instanceName, final InstallConfiguration installConfig, final String installUser) throws AlreadyInitializedException, RyaDetailsRepositoryException {
    requireNonNull(instanceName);
    requireNonNull(installConfig);
    requireNonNull(installUser);
    final RyaDetailsRepository detailsRepo = new AccumuloRyaInstanceDetailsRepository(getConnector(), instanceName);
    // Build the PCJ Index details.
    final PCJIndexDetails.Builder pcjDetailsBuilder = PCJIndexDetails.builder().setEnabled(installConfig.isPcjIndexEnabled());
    if (installConfig.getFluoPcjAppName().isPresent()) {
        final String fluoPcjAppName = installConfig.getFluoPcjAppName().get();
        pcjDetailsBuilder.setFluoDetails(new FluoDetails(fluoPcjAppName));
    }
    final RyaDetails details = RyaDetails.builder().setRyaInstanceName(instanceName).setRyaVersion(getVersion()).addUser(installUser).setTemporalIndexDetails(new TemporalIndexDetails(installConfig.isTemporalIndexEnabled())).setFreeTextDetails(new FreeTextIndexDetails(installConfig.isFreeTextIndexEnabled())).setEntityCentricIndexDetails(new EntityCentricIndexDetails(installConfig.isEntityCentrixIndexEnabled())).setPCJIndexDetails(pcjDetailsBuilder).setProspectorDetails(new ProspectorDetails(Optional.<Date>absent())).setJoinSelectivityDetails(new JoinSelectivityDetails(Optional.<Date>absent())).build();
    // Initialize the table.
    detailsRepo.initialize(details);
    return details;
}
Also used : ProspectorDetails(org.apache.rya.api.instance.RyaDetails.ProspectorDetails) RyaDetails(org.apache.rya.api.instance.RyaDetails) AccumuloRyaInstanceDetailsRepository(org.apache.rya.accumulo.instance.AccumuloRyaInstanceDetailsRepository) Date(java.util.Date) JoinSelectivityDetails(org.apache.rya.api.instance.RyaDetails.JoinSelectivityDetails) EntityCentricIndexDetails(org.apache.rya.api.instance.RyaDetails.EntityCentricIndexDetails) TemporalIndexDetails(org.apache.rya.api.instance.RyaDetails.TemporalIndexDetails) FreeTextIndexDetails(org.apache.rya.api.instance.RyaDetails.FreeTextIndexDetails) RyaDetailsRepository(org.apache.rya.api.instance.RyaDetailsRepository) FluoDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails) PCJIndexDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails)

Example 14 with FluoDetails

use of org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails in project incubator-rya by apache.

the class AccumuloListIncrementalQueries method listIncrementalQueries.

@Override
public String listIncrementalQueries(String instanceName) throws RyaClientException {
    requireNonNull(instanceName);
    final Optional<RyaDetails> ryaDetailsHolder = getInstanceDetails.getDetails(instanceName);
    final boolean ryaInstanceExists = ryaDetailsHolder.isPresent();
    if (!ryaInstanceExists) {
        throw new InstanceDoesNotExistException(String.format("The '%s' instance of Rya does not exist.", instanceName));
    }
    final PCJIndexDetails pcjIndexDetails = ryaDetailsHolder.get().getPCJIndexDetails();
    final boolean pcjIndexingEnabeld = pcjIndexDetails.isEnabled();
    if (!pcjIndexingEnabeld) {
        throw new RyaClientException(String.format("The '%s' instance of Rya does not have PCJ Indexing enabled.", instanceName));
    }
    // If a Fluo application is being used, task it with updating the PCJ.
    final Optional<FluoDetails> fluoDetailsHolder = pcjIndexDetails.getFluoDetails();
    if (fluoDetailsHolder.isPresent()) {
        final String fluoAppName = fluoDetailsHolder.get().getUpdateAppName();
        try {
            return getFluoQueryString(instanceName, fluoAppName);
        } catch (Exception e) {
            throw new RyaClientException("Problem while creating Fluo Query Strings.", e);
        }
    } else {
        throw new RyaClientException(String.format("The '%s' instance of Rya does not have Fluo incremental updating enabled.", instanceName));
    }
}
Also used : RyaClientException(org.apache.rya.api.client.RyaClientException) RyaDetails(org.apache.rya.api.instance.RyaDetails) InstanceDoesNotExistException(org.apache.rya.api.client.InstanceDoesNotExistException) FluoDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails) RyaClientException(org.apache.rya.api.client.RyaClientException) InstanceDoesNotExistException(org.apache.rya.api.client.InstanceDoesNotExistException) PCJIndexDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails)

Example 15 with FluoDetails

use of org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails in project incubator-rya by apache.

the class RyaDetailsTest method hashcode.

@Test
public void hashcode() {
    final RyaDetails.Builder builder = RyaDetails.builder();
    builder.setRyaInstanceName("test_instance").setRyaVersion("1.2.3.4").setEntityCentricIndexDetails(new EntityCentricIndexDetails(true)).setTemporalIndexDetails(new TemporalIndexDetails(true)).setFreeTextDetails(new FreeTextIndexDetails(true)).setPCJIndexDetails(PCJIndexDetails.builder().setEnabled(true).setFluoDetails(new FluoDetails("test_instance_rya_pcj_updater")).addPCJDetails(PCJDetails.builder().setId("pcj 1").setUpdateStrategy(PCJUpdateStrategy.BATCH).setLastUpdateTime(new Date())).addPCJDetails(PCJDetails.builder().setId("pcj 2").setUpdateStrategy(PCJUpdateStrategy.INCREMENTAL))).setProspectorDetails(new ProspectorDetails(Optional.of(new Date()))).setJoinSelectivityDetails(new JoinSelectivityDetails(Optional.of(new Date()))).setRyaStreamsDetails(new RyaStreamsDetails("localhost", 5));
    final RyaDetails details1 = builder.build();
    final RyaDetails details2 = builder.build();
    assertEquals(details1.hashCode(), details2.hashCode());
}
Also used : ProspectorDetails(org.apache.rya.api.instance.RyaDetails.ProspectorDetails) EntityCentricIndexDetails(org.apache.rya.api.instance.RyaDetails.EntityCentricIndexDetails) RyaStreamsDetails(org.apache.rya.api.instance.RyaDetails.RyaStreamsDetails) TemporalIndexDetails(org.apache.rya.api.instance.RyaDetails.TemporalIndexDetails) FreeTextIndexDetails(org.apache.rya.api.instance.RyaDetails.FreeTextIndexDetails) FluoDetails(org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails) Date(java.util.Date) JoinSelectivityDetails(org.apache.rya.api.instance.RyaDetails.JoinSelectivityDetails) Test(org.junit.Test)

Aggregations

FluoDetails (org.apache.rya.api.instance.RyaDetails.PCJIndexDetails.FluoDetails)23 RyaDetails (org.apache.rya.api.instance.RyaDetails)18 Date (java.util.Date)17 EntityCentricIndexDetails (org.apache.rya.api.instance.RyaDetails.EntityCentricIndexDetails)17 FreeTextIndexDetails (org.apache.rya.api.instance.RyaDetails.FreeTextIndexDetails)17 JoinSelectivityDetails (org.apache.rya.api.instance.RyaDetails.JoinSelectivityDetails)17 ProspectorDetails (org.apache.rya.api.instance.RyaDetails.ProspectorDetails)17 TemporalIndexDetails (org.apache.rya.api.instance.RyaDetails.TemporalIndexDetails)17 Test (org.junit.Test)16 RyaDetailsRepository (org.apache.rya.api.instance.RyaDetailsRepository)10 PCJIndexDetails (org.apache.rya.api.instance.RyaDetails.PCJIndexDetails)6 Connector (org.apache.accumulo.core.client.Connector)5 InstanceDoesNotExistException (org.apache.rya.api.client.InstanceDoesNotExistException)5 RyaClientException (org.apache.rya.api.client.RyaClientException)5 RyaStreamsDetails (org.apache.rya.api.instance.RyaDetails.RyaStreamsDetails)4 UnsupportedQueryException (org.apache.rya.indexing.pcj.fluo.app.query.UnsupportedQueryException)3 MalformedQueryException (org.openrdf.query.MalformedQueryException)3 BasicDBObject (com.mongodb.BasicDBObject)2 DBObject (com.mongodb.DBObject)2 AccumuloRyaInstanceDetailsRepository (org.apache.rya.accumulo.instance.AccumuloRyaInstanceDetailsRepository)2