Attach/Detach CDROM not supported

Hi @atodorov_storpool, this is my dirty solution for that:

--- a/detach_disk
+++ b/detach_disk
@@ -26,14 +26,18 @@ TARGET_INDEX="$4"
 
 DETACH_PARAMS="--domain $DOMAIN --target $TARGET"
 
-exec_and_log "virsh --connect $LIBVIRT_URI detach-disk $DETACH_PARAMS" \
-    "Could not detach $TARGET from $DOMAIN"
-
-virsh --connect $LIBVIRT_URI dumpxml $DOMAIN | grep $TARGET > /dev/null 2>&1
-
-if [ $? -eq 0 ] ; then
-    error_message "Could not detach $TARGET from $DOMAIN"
-    exit -1
-fi
-
-exit 0
+DETACH_CMD=$(cat <<EOF
+
+CDROM_TARGET="\$(virsh --connect $LIBVIRT_URI dumpxml --domain $DOMAIN | \
+    xmllint --xpath "string(/domain/devices/disk[target/@dev='${TARGET}'][@device='cdrom']/source/@file)" -)"
+
+if [ -z "\$CDROM_TARGET" ]
+then virsh --connect $LIBVIRT_URI detach-disk $DETACH_PARAMS
+else virsh --connect $LIBVIRT_URI change-media --domain $DOMAIN --eject "\$CDROM_TARGET" --force
+fi
+
+EOF
+)
+
+multiline_exec_and_log "$DETACH_CMD" \
+    "Could not detach $TARGET from $DOMAIN"