Integrate hack + vm create into python code
This commit is contained in:
		
					parent
					
						
							
								22531a7459
							
						
					
				
			
			
				commit
				
					
						083ba43918
					
				
			
		
					 3 changed files with 65 additions and 54 deletions
				
			
		|  | @ -1,53 +0,0 @@ | |||
| #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # 2020 Nico Schottelius (nico.schottelius at ungleich.ch) | ||||
| # | ||||
| # This file is part of uncloud. | ||||
| # | ||||
| # uncloud is free software: you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation, either version 3 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # uncloud is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with uncloud. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| import subprocess | ||||
| import uuid | ||||
| 
 | ||||
| from . import db | ||||
| 
 | ||||
| qemu="/usr/bin/qemu-system-x86_64" | ||||
| accel="kvm" | ||||
| memory=1024 | ||||
| cores=2 | ||||
| uuid=uuid.uuid4() | ||||
| 
 | ||||
| #mac=$(./mac-gen.py) | ||||
| mac="" | ||||
| 
 | ||||
| owner="nico" | ||||
| 
 | ||||
| bridge="br100" | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|    p = ["qemu", | ||||
|         "-name", "uncloud-{}".format(uuid), | ||||
|         "-machine", "pc,accel={}".format(accel), | ||||
|         "-m", "{}".format(memory), | ||||
|         "-smp", "{}".format(cores), | ||||
|         "-uuid", "{}".format(uuid), | ||||
|         "-drive", "file=alpine-virt-3.11.2-x86_64.iso,media=cdrom", | ||||
|         "-netdev", "tap,id=netmain,script=./ifup.sh,downscript=./ifdown.sh", | ||||
|         "-device", "virtio-net-pci,netdev=netmain,id=net0,mac={}".format(mac) | ||||
|         ] | ||||
|    print(" ".join(p)) | ||||
|    subprocess.run(p) | ||||
|  | @ -1,10 +1,17 @@ | |||
| import argparse | ||||
| 
 | ||||
| from uncloud.hack.vm import VM | ||||
| 
 | ||||
| arg_parser = argparse.ArgumentParser('hack', add_help=False) | ||||
| arg_parser.add_argument('--create-vm') | ||||
| arg_parser.add_argument('--create-vm', action='store_true') | ||||
| 
 | ||||
| 
 | ||||
| def main(arguments): | ||||
|     print(arguments) | ||||
|     if arguments['create_vm']: | ||||
|         print("Creating VM") | ||||
|         vm = VM() | ||||
|         vm.create() | ||||
| 
 | ||||
|     #debug = arguments['debug'] | ||||
|     #port = arguments['port'] | ||||
|  |  | |||
							
								
								
									
										57
									
								
								uncloud/hack/vm.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										57
									
								
								uncloud/hack/vm.py
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,57 @@ | |||
| #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # 2020 Nico Schottelius (nico.schottelius at ungleich.ch) | ||||
| # | ||||
| # This file is part of uncloud. | ||||
| # | ||||
| # uncloud is free software: you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation, either version 3 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # uncloud is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with uncloud. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| # | ||||
| 
 | ||||
| import subprocess | ||||
| import uuid | ||||
| import os | ||||
| 
 | ||||
| class VM(object): | ||||
|    def __init__(self): | ||||
|       self.hackprefix="/home/nico/vcs/uncloud/uncloud/hack/hackcloud" | ||||
| 
 | ||||
|       self.qemu="/usr/bin/qemu-system-x86_64" | ||||
|       self.accel="kvm" | ||||
|       self.memory=1024 | ||||
|       self.cores=2 | ||||
|       self.uuid=uuid.uuid4() | ||||
| #      self.mac=$(./mac-gen.py) | ||||
|       self.mac="42:00:00:00:00:42" | ||||
|       self.owner="nico" | ||||
|       self.bridge="br100" | ||||
|       self.os_image = os.path.join(self.hackprefix, "alpine-virt-3.11.2-x86_64.iso") | ||||
|       self.ifup = os.path.join(self.hackprefix, "ifup.sh") | ||||
|       self.ifdown = os.path.join(self.hackprefix, "ifdown.sh") | ||||
| 
 | ||||
|    def create(self): | ||||
|       p = [ "sudo", | ||||
|          "{}".format(self.qemu), | ||||
|            "-name", "uncloud-{}".format(self.uuid), | ||||
|            "-machine", "pc,accel={}".format(self.accel), | ||||
|            "-m", "{}".format(self.memory), | ||||
|            "-smp", "{}".format(self.cores), | ||||
|            "-uuid", "{}".format(self.uuid), | ||||
|            "-drive", "file={},media=cdrom".format(self.os_image), | ||||
|            "-netdev", "tap,id=netmain,script={},downscript={}".format(self.ifup, self.ifdown), | ||||
|            "-device", "virtio-net-pci,netdev=netmain,id=net0,mac={}".format(self.mac) | ||||
|       ] | ||||
|       print(" ".join(p)) | ||||
|       subprocess.run(p) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue