@Override public Hardware apply(org.jclouds.servermanager.Hardware from) { HardwareBuilder builder = new HardwareBuilder(); builder.ids(from.id + ""); builder.name(from.name); builder.processors(ImmutableList.of(new Processor(from.cores, 1.0))); builder.ram(from.ram); builder.volumes(ImmutableList.<Volume> of(new VolumeImpl(from.disk, true, false))); return builder.build(); }
public static double getCoresAndSpeed(Hardware input) { double total = 0; for (Processor processor : input.getProcessors()) total += processor.getCores() * processor.getSpeed(); return total; }
public static EC2HardwareBuilder hs1_8xlarge() { float twoTB = 2048.0f * 1024.0f; Builder<Volume> all24Volumes = ImmutableList.<Volume>builder(); all24Volumes.add(new VolumeImpl(twoTB, "/dev/sda1", true, false)); for (char letter : ImmutableSet.of('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x')) { all24Volumes.add(new VolumeImpl(twoTB, "/dev/sd" + letter, false, false)); } return new EC2HardwareBuilder(InstanceType.HS1_8XLARGE) .ram(117 * 1024) .processors(ImmutableList.of(new Processor(16.0, 2.1875))) .volumes(all24Volumes.build()) .virtualizationType(VirtualizationType.HVM); }
public static EC2HardwareBuilder cc1_4xlarge() { return new EC2HardwareBuilder(InstanceType.CC1_4XLARGE) .ram(23 * 1024) .processors(ImmutableList.of(new Processor(4.0, 4.0), new Processor(4.0, 4.0))) .volumes( ImmutableList.<Volume> of(new VolumeImpl(10.0f, "/dev/sda1", true, false), new VolumeImpl(840.0f, "/dev/sdb", false, false), new VolumeImpl(840.0f, "/dev/sdc", false, false))) .virtualizationType(VirtualizationType.HVM); }
@Override public Iterable<Hardware> listHardwareProfiles() { // Return a hardcoded list of hardware profiles until // https://issues.apache.org/jira/browse/JCLOUDS-482 is fixed Builder<Hardware> hardware = ImmutableSet.builder(); Builder<Integer> ramSetBuilder = ImmutableSet.builder(); Builder<Double> cpuSetBuilder = ImmutableSet.builder(); for (int i = 1; i < 65; i++) { ramSetBuilder.add(i * 1024); } for (int i = 1; i < 41; i++) { cpuSetBuilder.add((double) i * 1000); } for (int ram : ramSetBuilder.build()) { for (double cpu : cpuSetBuilder.build()) { hardware.add(new HardwareBuilder().ids(String.format("cpu=%f,ram=%d", cpu, ram)) .processor(new Processor(1, cpu)).ram(ram) .volumes(ImmutableList.<Volume>of(new VolumeImpl(null, true, false))).build()); } } return hardware.build(); }
@Test public void testConvertSize() { Size size = Size.create("2gb", true, 1.0f, 10f, 0.05f, 2048, 1, 20, ImmutableList.<String> of()); Hardware expected = new HardwareBuilder().id("2gb").providerId("2gb").name("2gb") .processor(new Processor(1.0, 1.0)).ram(2048) .volume(new VolumeBuilder().size(20f).type(Type.LOCAL).build()) .userMetadata(ImmutableMap.of("costPerHour", "0.05", "costPerMonth", "10")).build(); SizeToHardware function = new SizeToHardware(); assertEquals(function.apply(size), expected); } }
@Test public void testHardwareWithPrivateCore() { cpuItem = cpuItem.toBuilder() .description("Private 2 x 2.0 GHz Cores") .build(); Hardware hardware = toHardware.apply(ImmutableSet.of(cpuItem, ramItem, volumeItem)); assertEquals("123,456,789", hardware.getId()); List<? extends Processor> processors = hardware.getProcessors(); assertEquals(1, processors.size()); assertEquals(2.0, processors.get(0).getCores()); assertEquals(2, hardware.getRam()); List<? extends Volume> volumes = hardware.getVolumes(); assertEquals(1, volumes.size()); assertEquals(100F, volumes.get(0).getSize()); }
@BeforeMethod public final void setup() { instance = new ParseInstanceTest().expected(); hardwares = ImmutableSet.of(new HardwareBuilder().id("my_id") .uri(URI.create("https://www.googleapis.com/compute/v1/projects/party/zones/us-central1-a/machineTypes/" + "n1-standard-1")) .providerId("1") .name("mock hardware").processor(new Processor(1.0, 1.0)).ram(2048) .volume(new VolumeBuilder().size(20f).type(Type.LOCAL).build()).build()); locations = ImmutableSet.of(new LocationBuilder() .id("id") .description("https://www.googleapis.com/compute/v1/projects/party/zones/us-central1-a") .scope(LocationScope.REGION) .parent( new LocationBuilder().id("0").description("mock parent location").scope(LocationScope.PROVIDER) .build()).build()); groupNullNodeParser = createNodeParser(hardwares, locations, null); }
@Override public Hardware apply(FlavorInZone flavorInZone) { Location location = locationIndex.get().get(flavorInZone.getZone()); checkState(location != null, "location %s not in locationIndex: %s", flavorInZone.getZone(), locationIndex.get()); Flavor flavor = flavorInZone.getFlavor(); return new HardwareBuilder().id(flavorInZone.slashEncode()).providerId(flavor.getId()).name(flavor.getName()) .ram(flavor.getRam()).processor(new Processor(flavor.getVcpus(), 1.0)).volume( new VolumeImpl(Float.valueOf(flavor.getDisk()), true, true)).location(location).build(); } }
from("rabbitmq://localhost/test-in?autoAck=false&autoDelete=false&durable=true&exchangeType=fanout&queue=test-in&username=guest&password=xxx") .log(LoggingLevel.ERROR, "Output of message from Queue: ${in.body}") .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.getOut().setBody(exchange.getIn().getBody()); } }) .to("rabbitmq://localhost/test-out?autoAck=false&autoDelete=false&durable=true&exchangeType=fanout&queue=test-out&username=guest&password=xxx");
errorHandler(deadLetterChannel("direct:moveFailedMessage").useOriginalMessage()); from("direct:moveFailedMessage").to(ftpErrorURI+ftpOptions).process(new Processor() { public void process(Exchange exchange) throws Exception { Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class); exchange.getIn().setBody(cause.getMessage()); } }).to(sendMailURI).to(ftpErrorLogURI+ftpErrorOptions);
protected Hardware automaticHardware(double cores, int ram, Optional<Float> diskSize) { HardwareBuilder builder = new HardwareBuilder(); if (diskSize.isPresent() && diskSize.get() > 0.0f) { builder.volume(new VolumeImpl(diskSize.get(), true, true)); } return builder .id(automaticHardwareIdSpecBuilder(cores, ram, diskSize).toString()) .ram(ram) .processor(new Processor(cores, 1.0)) .build(); }
private void applyAndAssert(Server server) { final Hardware hardware = serverToHardware.apply(server); assertEquals(server.memoryGb() * 1024, hardware.getRam()); assertEquals("vmx", hardware.getHypervisor()); assertEquals(server.id(), hardware.getId()); assertEquals(server.id(), hardware.getProviderId()); assertEquals(server.name(), hardware.getName()); assertEquals(server.disks().size(), hardware.getVolumes().size()); assertEquals(Float.valueOf(server.disks().get(0).sizeGb()), hardware.getVolumes().get(0).getSize()); assertEquals(Volume.Type.LOCAL, hardware.getVolumes().get(0).getType()); assertEquals(server.disks().get(0).id(), hardware.getVolumes().get(0).getId()); assertEquals(server.disks().get(0).scsiId().toString(), hardware.getVolumes().get(0).getDevice()); assertEquals(server.cpu().count(), hardware.getProcessors().size()); assertEquals(Double.valueOf(server.cpu().coresPerSocket()), hardware.getProcessors().get(0).getCores()); assertEquals(CpuSpeed.STANDARD.getSpeed(), hardware.getProcessors().get(0).getSpeed()); }
@Override public NodeAndInitialCredentials<ServerInfo> createNodeWithGroupEncodedIntoName(String tag, String name, Template template) { long bootSize = (long) (template.getHardware().getVolumes().get(0).getSize() * 1024 * 1024 * 1024l); AffinityType affinityType = AffinityType.HDD; if (template.getOptions() instanceof CloudSigmaTemplateOptions) { CloudSigmaTemplateOptions options = CloudSigmaTemplateOptions.class.cast(template.getOptions()); affinityType = options.getDiskDriveAffinity(); } logger.debug(">> imaging boot drive source(%s) bytes(%d) affinityType(%s)", template.getImage().getId(), bootSize, affinityType); DriveInfo drive = client.cloneDrive(template.getImage().getId(), template.getImage().getId(), new CloneDriveOptions().size(bootSize).affinity(affinityType)); boolean success = driveNotClaimed.apply(drive); logger.debug("<< image(%s) complete(%s)", drive.getUuid(), success); if (!success) { client.destroyDrive(drive.getUuid()); throw new IllegalStateException("could not image drive in time!"); } Server toCreate = Servers.small(name, drive.getUuid(), defaultVncPassword).mem(template.getHardware().getRam()) .cpu((int) (template.getHardware().getProcessors().get(0).getSpeed())).build(); logger.debug(">> creating server"); ServerInfo from = client.createServer(toCreate); logger.debug("<< created server(%s)", from.getUuid()); logger.debug(">> starting server(%s)", from.getUuid()); client.startServer(from.getUuid()); return new NodeAndInitialCredentials<ServerInfo>(from, from.getUuid(), LoginCredentials.builder() .password(defaultVncPassword).authenticateSudo(true).build()); }
@Test public void machineTypeParserTest() { URI uri = URI.create("https://www.googleapis.com/compute/v1/projects/jclouds-dev/zones/asia-east1-a/machineTypes/custom-1-1024"); Hardware hardware = machineTypeURIToCustomHardware(uri); assertThat(hardware.getRam()).isEqualTo(1024); assertThat(hardware.getProcessors().get(0).getCores()).isEqualTo(1); assertThat(hardware.getUri()) .isEqualTo(URI.create("https://www.googleapis.com/compute/v1/projects/jclouds-dev/zones/asia-east1-a/machineTypes/custom-1-1024")); assertThat(hardware.getId()) .isEqualTo("https://www.googleapis.com/compute/v1/projects/jclouds-dev/zones/asia-east1-a/machineTypes/custom-1-1024"); }
from("http4://SOME_URL").process(new Processor() { public void process(Exchange exchange) throws Exception { Message out = exchange.getOut(); int responseCode = out.getHeader(HttpProducer.HTTP_RESPONSE_CODE, Integer.class); //HERE DECIDE WHAT TO DO BASED ON YOUR RESPONSE CODE! } }).to("some_other_endpoint");
from("direct:b") .routeId("routeB") .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { System.out.println("Route B URI: " + exchange.getContext().getRoute("routeb").getFrom().getEndpointUri()); } });
from(...) .setProperty("ORIG_EXCH",body()) ... .process(new Processor() { public void process(Exchange exch) throws Exception { Object orig = exch.getProperty("ORIG_EXCH"); ... } }) ...