Message ID | 20200205212920.467-6-robert.foley@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/vm: Add support for aarch64 VMs | expand |
Robert Foley <robert.foley@linaro.org> writes: > This method was located in both centos and ubuntu.i386. > > Signed-off-by: Robert Foley <robert.foley@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > tests/vm/basevm.py | 40 ++++++++++++++++++++++++++++++++++++++++ > tests/vm/centos | 33 +-------------------------------- > tests/vm/ubuntu.i386 | 37 +------------------------------------ > 3 files changed, 42 insertions(+), 68 deletions(-) > > diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py > index a29099f6f1..a926211da8 100755 > --- a/tests/vm/basevm.py > +++ b/tests/vm/basevm.py > @@ -346,6 +346,46 @@ class BaseVM(object): > def qmp(self, *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 get_default_jobs(): > diff --git a/tests/vm/centos b/tests/vm/centos > index f2f0befd84..c108bd6799 100755 > --- a/tests/vm/centos > +++ b/tests/vm/centos > @@ -31,37 +31,6 @@ class CentosVM(basevm.BaseVM): > 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): > cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz") > img_tmp = img + ".tmp" > @@ -69,7 +38,7 @@ class CentosVM(basevm.BaseVM): > subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"]) > subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"]) > 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.ssh_root_check("touch /etc/cloud/cloud-init.disabled") > self.ssh_root_check("yum update -y") > diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386 > index 3834cd7a8d..7df54ae094 100755 > --- a/tests/vm/ubuntu.i386 > +++ b/tests/vm/ubuntu.i386 > @@ -29,41 +29,6 @@ class UbuntuX86VM(basevm.BaseVM): > 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): > cimg = self._download_with_cache( > "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" > subprocess.check_call(["cp", "-f", cimg, img_tmp]) > 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.ssh_root_check("touch /etc/cloud/cloud-init.disabled") > self.ssh_root_check("apt-get update")
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py index a29099f6f1..a926211da8 100755 --- a/tests/vm/basevm.py +++ b/tests/vm/basevm.py @@ -346,6 +346,46 @@ class BaseVM(object): def qmp(self, *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 get_default_jobs(): diff --git a/tests/vm/centos b/tests/vm/centos index f2f0befd84..c108bd6799 100755 --- a/tests/vm/centos +++ b/tests/vm/centos @@ -31,37 +31,6 @@ class CentosVM(basevm.BaseVM): 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): cimg = self._download_with_cache("https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2.xz") img_tmp = img + ".tmp" @@ -69,7 +38,7 @@ class CentosVM(basevm.BaseVM): subprocess.check_call(["ln", "-f", cimg, img_tmp + ".xz"]) subprocess.check_call(["xz", "--keep", "-dvf", img_tmp + ".xz"]) 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.ssh_root_check("touch /etc/cloud/cloud-init.disabled") self.ssh_root_check("yum update -y") diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386 index 3834cd7a8d..7df54ae094 100755 --- a/tests/vm/ubuntu.i386 +++ b/tests/vm/ubuntu.i386 @@ -29,41 +29,6 @@ class UbuntuX86VM(basevm.BaseVM): 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): cimg = self._download_with_cache( "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" subprocess.check_call(["cp", "-f", cimg, img_tmp]) 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.ssh_root_check("touch /etc/cloud/cloud-init.disabled") self.ssh_root_check("apt-get update")
This method was located in both centos and ubuntu.i386. Signed-off-by: Robert Foley <robert.foley@linaro.org> --- tests/vm/basevm.py | 40 ++++++++++++++++++++++++++++++++++++++++ tests/vm/centos | 33 +-------------------------------- tests/vm/ubuntu.i386 | 37 +------------------------------------ 3 files changed, 42 insertions(+), 68 deletions(-)