map.setDeviceName("/dev/sdb"); map.setVirtualName("ephemeral0"); run.withBlockDeviceMappings(map); run.withUserData(new String(Base64.encodeBase64(cloudConfig.getBytes())));
private void setupEphemeralDeviceMapping(RunInstancesRequest riRequest) { final List<BlockDeviceMapping> oldDeviceMapping = getAmiBlockDeviceMappings(); final Set<String> occupiedDevices = new HashSet<String>(); for (final BlockDeviceMapping mapping: oldDeviceMapping ) { occupiedDevices.add(mapping.getDeviceName()); } final List<String> available = new ArrayList<String>(Arrays.asList( "ephemeral0", "ephemeral1", "ephemeral2", "ephemeral3" )); final List<BlockDeviceMapping> newDeviceMapping = new ArrayList<BlockDeviceMapping>(4); for (char suffix = 'b'; suffix <= 'z' && !available.isEmpty(); suffix++) { final String deviceName = String.format("/dev/xvd%s", suffix); if (occupiedDevices.contains(deviceName)) continue; final BlockDeviceMapping newMapping = new BlockDeviceMapping() .withDeviceName(deviceName) .withVirtualName(available.get(0)) ; newDeviceMapping.add(newMapping); available.remove(0); } riRequest.withBlockDeviceMappings(newDeviceMapping); }
request = request.withBlockDeviceMappings(blockMaps);
.withInstanceType(instanceType) .withUserData(getCoordinatorUserData(instanceType, coordinatorConfig, awsCredentialsFile, provisioningScriptsArtifact, repositories)) .withBlockDeviceMappings(blockDeviceMappings) .withMinCount(coordinatorCount) .withMaxCount(coordinatorCount);
.withMinCount(totalExpectedWorkers) .withMaxCount(totalExpectedWorkers) .withBlockDeviceMappings(blockDevices) .withKeyName(props.getProperty("master.workers.ec2.keyName")) .withSecurityGroupIds(props.getProperty("master.workers.ec2.securityGroupId"))
.withInstanceType(instanceType) .withUserData(getCoordinatorUserData(instanceType, coordinatorConfig, awsCredentialsFile, repositories)) .withBlockDeviceMappings(blockDeviceMappings) .withMinCount(coordinatorCount) .withMaxCount(coordinatorCount);
.withPlacement(new Placement(availabilityZone)) .withUserData(getAgentUserData(instanceType, agentConfig, repositories)) .withBlockDeviceMappings(blockDeviceMappings) .withMinCount(agentCount) .withMaxCount(agentCount);
.withPlacement(new Placement(availabilityZone)) .withUserData(getAgentUserData(instanceType, agentConfig, provisioningScriptsArtifact, repositories)) .withBlockDeviceMappings(blockDeviceMappings) .withMinCount(agentCount) .withMaxCount(agentCount);
RunInstancesRequest huge() { return new RunInstancesRequest() .withAdditionalInfo(randomS(50)) .withDisableApiTermination(true) .withMaxCount(5) .withBlockDeviceMappings(blockDeviceMappings(100)) .withCpuOptions(new CpuOptionsRequest().withCoreCount(5).withThreadsPerCore(5)) .withElasticGpuSpecification(new ElasticGpuSpecification().withType(randomS(50))) .withNetworkInterfaces(networkInterfaces(100)); }
RunInstancesRequest small() { return new RunInstancesRequest() .withAdditionalInfo(randomS(50)) .withDisableApiTermination(true) .withMaxCount(5) .withBlockDeviceMappings(blockDeviceMappings(3)) .withCpuOptions(new CpuOptionsRequest().withCoreCount(5).withThreadsPerCore(5)) .withElasticGpuSpecification(new ElasticGpuSpecification().withType(randomS(50))) .withNetworkInterfaces(networkInterfaces(3)); }