Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ BinPackArguments: false
BinPackParameters: false
BreakBeforeTernaryOperators: true
AlignOperands: AlignAfterOperator
PenaltyBreakAssignment: 10
PenaltyBreakAssignment: 150
BraceWrapping:
AfterCaseLabel: true
AfterClass: true
Expand Down
5 changes: 4 additions & 1 deletion 3rd-party/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ target_link_libraries(gRPC INTERFACE
protobuf::libprotobuf)

if (NOT MSVC)
target_compile_options(gRPC INTERFACE "-Wno-unused-parameter" "-Wno-non-virtual-dtor" "-Wno-pedantic")
target_compile_options(gRPC INTERFACE
"-Wno-unused-parameter"
"-Wno-non-virtual-dtor"
"-Wno-pedantic")
endif ()

include(ExternalProject)
Expand Down
4 changes: 0 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,6 @@ else()
add_compile_options(-Wcast-align)
endif()

CHECK_CXX_COMPILER_FLAG("-Wno-expansion-to-defined" COMPILER_SUPPORTS_NO_EXP_TO_DEFINED)
if(COMPILER_SUPPORTS_NO_EXP_TO_DEFINED)
add_compile_options(-Wno-expansion-to-defined)
endif()

add_definitions(-DMULTIPASS_PLATFORM_LINUX)
set(MULTIPASS_PLATFORM linux)
Expand Down
10 changes: 5 additions & 5 deletions include/multipass/cli/command.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ class Command : private DisabledCopyMove
on_success,
on_failure,
[this](ReplyType& reply,
grpc::ClientReaderWriterInterface<Request, ReplyType>* client) {
grpc::ClientReaderWriterInterface<Request, ReplyType>*) {
if (!reply.log_line().empty())
{
cerr << reply.log_line();
Expand All @@ -167,10 +167,10 @@ class Command : private DisabledCopyMove

private:
template <typename SuccessCallable, typename FailureCallable>
void check_return_callables(SuccessCallable&& on_success, FailureCallable&& on_failure)
void check_return_callables(SuccessCallable&&, FailureCallable&&)
{
using SuccessCallableTraits = multipass::callable_traits<SuccessCallable>;
using FailureCallableTraits = multipass::callable_traits<FailureCallable>;
using SuccessCallableTraits = callable_traits<SuccessCallable>;
using FailureCallableTraits = callable_traits<FailureCallable>;
using SuccessCallableArg0Type =
std::remove_reference_t<typename SuccessCallableTraits::template arg<0>::type>;
using FailureCallableArg0Type =
Expand Down Expand Up @@ -206,7 +206,7 @@ class Command : private DisabledCopyMove
return [&on_failure, &reply](grpc::Status status) {
(void)reply; // suppress unhelpful warning in clang:
// https://bugs.llvm.org/show_bug.cgi?id=35450
if constexpr (multipass::callable_traits<FailureCallable>::num_args == 2)
if constexpr (callable_traits<FailureCallable>::num_args == 2)
return on_failure(status, reply);
else
return on_failure(status);
Expand Down
27 changes: 0 additions & 27 deletions include/multipass/fetch_type.h

This file was deleted.

2 changes: 1 addition & 1 deletion include/multipass/progress_monitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@

namespace multipass
{
using ProgressMonitor = std::function<bool(int download_type, int progress)>;
using ProgressMonitor = std::function<bool(int progress_type, int progress)>;
}
2 changes: 1 addition & 1 deletion include/multipass/url_downloader.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class URLDownloader : private DisabledCopyMove
virtual void download_to(const QUrl& url,
const QString& file_name,
int64_t size,
const int download_type,
const int progress_type,
const ProgressMonitor& monitor);
virtual QByteArray download(const QUrl& url);
virtual QByteArray download(const QUrl& url, const bool force_update);
Expand Down
2 changes: 0 additions & 2 deletions include/multipass/virtual_machine_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

#include "days.h"
#include "disabled_copy_move.h"
#include "fetch_type.h"
#include "path.h"
#include "virtual_machine.h"
#include "vm_image.h"
Expand Down Expand Up @@ -62,7 +61,6 @@ class VirtualMachineFactory : private DisabledCopyMove
*/
virtual void remove_resources_for(const std::string& name) = 0;

virtual FetchType fetch_type() = 0;
virtual void prepare_networking(
std::vector<NetworkInterface>& extra_interfaces) = 0; // note the arg may be updated
virtual VMImage prepare_source_image(const VMImage& source_image) = 0;
Expand Down
8 changes: 2 additions & 6 deletions include/multipass/vm_image_vault.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#pragma once

#include "disabled_copy_move.h"
#include "fetch_type.h"
#include "memory_size.h"
#include "path.h"
#include "progress_monitor.h"
Expand Down Expand Up @@ -70,18 +69,15 @@ class VMImageVault : private DisabledCopyMove
using PrepareAction = std::function<VMImage(const VMImage&)>;

virtual ~VMImageVault() = default;
virtual VMImage fetch_image(const FetchType& fetch_type,
const Query& query,
virtual VMImage fetch_image(const Query& query,
const PrepareAction& prepare,
const ProgressMonitor& monitor,
const std::optional<std::string>& checksum,
const Path& save_dir) = 0;
virtual void remove(const std::string& name) = 0;
virtual bool has_record_for(const std::string& name) = 0;
virtual void prune_expired_images() = 0;
virtual void update_images(const FetchType& fetch_type,
const PrepareAction& prepare,
const ProgressMonitor& monitor) = 0;
virtual void update_images(const PrepareAction& prepare, const ProgressMonitor& monitor) = 0;
virtual MemorySize minimum_image_size_for(const std::string& id) = 0;
virtual void clone(const std::string& source_instance_name,
const std::string& destination_instance_name) = 0;
Expand Down
1 change: 1 addition & 0 deletions include/multipass/xz_image_decoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

#include <multipass/progress_monitor.h>

#include <filesystem>
#include <memory>

#include <xz.h>
Expand Down
6 changes: 3 additions & 3 deletions src/client/cli/cmd/authenticate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@
namespace mp = multipass;
namespace cmd = multipass::cmd;

mp::ReturnCodeVariant cmd::Authenticate::run(mp::ArgParser* parser)
mp::ReturnCodeVariant cmd::Authenticate::run(ArgParser* parser)
{
auto ret = parse_args(parser);
if (ret != ParseCode::Ok)
{
return parser->returnCodeFrom(ret);
}

auto on_success = [](mp::AuthenticateReply& reply) -> ReturnCodeVariant {
return mp::ReturnCode::Ok;
auto on_success = [](AuthenticateReply&) -> ReturnCodeVariant {
return ReturnCode::Ok;
};

auto on_failure = [this](grpc::Status& status) -> ReturnCodeVariant {
Expand Down
11 changes: 5 additions & 6 deletions src/client/cli/cmd/launch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -633,13 +633,12 @@ mp::ReturnCodeVariant cmd::Launch::request_launch(const ArgParser* parser)
};

auto streaming_callback =
[this](mp::LaunchReply& reply,
grpc::ClientReaderWriterInterface<LaunchRequest, LaunchReply>* client) {
[this](LaunchReply& reply, grpc::ClientReaderWriterInterface<LaunchRequest, LaunchReply>*) {
std::unordered_map<int, std::string> progress_messages{
{LaunchProgress_ProgressTypes_IMAGE, "Retrieving image: "},
{LaunchProgress_ProgressTypes_EXTRACT, "Extracting image: "},
{LaunchProgress_ProgressTypes_VERIFY, "Verifying image"},
{LaunchProgress_ProgressTypes_WAITING, "Preparing image: "}};
{LaunchProgress_ProgressType_IMAGE, "Retrieving image: "},
{LaunchProgress_ProgressType_EXTRACT, "Extracting image: "},
{LaunchProgress_ProgressType_VERIFY, "Verifying image"},
{LaunchProgress_ProgressType_WAITING, "Preparing image: "}};

if (!reply.log_line().empty())
{
Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/mount.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ mp::ReturnCodeVariant cmd::Mount::run(mp::ArgParser* parser)

mp::AnimatedSpinner spinner{cout};

auto on_success = [&spinner](mp::MountReply& reply) -> ReturnCodeVariant {
auto on_success = [&spinner](MountReply&) -> ReturnCodeVariant {
spinner.stop();
return ReturnCode::Ok;
};
Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/recover.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ mp::ReturnCodeVariant cmd::Recover::run(mp::ArgParser* parser)
return parser->returnCodeFrom(ret);
}

auto on_success = [](mp::RecoverReply& reply) -> ReturnCodeVariant {
auto on_success = [](RecoverReply&) -> ReturnCodeVariant {
return mp::ReturnCode::Ok;
};

Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/restore.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ mp::ReturnCodeVariant cmd::Restore::run(mp::ArgParser* parser)

AnimatedSpinner spinner{cout};

auto on_success = [this, &spinner](mp::RestoreReply& reply) -> ReturnCodeVariant {
auto on_success = [this, &spinner](RestoreReply&) -> ReturnCodeVariant {
spinner.stop();
fmt::print(cout, "Snapshot restored: {}.{}\n", request.instance(), request.snapshot());
return ReturnCode::Ok;
Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/stop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ mp::ReturnCodeVariant cmd::Stop::run(mp::ArgParser* parser)
return parser->returnCodeFrom(ret);
}

auto on_success = [](mp::StopReply& reply) -> ReturnCodeVariant { return ReturnCode::Ok; };
auto on_success = [](StopReply&) -> ReturnCodeVariant { return ReturnCode::Ok; };

AnimatedSpinner spinner{cout};
auto on_failure = [this, &spinner](grpc::Status& status) -> ReturnCodeVariant {
Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/suspend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ mp::ReturnCodeVariant cmd::Suspend::run(mp::ArgParser* parser)
return parser->returnCodeFrom(ret);
}

auto on_success = [](mp::SuspendReply& reply) -> ReturnCodeVariant { return ReturnCode::Ok; };
auto on_success = [](SuspendReply&) -> ReturnCodeVariant { return ReturnCode::Ok; };

AnimatedSpinner spinner{cout};
auto on_failure = [this, &spinner](grpc::Status& status) -> ReturnCodeVariant {
Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/umount.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ mp::ReturnCodeVariant cmd::Umount::run(mp::ArgParser* parser)
return parser->returnCodeFrom(ret);
}

auto on_success = [](mp::UmountReply& reply) -> ReturnCodeVariant { return ReturnCode::Ok; };
auto on_success = [](UmountReply&) -> ReturnCodeVariant { return ReturnCode::Ok; };

auto on_failure = [this](grpc::Status& status) -> ReturnCodeVariant {
return standard_failure_handler_for(name(), cerr, status);
Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ mp::ReturnCodeVariant cmd::Version::run(mp::ArgParser* parser)
return ReturnCode::Ok;
};

auto on_failure = [this](grpc::Status& status) -> ReturnCodeVariant {
auto on_failure = [this](grpc::Status&) -> ReturnCodeVariant {
VersionReply reply;
cout << chosen_formatter->format(reply, multipass::version_string);

Expand Down
2 changes: 1 addition & 1 deletion src/client/cli/cmd/wait_ready.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ mp::ReturnCodeVariant cmd::WaitReady::run(mp::ArgParser* parser)
timer->start();
}

auto on_success = [&spinner, &timer](WaitReadyReply& reply) -> ReturnCodeVariant {
auto on_success = [&spinner, &timer](WaitReadyReply&) -> ReturnCodeVariant {
if (timer)
timer->stop();
spinner.stop();
Expand Down
41 changes: 16 additions & 25 deletions src/daemon/daemon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,12 +279,11 @@ auto fetch_image_for(const std::string& name,
mp::VMImageVault& vault)
{
auto stub_prepare = [](const mp::VMImage&) -> mp::VMImage { return {}; };
auto stub_progress = [](int download_type, int progress) { return true; };
auto stub_progress = [](int /*progress_type*/, int /*progress*/) { return true; };

mp::Query query{name, "", false, "", mp::Query::Type::Alias, false};

return vault.fetch_image(factory.fetch_type(),
query,
return vault.fetch_image(query,
stub_prepare,
stub_progress,
std::nullopt,
Expand Down Expand Up @@ -586,8 +585,7 @@ LinearInstanceSelection select_all(InstanceTable& instances)
}

// careful to keep the original `name` around while the provided `selection` is in use!
void rank_instance(const std::string& name,
const InstanceTrail& trail,
void rank_instance(const InstanceTrail& trail,
InstanceSelectionReport& selection)
{
switch (trail.index())
Expand Down Expand Up @@ -635,7 +633,7 @@ InstanceSelectionReport select_instances(InstanceTable& operative_instances,
if (seen_instances.insert(*vm_name).second)
{
auto trail = find_instance(operative_instances, deleted_instances, *vm_name);
rank_instance(*vm_name, trail, ret);
rank_instance(trail, ret);
}
}
}
Expand Down Expand Up @@ -1163,8 +1161,7 @@ mp::SettingsHandler* register_instance_mod(
mp::SettingsHandler* register_snapshot_mod(
std::unordered_map<std::string, mp::VirtualMachine::ShPtr>& operative_instances,
const std::unordered_map<std::string, mp::VirtualMachine::ShPtr>& deleted_instances,
const std::unordered_set<std::string>& preparing_instances,
const mp::VirtualMachineFactory& vm_factory)
const std::unordered_set<std::string>& preparing_instances)
{
try
{
Expand Down Expand Up @@ -1299,8 +1296,7 @@ mp::Daemon::Daemon(std::unique_ptr<const DaemonConfig> the_config)
[this](const std::string& n) { return add_bridged_interface(n); })},
snapshot_mod_handler{register_snapshot_mod(operative_instances,
deleted_instances,
preparing_instances,
*config->factory)}
preparing_instances)}
{
using e_state = VirtualMachine::State;

Expand Down Expand Up @@ -1456,7 +1452,7 @@ mp::Daemon::Daemon(std::unique_ptr<const DaemonConfig> the_config)
return config->factory->prepare_source_image(source_image);
};

auto download_monitor = [](int download_type, int percentage) {
auto download_monitor = [](int /*progress_type*/, int percentage) {
static int last_percentage_logged = -1;
if (percentage % 10 == 0)
{
Expand All @@ -1473,9 +1469,7 @@ mp::Daemon::Daemon(std::unique_ptr<const DaemonConfig> the_config)

try
{
config->vault->update_images(config->factory->fetch_type(),
prepare_action,
download_monitor);
config->vault->update_images(prepare_action, download_monitor);
}
catch (const std::exception& e)
{
Expand Down Expand Up @@ -1574,7 +1568,7 @@ catch (const std::exception& e)
status_promise->set_value(grpc::Status(grpc::StatusCode::FAILED_PRECONDITION, e.what(), ""));
}

void mp::Daemon::purge(const PurgeRequest* request,
void mp::Daemon::purge(const PurgeRequest*,
grpc::ServerReaderWriterInterface<PurgeReply, PurgeRequest>* server,
std::promise<grpc::Status>* status_promise)
try
Expand Down Expand Up @@ -3341,7 +3335,7 @@ void mp::Daemon::create_vm(const CreateRequest* request,
create_reply.mutable_launch_progress()->set_percent_complete(
std::to_string(percentage));
create_reply.mutable_launch_progress()->set_type(
(CreateProgress::ProgressTypes)progress_type);
(CreateProgress::ProgressType)progress_type);
return server->Write(create_reply);
};

Expand All @@ -3353,19 +3347,16 @@ void mp::Daemon::create_vm(const CreateRequest* request,
return config->factory->prepare_source_image(source_image);
};

auto fetch_type = config->factory->fetch_type();

std::optional<std::string> checksum;
if (!vm_desc.image.id.empty())
checksum = vm_desc.image.id;

auto vm_image =
config->vault->fetch_image(fetch_type,
query,
prepare_action,
progress_monitor,
checksum,
config->factory->get_instance_directory(name));
auto vm_image = config->vault->fetch_image(
query,
prepare_action,
progress_monitor,
checksum,
config->factory->get_instance_directory(name));

const auto image_size = config->vault->minimum_image_size_for(vm_image.id);
vm_desc.disk_space = compute_final_image_size(
Expand Down
Loading
Loading