diff --git a/install.sh b/install.sh index abfac04d70..cd25ed8d40 100755 --- a/install.sh +++ b/install.sh @@ -652,8 +652,11 @@ IMAGE_DRIVER_FS_SCRIPTS="src/image_mad/remotes/fs/cp \ #------------------------------------------------------------------------------- ONEDB_MIGRATOR_FILES="src/onedb/2.0_to_2.9.80.rb \ src/onedb/2.9.80_to_2.9.85.rb \ + src/onedb/2.9.85_to_2.9.90.rb \ + src/onedb/2.9.90_to_3.0.rb \ src/onedb/onedb.rb \ - src/onedb/onedb_backend.rb" + src/onedb/onedb_backend.rb \ + src/onedb/Configuration.rb" #------------------------------------------------------------------------------- # Configuration files for OpenNebula, to be installed under $ETC_LOCATION diff --git a/src/authm_mad/one_auth_mad.rb b/src/authm_mad/one_auth_mad.rb index b1d40bcaf9..7f6a0b9f82 100755 --- a/src/authm_mad/one_auth_mad.rb +++ b/src/authm_mad/one_auth_mad.rb @@ -117,7 +117,7 @@ class AuthDriver < OpenNebulaDriver authN_path = File.join(@local_scripts_path, protocol) command = File.join(authN_path,ACTION[:authN].downcase) - command << ' ' << user << ' ' << password << ' ' << secret_attr.join(' ') + command << ' ' << user << ' ' << password << ' ' << secret_attr.join(':') local_action(command, request_id, ACTION[:authN]) end diff --git a/src/onedb/2.9.85_to_2.9.90.rb b/src/onedb/2.9.85_to_2.9.90.rb new file mode 100644 index 0000000000..53a7d084ae --- /dev/null +++ b/src/onedb/2.9.85_to_2.9.90.rb @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------- * +# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) # +# 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. * +# -------------------------------------------------------------------------- * + +require "rexml/document" +include REXML + +module Migrator + def db_version + "2.9.90" + end + + def one_version + "OpenNebula 2.9.90" + end + + def up + return true + end +end diff --git a/src/onedb/2.9.90_to_3.0.rb b/src/onedb/2.9.90_to_3.0.rb new file mode 100644 index 0000000000..8692af3bfe --- /dev/null +++ b/src/onedb/2.9.90_to_3.0.rb @@ -0,0 +1,48 @@ +# -------------------------------------------------------------------------- * +# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) # +# 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. * +# -------------------------------------------------------------------------- * + +require "rexml/document" +include REXML + +module Migrator + def db_version + "3.0" + end + + def one_version + "OpenNebula 3.0" + end + + def up + # The tm_nfs driver has been renamed to tm_shared + # CREATE TABLE host_pool (oid INTEGER PRIMARY KEY, name VARCHAR(256), body TEXT, state INTEGER, last_mon_time INTEGER, UNIQUE(name)); + + @db.fetch("SELECT * FROM host_pool") do |row| + doc = Document.new(row[:body]) + + source = nil + doc.root.each_element("TM_MAD") { |e| + if e.text.downcase == "tm_nfs" + e.text = "tm_shared" + + @db[:host_pool].filter(:oid => row[:oid]).update( + :body => doc.root.to_s) + end + } + end + + return true + end +end diff --git a/src/onedb/Configuration.rb b/src/onedb/Configuration.rb new file mode 100644 index 0000000000..2189e4ad1a --- /dev/null +++ b/src/onedb/Configuration.rb @@ -0,0 +1,115 @@ +# -------------------------------------------------------------------------- # +# Copyright 2002-2011, OpenNebula Project Leads (OpenNebula.org) # +# # +# 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. # +#--------------------------------------------------------------------------- # + +############################################################################### +# The Configuration Class represents a simple configuration file for the +# Cloud servers. It does not check syntax. +############################################################################### +class Configuration + + ########################################################################### + # Patterns to parse the Configuration File + ########################################################################### + + NAME_REG =/[\w\d_-]+/ + VARIABLE_REG =/\s*(#{NAME_REG})\s*=\s*/ + + SIMPLE_VARIABLE_REG =/#{VARIABLE_REG}([^\[]+?)(#.*)?/ + SINGLE_VARIABLE_REG =/^#{SIMPLE_VARIABLE_REG}$/ + ARRAY_VARIABLE_REG =/^#{VARIABLE_REG}\[(.*?)\]/m + + ########################################################################### + ########################################################################### + + def initialize(file) + @conf=parse_conf(file) + end + + def add_configuration_value(key,value) + add_value(@conf,key,value) + end + + def [](key) + @conf[key.to_s.upcase] + end + + ########################################################################### + ########################################################################### + +private + + # + # + # + def add_value(conf, key, value) + if conf[key] + if !conf[key].kind_of?(Array) + conf[key]=[conf[key]] + end + conf[key]<\ \
\ -

