diff --git a/src/rm/RequestManagerClone.cc b/src/rm/RequestManagerClone.cc index 5d42cb1706..ab56f6f392 100644 --- a/src/rm/RequestManagerClone.cc +++ b/src/rm/RequestManagerClone.cc @@ -133,7 +133,7 @@ Request::ErrorCode VMTemplateClone::clone(int source_id, const string &name, { return ec; } - else if ( !recursive) + else if ( !recursive ) { return SUCCESS; } diff --git a/src/rm/RequestManagerVMTemplate.cc b/src/rm/RequestManagerVMTemplate.cc index d442a3ae39..78ff19a073 100644 --- a/src/rm/RequestManagerVMTemplate.cc +++ b/src/rm/RequestManagerVMTemplate.cc @@ -69,16 +69,18 @@ void VMTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList if (clone_template) { int new_id; - VMTemplateClone tmpl_clone; - string tmpl_name = name; + VMTemplateClone tmpl_clone; + string tmpl_name = name; + + ostringstream oss; if (tmpl_name.empty()) { tmpl_name = original_tmpl_name + "-copy"; } - ErrorCode ec = tmpl_clone.request_execute(id, name, new_id, true, + ErrorCode ec = tmpl_clone.request_execute(id, tmpl_name, new_id, true, str_uattrs, att); if (ec != SUCCESS) @@ -88,7 +90,10 @@ void VMTemplateInstantiate::request_execute(xmlrpc_c::paramList const& paramList } instantiate_id = new_id; - str_uattrs = ""; + + oss << "CLONING_TEMPLATE_ID=" << id << "\n"; + + str_uattrs = oss.str(); } int vid; diff --git a/src/vm/VirtualMachine.cc b/src/vm/VirtualMachine.cc index d8161e0487..2f47b63aed 100644 --- a/src/vm/VirtualMachine.cc +++ b/src/vm/VirtualMachine.cc @@ -1354,14 +1354,15 @@ void VirtualMachine::parse_well_known_attributes() * INPUT * FEATURES * RAW + * CLONING_TEMPLATE_ID */ vector<Attribute *> v_attr; vector<Attribute *>::iterator it; - string names[] = {"INPUT", "FEATURES", "RAW"}; + string names[] = {"INPUT", "FEATURES", "RAW", "CLONING_TEMPLATE_ID"}; - for (int i=0; i<3; i++) + for (int i=0; i<4; i++) { v_attr.clear();