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);
}
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;
}
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;
}
Aggregations