mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-14 14:32:37 +00:00
run openvz create_vm as background task
This commit is contained in:
parent
1ead9563a0
commit
7ca813e6fd
@ -108,10 +108,16 @@ __PACKAGE__->register_method({
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
returns => { type => 'null'},
|
returns => {
|
||||||
|
type => 'string',
|
||||||
|
},
|
||||||
code => sub {
|
code => sub {
|
||||||
my ($param) = @_;
|
my ($param) = @_;
|
||||||
|
|
||||||
|
my $rpcenv = PVE::RPCEnvironment::get();
|
||||||
|
|
||||||
|
my $user = $rpcenv->get_user();
|
||||||
|
|
||||||
my $node = extract_param($param, 'node');
|
my $node = extract_param($param, 'node');
|
||||||
|
|
||||||
# fixme: fork worker?
|
# fixme: fork worker?
|
||||||
@ -164,20 +170,22 @@ __PACKAGE__->register_method({
|
|||||||
|
|
||||||
my $rawconf = PVE::OpenVZ::generate_raw_config($pve_base_ovz_config, $conf);
|
my $rawconf = PVE::OpenVZ::generate_raw_config($pve_base_ovz_config, $conf);
|
||||||
|
|
||||||
PVE::Tools::file_set_contents($basecfg_fn, $rawconf);
|
my $realcmd = sub {
|
||||||
|
PVE::Tools::file_set_contents($basecfg_fn, $rawconf);
|
||||||
|
|
||||||
my $cmd = ['vzctl', '--skiplock', 'create', $vmid, '--ostemplate', $tpath ];
|
my $cmd = ['vzctl', '--skiplock', 'create', $vmid, '--ostemplate', $tpath ];
|
||||||
|
|
||||||
PVE::Tools::run_command($cmd);
|
PVE::Tools::run_command($cmd);
|
||||||
|
|
||||||
# hack: vzctl '--userpasswd' starts the CT, but we want
|
# hack: vzctl '--userpasswd' starts the CT, but we want
|
||||||
# to avoid that for create
|
# to avoid that for create
|
||||||
PVE::OpenVZ::set_rootpasswd($vmid, $password) if defined($password);
|
PVE::OpenVZ::set_rootpasswd($vmid, $password) if defined($password);
|
||||||
|
};
|
||||||
|
|
||||||
|
return $rpcenv->fork_worker('vzcreate', $vmid, $user, $realcmd);
|
||||||
};
|
};
|
||||||
|
|
||||||
PVE::OpenVZ::lock_container($vmid, $code);
|
return PVE::OpenVZ::lock_container($vmid, $code);
|
||||||
|
|
||||||
return undef;
|
|
||||||
}});
|
}});
|
||||||
|
|
||||||
__PACKAGE__->register_method({
|
__PACKAGE__->register_method({
|
||||||
|
Loading…
Reference in New Issue
Block a user