From f3564f715e956c0b7995a63fd0a141f59b63ac34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Fri, 7 Mar 2014 12:13:45 +0100 Subject: [PATCH] Feature #2765: Configurable setting to render names assigned to VMs with oneflow --- src/flow/etc/oneflow-server.conf | 9 +++++++++ src/flow/lib/models/role.rb | 11 ++++++++++- src/flow/oneflow-server.rb | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/flow/etc/oneflow-server.conf b/src/flow/etc/oneflow-server.conf index 5fbea1b4ea..f791b6ffc4 100644 --- a/src/flow/etc/oneflow-server.conf +++ b/src/flow/etc/oneflow-server.conf @@ -46,6 +46,15 @@ :action_number: 1 :action_period: 60 +# Default name for the Virtual Machines created by oneflow. You can use any +# of the following placeholders: +# $SERVICE_ID +# $SERVICE_NAME +# $ROLE_NAME +# $VM_NUMBER + +:vm_name_template: '$ROLE_NAME_$VM_NUMBER_(service_$SERVICE_ID)' + ############################################################# # Auth ############################################################# diff --git a/src/flow/lib/models/role.rb b/src/flow/lib/models/role.rb index 891b28e513..f82ea4e188 100644 --- a/src/flow/lib/models/role.rb +++ b/src/flow/lib/models/role.rb @@ -239,7 +239,12 @@ module OpenNebula @body['last_vmname'] ||= 0 n_nodes.times { |i| - vm_name = "#{@body['name']}_#{@body['last_vmname']}_(service_#{@service.id()})" + vm_name = @@vm_name_template + .gsub("$SERVICE_ID", @service.id().to_s) + .gsub("$SERVICE_NAME", @service.name().to_s) + .gsub("$ROLE_NAME", name().to_s) + .gsub("$VM_NUMBER", @body['last_vmname'].to_s) + @body['last_vmname'] += 1 template_id = @body['vm_template'] @@ -543,6 +548,10 @@ module OpenNebula @@default_shutdown = shutdown_action end + def self.init_default_vm_name_template(vm_name_template) + @@vm_name_template = vm_name_template + end + # Updates the role # @param [Hash] template # @return [nil, OpenNebula::Error] nil in case of success, Error diff --git a/src/flow/oneflow-server.rb b/src/flow/oneflow-server.rb index efecc032e2..656eef571b 100644 --- a/src/flow/oneflow-server.rb +++ b/src/flow/oneflow-server.rb @@ -49,6 +49,8 @@ require 'CloudServer' require 'models' require 'log' +DEFAULT_VM_NAME_TEMPLATE = '$ROLE_NAME_$VM_NUMBER_(service_$SERVICE_ID)' + ############################################################################## # Configuration ############################################################################## @@ -123,6 +125,9 @@ end Role.init_default_cooldown(conf[:default_cooldown]) Role.init_default_shutdown(conf[:shutdown_action]) +conf[:vm_name_template] ||= DEFAULT_VM_NAME_TEMPLATE +Role.init_default_vm_name_template(conf[:vm_name_template]) + ############################################################################## # LCM thread ##############################################################################