[one-users] Quota Issue

Daniel Molina dmolina at opennebula.org
Fri Dec 16 08:51:40 PST 2011


Dear Hutson,

I suppose that you are using OpenNebula 3.0. That bug was fixed in the
master branch for the next release. This bug appears when the VM pool
is empty or no CPU is defined in the VMS. You can fix it applying the
following patch:

diff --git a/src/authm_mad/remotes/quota/quota.rb
b/src/authm_mad/remotes/quota/quota.rb
index 1f13234..26336bb 100644
--- a/src/authm_mad/remotes/quota/quota.rb
+++ b/src/authm_mad/remotes/quota/quota.rb
@@ -241,10 +241,10 @@ class Quota
             resources.each{ |res|
                 pool = get_pool(res, user_id)
                 base_xpath = "/#{res}_POOL/#{resource}"
+                usage[key] ||= 0
                 Quota.const_get("#{res}_USAGE".to_sym).each { |key, params|
                     pool.each_xpath("#{base_xpath}/#{params[:xpath]}") { |elem|
                         if elem
-                            usage[key] ||= 0
                             if params[:count]
                                 usage[key] += 1
                             else


Kind regards.

On 15 December 2011 18:45, Hutson Betts <hut101 at tamu.edu> wrote:
> I'm currently facing a similar issue when attempting to instantiate a VM
> using occi-compute. The error:
>
> oneadmin at opennebula-server:~$ occi-compute --username [USER] --password
> [PASSWORD] --url https://localhost/occi --debug create test.vm
> /var/lib/gems/1.8/gems/curb-0.7.16/lib/curb_core.so: warning: already
> initialized constant CURL_SSLVERSION_DEFAULT
> [VirtualMachineAllocate] User [1] not authorized to perform action on
> virtual machine.
>
> oneadmin at opennebula-server:~$ onevm list all
>    ID USER     GROUP    NAME         STAT CPU     MEM        HOSTNAME
> TIME
>
> oneadmin at opennebula-server:~$ onevnet list all
> one  ID USER     GROUP    NAME              TYPE BRIDGE PUB  LEASES
>   6 [USER]    users    firewall-extern      R    br2  No       0
>
> oneadmin at opennebula-server:~$ oneimage list all
>  ID USER     GROUP    NAME            SIZE TYPE          REGTIME PUB
> PER STAT  RVMS
>   1 [USER]    users    Machine A      1015M   OS   12/11 17:50:01  No
> No  rdy     0
>   2 [USER]    users    Machine B       976M   OS   12/11 17:51:27  No
> No  rdy     0
>   3 [USER]    users    Machine C       993M   OS   12/11 18:00:40  No
> No  rdy     0
>
> Output From oned.log:
>
> Thu Dec 15 11:43:25 2011 [ACL][D]: Request #1 VM/* CREATE
> Thu Dec 15 11:43:25 2011 [ACL][D]: > Rule  @1 VM+NET+IMAGE+TEMPLATE/*
> CREATE+INFO_POOL_MINE
> Thu Dec 15 11:43:25 2011 [ACL][D]: Permission granted
> Thu Dec 15 11:43:26 2011 [ReM][D]: VirtualMachinePoolInfo method invoked
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 12 ExitCode:
> 0
>
> Thu Dec 15 11:43:26 2011 [AuM][I]: ExitCode: 0
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: AUTHENTICATE
> SUCCESS 12 -
>
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11 Command
> execution fail: /var/lib/one/remotes/auth/quota/authorize 1
> VM:PFRFTVBMQVRFPjxDUFU+PCF$
>
> Thu Dec 15 11:43:26 2011 [AuM][I]: Command execution
> fail: /var/lib/one/remotes/auth/quota/authorize 1 VM:PFRFTVBMQVRFPjxDUFU
> +PCFbQ0RBVEFbMV1dPjwvQ1BVPjxESV$
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I
> 11 /usr/lib/one/ruby/quota.rb:199:in `Float': can't convert nil into
> Float (TypeError)
>
> Thu Dec 15 11:43:26 2011 [AuM][I]: /usr/lib/one/ruby/quota.rb:199:in
> `Float': can't convert nil into Float (TypeError)
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /usr/lib/one/ruby/quota.rb:199:in `send'
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /usr/lib/one/ruby/quota.rb:199:in `send'
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /usr/lib/one/ruby/quota.rb:199:in `check_quotas'
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /usr/lib/one/ruby/quota.rb:199:in `check_quotas'
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /usr/lib/one/ruby/quota.rb:194:in `each'
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /usr/lib/one/ruby/quota.rb:194:in `each'
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /usr/lib/one/ruby/quota.rb:194:in `check_quotas'
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /usr/lib/one/ruby/quota.rb:194:in `check_quotas'
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /usr/lib/one/ruby/quota.rb:184:in `authorize'
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /usr/lib/one/ruby/quota.rb:184:in `authorize'
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /var/lib/one/remotes/auth/quota/authorize:53
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /var/lib/one/remotes/auth/quota/authorize:53
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /var/lib/one/remotes/auth/quota/authorize:52:in `each'
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /var/lib/one/remotes/auth/quota/authorize:52:in `each'
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11
> from /var/lib/one/remotes/auth/quota/authorize:52
>
> Thu Dec 15 11:43:26 2011 [AuM][I]:
> from /var/lib/one/remotes/auth/quota/authorize:52
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: LOG I 11 ExitCode:
> 1
>
> Thu Dec 15 11:43:26 2011 [AuM][I]: ExitCode: 1
> Thu Dec 15 11:43:26 2011 [AuM][D]: Message received: AUTHORIZE FAILURE
> 11 -
>
> Thu Dec 15 11:43:26 2011 [AuM][E]: Auth Error:
> Thu Dec 15 11:43:26 2011 [ReM][E]: [VirtualMachineAllocate] User [1] not
> authorized to perform action on virtual machine.
>
> --
> Hutson Betts
> Computer Science and Engineering
> Texas A&M University
>
>
> On Thu, 2011-12-15 at 14:26 +1000, Graeme Gillies wrote:
>> Hi,
>>
>> I've done some more investigating and I've got a handle on what the problem is.
>>
>> My VM templates don't define a CPU attribute (as I'm just letting it
>> use the default values) and therefore the code errors out trying to
>> get a CPU value from my vm template which don't have one.
>>
>> This sounds like a bug to me, I'm assuming I should file it at
>> dev.opennebula.org?
>>
>> Regards,
>>
>> Graeme
>>
>> On Mon, Dec 5, 2011 at 3:36 PM, Graeme Gillies
>> <graeme.r.gillies at gmail.com> wrote:
>> > Hi,
>> >
>> > I have enabled the quota module on my opennebula 3 installation and
>> > now whenever I try and create a vm image, either from a template or
>> > file from disk, I get the quota module denying me. I have checked the
>> > quota limits for the user are ok. Running the command from the
>> > oned.log with ruby debug gives the following error message
>> >
>> > /var/lib/one/remotes/auth/quota/authorize:38: warning: ambiguous first
>> > argument; put parentheses or even spaces
>> > /var/lib/one/remotes/auth/quota/authorize:57: warning: ambiguous first
>> > argument; put parentheses or even spaces
>> > Exception `LoadError' at /usr/lib/ruby/site_ruby/1.8/rubygems.rb:1113
>> > - no such file to load -- rubygems/defaults/operating_system
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/config_file.rb:50 - no such file
>> > to load -- Win32API
>> > Exception `NoMethodError' at /usr/lib/ruby/1.8/rational.rb:78 -
>> > undefined method `gcd' for Rational(1, 2):Rational
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31 - no such
>> > file to load -- nokogiri
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31 - no such
>> > file to load -- xmlparser
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:38 - no such
>> > file to load -- xmlparser
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31 - no such
>> > file to load -- sequel
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/model/base.rb:817:
>> > warning: `*' interpreted as argument prefix
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/model/base.rb:631:
>> > warning: instance variable @dataset not initialized
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/model/base.rb:631:
>> > warning: instance variable @dataset not initialized
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31 - no such
>> > file to load -- sqlite3
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31 - no such
>> > file to load -- sqlite3/1.8/sqlite3_native
>> > Exception `LoadError' at
>> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:38 - no such
>> > file to load -- sqlite3/1.8/sqlite3_native
>> > Exception `SQLite3::SQLException' at
>> > /usr/lib/ruby/gems/1.8/gems/sqlite3-1.3.3/lib/sqlite3/database.rb:91 -
>> > index quotas_uid_index already exists
>> > Exception `Sequel::DatabaseError' at
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/database/misc.rb:254
>> > - SQLite3::SQLException: index quotas_uid_index already exists
>> > Exception `SQLite3::SQLException' at
>> > /usr/lib/ruby/gems/1.8/gems/sqlite3-1.3.3/lib/sqlite3/database.rb:91 -
>> > index usage_uid_index already exists
>> > Exception `Sequel::DatabaseError' at
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/database/misc.rb:254
>> > - SQLite3::SQLException: index usage_uid_index already exists
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/dataset/actions.rb:130:
>> > warning: instance variable @row_proc not initialized
>> > /usr/lib/ruby/gems/1.8/gems/sequel-3.29.0/lib/sequel/dataset/actions.rb:130:
>> > warning: instance variable @row_proc not initialized
>> > Exception `TypeError' at /usr/lib/one/ruby/quota.rb:199 - can't
>> > convert nil into Float
>> > /usr/lib/one/ruby/quota.rb:199:in `Float': can't convert nil into
>> > Float (TypeError)
>> >        from /usr/lib/one/ruby/quota.rb:199:in `send'
>> >        from /usr/lib/one/ruby/quota.rb:199:in `check_quotas'
>> >        from /usr/lib/one/ruby/quota.rb:194:in `each'
>> >        from /usr/lib/one/ruby/quota.rb:194:in `check_quotas'
>> >        from /usr/lib/one/ruby/quota.rb:184:in `authorize'
>> >        from /var/lib/one/remotes/auth/quota/authorize:53
>> >        from /var/lib/one/remotes/auth/quota/authorize:52:in `each'
>> >        from /var/lib/one/remotes/auth/quota/authorize:52
>> >
>> > output for onequota show 1
>> >
>> >  uid          cpu       memory      num_vms      storage
>> >   1          0/3   5120/10240         4/10      0/20480
>> >
>> > Any help would be much appreciated.
>> >
>> > Regards,
>> >
>> > Graeme
>> _______________________________________________
>> Users mailing list
>> Users at lists.opennebula.org
>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>



-- 
Daniel Molina
Project Engineer
OpenNebula - The Open Source Toolkit for Data Center Virtualization
www.OpenNebula.org | dmolina at opennebula.org | @OpenNebula



More information about the Users mailing list