From c1f794603bf2d5222da42f9f382814508a29db02 Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Tue, 12 Jul 2011 15:21:43 +0200 Subject: [PATCH 1/4] Change accct bin file name --- install.sh | 2 +- src/acct/{acctd => oneacctd} | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) rename src/acct/{acctd => oneacctd} (85%) diff --git a/install.sh b/install.sh index 6ad0a27eee..931b2ded42 100755 --- a/install.sh +++ b/install.sh @@ -912,7 +912,7 @@ SUNSTONE_PUBLIC_IMAGES_FILES="src/sunstone/public/images/ajax-loader.gif \ # ACCT files #----------------------------------------------------------------------------- -ACCT_BIN_FILES="src/acct/acctd" +ACCT_BIN_FILES="src/acct/oneacctd" ACCT_LIB_FILES="src/acct/monitoring.rb \ src/acct/accounting.rb \ diff --git a/src/acct/acctd b/src/acct/oneacctd similarity index 85% rename from src/acct/acctd rename to src/acct/oneacctd index 5b0a8283bc..195b5f492d 100755 --- a/src/acct/acctd +++ b/src/acct/oneacctd @@ -60,7 +60,28 @@ start) # acctd not running, safe to start $ACCTD_CMD &> $ACCTD_LOG & - echo $! > $ACCTD_PID_FILE + + LASTRC=$? + LASTPID=$! + + if [ $LASTRC -ne 0 ]; then + echo "Error executing acctd." + echo "Check $ACCTD_LOG for more information" + exit 1 + else + echo $LASTPID > $ACCTD_PID_FILE + fi + + sleep 2 + ps $LASTPID > /dev/null 2>&1 + + if [ $? -ne 0 ]; then + echo "Error executing acctd." + echo "Check $ACCTD_LOG for more information" + exit 1 + fi + + echo "acctd started" ;; stop) # check if running @@ -74,6 +95,8 @@ stop) ACCTD_PID=`cat $ACCTD_PID_FILE 2>/dev/null` kill $ACCTD_PID &> /dev/null rm -f $ACCTD_PID_FILE &> /dev/null + + echo "acctd stop" ;; *) echo "Usage: acctd {start|stop}" >&2 From 439df297134618a91400298bfe03709769861769 Mon Sep 17 00:00:00 2001 From: Javi Fontan Date: Tue, 12 Jul 2011 15:22:17 +0200 Subject: [PATCH 2/4] feature #450: new Gemfile and installation helper script --- Gemfile => share/bundler/Gemfile | 31 ++++++++++++++- share/bundler/install_gems | 65 ++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) rename Gemfile => share/bundler/Gemfile (51%) create mode 100755 share/bundler/install_gems diff --git a/Gemfile b/share/bundler/Gemfile similarity index 51% rename from Gemfile rename to share/bundler/Gemfile index 3237adf825..aeea6a1363 100644 --- a/Gemfile +++ b/share/bundler/Gemfile @@ -29,6 +29,35 @@ group :cloud do gem 'thin', '1.2.7' gem 'uuid' gem 'curb' - gem 'sqlite3-ruby' +end + +group :ozones_client do + gem 'json', '= 1.5.1' +end + +group :ozones_server do + gem 'json', '= 1.5.1' + gem 'datamapper' + gem 'dm-sqlite-adapter' + gem 'dm-mysql-adapter' +end + +group :ozones_server_mysql do + gem 'json', '= 1.5.1' + gem 'datamapper' + gem 'dm-mysql-adapter' +end + +group :ozones_server_sqlite do + gem 'json', '= 1.5.1' + gem 'datamapper' + gem 'dm-sqlite-adapter' +end + + + + +group :dummy do + gem 'rake' end diff --git a/share/bundler/install_gems b/share/bundler/install_gems new file mode 100755 index 0000000000..baee64cb18 --- /dev/null +++ b/share/bundler/install_gems @@ -0,0 +1,65 @@ +#!/usr/bin/env ruby + +PACKAGES=%w{optional sunstone quota cloud ozones_client ozones_server + ozones_server_mysql ozones_server_sqlite} + +DEFAULT=%w{optional sunstone quota cloud ozones_server} + + +class String + def unindent(spaces=4) + self.gsub!(/^ {#{spaces}}/, '') + end +end + +def try_library(name, error_message) + begin + require name.to_s + rescue LoadError + STDERR.puts error_message + exit -1 + end +end + + +try_library :rubygems, <<-EOT.unindent + rubygems required to use this tool + + Use one of these methods: + + * Debian/Ubuntu + apt-get install rubygems libopenssl-ruby + + * RHEL/CENTOS + yum install rubygems + + * Specific rubygems package for your distro + + * Follow the instructions from http://rubygems.org/pages/download +EOT + +try_library :bundler, <<-EOT.unindent + bundler needed to install gems + + execute this to install it: + + [sudo] gem install bundler +EOT + + +if ARGV.length>0 + packages=ARGV +else + packages=DEFAULT +end + +no_packages=PACKAGES-packages +no_packages<<'dummy' + +without="--without #{no_packages.join(' ')}" + +command_string = "bundle #{without}" + +puts command_string + +#system command_string From 78a58e60414682c7e014c06e458311e26e8ae44d Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Tue, 12 Jul 2011 15:32:22 +0200 Subject: [PATCH 3/4] Add default acct db --- src/acct/etc/acctd.conf | 2 +- src/acct/watch_helper.rb | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/acct/etc/acctd.conf b/src/acct/etc/acctd.conf index 7b4e099817..bfb1879c88 100644 --- a/src/acct/etc/acctd.conf +++ b/src/acct/etc/acctd.conf @@ -15,7 +15,7 @@ #--------------------------------------------------------------------------- # # Database URI -:DB: sqlite:///tmp/test_one_acct.db +#:DB: sqlite:///var/one/oneacct.db # Duration of each daemon loop in seconds :STEP: 300 # 5 minutes diff --git a/src/acct/watch_helper.rb b/src/acct/watch_helper.rb index 4cc5ab9c98..c9112b2496 100644 --- a/src/acct/watch_helper.rb +++ b/src/acct/watch_helper.rb @@ -6,13 +6,20 @@ module WatchHelper if !ONE_LOCATION ACCTD_CONF="/etc/one/acctd.conf" + ACCT_DB="/var/one/oneacct.db" else ACCTD_CONF=ONE_LOCATION+"/etc/acctd.conf" + ACCT_DB=ONE_LOCATION+"/var/oneacct.db" end CONF = YAML.load_file(ACCTD_CONF) - DB = Sequel.connect(CONF[:DB]) + if CONF[:DB] + DB = Sequel.connect(CONF[:DB]) + else + DB = Sequel.connect("sqlite//#{ACCT_DB}") + end + VM_DELTA = { :net_rx => { :type => Integer, From 68a9e2ec275715df7f13893dd2ceeea4b15e44d2 Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Tue, 12 Jul 2011 15:33:52 +0200 Subject: [PATCH 4/4] Add missing group.default file --- src/cli/etc/group.default | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/cli/etc/group.default diff --git a/src/cli/etc/group.default b/src/cli/etc/group.default new file mode 100644 index 0000000000..98b60b3931 --- /dev/null +++ b/src/cli/etc/group.default @@ -0,0 +1,4 @@ +# This rule allows users in the new group to create common resources +VM+NET+IMAGE+TEMPLATE/* CREATE +# This rule allows users in the group to deploy VMs in any host in the cloud +HOST/* USE