use of org.platformlayer.service.solr.model.SolrServer 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.SolrServer in project platformlayer by platformlayer.
the class SolrServerController method addChildren.
@Override
protected void addChildren() throws OpsException {
SolrServer model = OpsContext.get().getInstance(SolrServer.class);
int port = SolrConstants.API_PORT;
InstanceBuilder vm;
{
vm = InstanceBuilder.build(model.dnsName, this, model.getTags());
vm.publicPorts.add(port);
vm.hostPolicy.allowRunInContainer = true;
// TODO: This needs to be configurable...
vm.minimumMemoryMb = 2048;
addChild(vm);
}
{
SolrInstall install = injected(SolrInstall.class);
vm.addChild(install);
}
{
SolrInstance service = injected(SolrInstance.class);
vm.addChild(service);
}
{
PublicEndpoint endpoint = injected(PublicEndpoint.class);
// endpoint.network = null;
endpoint.publicPort = port;
endpoint.backendPort = port;
endpoint.dnsName = model.dnsName;
endpoint.tagItem = model.getKey();
endpoint.parentItem = model.getKey();
vm.addChild(endpoint);
}
}
use of org.platformlayer.service.solr.model.SolrServer in project platformlayer by platformlayer.
the class SolrClusterController method getMachines.
@Override
public List<Machine> getMachines(boolean required) throws OpsException {
Filter parentFilter = TagFilter.byTag(Tag.buildParentTag(model.getKey()));
List<Machine> machines = Lists.newArrayList();
for (SolrServer server : platformLayer.listItems(SolrServer.class, parentFilter)) {
Machine machine = instances.getMachine(server, required);
if (machine != null) {
machines.add(machine);
}
}
return machines;
}
use of org.platformlayer.service.solr.model.SolrServer 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;
}
Aggregations