Ejemplo n.º 1
0
 def _try_provision_device(self, image_path, fstype, disk_uuid):
     with self._ndb_mount(image_path) as device:
         logging.debug(
             f"Going to create fs {fstype} id {disk_uuid} on device {device}"
         )
         cmd = filesystem.Mkfs.command(device, fstype, disk_uuid=disk_uuid)
         shell.run_cmd(cmd)
Ejemplo n.º 2
0
 def generate_iso(self, vm):
     iso_path = self._iso_path(vm)
     logging.debug(
         f"Generating iso for vm {vm.name} iso: {vm.cloud_init_iso}")
     with tempfile.TemporaryDirectory() as tmpdir:
         user_data = os.path.join(tmpdir, "user-data")
         meta_data = os.path.join(tmpdir, "meta-data")
         self._write_metadata(vm, meta_data)
         self._write_userdata(vm, user_data)
         cmd = f"mkisofs -o {iso_path} -V cidata -J -r {user_data} {meta_data}"
         shell.run_cmd(cmd)
     return iso_path
Ejemplo n.º 3
0
 def initialize(self):
     logging.info("Loading nbd driver required to mount qcow disks")
     shell.run_cmd("modprobe nbd max_part=8")
     self._free_nbd_devices()
Ejemplo n.º 4
0
 def _connect_device(self, device_path, image_path):
     connect_cmd = ["qemu-nbd", "--connect", device_path, image_path]
     shell.run_cmd(connect_cmd)
Ejemplo n.º 5
0
 def _disconnect_device(self, device_path):
     disconnect_cmd = ["qemu-nbd", "--disconnect", device_path]
     shell.run_cmd(disconnect_cmd)
Ejemplo n.º 6
0
def _check_kvm_ok():
    try:
        shell.run_cmd("kvm-ok")
    except:
        logging.error("KVM cannot run in accelerated mode are KVM modules exist?")
        raise
Ejemplo n.º 7
0
def _verify_gpu_drivers_not_loaded():
    nvidia_modules = shell.run_cmd("lsmod | grep nvidia")
    nouveau_modules = shell.run_cmd("lsmod | grep nouveau")
    if nvidia_modules or nouveau_modules:
        raise("Graphical kernel modules loaded nvidia: %s nouveau:\
        %s hypervisors cannot work with loaded modules", nvidia_modules, nouveau_modules)