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({
},
}),
},
returns => { type => 'null'},
returns => {
type => 'string',
},
code => sub {
my ($param) = @_;
my $rpcenv = PVE::RPCEnvironment::get();
my $user = $rpcenv->get_user();
my $node = extract_param($param, 'node');
# fixme: fork worker?
......@@ -164,20 +170,22 @@ __PACKAGE__->register_method({
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
# to avoid that for create
PVE::OpenVZ::set_rootpasswd($vmid, $password) if defined($password);
};
# hack: vzctl '--userpasswd' starts the CT, but we want
# to avoid that for create
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({
......
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