From fb6ace16ea28abfe3b59372d3457f9e29c546c5c Mon Sep 17 00:00:00 2001 From: Chris Townsend Date: Fri, 22 Feb 2019 04:14:18 -0500 Subject: [PATCH] daemon: Remove wait_for_cloud_init() since it's no longer necessary The client (and user) no longer need to wait for cloud-init to finish in the instance since cloud-init no longer installs sshfs. --- include/multipass/utils.h | 2 -- include/multipass/virtual_machine.h | 1 - src/daemon/daemon.cpp | 4 ---- .../libvirt/libvirt_virtual_machine.cpp | 5 ----- .../libvirt/libvirt_virtual_machine.h | 1 - .../backends/qemu/qemu_virtual_machine.cpp | 7 ------ .../backends/qemu/qemu_virtual_machine.h | 1 - src/utils/utils.cpp | 22 ------------------- tests/stub_virtual_machine.h | 4 ---- 9 files changed, 47 deletions(-) diff --git a/include/multipass/utils.h b/include/multipass/utils.h index de7f36a5042..1673bea9c00 100644 --- a/include/multipass/utils.h +++ b/include/multipass/utils.h @@ -66,8 +66,6 @@ std::string timestamp(); bool is_running(const VirtualMachine::State& state); void wait_until_ssh_up(VirtualMachine* virtual_machine, std::chrono::milliseconds timeout, std::function const& process_vm_events = []() { QCoreApplication::processEvents(); }); -void wait_for_cloud_init(VirtualMachine* virtual_machine, std::chrono::milliseconds timeout, - std::function const& process_vm_events = []() { QCoreApplication::processEvents(); }); enum class TimeoutAction { diff --git a/include/multipass/virtual_machine.h b/include/multipass/virtual_machine.h index 6d02bc82c7b..982476a46e5 100644 --- a/include/multipass/virtual_machine.h +++ b/include/multipass/virtual_machine.h @@ -58,7 +58,6 @@ class VirtualMachine virtual std::string ipv4() = 0; virtual std::string ipv6() = 0; virtual void wait_until_ssh_up(std::chrono::milliseconds timeout) = 0; - virtual void wait_for_cloud_init(std::chrono::milliseconds timeout) = 0; virtual void update_state() = 0; VirtualMachine::State state; diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp index 3adc5613d88..b415baa0410 100644 --- a/src/daemon/daemon.cpp +++ b/src/daemon/daemon.cpp @@ -749,10 +749,6 @@ try // clang-format on vm->start(); vm->wait_until_ssh_up(std::chrono::minutes(5)); - reply.set_create_message("Waiting for initialization to complete"); - server->Write(reply); - vm->wait_for_cloud_init(std::chrono::minutes(5)); - reply.set_vm_instance_name(name); server->Write(reply); diff --git a/src/platform/backends/libvirt/libvirt_virtual_machine.cpp b/src/platform/backends/libvirt/libvirt_virtual_machine.cpp index 89370bb75cf..29331636222 100644 --- a/src/platform/backends/libvirt/libvirt_virtual_machine.cpp +++ b/src/platform/backends/libvirt/libvirt_virtual_machine.cpp @@ -384,11 +384,6 @@ void mp::LibVirtVirtualMachine::wait_until_ssh_up(std::chrono::milliseconds time mp::utils::wait_until_ssh_up(this, timeout); } -void mp::LibVirtVirtualMachine::wait_for_cloud_init(std::chrono::milliseconds timeout) -{ - mp::utils::wait_for_cloud_init(this, timeout); -} - void mp::LibVirtVirtualMachine::update_state() { monitor->persist_state_for(vm_name); diff --git a/src/platform/backends/libvirt/libvirt_virtual_machine.h b/src/platform/backends/libvirt/libvirt_virtual_machine.h index f9d7ba77dc2..f66b8d141c2 100644 --- a/src/platform/backends/libvirt/libvirt_virtual_machine.h +++ b/src/platform/backends/libvirt/libvirt_virtual_machine.h @@ -50,7 +50,6 @@ class LibVirtVirtualMachine final : public VirtualMachine std::string ipv4() override; std::string ipv6() override; void wait_until_ssh_up(std::chrono::milliseconds timeout) override; - void wait_for_cloud_init(std::chrono::milliseconds timeout) override; void update_state() override; private: diff --git a/src/platform/backends/qemu/qemu_virtual_machine.cpp b/src/platform/backends/qemu/qemu_virtual_machine.cpp index 20f832e3a31..8a9bd7ecc99 100644 --- a/src/platform/backends/qemu/qemu_virtual_machine.cpp +++ b/src/platform/backends/qemu/qemu_virtual_machine.cpp @@ -500,10 +500,3 @@ void mp::QemuVirtualMachine::wait_until_ssh_up(std::chrono::milliseconds timeout delete_memory_snapshot = false; } } - -void mp::QemuVirtualMachine::wait_for_cloud_init(std::chrono::milliseconds timeout) -{ - auto process_vm_events = [this] { ensure_vm_is_running(); }; - - mp::utils::wait_for_cloud_init(this, timeout, process_vm_events); -} diff --git a/src/platform/backends/qemu/qemu_virtual_machine.h b/src/platform/backends/qemu/qemu_virtual_machine.h index 671c13e2a3b..b3bb194cd2a 100644 --- a/src/platform/backends/qemu/qemu_virtual_machine.h +++ b/src/platform/backends/qemu/qemu_virtual_machine.h @@ -50,7 +50,6 @@ class QemuVirtualMachine final : public VirtualMachine std::string ipv4() override; std::string ipv6() override; void wait_until_ssh_up(std::chrono::milliseconds timeout) override; - void wait_for_cloud_init(std::chrono::milliseconds timeout) override; void update_state() override; private: diff --git a/src/utils/utils.cpp b/src/utils/utils.cpp index 1c8f050b688..218cfa3f05c 100644 --- a/src/utils/utils.cpp +++ b/src/utils/utils.cpp @@ -168,28 +168,6 @@ void mp::utils::wait_until_ssh_up(VirtualMachine* virtual_machine, std::chrono:: mp::utils::try_action_for(on_timeout, timeout, action); } -void mp::utils::wait_for_cloud_init(mp::VirtualMachine* virtual_machine, std::chrono::milliseconds timeout, - std::function const& process_vm_events) -{ - auto action = [virtual_machine, &process_vm_events] { - process_vm_events(); - try - { - mp::SSHSession session{virtual_machine->ssh_hostname(), virtual_machine->ssh_port(), - virtual_machine->ssh_username(), virtual_machine->key_provider}; - auto ssh_process = session.exec({"[ -e /var/lib/cloud/instance/boot-finished ]"}); - return ssh_process.exit_code() == 0 ? mp::utils::TimeoutAction::done : mp::utils::TimeoutAction::retry; - } - catch (const std::exception& e) - { - mpl::log(mpl::Level::warning, virtual_machine->vm_name, e.what()); - return mp::utils::TimeoutAction::retry; - } - }; - auto on_timeout = [] { throw std::runtime_error("timed out waiting for initialization to complete"); }; - mp::utils::try_action_for(on_timeout, timeout, action); -} - mp::Path mp::utils::make_dir(const QDir& a_dir, const QString& name) { if (!a_dir.mkpath(name)) diff --git a/tests/stub_virtual_machine.h b/tests/stub_virtual_machine.h index 44d45222cca..cafa9604951 100644 --- a/tests/stub_virtual_machine.h +++ b/tests/stub_virtual_machine.h @@ -84,10 +84,6 @@ struct StubVirtualMachine final : public multipass::VirtualMachine { } - void wait_for_cloud_init(std::chrono::milliseconds) override - { - } - void update_state() override { }