Handle all image variants.

This commit is contained in:
Michael Lipp 2023-08-11 12:21:50 +02:00
parent 3966cbabe4
commit 40a005329f

View file

@ -31,6 +31,8 @@ import freemarker.template.TemplateNotFoundException;
import io.kubernetes.client.openapi.ApiException; import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.util.generic.dynamic.DynamicKubernetesApi; import io.kubernetes.client.util.generic.dynamic.DynamicKubernetesApi;
import java.io.IOException; import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static org.jdrupes.vmoperator.manager.Constants.VM_OP_GROUP; import static org.jdrupes.vmoperator.manager.Constants.VM_OP_GROUP;
@ -135,9 +137,20 @@ public class Reconciler extends Component {
continue; continue;
} }
String image = cdrom.get("image").getAsString(); String image = cdrom.get("image").getAsString();
if (!image.contains("/") && !image.isEmpty()) { if (image.isEmpty()) {
cdrom.addProperty("image", continue;
Constants.IMAGE_REPO_PATH + "/" + image); }
try {
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
var imageUri = new URI("file://" + Constants.IMAGE_REPO_PATH
+ "/").resolve(image);
if ("file".equals(imageUri.getScheme())) {
cdrom.addProperty("image", imageUri.getPath());
} else {
cdrom.addProperty("image", imageUri.toString());
}
} catch (URISyntaxException e) {
logger.warning(() -> "Invalid CDROM image: " + image);
} }
} }
return vmDef; return vmDef;