From f1503ae655b13fda99336c4c499ae3cff1f2c4d7 Mon Sep 17 00:00:00 2001 From: Jerry Seutter Date: Mon, 8 Dec 2014 20:14:55 -0700 Subject: [PATCH] Handle initrd and kernel paths in qemu --- gns3server/modules/qemu/qemu_vm.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gns3server/modules/qemu/qemu_vm.py b/gns3server/modules/qemu/qemu_vm.py index 57a5b42d..45fa483c 100644 --- a/gns3server/modules/qemu/qemu_vm.py +++ b/gns3server/modules/qemu/qemu_vm.py @@ -761,6 +761,29 @@ class QemuVM(object): log.debug("Download of {} complete.".format(src)) self.hdb_disk_image = dst + if self.initrd != "": + _, filename = ntpath.split(self.initrd) + src = '{}/{}'.format(self.cloud_path, filename) + dst = os.path.join(self.working_dir, filename) + if not os.path.isfile(dst): + cloud_settings = Config.instance().cloud_settings() + provider = get_provider(cloud_settings) + log.debug("Downloading file from {} to {}...".format(src, dst)) + provider.download_file(src, dst) + log.debug("Download of {} complete.".format(src)) + self.initrd = dst + if self.kernel_image != "": + _, filename = ntpath.split(self.kernel_image) + src = '{}/{}'.format(self.cloud_path, filename) + dst = os.path.join(self.working_dir, filename) + if not os.path.isfile(dst): + cloud_settings = Config.instance().cloud_settings() + provider = get_provider(cloud_settings) + log.debug("Downloading file from {} to {}...".format(src, dst)) + provider.download_file(src, dst) + log.debug("Download of {} complete.".format(src)) + self.kernel_image = dst + self._command = self._build_command() try: log.info("starting QEMU: {}".format(self._command))