mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-12-22 13:45:20 +00:00
vmm, ch-remote: Add "local" option to send-migration API
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
6e78ac1837
commit
b9c260c0de
@ -263,9 +263,14 @@ fn receive_migration_api_command(socket: &mut UnixStream, url: &str) -> Result<(
|
||||
.map_err(Error::ApiClient)
|
||||
}
|
||||
|
||||
fn send_migration_api_command(socket: &mut UnixStream, url: &str) -> Result<(), Error> {
|
||||
fn send_migration_api_command(
|
||||
socket: &mut UnixStream,
|
||||
url: &str,
|
||||
local: bool,
|
||||
) -> Result<(), Error> {
|
||||
let send_migration_data = vmm::api::VmSendMigrationData {
|
||||
destination_url: url.to_owned(),
|
||||
local,
|
||||
};
|
||||
simple_api_command(
|
||||
socket,
|
||||
@ -402,6 +407,10 @@ fn do_command(matches: &ArgMatches) -> Result<(), Error> {
|
||||
.unwrap()
|
||||
.value_of("send_migration_config")
|
||||
.unwrap(),
|
||||
matches
|
||||
.subcommand_matches("send-migration")
|
||||
.unwrap()
|
||||
.is_present("send_migration_local"),
|
||||
),
|
||||
Some("receive-migration") => receive_migration_api_command(
|
||||
&mut socket,
|
||||
@ -560,6 +569,11 @@ fn main() {
|
||||
Arg::new("send_migration_config")
|
||||
.index(1)
|
||||
.help("<destination_url>"),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("send_migration_local")
|
||||
.long("local")
|
||||
.takes_value(false),
|
||||
),
|
||||
)
|
||||
.subcommand(
|
||||
|
@ -195,6 +195,8 @@ pub struct VmReceiveMigrationData {
|
||||
pub struct VmSendMigrationData {
|
||||
/// URL to migrate the VM to
|
||||
pub destination_url: String,
|
||||
/// Send memory across socket without copying
|
||||
pub local: bool,
|
||||
}
|
||||
|
||||
pub enum ApiResponsePayload {
|
||||
|
@ -1140,8 +1140,8 @@ impl Vmm {
|
||||
send_data_migration: VmSendMigrationData,
|
||||
) -> result::Result<(), MigratableError> {
|
||||
info!(
|
||||
"Sending migration: destination_url = {}",
|
||||
send_data_migration.destination_url
|
||||
"Sending migration: destination_url = {}, local = {}",
|
||||
send_data_migration.destination_url, send_data_migration.local
|
||||
);
|
||||
if let Some(vm) = self.vm.as_mut() {
|
||||
Self::send_migration(
|
||||
|
Loading…
Reference in New Issue
Block a user