Commit 3ae33cce authored by Dietmar Maurer's avatar Dietmar Maurer

run openvz create_vm as background task

parent 22f26281
...@@ -108,10 +108,16 @@ __PACKAGE__->register_method({ ...@@ -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({ ...@@ -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);
}; };
PVE::OpenVZ::lock_container($vmid, $code); return $rpcenv->fork_worker('vzcreate', $vmid, $user, $realcmd);
};
return undef; return PVE::OpenVZ::lock_container($vmid, $code);
}}); }});
__PACKAGE__->register_method({ __PACKAGE__->register_method({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment