You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_devpath=$( cbsdsqlro storage_media SELECT path FROM media WHERE jname=\"${jname}\" AND type=\"hdd\" AND name=\"hdd-${lunname}\" LIMIT 1 2>/dev/null )
240
-
[ -z "${_devpath}" ] && err 1 "${N1_COLOR}Unable to find in media DB: SELECT path FROM media WHERE jname=\"${jname}\" AND type=\"hdd\" AND name=\"hdd-${lunname}\"${N0_COLOR}"
247
+
_devpath=$( cbsdsqlro storage_media "SELECT path FROM media WHERE jname='${jname}' AND type='hdd' AND ( name='hdd-${lunname}' OR name='hdd-${lunname}.vhd' ) LIMIT 1;" 2>/dev/null )
248
+
[ -z "${_devpath}" ] && err 1 "${N1_COLOR}Unable to find in media DB: SELECT path FROM media WHERE jname='${jname}' AND type='hdd' AND ( name='hdd-${lunname}' OR name='hdd-${lunname}.vhd' );${N0_COLOR}"
241
249
else
242
250
# check in media table
243
-
_devpath=$( cbsdsqlro storage_media SELECT path FROM media WHERE jname=\"${jname}\" AND type=\"hdd\" AND name=\"hdd-${dsk_path}.vhd\" LIMIT 1 2>/dev/null )
244
-
[ -z "${_devpath}" ] && err 1 "${N1_COLOR}Unable to find in media DB: SELECT path FROM media WHERE jname=\"${jname}\" AND type=\"hdd\" AND name=\"hdd-${dsk_path}.vhd\"${N0_COLOR}"
251
+
_devpath=$( cbsdsqlro storage_media "SELECT path FROM media WHERE jname='${jname}' AND type='hdd' AND ( name='hdd-${dsk_path}.vhd' OR name='hdd-${dsk_path}' ) LIMIT 1;" 2>/dev/null )
252
+
[ -z "${_devpath}" ] && err 1 "${N1_COLOR}Unable to find in media DB: SELECT path FROM media WHERE jname='${jname}' AND type='hdd' AND ( name='hdd-${dsk_path}.vhd' OR name='hdd-${dsk_path}' );${N0_COLOR}"
245
253
fi
246
254
247
255
if [ "${_res}" = "/dev/" ]; then
248
256
# raw device
249
-
_val=$( cbsdsqlro ${jailsysdir}/${jname}/local.sqlite SELECT dsk_path FROM bhyvedsk WHERE dsk_controller=\"${dsk_controller}\" AND dsk_path=\"${dsk_path}\" AND dsk_type=\"vhd\" 2>/dev/null )
250
-
[ -z "${_val}" ] && err 1 "${N1_COLOR}Unable to find in bhyvedsk: SELECT dsk_path FROM bhyvedsk WHERE dsk_controller=\"${dsk_controller}\" AND dsk_path=\"${dsk_path}\" AND dsk_type=\"vhd\"${N0_COLOR}"
257
+
_val=$( cbsdsqlro ${jailsysdir}/${jname}/local.sqlite "SELECT dsk_path FROM bhyvedsk WHERE dsk_controller='${dsk_controller}' AND ( dsk_path='${dsk_path}' OR dsk_path='${dsk_path}.vhd' ) AND dsk_type='vhd' LIMIT 1;" 2>/dev/null )
258
+
[ -z "${_val}" ] && err 1 "${N1_COLOR}Unable to find in bhyvedsk: SELECT dsk_path FROM bhyvedsk WHERE dsk_controller='${dsk_controller}' AND ( dsk_path='${dsk_path}' OR dsk_path='${dsk_path}.vhd' ) AND dsk_type='vhd'${N0_COLOR}"
251
259
media mode=detach name=hdd-${lunname} path=${_devpath} type=hdd jname=${jname}
252
260
else
253
-
_val=$( cbsdsqlro ${jailsysdir}/${jname}/local.sqlite SELECT dsk_path FROM bhyvedsk WHERE dsk_controller=\"${dsk_controller}\" AND dsk_path=\"${dsk_path}.vhd\" AND dsk_type=\"vhd\" 2>/dev/null )
254
-
[ -z "${_val}" ] && err 1 "${N1_COLOR}Unable to find in bhyvedsk: SELECT dsk_path FROM bhyvedsk WHERE dsk_controller=\"${dsk_controller}\" AND dsk_path=\"${dsk_path}.vhd\" AND dsk_type=\"vhd\"${N0_COLOR}"
261
+
_val=$( cbsdsqlro ${jailsysdir}/${jname}/local.sqlite "SELECT dsk_path FROM bhyvedsk WHERE dsk_controller='${dsk_controller}' AND ( name='hdd-${dsk_path}.vhd' OR name='hdd-${dsk_path}' ) AND dsk_type='vhd' LIMIT 1;" 2>/dev/null )
262
+
[ -z "${_val}" ] && err 1 "${N1_COLOR}Unable to find in bhyvedsk: SELECT dsk_path FROM bhyvedsk WHERE dsk_controller='${dsk_controller}' AND ( name='hdd-${dsk_path}.vhd' OR name='hdd-${dsk_path}' ) AND dsk_type='vhd'${N0_COLOR}"
255
263
media mode=detach name=hdd-${dsk_path}.vhd path=${_devpath} type=hdd jname=${jname}
256
264
fi
257
265
258
266
if [ "${_res}" = "/dev/" ]; then
259
267
# raw device
260
-
cbsdsqlrw ${jailsysdir}/${jname}/local.sqlite DELETE FROM bhyvedsk WHERE dsk_controller=\"${dsk_controller}\" AND dsk_path=\"${dsk_path}\" AND dsk_type=\"vhd\"
268
+
cbsdsqlrw ${jailsysdir}/${jname}/local.sqlite "DELETE FROM bhyvedsk WHERE dsk_controller='${dsk_controller}' AND dsk_path='${dsk_path}' AND dsk_type='vhd'"
261
269
# scan for symlink to raw devices
262
270
${FIND_CMD} ${jaildatadir}/${jname}-${jaildatapref}/ -mindepth 1 -maxdepth 1 -name dsk\*.vhd -type l | while read _link; do
cbsdsqlrw ${jailsysdir}/${jname}/local.sqlite DELETE FROM bhyvedsk WHERE dsk_controller=\"${dsk_controller}\" AND dsk_path=\"${dsk_path}.vhd\" AND dsk_type=\"vhd\"
275
+
cbsdsqlrw ${jailsysdir}/${jname}/local.sqlite DELETE FROM bhyvedsk WHERE dsk_controller='${dsk_controller}' AND dsk_path='${dsk_path}.vhd' AND dsk_type='vhd'
268
276
fi
269
277
270
278
${ECHO} "${N2_COLOR}${dsk_path}${N1_COLOR} dettached (but not removed!)${N0_COLOR}"
[ -z "${jname}" ] && err 1 "${N1_COLOR}Give me ${N2_COLOR}jname=${N0_COLOR}"
450
450
451
-
local dsk_path dsk_name
452
-
local mydb virtio_type already_attached_to_me
451
+
local dsk_path= dsk_name=
452
+
local mydb= virtio_type= already_attached_to_me=
453
453
454
-
attached_to_me=$( cbsdsqlro storage_media "SELECT jname FROM media WHERE path='${path}' AND name='${name}' AND jname='${jname}' LIMIT 1" )
454
+
attached_to_me=$( cbsdsqlro storage_media "SELECT jname FROM media WHERE path='${path}' AND ( name='${name}' OR NAME='${name}.vhd' ) AND jname='${jname}' LIMIT 1" )
455
455
[ "${attached_to_me}" != "${jname}" ] && err 1 "${N1_COLOR}disk ${name} with name:${name} and path:${path} is not attached to: ${N2_COLOR}${jname}${N0_COLOR}"
456
456
457
-
attached_to_jname=$( cbsdsqlro storage_media "SELECT jname FROM media WHERE path='${path}' AND name='${name}' AND jname!='${jname}' LIMIT 1" )
457
+
attached_to_jname=$( cbsdsqlro storage_media "SELECT jname FROM media WHERE path='${path}' AND ( name='${name}' OR NAME='${name}.vhd' ) AND jname!='${jname}' LIMIT 1" )
458
458
459
459
# not attached?
460
460
if [ "${attached_to_jname}" = "-" ]; then
@@ -478,16 +478,16 @@ storage_detach()
478
478
;;
479
479
hdd)
480
480
mydb="${jailsysdir}/${jname}/local.sqlite"
481
-
cbsdsqlrw ${mydb} "DELETE FROM ${emulator}dsk WHERE dsk_path='${dsk_path}' AND name='${dsk_name}'"
481
+
cbsdsqlrw ${mydb} "DELETE FROM ${emulator}dsk WHERE dsk_path='${dsk_path}' AND ( name='${dsk_name} OR name='${dsk_name}.vhd' )"
482
482
;;
483
483
esac
484
484
485
485
if [ -n "${attached_to_jname}" ]; then
486
486
# shared disk: delete record with my jname
487
-
sql="DELETE FROM media WHERE name='${dsk_name}' AND path='${dsk_path}' AND jname='${jname}'"
487
+
sql="DELETE FROM media WHERE ( name='${dsk_name}' name='${dsk_name}.vhd' ) AND path='${dsk_path}' AND jname='${jname}'"
488
488
else
489
489
# disk is orphaned now: drop to '-' jname
490
-
sql="UPDATE media SET jname='-' WHERE jname='${jname}' AND name='${dsk_name}' AND path='${dsk_path}'"
490
+
sql="UPDATE media SET jname='-' WHERE jname='${jname}' AND ( name='${dsk_name}' OR name='${dsk_name}.vhd' ) AND path='${dsk_path}'"
0 commit comments