From 3282fb80d57ce8849a401924323f6b7ec356741d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Thu, 21 Jul 2011 02:57:04 -0700 Subject: [PATCH 01/12] Bug #719: Fixed taking back the RM UserDelete::drop method, see commit:66485c6e --- include/RequestManagerDelete.h | 4 ++++ src/rm/RequestManagerDelete.cc | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/include/RequestManagerDelete.h b/include/RequestManagerDelete.h index 84aaf81223..bf665bfc48 100644 --- a/include/RequestManagerDelete.h +++ b/include/RequestManagerDelete.h @@ -166,6 +166,10 @@ public: }; ~UserDelete(){}; + + /* -------------------------------------------------------------------- */ + + int drop(int oid, PoolObjectSQL * object, string& error_msg); }; /* -------------------------------------------------------------------------- */ diff --git a/src/rm/RequestManagerDelete.cc b/src/rm/RequestManagerDelete.cc index 6ae29b82fe..6d947d8b66 100644 --- a/src/rm/RequestManagerDelete.cc +++ b/src/rm/RequestManagerDelete.cc @@ -70,3 +70,32 @@ int ImageDelete::drop(int oid, PoolObjectSQL * object, string& error_msg) return rc; } +/* ------------------------------------------------------------------------- */ + +int UserDelete::drop(int oid, PoolObjectSQL * object, string& error_msg) +{ + User * user = static_cast(object); + int group_id = user->get_gid(); + + int rc = pool->drop(object, error_msg); + + object->unlock(); + + if ( rc == 0 ) + { + Nebula& nd = Nebula::instance(); + GroupPool * gpool = nd.get_gpool(); + + Group * group = gpool->get(group_id, true); + + if( group != 0 ) + { + group->del_user(oid); + gpool->update(group); + + group->unlock(); + } + } + + return rc; +} From 7c87255395a851b3d0e40be69ef02f395c8cde47 Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 12:21:56 +0200 Subject: [PATCH 02/12] fixed help dor ozones CLI --- src/ozones/Client/bin/onevdc | 2 +- src/ozones/Client/bin/onezone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ozones/Client/bin/onevdc b/src/ozones/Client/bin/onevdc index fbf44a0986..3c1212cf22 100755 --- a/src/ozones/Client/bin/onevdc +++ b/src/ozones/Client/bin/onevdc @@ -15,7 +15,7 @@ require 'command_parser' require 'ozones_helper/vdc_helper.rb' cmd=CommandParser::CmdParser.new(ARGV) do - usage "ovdcs COMMAND [args..] [options..]" + usage "`ovdcs` command [] []" version OpenNebulaHelper::ONE_VERSION ######################################################################## diff --git a/src/ozones/Client/bin/onezone b/src/ozones/Client/bin/onezone index f613c84b09..a5e13647cc 100755 --- a/src/ozones/Client/bin/onezone +++ b/src/ozones/Client/bin/onezone @@ -15,7 +15,7 @@ require 'command_parser' require 'ozones_helper/zones_helper.rb' cmd=CommandParser::CmdParser.new(ARGV) do - usage "ozones COMMAND [args..] [options..]" + usage "`ozones` [] []" version OpenNebulaHelper::ONE_VERSION ######################################################################## From d38efff33e292db3b23842b6be9e0a1e35a8e03f Mon Sep 17 00:00:00 2001 From: Jaime Melis Date: Thu, 21 Jul 2011 13:23:35 +0200 Subject: [PATCH 03/12] Bug #186: one stop does not kill oned --- share/scripts/one | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/share/scripts/one b/share/scripts/one index 3b26c0e55c..b54de174b8 100755 --- a/share/scripts/one +++ b/share/scripts/one @@ -40,6 +40,8 @@ else LOCK_FILE=$ONE_LOCATION/var/.lock fi +KILL_9_SECONDS=5 + #------------------------------------------------------------------------------ # Function that checks for running daemons and gets PORT from conf #------------------------------------------------------------------------------ @@ -81,7 +83,19 @@ setup() stop() { if [ -f $ONE_PID ]; then - kill `cat $ONE_PID` > /dev/null 2>&1 + PID=$(cat $ONE_PID) + kill $PID > /dev/null 2>&1 + + counter=0 + while ps $PID > /dev/null 2>&1; do + let counter=counter+1 + if [ $counter -gt $KILL_9_SECONDS ]; then + kill -9 $PID > /dev/null 2>&1 + break + fi + sleep 1 + done + rm -f $ONE_PID > /dev/null 2>&1 fi From a332d31b1608913a4ad1986222781aa096d5e5c4 Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 12:32:51 +0200 Subject: [PATCH 04/12] bug #707: fixed date error in onevm show for 3.0 --- src/cli/one_helper/onevm_helper.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cli/one_helper/onevm_helper.rb b/src/cli/one_helper/onevm_helper.rb index ed05c6cdcc..c055ee36bd 100644 --- a/src/cli/one_helper/onevm_helper.rb +++ b/src/cli/one_helper/onevm_helper.rb @@ -65,7 +65,7 @@ class OneVMHelper < OpenNebulaHelper::OneHelper def format_resource(vm) str_h1="%-80s" str="%-20s: %-20s" - + CLIHelper.print_header( str_h1 % "VIRTUAL MACHINE #{vm['ID']} INFORMATION") puts str % ["ID", vm.id.to_s] @@ -77,8 +77,10 @@ class OneVMHelper < OpenNebulaHelper::OneHelper puts str % ["HOSTNAME", vm['/VM/HISTORY_RECORDS/HISTORY[last()]/HOSTNAME']] if %w{ACTIVE SUSPENDED}.include? vm.state_str - puts str % ["START TIME", OpenNebulaHelper.time_to_str(vm['STIME'])] - puts str % ["END TIME", OpenNebulaHelper.time_to_str(vm['ETIME'])] + puts str % ["START TIME", + OpenNebulaHelper.time_to_str(vm['/VM/STIME'])] + puts str % ["END TIME", + OpenNebulaHelper.time_to_str(vm['/VM/ETIME'])] value=vm['DEPLOY_ID'] puts str % ["DEPLOY ID", value=="" ? "-" : value] From 9074723543d147191ac7d51a5bee62f8dda9211d Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 13:49:37 +0200 Subject: [PATCH 05/12] bug #729: sunstone start script checks for successful startup --- src/ozones/Server/bin/ozones-server | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ozones/Server/bin/ozones-server b/src/ozones/Server/bin/ozones-server index 4e00f2fa8a..ac76d2f6c3 100755 --- a/src/ozones/Server/bin/ozones-server +++ b/src/ozones/Server/bin/ozones-server @@ -66,12 +66,15 @@ start() echo "The port $PORT is being used. Please specify a different one." exit 1 fi - + # Start the ozones daemon touch $OZONES_LOCK_FILE rackup $OZONES_SERVER -s thin -p $PORT -o $HOST \ -P $OZONES_PID &> $OZONES_LOG & + sleep 2 + ps -p $(cat $OZONES_PID 2>/dev/null) > /dev/null 2>&1 + if [ $? -ne 0 ]; then echo "Error executing $OZONES_SERVER, please check the log $OZONES_LOG" exit 1 From 94fef691c7b1f3028270e25b98e336349effb5eb Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 16:17:09 +0200 Subject: [PATCH 06/12] bug #743: correctly detects missing lsb_release --- share/install_gems/install_gems | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/share/install_gems/install_gems b/share/install_gems/install_gems index f153b5cd61..8320bb7815 100755 --- a/share/install_gems/install_gems +++ b/share/install_gems/install_gems @@ -105,9 +105,17 @@ def get_gems(packages) end def detect_distro - lsb_info=`lsb_release -a` - if $?!=0 && false - STDERR.puts("lsb_release command not found") + begin + lsb_info=`lsb_release -a` + rescue + end + + if $?.exitstatus!=0 + STDERR.puts(<<-EOT.unindent(12)) + lsb_release command not found. If you are using a RedHat based + distribution install redhat-lsb + +EOT return nil end From 330c590e2547fc2cdcaf85270794e3e2660d2fad Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 16:31:28 +0200 Subject: [PATCH 07/12] bug #744: changed datamapper to data_mapper in install_gems script --- share/install_gems/install_gems | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/install_gems/install_gems b/share/install_gems/install_gems index 8320bb7815..90a9c3300f 100755 --- a/share/install_gems/install_gems +++ b/share/install_gems/install_gems @@ -15,11 +15,11 @@ GROUPS={ :sunstone => %w{json rack sinatra thin}, :cloud => %w{amazon-ec2 rack sinatra thin uuid curb}, :ozones_client => %w{json}, - :ozones_server => %w{json datamapper dm-sqlite-adapter dm-mysql-adapter}+[ + :ozones_server => %w{json data_mapper dm-sqlite-adapter dm-mysql-adapter}+[ SQLITE, 'mysql' ], - :ozones_server_sqlite => %w{json datamapper dm-sqlite-adapter}< %w{json datamapper dm-mysql-adapter mysql}, + :ozones_server_sqlite => %w{json data_mapper dm-sqlite-adapter}< %w{json data_mapper dm-mysql-adapter mysql}, :acct => ['sequel', SQLITE, 'mysql'], :acct_sqlite => ['sequel', SQLITE], :acct_mysql => ['sequel', 'mysql'] From dbb5fe994c67ce0da1cd569c09c944d150454f85 Mon Sep 17 00:00:00 2001 From: Jaime Melis Date: Thu, 21 Jul 2011 17:35:47 +0200 Subject: [PATCH 08/12] Bug #732: Add new int type in CLI's DSL argument types --- src/cli/one_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli/one_helper.rb b/src/cli/one_helper.rb index 7ab77512f8..bfd52313e9 100644 --- a/src/cli/one_helper.rb +++ b/src/cli/one_helper.rb @@ -375,7 +375,7 @@ EOT def OpenNebulaHelper.update_template(id, resource) require 'tempfile' - tmp = Tempfile.new(id) + tmp = Tempfile.new(id.to_s) path = tmp.path tmp << resource.template_str From 013efa4e4d3ee8b61bd896a6265ce60337f9b21d Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 19:59:59 +0200 Subject: [PATCH 09/12] Changed shebang headers for oZones CLI --- src/ozones/Client/bin/onevdc | 2 +- src/ozones/Client/bin/onezone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ozones/Client/bin/onevdc b/src/ozones/Client/bin/onevdc index 3c1212cf22..49514be190 100755 --- a/src/ozones/Client/bin/onevdc +++ b/src/ozones/Client/bin/onevdc @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/usr/bin/env ruby ONE_LOCATION=ENV["ONE_LOCATION"] diff --git a/src/ozones/Client/bin/onezone b/src/ozones/Client/bin/onezone index a5e13647cc..e2076f93c4 100755 --- a/src/ozones/Client/bin/onezone +++ b/src/ozones/Client/bin/onezone @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/usr/bin/env ruby ONE_LOCATION=ENV["ONE_LOCATION"] From becc361363e068ee64a50b8af66905c5a7a3f417 Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 20:26:35 +0200 Subject: [PATCH 10/12] install proper sqlite version for ruby 1.9 --- share/install_gems/install_gems | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/share/install_gems/install_gems b/share/install_gems/install_gems index 90a9c3300f..b1bb507cc0 100755 --- a/share/install_gems/install_gems +++ b/share/install_gems/install_gems @@ -7,7 +7,11 @@ PACKAGES=%w{optional sunstone quota cloud ozones_client ozones_server DEFAULT=%w{optional sunstone quota cloud ozones_server acct} -SQLITE='sqlite3-ruby --version 1.2.0' +if defined?(RUBY_VERSION) && RUBY_VERSION>="1.8.7" + SQLITE='sqlite3' +else + SQLITE='sqlite3-ruby --version 1.2.0' +end GROUPS={ :optional => %w{nokogiri xmlparser}, From 0e627fffee3753c6f9955740e4214c4d2091034c Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Thu, 21 Jul 2011 20:26:56 +0200 Subject: [PATCH 11/12] added some require libraries for sunstone --- share/install_gems/install_gems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/install_gems/install_gems b/share/install_gems/install_gems index b1bb507cc0..3a9219d4be 100755 --- a/share/install_gems/install_gems +++ b/share/install_gems/install_gems @@ -16,7 +16,7 @@ end GROUPS={ :optional => %w{nokogiri xmlparser}, :quota => [SQLITE, 'sequel'], - :sunstone => %w{json rack sinatra thin}, + :sunstone => ['json', 'rack', 'sinatra', 'thin', 'sequel', SQLITE], :cloud => %w{amazon-ec2 rack sinatra thin uuid curb}, :ozones_client => %w{json}, :ozones_server => %w{json data_mapper dm-sqlite-adapter dm-mysql-adapter}+[ From c9f05f83213ead543dff368d3d427a528fc17d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Fri, 22 Jul 2011 13:24:55 +0200 Subject: [PATCH 12/12] Bug #741: Ruby OCA VM::save_as now returns the new image ID in case of success --- src/oca/ruby/OpenNebula/VirtualMachine.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/oca/ruby/OpenNebula/VirtualMachine.rb b/src/oca/ruby/OpenNebula/VirtualMachine.rb index c2292bc6a4..75e0aeaae5 100644 --- a/src/oca/ruby/OpenNebula/VirtualMachine.rb +++ b/src/oca/ruby/OpenNebula/VirtualMachine.rb @@ -213,14 +213,16 @@ module OpenNebula # Set the specified vm's disk to be saved in a new image # when the VirtualMachine shutdowns # - # +disk_id+ ID of the disk to be saved + # @param disk_id [Integer] ID of the disk to be saved + # @param image_name [String] Name for the new image where the + # disk will be saved # - # +image_name+ Name for the new image where the disk will be saved + # @return [Integer, OpenNebula::Error] the new Image ID in case of + # success, error otherwise def save_as(disk_id, image_name) return Error.new('ID not defined') if !@pe_id rc = @client.call(VM_METHODS[:savedisk], @pe_id, disk_id, image_name) - rc = nil if !OpenNebula.is_error?(rc) return rc end