| 
									
										
										
										
											2020-01-30 17:32:24 +01:00
										 |  |  | #!/usr/bin/env python3 | 
					
						
							| 
									
										
										
										
											2018-07-12 09:28:29 +08:00
										 |  |  | # | 
					
						
							|  |  |  | # CentOS image | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Copyright 2018 Red Hat Inc. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Authors: | 
					
						
							|  |  |  | #  Fam Zheng <famz@redhat.com> | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This code is licensed under the GPL version 2 or later.  See | 
					
						
							|  |  |  | # the COPYING file in the top-level directory. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | import subprocess | 
					
						
							|  |  |  | import basevm | 
					
						
							|  |  |  | import time | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CentosVM(basevm.BaseVM): | 
					
						
							|  |  |  |     name = "centos" | 
					
						
							| 
									
										
										
										
											2018-10-13 02:40:30 +02:00
										 |  |  |     arch = "x86_64" | 
					
						
							| 
									
										
										
										
											2018-07-12 09:28:29 +08:00
										 |  |  |     BUILD_SCRIPT = """ | 
					
						
							|  |  |  |         set -e; | 
					
						
							|  |  |  |         cd $(mktemp -d); | 
					
						
							|  |  |  |         export SRC_ARCHIVE=/dev/vdb; | 
					
						
							|  |  |  |         sudo chmod a+r $SRC_ARCHIVE; | 
					
						
							|  |  |  |         tar -xf $SRC_ARCHIVE; | 
					
						
							| 
									
										
										
										
											2021-05-14 13:04:11 +01:00
										 |  |  |         make docker-test-block@centos8 {verbose} J={jobs} NETWORK=1; | 
					
						
							|  |  |  |         make docker-test-quick@centos8 {verbose} J={jobs} NETWORK=1; | 
					
						
							| 
									
										
										
										
											2019-03-29 17:08:03 -04:00
										 |  |  |         make docker-test-mingw@fedora  {verbose} J={jobs} NETWORK=1; | 
					
						
							| 
									
										
										
										
											2018-07-12 09:28:29 +08:00
										 |  |  |     """ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def build_image(self, img): | 
					
						
							| 
									
										
										
										
											2021-05-14 13:04:11 +01:00
										 |  |  |         cimg = self._download_with_cache("https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.3.2011-20201204.2.x86_64.qcow2") | 
					
						
							| 
									
										
										
										
											2018-07-12 09:28:29 +08:00
										 |  |  |         img_tmp = img + ".tmp" | 
					
						
							| 
									
										
										
										
											2021-05-14 13:04:11 +01:00
										 |  |  |         subprocess.check_call(["ln", "-f", cimg, img_tmp]) | 
					
						
							| 
									
										
										
										
											2019-11-14 08:42:46 -05:00
										 |  |  |         self.exec_qemu_img("resize", img_tmp, "50G") | 
					
						
							| 
									
										
										
										
											2020-03-03 15:06:18 +00:00
										 |  |  |         self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()]) | 
					
						
							| 
									
										
										
										
											2018-07-12 09:28:29 +08:00
										 |  |  |         self.wait_ssh() | 
					
						
							|  |  |  |         self.ssh_root_check("touch /etc/cloud/cloud-init.disabled") | 
					
						
							| 
									
										
										
										
											2021-05-14 13:04:11 +01:00
										 |  |  |         self.ssh_root_check("dnf update -y") | 
					
						
							|  |  |  |         self.ssh_root_check("dnf install -y dnf-plugins-core") | 
					
						
							|  |  |  |         self.ssh_root_check("dnf config-manager --set-enabled powertools") | 
					
						
							|  |  |  |         self.ssh_root_check("dnf install -y podman make ninja-build git python3") | 
					
						
							| 
									
										
										
										
											2018-07-12 09:28:29 +08:00
										 |  |  |         self.ssh_root("poweroff") | 
					
						
							|  |  |  |         self.wait() | 
					
						
							|  |  |  |         os.rename(img_tmp, img) | 
					
						
							|  |  |  |         return 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     sys.exit(basevm.main(CentosVM)) |