in java/com/google/cloud/deploymentmanager/autogen/SpecValidations.java [561:611]
static void validateAccelerators(List<AcceleratorSpec> accelerators) {
if (accelerators.isEmpty()) {
return;
}
checkArgument(accelerators.size() <= 1, "At most one accelerator allowed.");
AcceleratorSpec accelerator = accelerators.get(0);
checkArgument(
accelerator.getTypesList().size() >= 1, "Accelerators must have at least one type.");
Set<String> gpuTypes = ImmutableSet.copyOf(accelerator.getTypesList());
Set<String> unsupportedTypes = Sets.difference(gpuTypes, SUPPORTED_ACCELERATOR_TYPES);
checkArgument(
unsupportedTypes.isEmpty(), "Unsupported accelerator types: %s", unsupportedTypes);
checkArgument(accelerator.getMinCount() >= 0, "Accelerator min count must not be negative.");
checkArgument(
VALID_GPU_COUNTS.contains(accelerator.getMinCount()),
"Accelerator min count must be one of: %s",
VALID_GPU_COUNTS.toString());
if (accelerator.getMaxCount() != 0) {
checkArgument(accelerator.getMaxCount() > 0, "Accelerator max count must be greater than 0.");
checkArgument(
accelerator.getMinCount() <= accelerator.getMaxCount(),
"Accelerator min count must not be greater than max count.");
checkArgument(
VALID_GPU_COUNTS.contains(accelerator.getMaxCount()),
"Accelerator max count must be one of: %s",
VALID_GPU_COUNTS.toString());
}
if (accelerator.getDefaultCount() != 0) {
checkArgument(
accelerator.getDefaultCount() >= 0, "Accelerator default count must not be negative.");
checkArgument(
accelerator.getDefaultCount() >= accelerator.getMinCount(),
"Accelerator default count must not be less than min count.");
if (accelerator.getMaxCount() != 0) {
checkArgument(
accelerator.getDefaultCount() <= accelerator.getMaxCount(),
"Accelerator default count must not be greater than max count.");
}
checkArgument(
VALID_GPU_COUNTS.contains(accelerator.getDefaultCount()),
"Accelerator default count must be one of: %s",
VALID_GPU_COUNTS.toString());
}
if (!accelerator.getDefaultType().isEmpty()) {
checkArgument(
gpuTypes.contains(accelerator.getDefaultType()),
"Default Accelerator Type must be one of %s",
accelerator.getTypesList());
}
}