mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-28 14:50:08 +03:00
parent
82d2191dfd
commit
0fe9eac8b5
@ -93,19 +93,18 @@ public:
|
||||
|
||||
~VMTemplateClone(){};
|
||||
|
||||
ErrorCode request_execute(int source_id, const std::string &name,
|
||||
int &new_id, bool recursive,
|
||||
const std::string& s_uattrs,
|
||||
RequestAttributes& att)
|
||||
{
|
||||
return clone(source_id, name, new_id, recursive, s_uattrs, att);
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
ErrorCode clone(int source_id, const std::string &name, int &new_id,
|
||||
bool recursive, const std::string& s_a,
|
||||
RequestAttributes& att) override;
|
||||
RequestAttributes& att) override
|
||||
{
|
||||
return clone(source_id, name, new_id, recursive, s_a, false, att);
|
||||
}
|
||||
|
||||
ErrorCode clone(int source_id, const std::string &name, int &new_id,
|
||||
bool recursive, const std::string& s_a, bool persistent,
|
||||
RequestAttributes& att);
|
||||
|
||||
protected:
|
||||
|
||||
std::unique_ptr<Template> clone_template(PoolObjectSQL* obj) override
|
||||
{
|
||||
@ -153,13 +152,6 @@ public:
|
||||
|
||||
~VNTemplateClone(){};
|
||||
|
||||
ErrorCode request_execute(int source_id, const std::string &name,
|
||||
int &new_id, const std::string& s_uattrs,
|
||||
RequestAttributes& att)
|
||||
{
|
||||
return clone(source_id, name, new_id, false, s_uattrs, att);
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
std::unique_ptr<Template> clone_template(PoolObjectSQL* obj) override
|
||||
|
@ -1132,7 +1132,7 @@ bool Image::test_set_persistent(Template * image_template, int uid, int gid,
|
||||
persistent = tmpl_persis;
|
||||
}
|
||||
|
||||
// Honor template persistent value for ne.image.allocate
|
||||
// Honor template persistent value for one.image.allocate
|
||||
if (is_allocate && has_persistent)
|
||||
{
|
||||
persistent = tmpl_persis;
|
||||
|
@ -121,7 +121,8 @@ const std::vector<const char*> VMTemplateClone::REMOVE_DISK_ATTRS = {
|
||||
"IMAGE", "IMAGE_UNAME", "IMAGE_UID", "OPENNEBULA_MANAGED"};
|
||||
|
||||
Request::ErrorCode VMTemplateClone::clone(int source_id, const string &name,
|
||||
int &new_id, bool recursive, const string& s_uattr, RequestAttributes& att)
|
||||
int &new_id, bool recursive, const string& s_uattr, bool persistent,
|
||||
RequestAttributes& att)
|
||||
{
|
||||
// -------------------------------------------------------------------------
|
||||
// Clone the VMTemplate
|
||||
@ -185,7 +186,7 @@ Request::ErrorCode VMTemplateClone::clone(int source_id, const string &name,
|
||||
oss << name << "-disk-" << ndisk;
|
||||
|
||||
ec = img_clone.request_execute(img_id, oss.str(), -1,
|
||||
false, new_img_id, img_att);
|
||||
persistent, new_img_id, img_att);
|
||||
|
||||
if ( ec != SUCCESS)
|
||||
{
|
||||
|
@ -34,7 +34,7 @@ void VMTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList
|
||||
string name = xmlrpc_c::value_string(paramList.getString(2));
|
||||
bool on_hold = false; //Optional XML-RPC argument
|
||||
string str_uattrs; //Optional XML-RPC argument
|
||||
bool clone_template = false; //Optional XML-RPC argument
|
||||
bool persistent = false; //Optional XML-RPC argument
|
||||
|
||||
if ( paramList.size() > 3 )
|
||||
{
|
||||
@ -44,7 +44,7 @@ void VMTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList
|
||||
|
||||
if ( paramList.size() > 5 )
|
||||
{
|
||||
clone_template = xmlrpc_c::value_boolean(paramList.getBoolean(5));
|
||||
persistent = xmlrpc_c::value_boolean(paramList.getBoolean(5));
|
||||
}
|
||||
|
||||
bool is_vrouter;
|
||||
@ -72,8 +72,9 @@ void VMTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList
|
||||
|
||||
int instantiate_id = id;
|
||||
|
||||
if (clone_template)
|
||||
if (persistent)
|
||||
{
|
||||
// Clone private persistent copy of the template
|
||||
int new_id;
|
||||
|
||||
VMTemplateClone tmpl_clone;
|
||||
@ -86,8 +87,7 @@ void VMTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList
|
||||
tmpl_name = original_tmpl_name + "-copy";
|
||||
}
|
||||
|
||||
ErrorCode ec = tmpl_clone.request_execute(id, tmpl_name, new_id, true,
|
||||
str_uattrs, att);
|
||||
ErrorCode ec = tmpl_clone.clone(id, tmpl_name, new_id, true, str_uattrs, true, att);
|
||||
|
||||
if (ec != SUCCESS)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user