From 52a6aa6c2020c72bd9bcee6b716cc0423f0a756a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Czern=C3=BD?= Date: Thu, 25 Nov 2021 09:12:11 +0100 Subject: [PATCH] B #5559: Fix VM encrypted attributes (#1543) --- src/vm/VirtualMachineContext.cc | 10 ++++++---- src/vm_template/VMTemplatePool.cc | 2 ++ src/vn_template/VNTemplate.cc | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/vm/VirtualMachineContext.cc b/src/vm/VirtualMachineContext.cc index 4c1f1d299c..e6993efac9 100644 --- a/src/vm/VirtualMachineContext.cc +++ b/src/vm/VirtualMachineContext.cc @@ -91,8 +91,6 @@ int VirtualMachine::generate_context(string &files, int &disk_id, return -1; } - decrypt(); - VectorAttribute * context = obj_template->get("CONTEXT"); if ( context == 0 ) @@ -195,6 +193,8 @@ int VirtualMachine::generate_context(string &files, int &disk_id, files += (" " + history->token_file); } + decrypt(); + const map values = context->value(); file << "# Context variables generated by OpenNebula\n"; @@ -218,6 +218,8 @@ int VirtualMachine::generate_context(string &files, int &disk_id, context->vector_value("DISK_ID", disk_id); + encrypt(); + return 1; } @@ -351,14 +353,14 @@ int VirtualMachine::generate_network_context(VectorAttribute* context, continue; } else if (get_nic(nic_id)->is_alias()) // If nic was detached and current is alias - { + { int parent_id; vatts[i]->vector_value("PARENT_ID", parent_id); // If parent was detached clear alis if (get_nic(parent_id)->vector_value("ATTACH") == "YES") - { + { int alias_id; vatts[i]->vector_value("ALIAS_ID", alias_id); diff --git a/src/vm_template/VMTemplatePool.cc b/src/vm_template/VMTemplatePool.cc index add338ae0f..1fe3d9d1ee 100644 --- a/src/vm_template/VMTemplatePool.cc +++ b/src/vm_template/VMTemplatePool.cc @@ -61,6 +61,8 @@ int VMTemplatePool::allocate ( goto error_duplicated; } + vm_template->encrypt(); + // ------------------------------------------------------------------------ // Insert the Object in the pool // ------------------------------------------------------------------------ diff --git a/src/vn_template/VNTemplate.cc b/src/vn_template/VNTemplate.cc index 97aa0e5f13..3b35bdc21f 100644 --- a/src/vn_template/VNTemplate.cc +++ b/src/vn_template/VNTemplate.cc @@ -104,6 +104,8 @@ int VNTemplate::insert(SqlDB *db, string& error_str) return -1; } + encrypt(); + // ------------------------------------------------------------------------ // Insert the Template // ------------------------------------------------------------------------