Virtual Data Center\ +

Virtual Data Centers\
\ +\
\ diff --git a/src/ozones/Server/public/js/plugins/zones-tab.js b/src/ozones/Server/public/js/plugins/zones-tab.js index ffdd2d0069..8f792209cd 100644 --- a/src/ozones/Server/public/js/plugins/zones-tab.js +++ b/src/ozones/Server/public/js/plugins/zones-tab.js @@ -41,10 +41,12 @@ var create_zone_tmpl =
\ \
\ - \ + \
\ \ \ + \ +
\

\ \
\ @@ -298,6 +300,10 @@ function updateZoneInfo(req,zone_json){ Endpoint\ '+zone.endpoint+'\ \ + \ + Sunstone endpoint\ + '+zone.sunsendpoint+'\ + \ \ #VDCs\ '+zone.vdcs.length+'\ @@ -544,6 +550,7 @@ function setupCreateZoneDialog(){ var endpoint = $('#endpoint',this).val(); var onename = $('#onename',this).val(); var onepass = $('#onepass',this).val(); + var sunsendpoint = $('#sunsendpoint',this).val(); if (!name.length || !endpoint.length || !onename.length || !onepass.length){ @@ -556,7 +563,8 @@ function setupCreateZoneDialog(){ "name": name, "endpoint": endpoint, "onename": onename, - "onepass": onepass + "onepass": onepass, + "sunsendpoint" : sunsendpoint } }; @@ -589,7 +597,8 @@ $(document).ready(function(){ "sPaginationType": "full_numbers", "aoColumnDefs": [ { "bSortable": false, "aTargets": ["check"] }, - { "sWidth": "60px", "aTargets": [0,2] }, + { "sWidth": "60px", "aTargets": [0] }, + { "sWidth": "300px", "aTargets": [3] }, { "sWidth": "35px", "aTargets": [1] } ] }); diff --git a/src/sunstone/models/SunstoneServer.rb b/src/sunstone/models/SunstoneServer.rb index 02283816a4..297bd58425 100644 --- a/src/sunstone/models/SunstoneServer.rb +++ b/src/sunstone/models/SunstoneServer.rb @@ -229,7 +229,9 @@ class SunstoneServer begin novnc_cmd = "#{config[:novnc_path]}/utils/wsproxy.py" - pipe = IO.popen("#{novnc_cmd} #{proxy_port} #{host}:#{vnc_port}") + novnc_exec = "#{novnc_cmd} #{proxy_port} #{host}:#{vnc_port}" + $stderr.puts("Starting vnc proxy: #{novnc_exec}") + pipe = IO.popen(novnc_exec) rescue Exception => e error = Error.new(e.message) return [500, error.to_json] diff --git a/src/um/User.cc b/src/um/User.cc index 71b2d4cd28..c649eace68 100644 --- a/src/um/User.cc +++ b/src/um/User.cc @@ -27,7 +27,7 @@ #include "Group.h" -const string User::INVALID_CHARS = " :\t\n\v\f\r"; +const string User::INVALID_CHARS = " \t\n\v\f\r"; /* ************************************************************************** */ /* User :: Database Access Functions */