Search in sources :

Example 1 with SolrCluster

use of org.platformlayer.service.solr.model.SolrCluster in project platformlayer by platformlayer.

the class ITSolrService method testCreateAndDeleteItem.

@Test
public void testCreateAndDeleteItem() throws Exception {
    String id = random.randomAlphanumericString(8);
    SolrCluster solr = new SolrCluster();
    solr.dnsName = id + ".test.platformlayer.org";
    solr = putItem(id, solr);
    solr = waitForHealthy(solr);
    InetSocketAddress socketAddress = getUniqueEndpoint(solr);
    Assert.assertFalse(isPortOpen(socketAddress));
    openFirewall(solr, SolrConstants.API_PORT);
    Assert.assertTrue(isPortOpen(socketAddress));
    // TODO: Make endpoint http://<ip>:<port>/<path>...
    String url = "http://" + socketAddress.getAddress().getHostAddress() + ":" + socketAddress.getPort() + "/solr";
    testSolr(url);
    String customFieldKey = "customfield1";
    SolrSchemaField field = new SolrSchemaField();
    field.name = customFieldKey;
    field.type = "text_general";
    field.getTags().add(Tag.buildParentTag(solr.getKey()));
    // TODO: Our scoping of keys is problematic now...
    // If two clusters both have the same key "customfield1", they can't have the same ID
    field = putItem(id + "-" + customFieldKey, field);
    waitForHealthy(field);
    // Currently, we need to do a manual configure operation...
    // TODO: trigger this automatically
    SolrServer server = getItem(id + "-0", SolrServer.class);
    JobData configureJob = getContext().doConfigure(server);
    waitForJobComplete(configureJob, TimeSpan.FIVE_MINUTES);
    testSolrCustomField(url, customFieldKey);
}
Also used : InetSocketAddress(java.net.InetSocketAddress) JobData(org.platformlayer.jobs.model.JobData) SolrServer(org.platformlayer.service.solr.model.SolrServer) CommonsHttpSolrServer(org.apache.solr.client.solrj.impl.CommonsHttpSolrServer) SolrCluster(org.platformlayer.service.solr.model.SolrCluster) SolrSchemaField(org.platformlayer.service.solr.model.SolrSchemaField) Test(org.testng.annotations.Test) PlatformLayerApiTest(org.platformlayer.tests.PlatformLayerApiTest)

Example 2 with SolrCluster

use of org.platformlayer.service.solr.model.SolrCluster in project platformlayer by platformlayer.

the class SolrTemplateData method getCluster.

public SolrCluster getCluster() throws OpsException {
    if (cluster == null) {
        cluster = OpsContext.get().getInstance(SolrCluster.class);
        if (cluster == null) {
            SolrServer server = getServer();
            PlatformLayerKey parent = Tag.PARENT.findUnique(server);
            if (parent != null) {
                cluster = platformLayer.getItem(parent, SolrCluster.class);
            }
        }
    }
    return cluster;
}
Also used : PlatformLayerKey(org.platformlayer.core.model.PlatformLayerKey) SolrServer(org.platformlayer.service.solr.model.SolrServer) SolrCluster(org.platformlayer.service.solr.model.SolrCluster)

Example 3 with SolrCluster

use of org.platformlayer.service.solr.model.SolrCluster in project platformlayer by platformlayer.

the class SolrTemplateData method getFields.

public List<SolrSchemaField> getFields() throws OpsException {
    SolrCluster cluster = getCluster();
    List<SolrSchemaField> fields = Lists.newArrayList();
    for (SolrSchemaField field : platformLayer.listItems(SolrSchemaField.class, TagFilter.byParent(cluster))) {
        fields.add(field);
    }
    return fields;
}
Also used : SolrCluster(org.platformlayer.service.solr.model.SolrCluster) SolrSchemaField(org.platformlayer.service.solr.model.SolrSchemaField)

Aggregations

SolrCluster (org.platformlayer.service.solr.model.SolrCluster)3 SolrSchemaField (org.platformlayer.service.solr.model.SolrSchemaField)2 SolrServer (org.platformlayer.service.solr.model.SolrServer)2 InetSocketAddress (java.net.InetSocketAddress)1 CommonsHttpSolrServer (org.apache.solr.client.solrj.impl.CommonsHttpSolrServer)1 PlatformLayerKey (org.platformlayer.core.model.PlatformLayerKey)1 JobData (org.platformlayer.jobs.model.JobData)1 PlatformLayerApiTest (org.platformlayer.tests.PlatformLayerApiTest)1 Test (org.testng.annotations.Test)1