Testing updates
- some clean-ups for tests/vm - enable tools build for MacOSX - bump avocado to a newer version - bump travis env for avocado -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAl5ffDMACgkQ+9DbCVqe KkQB5wf/Wuoelb7c+zHWZwfKeoApAJk5C53tgCzK7zAuhF3cNhIo3IViai7d/Tq4 xGLeYS64FxLHlghHuDFrcNOp14FHahrJ0KLrWjDZGhXLQ70hVBxOHA1IEqmDLyl8 ljsvVztunLWTw1c4HLTd+3DuZUm+mVMBqv8crhN8pDlbA2IJVTQSlaxJMuYybaVU qwHfmwkyk7RtV0HYdUpl42Bq5c34HtQjmF4sYIGCKJDCvfs1yaxEhUqP0mMBA4U6 fbryjP/lOSop8qeEUnSFcYT00vXkkZOW302cqH/5f9zuHcq5SxYkp4Zm1YgKCWJb KlnInCoZQ40TCWb6iVgOKiXTrjRoAQ== =PsMV -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-040320-1' into staging Testing updates - some clean-ups for tests/vm - enable tools build for MacOSX - bump avocado to a newer version - bump travis env for avocado # gpg: Signature made Wed 04 Mar 2020 10:00:19 GMT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-testing-040320-1: travis.yml: install python3 numpy and opencv libraries tests/acceptance: bump avocado requirements to 76.0 configure: detect and report genisoimage travis: enable tools build on OS X tests/vm: Added gen_cloud_init_iso() to basevm.py tests/vm: give wait_ssh() option to wait for root tests/vm: increased max timeout for vm boot. tests/vm: Debug mode shows ssh output. tests/vm: use $(PYTHON) consistently Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
e64a62df37
@ -273,6 +273,7 @@ jobs:
|
|||||||
|
|
||||||
- name: "OSX Xcode 10.3"
|
- name: "OSX Xcode 10.3"
|
||||||
env:
|
env:
|
||||||
|
- BASE_CONFIG="--disable-docs --enable-tools"
|
||||||
- CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
|
- CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode10.3
|
osx_image: xcode10.3
|
||||||
@ -312,6 +313,7 @@ jobs:
|
|||||||
|
|
||||||
# Acceptance (Functional) tests
|
# Acceptance (Functional) tests
|
||||||
- name: "GCC check-acceptance"
|
- name: "GCC check-acceptance"
|
||||||
|
dist: bionic
|
||||||
env:
|
env:
|
||||||
- CONFIG="--target-list=aarch64-softmmu,alpha-softmmu,arm-softmmu,m68k-softmmu,microblaze-softmmu,mips-softmmu,mips64el-softmmu,nios2-softmmu,or1k-softmmu,ppc-softmmu,ppc64-softmmu,s390x-softmmu,sparc-softmmu,x86_64-softmmu,xtensa-softmmu"
|
- CONFIG="--target-list=aarch64-softmmu,alpha-softmmu,arm-softmmu,m68k-softmmu,microblaze-softmmu,mips-softmmu,mips64el-softmmu,nios2-softmmu,or1k-softmmu,ppc-softmmu,ppc64-softmmu,s390x-softmmu,sparc-softmmu,x86_64-softmmu,xtensa-softmmu"
|
||||||
- TEST_CMD="make check-acceptance"
|
- TEST_CMD="make check-acceptance"
|
||||||
@ -322,7 +324,9 @@ jobs:
|
|||||||
packages:
|
packages:
|
||||||
- python3-pil
|
- python3-pil
|
||||||
- python3-pip
|
- python3-pip
|
||||||
- python3.5-venv
|
- python3-numpy
|
||||||
|
- python3-opencv
|
||||||
|
- python3-venv
|
||||||
- rpm2cpio
|
- rpm2cpio
|
||||||
- tesseract-ocr
|
- tesseract-ocr
|
||||||
- tesseract-ocr-eng
|
- tesseract-ocr-eng
|
||||||
|
13
configure
vendored
13
configure
vendored
@ -936,6 +936,17 @@ do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Check for ancillary tools used in testing
|
||||||
|
genisoimage=
|
||||||
|
for binary in genisoimage
|
||||||
|
do
|
||||||
|
if has $binary
|
||||||
|
then
|
||||||
|
genisoimage=$(command -v "$binary")
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
: ${smbd=${SMBD-/usr/sbin/smbd}}
|
: ${smbd=${SMBD-/usr/sbin/smbd}}
|
||||||
|
|
||||||
# Default objcc to clang if available, otherwise use CC
|
# Default objcc to clang if available, otherwise use CC
|
||||||
@ -6567,6 +6578,7 @@ echo "python $python ($python_version)"
|
|||||||
if test "$docs" != "no"; then
|
if test "$docs" != "no"; then
|
||||||
echo "sphinx-build $sphinx_build"
|
echo "sphinx-build $sphinx_build"
|
||||||
fi
|
fi
|
||||||
|
echo "genisoimage $genisoimage"
|
||||||
echo "slirp support $slirp $(echo_version $slirp $slirp_version)"
|
echo "slirp support $slirp $(echo_version $slirp $slirp_version)"
|
||||||
if test "$slirp" != "no" ; then
|
if test "$slirp" != "no" ; then
|
||||||
echo "smbd $smbd"
|
echo "smbd $smbd"
|
||||||
@ -7616,6 +7628,7 @@ echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
|
|||||||
echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
|
echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
|
||||||
echo "PYTHON=$python" >> $config_host_mak
|
echo "PYTHON=$python" >> $config_host_mak
|
||||||
echo "SPHINX_BUILD=$sphinx_build" >> $config_host_mak
|
echo "SPHINX_BUILD=$sphinx_build" >> $config_host_mak
|
||||||
|
echo "GENISOIMAGE=$genisoimage" >> $config_host_mak
|
||||||
echo "CC=$cc" >> $config_host_mak
|
echo "CC=$cc" >> $config_host_mak
|
||||||
if $iasl -h > /dev/null 2>&1; then
|
if $iasl -h > /dev/null 2>&1; then
|
||||||
echo "IASL=$iasl" >> $config_host_mak
|
echo "IASL=$iasl" >> $config_host_mak
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Add Python module requirements, one per line, to be installed
|
# Add Python module requirements, one per line, to be installed
|
||||||
# in the tests/venv Python virtual environment. For more info,
|
# in the tests/venv Python virtual environment. For more info,
|
||||||
# refer to: https://pip.pypa.io/en/stable/user_guide/#id1
|
# refer to: https://pip.pypa.io/en/stable/user_guide/#id1
|
||||||
avocado-framework==72.0
|
avocado-framework==76.0
|
||||||
|
@ -2,7 +2,11 @@
|
|||||||
|
|
||||||
.PHONY: vm-build-all vm-clean-all
|
.PHONY: vm-build-all vm-clean-all
|
||||||
|
|
||||||
IMAGES := ubuntu.i386 freebsd netbsd openbsd centos fedora
|
IMAGES := freebsd netbsd openbsd centos fedora
|
||||||
|
ifneq ($(GENISOIMAGE),)
|
||||||
|
IMAGES += ubuntu.i386 centos
|
||||||
|
endif
|
||||||
|
|
||||||
IMAGES_DIR := $(HOME)/.cache/qemu-vm/images
|
IMAGES_DIR := $(HOME)/.cache/qemu-vm/images
|
||||||
IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
|
IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
|
||||||
|
|
||||||
@ -12,12 +16,16 @@ IMAGE_FILES := $(patsubst %, $(IMAGES_DIR)/%.img, $(IMAGES))
|
|||||||
vm-help vm-test:
|
vm-help vm-test:
|
||||||
@echo "vm-help: Test QEMU in preconfigured virtual machines"
|
@echo "vm-help: Test QEMU in preconfigured virtual machines"
|
||||||
@echo
|
@echo
|
||||||
@echo " vm-build-ubuntu.i386 - Build QEMU in ubuntu i386 VM"
|
|
||||||
@echo " vm-build-freebsd - Build QEMU in FreeBSD VM"
|
@echo " vm-build-freebsd - Build QEMU in FreeBSD VM"
|
||||||
@echo " vm-build-netbsd - Build QEMU in NetBSD VM"
|
@echo " vm-build-netbsd - Build QEMU in NetBSD VM"
|
||||||
@echo " vm-build-openbsd - Build QEMU in OpenBSD VM"
|
@echo " vm-build-openbsd - Build QEMU in OpenBSD VM"
|
||||||
@echo " vm-build-centos - Build QEMU in CentOS VM, with Docker"
|
|
||||||
@echo " vm-build-fedora - Build QEMU in Fedora VM"
|
@echo " vm-build-fedora - Build QEMU in Fedora VM"
|
||||||
|
ifneq ($(GENISOIMAGE),)
|
||||||
|
@echo " vm-build-centos - Build QEMU in CentOS VM, with Docker"
|
||||||
|
@echo " vm-build-ubuntu.i386 - Build QEMU in ubuntu i386 VM"
|
||||||
|
else
|
||||||
|
@echo " (install genisoimage to build centos/ubuntu images)"
|
||||||
|
endif
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo " vm-build-all - Build QEMU in all VMs"
|
@echo " vm-build-all - Build QEMU in all VMs"
|
||||||
@echo " vm-clean-all - Clean up VM images"
|
@echo " vm-clean-all - Clean up VM images"
|
||||||
@ -80,7 +88,7 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
|
|||||||
|
|
||||||
vm-boot-ssh-%: $(IMAGES_DIR)/%.img
|
vm-boot-ssh-%: $(IMAGES_DIR)/%.img
|
||||||
$(call quiet-command, \
|
$(call quiet-command, \
|
||||||
$(SRC_PATH)/tests/vm/$* \
|
$(PYTHON) $(SRC_PATH)/tests/vm/$* \
|
||||||
$(if $(J),--jobs $(J)) \
|
$(if $(J),--jobs $(J)) \
|
||||||
--image "$<" \
|
--image "$<" \
|
||||||
--interactive \
|
--interactive \
|
||||||
|
@ -57,6 +57,10 @@ class BaseVM(object):
|
|||||||
poweroff = "poweroff"
|
poweroff = "poweroff"
|
||||||
# enable IPv6 networking
|
# enable IPv6 networking
|
||||||
ipv6 = True
|
ipv6 = True
|
||||||
|
# Scale up some timeouts under TCG.
|
||||||
|
# 4 is arbitrary, but greater than 2,
|
||||||
|
# since we found we need to wait more than twice as long.
|
||||||
|
tcg_ssh_timeout_multiplier = 4
|
||||||
def __init__(self, debug=False, vcpus=None):
|
def __init__(self, debug=False, vcpus=None):
|
||||||
self._guest = None
|
self._guest = None
|
||||||
self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
|
self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
|
||||||
@ -120,11 +124,16 @@ class BaseVM(object):
|
|||||||
return fname
|
return fname
|
||||||
|
|
||||||
def _ssh_do(self, user, cmd, check):
|
def _ssh_do(self, user, cmd, check):
|
||||||
ssh_cmd = ["ssh", "-q", "-t",
|
ssh_cmd = ["ssh",
|
||||||
|
"-t",
|
||||||
"-o", "StrictHostKeyChecking=no",
|
"-o", "StrictHostKeyChecking=no",
|
||||||
"-o", "UserKnownHostsFile=" + os.devnull,
|
"-o", "UserKnownHostsFile=" + os.devnull,
|
||||||
"-o", "ConnectTimeout=1",
|
"-o", "ConnectTimeout=1",
|
||||||
"-p", self.ssh_port, "-i", self._ssh_key_file]
|
"-p", self.ssh_port, "-i", self._ssh_key_file]
|
||||||
|
# If not in debug mode, set ssh to quiet mode to
|
||||||
|
# avoid printing the results of commands.
|
||||||
|
if not self.debug:
|
||||||
|
ssh_cmd.append("-q")
|
||||||
for var in self.envvars:
|
for var in self.envvars:
|
||||||
ssh_cmd += ['-o', "SendEnv=%s" % var ]
|
ssh_cmd += ['-o', "SendEnv=%s" % var ]
|
||||||
assert not isinstance(cmd, str)
|
assert not isinstance(cmd, str)
|
||||||
@ -303,12 +312,18 @@ class BaseVM(object):
|
|||||||
def print_step(self, text):
|
def print_step(self, text):
|
||||||
sys.stderr.write("### %s ...\n" % text)
|
sys.stderr.write("### %s ...\n" % text)
|
||||||
|
|
||||||
def wait_ssh(self, seconds=300):
|
def wait_ssh(self, wait_root=False, seconds=300):
|
||||||
|
# Allow more time for VM to boot under TCG.
|
||||||
|
if not kvm_available(self.arch):
|
||||||
|
seconds *= self.tcg_ssh_timeout_multiplier
|
||||||
starttime = datetime.datetime.now()
|
starttime = datetime.datetime.now()
|
||||||
endtime = starttime + datetime.timedelta(seconds=seconds)
|
endtime = starttime + datetime.timedelta(seconds=seconds)
|
||||||
guest_up = False
|
guest_up = False
|
||||||
while datetime.datetime.now() < endtime:
|
while datetime.datetime.now() < endtime:
|
||||||
if self.ssh("exit 0") == 0:
|
if wait_root and self.ssh_root("exit 0") == 0:
|
||||||
|
guest_up = True
|
||||||
|
break
|
||||||
|
elif self.ssh("exit 0") == 0:
|
||||||
guest_up = True
|
guest_up = True
|
||||||
break
|
break
|
||||||
seconds = (endtime - datetime.datetime.now()).total_seconds()
|
seconds = (endtime - datetime.datetime.now()).total_seconds()
|
||||||
@ -330,6 +345,46 @@ class BaseVM(object):
|
|||||||
def qmp(self, *args, **kwargs):
|
def qmp(self, *args, **kwargs):
|
||||||
return self._guest.qmp(*args, **kwargs)
|
return self._guest.qmp(*args, **kwargs)
|
||||||
|
|
||||||
|
def gen_cloud_init_iso(self):
|
||||||
|
cidir = self._tmpdir
|
||||||
|
mdata = open(os.path.join(cidir, "meta-data"), "w")
|
||||||
|
name = self.name.replace(".","-")
|
||||||
|
mdata.writelines(["instance-id: {}-vm-0\n".format(name),
|
||||||
|
"local-hostname: {}-guest\n".format(name)])
|
||||||
|
mdata.close()
|
||||||
|
udata = open(os.path.join(cidir, "user-data"), "w")
|
||||||
|
print("guest user:pw {}:{}".format(self._config['guest_user'],
|
||||||
|
self._config['guest_pass']))
|
||||||
|
udata.writelines(["#cloud-config\n",
|
||||||
|
"chpasswd:\n",
|
||||||
|
" list: |\n",
|
||||||
|
" root:%s\n" % self._config['root_pass'],
|
||||||
|
" %s:%s\n" % (self._config['guest_user'],
|
||||||
|
self._config['guest_pass']),
|
||||||
|
" expire: False\n",
|
||||||
|
"users:\n",
|
||||||
|
" - name: %s\n" % self._config['guest_user'],
|
||||||
|
" sudo: ALL=(ALL) NOPASSWD:ALL\n",
|
||||||
|
" ssh-authorized-keys:\n",
|
||||||
|
" - %s\n" % self._config['ssh_pub_key'],
|
||||||
|
" - name: root\n",
|
||||||
|
" ssh-authorized-keys:\n",
|
||||||
|
" - %s\n" % self._config['ssh_pub_key'],
|
||||||
|
"locale: en_US.UTF-8\n"])
|
||||||
|
proxy = os.environ.get("http_proxy")
|
||||||
|
if not proxy is None:
|
||||||
|
udata.writelines(["apt:\n",
|
||||||
|
" proxy: %s" % proxy])
|
||||||
|
udata.close()
|
||||||
|
subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
|
||||||
|
"-volid", "cidata", "-joliet", "-rock",
|
||||||
|
"user-data", "meta-data"],
|
||||||
|
cwd=cidir,
|
||||||
|
stdin=self._devnull, stdout=self._stdout,
|
||||||
|
stderr=self._stdout)
|
||||||
|
|
||||||
|
return os.path.join(cidir, "cloud-init.iso")
|
||||||
|
|
||||||
def parse_args(vmcls):
|
def parse_args(vmcls):
|
||||||
|
|
||||||
def get_default_jobs():
|
def get_default_jobs():
|
||||||
|
@ -31,37 +31,6 @@ class CentosVM(basevm.BaseVM):
|
|||||||
make docker-test-mingw@fedora {verbose} J={jobs} NETWORK=1;
|
make docker-test-mingw@fedora {verbose} J={jobs} NETWORK=1;
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _gen_cloud_init_iso(self):
|
|
||||||
cidir = self._tmpdir
|
|
||||||
mdata = open(os.path.join(cidir, "meta-data"), "w")
|
|
||||||
mdata.writelines(["instance-id: centos-vm-0\n",
|
|
||||||
"local-hostname: centos-guest\n"])
|
|
||||||
mdata.close()
|
|
||||||
udata = open(os.path.join(cidir, "user-data"), "w")
|
|
||||||
udata.writelines(["#cloud-config\n",
|
|
||||||
"chpasswd:\n",
|
|
||||||
" list: |\n",
|
|
||||||
" root:%s\n" % self.ROOT_PASS,
|
|
||||||
" %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
|
|
||||||
" expire: False\n",
|
|
||||||
"users:\n",
|
|
||||||
" - name: %s\n" % self.GUEST_USER,
|
|
||||||
" sudo: ALL=(ALL) NOPASSWD:ALL\n",
|
|
||||||
" ssh-authorized-keys:\n",
|
|
||||||
" - %s\n" % basevm.SSH_PUB_KEY,
|
|
||||||
" - name: root\n",
|
|
||||||
" ssh-authorized-keys:\n",
|
|
||||||
" - %s\n" % basevm.SSH_PUB_KEY,
|
|
||||||
"locale: en_US.UTF-8\n"])
|
|
||||||
udata.close()
|
|
||||||
subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
|
|
||||||
"-volid", "cidata", "-joliet", "-rock",
|
|
||||||
"user-data", "meta-data"],
|
|
||||||
cwd=cidir,
|
|
||||||
stdin=self._devnull, stdout=self._stdout,
|
|
||||||
stderr=self._stdout)
|
|
||||||
return os.path.join(cidir, "cloud-init.iso")
|
|
||||||
|
|
||||||
def build_image(self, img):
|
def build_image(self, img):
|
||||||
cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz")
|
cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz")
|
||||||
img_tmp = img + ".tmp"
|
img_tmp = img + ".tmp"
|
||||||
@ -69,7 +38,7 @@ class CentosVM(basevm.BaseVM):
|
|||||||
subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"])
|
subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"])
|
||||||
subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"])
|
subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"])
|
||||||
self.exec_qemu_img("resize", img_tmp, "50G")
|
self.exec_qemu_img("resize", img_tmp, "50G")
|
||||||
self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
|
self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
|
||||||
self.wait_ssh()
|
self.wait_ssh()
|
||||||
self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
|
self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
|
||||||
self.ssh_root_check("yum update -y")
|
self.ssh_root_check("yum update -y")
|
||||||
|
@ -29,41 +29,6 @@ class UbuntuX86VM(basevm.BaseVM):
|
|||||||
make --output-sync {target} -j{jobs} {verbose};
|
make --output-sync {target} -j{jobs} {verbose};
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _gen_cloud_init_iso(self):
|
|
||||||
cidir = self._tmpdir
|
|
||||||
mdata = open(os.path.join(cidir, "meta-data"), "w")
|
|
||||||
mdata.writelines(["instance-id: ubuntu-vm-0\n",
|
|
||||||
"local-hostname: ubuntu-guest\n"])
|
|
||||||
mdata.close()
|
|
||||||
udata = open(os.path.join(cidir, "user-data"), "w")
|
|
||||||
udata.writelines(["#cloud-config\n",
|
|
||||||
"chpasswd:\n",
|
|
||||||
" list: |\n",
|
|
||||||
" root:%s\n" % self.ROOT_PASS,
|
|
||||||
" %s:%s\n" % (self.GUEST_USER, self.GUEST_PASS),
|
|
||||||
" expire: False\n",
|
|
||||||
"users:\n",
|
|
||||||
" - name: %s\n" % self.GUEST_USER,
|
|
||||||
" sudo: ALL=(ALL) NOPASSWD:ALL\n",
|
|
||||||
" ssh-authorized-keys:\n",
|
|
||||||
" - %s\n" % basevm.SSH_PUB_KEY,
|
|
||||||
" - name: root\n",
|
|
||||||
" ssh-authorized-keys:\n",
|
|
||||||
" - %s\n" % basevm.SSH_PUB_KEY,
|
|
||||||
"locale: en_US.UTF-8\n"])
|
|
||||||
proxy = os.environ.get("http_proxy")
|
|
||||||
if not proxy is None:
|
|
||||||
udata.writelines(["apt:\n",
|
|
||||||
" proxy: %s" % proxy])
|
|
||||||
udata.close()
|
|
||||||
subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
|
|
||||||
"-volid", "cidata", "-joliet", "-rock",
|
|
||||||
"user-data", "meta-data"],
|
|
||||||
cwd=cidir,
|
|
||||||
stdin=self._devnull, stdout=self._stdout,
|
|
||||||
stderr=self._stdout)
|
|
||||||
return os.path.join(cidir, "cloud-init.iso")
|
|
||||||
|
|
||||||
def build_image(self, img):
|
def build_image(self, img):
|
||||||
cimg = self._download_with_cache(
|
cimg = self._download_with_cache(
|
||||||
"https://cloud-images.ubuntu.com/releases/bionic/release-20191114/ubuntu-18.04-server-cloudimg-i386.img",
|
"https://cloud-images.ubuntu.com/releases/bionic/release-20191114/ubuntu-18.04-server-cloudimg-i386.img",
|
||||||
@ -71,7 +36,7 @@ class UbuntuX86VM(basevm.BaseVM):
|
|||||||
img_tmp = img + ".tmp"
|
img_tmp = img + ".tmp"
|
||||||
subprocess.check_call(["cp", "-f", cimg, img_tmp])
|
subprocess.check_call(["cp", "-f", cimg, img_tmp])
|
||||||
self.exec_qemu_img("resize", img_tmp, "50G")
|
self.exec_qemu_img("resize", img_tmp, "50G")
|
||||||
self.boot(img_tmp, extra_args = ["-cdrom", self._gen_cloud_init_iso()])
|
self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
|
||||||
self.wait_ssh()
|
self.wait_ssh()
|
||||||
self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
|
self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
|
||||||
self.ssh_root_check("apt-get update")
|
self.ssh_root_check("apt-get update")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user