From 2bf20ac16670d6d7980b645715f2731a58b924be Mon Sep 17 00:00:00 2001 From: Tino Vazquez Date: Tue, 21 May 2019 11:14:06 +0200 Subject: [PATCH] B #3335: Add default zone endpoint This is a new user templatate attribute that is understood by Sunstone, users with this setting will be logged in automatically in their default zone (if no session is available) --- src/sunstone/sunstone-server.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb index 16c863f609..54736bfa31 100755 --- a/src/sunstone/sunstone-server.rb +++ b/src/sunstone/sunstone-server.rb @@ -55,6 +55,7 @@ DEFAULT_VIEW_XPATH = 'TEMPLATE/SUNSTONE/DEFAULT_VIEW' GROUP_ADMIN_DEFAULT_VIEW_XPATH = 'TEMPLATE/SUNSTONE/GROUP_ADMIN_DEFAULT_VIEW' TABLE_DEFAULT_PAGE_LENGTH_XPATH = 'TEMPLATE/SUNSTONE/TABLE_DEFAULT_PAGE_LENGTH' LANG_XPATH = 'TEMPLATE/SUNSTONE/LANG' +DEFAULT_ZONE_ENDPOINT_XPATH = 'TEMPLATE/SUNSTONE/DEFAULT_ZONE_ENDPOINT' ONED_CONF_OPTS = { # If no costs are defined in oned.conf these values will be used @@ -308,6 +309,13 @@ helpers do session[:page_length] = DEFAULT_PAGE_LENGTH end + # If active zone endpoint is not defined, pull it + # from user template if exists + unless user[DEFAULT_ZONE_ENDPOINT_XPATH].nil? + session[:active_zone_endpoint] ||= + user[DEFAULT_ZONE_ENDPOINT_XPATH] + end + wss = $conf[:vnc_proxy_support_wss] #limit to yes,no options session[:vnc_wss] = (wss == true || wss == "yes" || wss == "only" ? @@ -730,7 +738,7 @@ get '/:pool' do if params[:zone_id] && session[:federation_mode] != "STANDALONE" zone = OpenNebula::Zone.new_with_id(params[:zone_id].to_i, $cloud_auth.client(session[:user], - session[:active_zone_endpoint])) + session[:active_zone_endpoint])) rc = zone.info return [500, rc.message] if OpenNebula.is_error?(rc)