diff --git a/src/sunstone/public/app/app.js b/src/sunstone/public/app/app.js
index 7e2aec1a19..2c5da866d0 100644
--- a/src/sunstone/public/app/app.js
+++ b/src/sunstone/public/app/app.js
@@ -53,8 +53,6 @@ define(function(require) {
     _setupCloseDropdownsOnClick();
     _insertUserAndZoneSelector();
 
-    Config.initOnedConf();
-
     if (Config.isTabEnabled(PROVISION_TAB_ID)) {
       Sunstone.showTab(PROVISION_TAB_ID);
       $('#loading').hide();
diff --git a/src/sunstone/public/app/opennebula/system.js b/src/sunstone/public/app/opennebula/system.js
deleted file mode 100644
index ee1a4eb89a..0000000000
--- a/src/sunstone/public/app/opennebula/system.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -------------------------------------------------------------------------- */
-/* Copyright 2002-2015, OpenNebula Project, OpenNebula Systems                */
-/*                                                                            */
-/* Licensed under the Apache License, Version 2.0 (the "License"); you may    */
-/* not use this file except in compliance with the License. You may obtain    */
-/* a copy of the License at                                                   */
-/*                                                                            */
-/* http://www.apache.org/licenses/LICENSE-2.0                                 */
-/*                                                                            */
-/* Unless required by applicable law or agreed to in writing, software        */
-/* distributed under the License is distributed on an "AS IS" BASIS,          */
-/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   */
-/* See the License for the specific language governing permissions and        */
-/* limitations under the License.                                             */
-/* -------------------------------------------------------------------------- */
-
-define(function(require) {
-  var OpenNebulaAction = require('./action');
-  var Locale = require('utils/locale');
-  var OpenNebulaError = require('./error');
-  var OpenNebulaHelper = require('./helper');
-
-
-  var onedconfCache;
-  var onedconfWaiting = false;
-  var onedconfCallbacks = [];
-
-  var CACHE_EXPIRE = 36000000; //ms
-
-  var _clearCache = function() {
-    onedconfCache = null;
-    //console.log("onedconf. Cache cleaned");
-  };
-
-  var RESOURCE = "SYSTEM";
-
-  var System = {
-    "resource": RESOURCE,
-    "onedconf": function(params){
-      var callback = params.success;
-      var callbackError = params.error;
-      var request = OpenNebulaHelper.request(RESOURCE, "onedconf");
-
-      if (onedconfCache &&
-          onedconfCache["timestamp"] + CACHE_EXPIRE > new Date().getTime()) {
-
-        //console.log("onedconf. Cache used");
-
-        return callback ?
-            callback(request, onedconfCache["pcis"]) : null;
-      }
-
-      onedconfCallbacks.push({
-        success : callback,
-        error : callbackError
-      });
-
-      //console.log("onedconf. Callback queued");
-
-      if (onedconfWaiting) {
-        return;
-      }
-
-      onedconfWaiting = true;
-
-      //console.log("onedconf. NO cache, calling ajax");
-
-      $.ajax({
-        url: "onedconf",
-        type: "GET",
-        dataType: "json",
-        success: function(response) {
-          onedconfCache = {
-            timestamp       : new Date().getTime(),
-            onedConf        : response
-          };
-
-          onedconfWaiting = false;
-
-          for (var i = 0; i < onedconfCallbacks.length; i++) {
-            var callback = onedconfCallbacks[i].success;
-
-            if (callback) {
-              //console.log("onedconf. Callback called");
-              callback(request, response);
-            }
-          }
-
-          onedconfCallbacks = [];
-
-          return;
-        },
-        error: function(response) {
-          onedconfWaiting = false;
-
-          for (var i = 0; i < onedconfCallbacks.length; i++) {
-            var callback = onedconfCallbacks[i].error;
-
-            if (callback) {
-              //console.log("onedconf. ERROR Callback called");
-              callback(request, OpenNebulaError(response));
-            }
-          }
-
-          onedconfCallbacks = [];
-
-          return;
-        }
-      });
-    }
-  };
-
-  return System;
-})
diff --git a/src/sunstone/public/app/sunstone-config.js b/src/sunstone/public/app/sunstone-config.js
index 344ea28d7f..a9e994ecb8 100644
--- a/src/sunstone/public/app/sunstone-config.js
+++ b/src/sunstone/public/app/sunstone-config.js
@@ -16,23 +16,10 @@
 
 define(function(require) {
   require('jquery');
-  var OpenNebulaSystem = require('opennebula/system');
 
   // Clone the local config object in a private var
   var _config = $.extend(true, {}, config);
 
-  var _defaultCost = {
-    cpuCost    : 0,
-    memoryCost : 0,
-    diskCost   : 0
-  };
-
-  var _dsMadConf = {};
-  var _imMadConf = {};
-  var _vmMadConf = {};
-  var _authMadConf = {};
-  var _marketMadConf = {};
-
   var Config = {
     'isTabEnabled': function(tabName) {
       var enabled = _config['view']['enabled_tabs'].indexOf(tabName) != -1;
@@ -157,55 +144,7 @@ define(function(require) {
     'logo': (_config['view']["small_logo"] || "images/one_small_logo.png"),
     'vmLogos': (_config['vm_logos']),
     'enabledTabs': _config['view']['enabled_tabs'],
-    "defaultCost" : _defaultCost,
-    'dsMadConf' : _dsMadConf,
-    'imMadConf' : _imMadConf,
-    'vmMadConf' : _vmMadConf,
-    'authMadConf' : _authMadConf,
-    'marketMadConf' : _marketMadConf,
-    "initOnedConf" : function() {
-      OpenNebulaSystem.onedconf({
-        data : {},
-        timeout: true,
-        success: function (request, onedconf){
-          if (onedconf.DEFAULT_COST != undefined){
-            if (onedconf.DEFAULT_COST.CPU_COST != undefined){
-              _defaultCost.cpuCost = parseInt(onedconf.DEFAULT_COST.CPU_COST);
-            }
-            if (onedconf.DEFAULT_COST.MEMORY_COST != undefined){
-              _defaultCost.memoryCost = parseInt(onedconf.DEFAULT_COST.MEMORY_COST);
-            }
-            if (onedconf.DEFAULT_COST.DISK_COST != undefined){
-              _defaultCost.diskCost = parseInt(onedconf.DEFAULT_COST.DISK_COST);
-            }
-          }
-
-          if (onedconf.DS_MAD_CONF != undefined){
-            $.extend(true, _dsMadConf, onedconf.DS_MAD_CONF);
-          }
-
-          if (onedconf.MARKET_MAD_CONF != undefined){
-            $.extend(true, _marketMadConf, onedconf.MARKET_MAD_CONF);
-          }
-
-          if (onedconf.IM_MAD != undefined){
-            $.extend(true, _imMadConf, onedconf.IM_MAD);
-          }
-
-          if (onedconf.VM_MAD != undefined){
-            $.extend(true, _vmMadConf, onedconf.VM_MAD);
-          }
-
-          if (onedconf.AUTH_MAD != undefined){
-            $.extend(true, _authMadConf, onedconf.AUTH_MAD);
-          }
-        },
-        error: function(request, error_json){
-          console.error("There was an error requesting oned.conf: "+
-                        error_json.error.message);
-        }
-      });
-    }
+    'onedConf': _config['oned_conf']
   }
 
   return Config;
diff --git a/src/sunstone/public/app/tabs/datastores-tab/form-panels/create.js b/src/sunstone/public/app/tabs/datastores-tab/form-panels/create.js
index 1d811a86f2..4c9cdd2a9b 100644
--- a/src/sunstone/public/app/tabs/datastores-tab/form-panels/create.js
+++ b/src/sunstone/public/app/tabs/datastores-tab/form-panels/create.js
@@ -554,17 +554,19 @@ define(function(require) {
     $('[required_active]', dialog).removeAttr('required')
                                        .removeAttr('required_active');
 
-    $.each(Config.dsMadConf, function(i, e){
-        if (e["NAME"] == mad) {
-          if (!$.isEmptyObject(e["REQUIRED_ATTRS"])) {
-            $.each(e["REQUIRED_ATTRS"].split(","), function(i, e){
-              $('#' + e.toLowerCase(), dialog).attr('required', true).attr('required_active', '');
-            });
+    if (Config.onedConf.DS_MAD_CONF !== undefined) {
+      $.each(Config.onedConf.DS_MAD_CONF, function(i, e){
+          if (e["NAME"] == mad) {
+            if (!$.isEmptyObject(e["REQUIRED_ATTRS"])) {
+              $.each(e["REQUIRED_ATTRS"].split(","), function(i, e){
+                $('#' + e.toLowerCase(), dialog).attr('required', true).attr('required_active', '');
+              });
+            }
+            return false;
           }
-          return false;
         }
-      }
-    );
+      );
+    }
   }
 });
 
diff --git a/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js b/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js
index 07b47a3088..98e35f42e4 100644
--- a/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js
+++ b/src/sunstone/public/app/tabs/hosts-tab/form-panels/create.js
@@ -65,15 +65,15 @@ define(function(require) {
     var that = this;
 
     that.vmMadNameList = [];
-    if (Config.vmMadConf !== undefined) {
-      $.each(Config.vmMadConf, function(index, vmMad) {
+    if (Config.onedConf.VM_MAD !== undefined) {
+      $.each(Config.onedConf.VM_MAD, function(index, vmMad) {
         that.vmMadNameList.push(vmMad["NAME"]);
       });
     }
 
     that.imMadNameList = [];
-    if (Config.imMadConf !== undefined) {
-      $.each(Config.imMadConf, function(index, imMad) {
+    if (Config.onedConf.IM_MAD !== undefined) {
+      $.each(Config.onedConf.IM_MAD, function(index, imMad) {
         that.imMadNameList.push(imMad["NAME"]);
       });
     }
diff --git a/src/sunstone/public/app/tabs/images-tab/form-panels/create.js b/src/sunstone/public/app/tabs/images-tab/form-panels/create.js
index 93a12da2eb..090d2d3787 100644
--- a/src/sunstone/public/app/tabs/images-tab/form-panels/create.js
+++ b/src/sunstone/public/app/tabs/images-tab/form-panels/create.js
@@ -145,18 +145,20 @@ define(function(require) {
           var pers_forced = false;
 
           // Set the persistency
-          $.each(Config.dsMadConf,function(i,e){
-              if (e["NAME"] == mad && !$.isEmptyObject(e["PERSISTENT_ONLY"])) {
-                if (e["PERSISTENT_ONLY"] != undefined &&
-                    e["PERSISTENT_ONLY"].toLowerCase() == "yes") {
-                    $('#img_persistent', context).prop('disabled', true);
-                    $('#img_persistent', context).prop('checked', true);
-                    pers_forced = true;
-                    return false;
+          if (Config.onedConf.DS_MAD_CONF !== undefined) {
+            $.each(Config.onedConf.DS_MAD_CONF, function(i,e){
+                if (e["NAME"] == mad && !$.isEmptyObject(e["PERSISTENT_ONLY"])) {
+                  if (e["PERSISTENT_ONLY"] != undefined &&
+                      e["PERSISTENT_ONLY"].toLowerCase() == "yes") {
+                      $('#img_persistent', context).prop('disabled', true);
+                      $('#img_persistent', context).prop('checked', true);
+                      pers_forced = true;
+                      return false;
+                  }
                 }
               }
-            }
-          );
+            );
+          }
 
           if (!pers_forced) {
             $('#img_persistent', context).prop('disabled', false);
diff --git a/src/sunstone/public/app/tabs/marketplaces-tab/form-panels/create.js b/src/sunstone/public/app/tabs/marketplaces-tab/form-panels/create.js
index b5bd95a151..7bcc8f1e9f 100644
--- a/src/sunstone/public/app/tabs/marketplaces-tab/form-panels/create.js
+++ b/src/sunstone/public/app/tabs/marketplaces-tab/form-panels/create.js
@@ -137,8 +137,8 @@ define(function(require) {
     };
 
     that.marketMadNameList = [];
-    if (Config.marketMadConf !== undefined) {
-      $.each(Config.marketMadConf, function(index, marketMad) {
+    if (Config.onedConf.MARKET_MAD_CONF !== undefined) {
+      $.each(Config.onedConf.MARKET_MAD_CONF, function(index, marketMad) {
         that.marketMadNameList.push(marketMad["NAME"]);
       });
     }
@@ -250,17 +250,19 @@ define(function(require) {
 
     // Show attributes for the selected market mad and set the required ones
     $('.market-mad-attr-container.' + marketMADName).show();
-    $.each(Config.marketMadConf, function(i, e){
-        if (e["NAME"] == marketMADName) {
-          if (!$.isEmptyObject(e["REQUIRED_ATTRS"])) {
-            $.each(e["REQUIRED_ATTRS"].split(","), function(i, attrName){
-              $('#' + attrName, dialog).attr('required', true);
-            });
+    if (Config.onedConf.MARKET_MAD_CONF !== undefined) {
+      $.each(Config.onedConf.MARKET_MAD_CONF, function(i, e){
+          if (e["NAME"] == marketMADName) {
+            if (!$.isEmptyObject(e["REQUIRED_ATTRS"])) {
+              $.each(e["REQUIRED_ATTRS"].split(","), function(i, attrName){
+                $('#' + attrName, dialog).attr('required', true);
+              });
+            }
+            return false;
           }
-          return false;
         }
-      }
-    );
+      );
+    }
   }
 });
 
diff --git a/src/sunstone/public/app/tabs/provision-tab.js b/src/sunstone/public/app/tabs/provision-tab.js
index c4d0eced97..150697cfa3 100644
--- a/src/sunstone/public/app/tabs/provision-tab.js
+++ b/src/sunstone/public/app/tabs/provision-tab.js
@@ -267,15 +267,15 @@ define(function(require) {
       var diskCost   = capacity.DISK_COST;
 
       if (cpuCost == undefined){
-        cpuCost = Config.defaultCost.cpuCost;
+        cpuCost = Config.onedConf.DEFAULT_COST.CPU_COST;
       }
 
       if (memoryCost == undefined){
-        memoryCost = Config.defaultCost.memoryCost;
+        memoryCost = Config.onedConf.DEFAULT_COST.MEMORY_COST;
       }
 
       if (diskCost == undefined){
-        diskCost = Config.defaultCost.diskCost;
+        diskCost = Config.onedConf.DEFAULT_COST.DISK_COST;
       }
 
       if ((cpuCost != 0 || memoryCost != 0 || diskCost != 0) && Config.isFeatureEnabled("showback")) {
@@ -424,11 +424,11 @@ define(function(require) {
     var memoryCost = capacity.MEMORY_COST;
 
     if (cpuCost == undefined){
-      cpuCost = Config.defaultCost.cpuCost;
+      cpuCost = Config.onedConf.DEFAULT_COST.CPU_COST;
     }
 
     if (memoryCost == undefined){
-      memoryCost = Config.defaultCost.memoryCost;
+      memoryCost = Config.onedConf.DEFAULT_COST.MEMORY_COST;
     }
 
     if ((cpuCost != 0 || memoryCost != 0) && Config.isFeatureEnabled("showback")) {
diff --git a/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js b/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js
index fcfc33d3d5..869a8fcfaf 100644
--- a/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js
+++ b/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js
@@ -201,11 +201,11 @@ define(function(require) {
           var memoryCost = template_json.VMTEMPLATE.TEMPLATE.MEMORY_COST;
 
           if (cpuCost == undefined){
-            cpuCost = Config.defaultCost.cpuCost;
+            cpuCost = Config.onedConf.DEFAULT_COST.CPU_COST;
           }
 
           if (memoryCost == undefined){
-            memoryCost = Config.defaultCost.memoryCost;
+            memoryCost = Config.onedConf.DEFAULT_COST.MEMORY_COST;
           }
 
           if ((cpuCost != 0 || memoryCost != 0) && Config.isFeatureEnabled("showback")) {
diff --git a/src/sunstone/public/app/tabs/users-tab/utils/user-creation.js b/src/sunstone/public/app/tabs/users-tab/utils/user-creation.js
index a57c9b8f4c..4f8ae132b9 100644
--- a/src/sunstone/public/app/tabs/users-tab/utils/user-creation.js
+++ b/src/sunstone/public/app/tabs/users-tab/utils/user-creation.js
@@ -48,8 +48,8 @@ define(function(require) {
       this.options.auth_driver = true;
     }
 
-    if (Config.authMadConf !== undefined && Config.authMadConf['AUTHN'] !== undefined) {
-      this.authMadNameList = Config.authMadConf['AUTHN'].split(',');
+    if (Config.onedConf.AUTH_MAD !== undefined && Config.onedConf.AUTH_MAD['AUTHN'] !== undefined) {
+      this.authMadNameList = Config.onedConf.AUTH_MAD['AUTHN'].split(',');
     } else {
       this.authMadNameList = []
     }
diff --git a/src/sunstone/public/app/tabs/vms-tab/panels/capacity.js b/src/sunstone/public/app/tabs/vms-tab/panels/capacity.js
index b456d04c6f..67b5de9901 100644
--- a/src/sunstone/public/app/tabs/vms-tab/panels/capacity.js
+++ b/src/sunstone/public/app/tabs/vms-tab/panels/capacity.js
@@ -82,11 +82,11 @@ define(function(require) {
     var memoryCost = this.element.TEMPLATE.MEMORY_COST;
 
     if (cpuCost == undefined){
-      cpuCost = Config.defaultCost.cpuCost;
+      cpuCost = Config.onedConf.DEFAULT_COST.CPU_COST;
     }
 
     if (memoryCost == undefined){
-      memoryCost = Config.defaultCost.memoryCost;
+      memoryCost = Config.onedConf.DEFAULT_COST.MEMORY_COST;
     }
 
     return TemplateInfo({
diff --git a/src/sunstone/public/app/tabs/vms-tab/panels/storage.js b/src/sunstone/public/app/tabs/vms-tab/panels/storage.js
index aada72a621..6c5e2accca 100644
--- a/src/sunstone/public/app/tabs/vms-tab/panels/storage.js
+++ b/src/sunstone/public/app/tabs/vms-tab/panels/storage.js
@@ -72,7 +72,7 @@ define(function(require) {
     var diskCost = this.element.TEMPLATE.DISK_COST;
 
     if (diskCost == undefined){
-      diskCost = Config.defaultCost.diskCost;
+      diskCost = Config.onedConf.DEFAULT_COST.DISK_COST;
     }
 
     return TemplateHtml({
diff --git a/src/sunstone/public/app/utils/disks-resize.js b/src/sunstone/public/app/utils/disks-resize.js
index 205c16dd63..129a077a69 100644
--- a/src/sunstone/public/app/utils/disks-resize.js
+++ b/src/sunstone/public/app/utils/disks-resize.js
@@ -77,7 +77,7 @@ define(function(require){
           var disk_cost = template_json.VMTEMPLATE.TEMPLATE.DISK_COST;
 
           if (disk_cost == undefined) {
-            disk_cost = Config.defaultCost.diskCost;
+            disk_cost = Config.onedConf.DEFAULT_COST.DISK_COST;
           }
 
           if (disk_cost != 0 && Config.isFeatureEnabled("showback")) {
diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb
index 11ea98e39f..5efa57a2f3 100755
--- a/src/sunstone/sunstone-server.rb
+++ b/src/sunstone/sunstone-server.rb
@@ -56,6 +56,13 @@ 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'
 
+# If no costs are defined in oned.conf these values will be used
+DEFAULT_COST = {
+    'CPU_COST' => 0,
+    'MEMORY_COST' => 0,
+    'DISK_COST' => 0
+};
+
 ##############################################################################
 # Required libraries
 ##############################################################################
@@ -388,9 +395,42 @@ get '/' do
         error 500, ""
     end
 
+    serveradmin_client = $cloud_auth.client(nil, session[:active_zone_endpoint])
+
+    rc = OpenNebula::System.new(serveradmin_client).get_configuration
+
+    if OpenNebula.is_error?(rc)
+        logger.error { rc.message }
+        error 500, ""
+    end
+
+    oned_conf_template = rc.to_hash()['TEMPLATE']
+
+    keys = [
+        :DEFAULT_COST,
+        :DS_MAD_CONF,
+        :MARKET_MAD_CONF,
+        :VM_MAD,
+        :IM_MAD,
+        :AUTH_MAD
+    ]
+
+    oned_conf = {}
+    keys.each do |key|
+        if key == :DEFAULT_COST
+            if oned_conf_template[key.to_s]
+                oned_conf[key] = oned_conf_template[key.to_s]
+            else
+                oned_conf[key] = DEFAULT_COST
+            end
+        else
+            oned_conf[key] = oned_conf_template[key.to_s]
+        end
+    end
+
     response.set_cookie("one-user", :value=>"#{session[:user]}")
 
-    erb :index, :locals => {:logos_conf => logos_conf}
+    erb :index, :locals => {:logos_conf => logos_conf, :oned_conf => oned_conf}
 end
 
 get '/login' do
@@ -513,35 +553,6 @@ get '/infrastructure' do
     [200, infrastructure.to_json]
 end
 
-get '/onedconf' do
-    serveradmin_client = $cloud_auth.client(nil, session[:active_zone_endpoint])
-
-    rc = OpenNebula::System.new(serveradmin_client).get_configuration
-
-    if OpenNebula.is_error?(rc)
-        logger.error { rc.message }
-        error 500, ""
-    end
-
-    onedconf_template = rc.to_hash()['TEMPLATE']
-
-    keys = [
-        :DEFAULT_COST,
-        :DS_MAD_CONF,
-        :MARKET_MAD_CONF,
-        :VM_MAD,
-        :IM_MAD,
-        :AUTH_MAD
-    ]
-
-    onedconf = {}
-    keys.each do |key|
-        onedconf[key] = onedconf_template[key.to_s]
-    end
-
-    [200, onedconf.to_json]
-end
-
 get '/vm/:id/log' do
     @SunstoneServer.get_vm_log(params[:id])
 end
diff --git a/src/sunstone/views/index.erb b/src/sunstone/views/index.erb
index 2538c5019d..b305c24171 100644
--- a/src/sunstone/views/index.erb
+++ b/src/sunstone/views/index.erb
@@ -43,7 +43,8 @@
         'zone_name' : '<%= session[:zone_name] %>',
         'instance_types' : JSON.parse('<%= cloud_view_instance_types().to_json %>'),
         'page_length' : '<%= session[:page_length] %>',
-        'vm_logos' : <%= logos_conf.to_json %>
+        'vm_logos' : <%= logos_conf.to_json %>,
+        'oned_conf' : <%= oned_conf.to_json %>
       };
     </script>