Revision f15a6b03
b/lib/hypervisor/hv_base.py | ||
---|---|---|
83 | 83 |
_FILE_CHECK = (utils.IsNormAbsPath, "must be an absolute normalized path", |
84 | 84 |
os.path.isfile, "not found or not a file") |
85 | 85 |
|
86 |
# must be a file or a URL |
|
87 |
_FILE_OR_URL_CHECK = (utils.IsNormAbsPathOrURL, |
|
88 |
"must be an absolute normalized path or a URL", |
|
89 |
lambda x: os.path.isfile(x) or |
|
90 |
re.match(r'(https?|ftps?)://', x), |
|
91 |
"not found or not a file or URL") |
|
92 |
|
|
86 | 93 |
# must be a directory |
87 | 94 |
_DIR_CHECK = (utils.IsNormAbsPath, "must be an absolute normalized path", |
88 | 95 |
os.path.isdir, "not found or not a directory") |
... | ... | |
108 | 115 |
# nice wrappers for users |
109 | 116 |
REQ_FILE_CHECK = (True, ) + _FILE_CHECK |
110 | 117 |
OPT_FILE_CHECK = (False, ) + _FILE_CHECK |
118 |
REQ_FILE_OR_URL_CHECK = (True, ) + _FILE_OR_URL_CHECK |
|
119 |
OPT_FILE_OR_URL_CHECK = (False, ) + _FILE_OR_URL_CHECK |
|
111 | 120 |
REQ_DIR_CHECK = (True, ) + _DIR_CHECK |
112 | 121 |
OPT_DIR_CHECK = (False, ) + _DIR_CHECK |
113 | 122 |
REQ_NET_PORT_CHECK = (True, ) + _NET_PORT_CHECK |
b/lib/hypervisor/hv_kvm.py | ||
---|---|---|
678 | 678 |
constants.HV_KVM_SPICE_TLS_CIPHERS: hv_base.NO_CHECK, |
679 | 679 |
constants.HV_KVM_SPICE_USE_VDAGENT: hv_base.NO_CHECK, |
680 | 680 |
constants.HV_KVM_FLOPPY_IMAGE_PATH: hv_base.OPT_FILE_CHECK, |
681 |
constants.HV_CDROM_IMAGE_PATH: hv_base.OPT_FILE_CHECK, |
|
681 |
constants.HV_CDROM_IMAGE_PATH: hv_base.OPT_FILE_OR_URL_CHECK,
|
|
682 | 682 |
constants.HV_KVM_CDROM2_IMAGE_PATH: hv_base.OPT_FILE_CHECK, |
683 | 683 |
constants.HV_BOOT_ORDER: |
684 | 684 |
hv_base.ParamInSet(True, constants.HT_KVM_VALID_BO_TYPES), |
... | ... | |
1426 | 1426 |
|
1427 | 1427 |
iso_image = hvp[constants.HV_CDROM_IMAGE_PATH] |
1428 | 1428 |
if iso_image: |
1429 |
options = ",format=raw,media=cdrom" |
|
1429 |
options = ",media=cdrom" |
|
1430 |
if not re.match(r'(https?|ftps?)://', iso_image): |
|
1431 |
options = "%s,format=raw" % options |
|
1430 | 1432 |
# set cdrom 'if' type |
1431 | 1433 |
if boot_cdrom: |
1432 | 1434 |
actual_cdrom_type = constants.HT_DISK_IDE |
b/lib/utils/io.py | ||
---|---|---|
23 | 23 |
""" |
24 | 24 |
|
25 | 25 |
import os |
26 |
import re |
|
26 | 27 |
import logging |
27 | 28 |
import shutil |
28 | 29 |
import tempfile |
... | ... | |
669 | 670 |
return os.path.commonprefix([prepared_root, norm_other]) == prepared_root |
670 | 671 |
|
671 | 672 |
|
673 |
def IsNormAbsPathOrURL(path): |
|
674 |
"""Check whether a path is absolute and normalized, or an HTTP URL. |
|
675 |
|
|
676 |
""" |
|
677 |
return IsNormAbsPath(path) or re.match(r'(https?|ftps?)://', path) |
|
678 |
|
|
679 |
|
|
672 | 680 |
def PathJoin(*args): |
673 | 681 |
"""Safe-join a list of path components. |
674 | 682 |
|
Also available in: Unified diff