webee 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,37 @@
1
+ $: << '../lib'
2
+ require 'rubygems'
3
+ require 'webee'
4
+ require 'md5'
5
+
6
+ CIAB_IP = ENV['host'] || '127.0.0.1'
7
+
8
+ WeBee::Api.user = ENV['user'] || 'admin'
9
+ WeBee::Api.password = ENV['pass'] || 'xabiquo'
10
+ WeBee::Api.url = "http://#{ENV['host'] || 'abiquo'}/api"
11
+
12
+ #
13
+ # Add a license
14
+ #
15
+ license_file = ARGV[0]
16
+ if license_file.nil? or (not File.exist?(license_file))
17
+ $stderr.puts "Invalid license file"
18
+ exit 1
19
+ end
20
+ WeBee::Config.add_license File.read(license_file).strip.chomp
21
+
22
+ dc = WeBee::Datacenter.create :name => 'BCN'
23
+ ent = WeBee::Enterprise.all.first
24
+ ent.set_limits_for_datacenter dc
25
+
26
+ rack = dc.add_rack :name => 'rack_1',
27
+ :ha_enabled => false,
28
+ :vlan_min_id => 100,
29
+ :vlan_max_id => 2048,
30
+ :vlan_per_vdc_expected => 6,
31
+ :nrsq => 80
32
+
33
+ machine = dc.discover_machine :ip => CIAB_IP, :hypervisortype => 'kvm'
34
+ machine.virtual_switch = machine.virtual_switches.first
35
+ machine.datastores.first.enabled = true
36
+ rack.add_machine(machine)
37
+ vdc = ent.create_vdc :name => 'kvm-vdc', :hypervisortype => 'KVM', :datacenter => dc
data/examples/test.rb CHANGED
@@ -21,6 +21,8 @@ rack = dc.racks.first
21
21
  #machine.datastores.first.enabled = true
22
22
  # Add the hypervisor to the rack
23
23
  #rack.add_machine(machine)
24
- ent.set_limits_for_datacenter dc
25
- vdc = ent.create_vdc :name => 'kvm-vdc2', :hypervisortype => 'KVM', :datacenter => dc
24
+ user = Enterprise.all.first.users.first
25
+
26
+ puts user.enterprise
27
+
26
28
 
@@ -0,0 +1,28 @@
1
+ $: << '../lib'
2
+ require 'webee'
3
+ require 'md5'
4
+ require 'active_support'
5
+
6
+ WeBee::Api.user = ENV['user'] || 'admin'
7
+ WeBee::Api.password = ENV['pass'] || 'xabiquo'
8
+ WeBee::Api.url = 'http://server/api'
9
+
10
+ include WeBee
11
+
12
+ abusers = {}
13
+
14
+ Enterprise.all.each do |ent|
15
+ ent.users.each do |user|
16
+ abusers[user.name] = { :full_name => "#{user.name} #{user.surname}", :email => user.email, :vms => user.virtual_machines.size }
17
+ end
18
+ end
19
+
20
+ abusers = abusers.sort do |a,b|
21
+ a[1][:vms] <=> b[1][:vms]
22
+ end.reverse
23
+
24
+ abusers.each do |a|
25
+ if a[1][:vms] > 0
26
+ puts "User: #{a[1][:full_name]}".ljust(40) + "VMs: #{a[1][:vms]}"
27
+ end
28
+ end
data/lib/webee.rb CHANGED
@@ -28,7 +28,7 @@ end
28
28
 
29
29
  module WeBee
30
30
 
31
- VERSION = '0.3.1'
31
+ VERSION = '0.3.2'
32
32
 
33
33
  module RestResource
34
34
 
@@ -725,7 +725,9 @@ module WeBee
725
725
  col = []
726
726
  doc = Nokogiri.parse(RestClient.get(Api.url + "/admin/enterprises/#{resource_id}/users"))
727
727
  doc.search('//user').each do |node|
728
- col << User.parse(node.to_s)
728
+ user = User.parse(node.to_s)
729
+ col << user
730
+ user.enterprise_id = resource_id
729
731
  end
730
732
  col
731
733
  end
@@ -783,6 +785,9 @@ module WeBee
783
785
  element :nick
784
786
  element :active
785
787
  element :id, :as => :user_id
788
+ element :link, :value => :href, :as => :virtual_machines_url, :with => {:title => "virtualmachines" }
789
+ element :link, :value => :href, :as => :enterprise_url, :with => {:rel => "enterprise" }
790
+ element :link, :value => :href, :as => :roles_url, :with => {:rel => "role" }
786
791
 
787
792
  #
788
793
  # May raise exception if request is not successful
@@ -827,11 +832,27 @@ module WeBee
827
832
  u = []
828
833
  doc = Nokogiri.parse(RestClient.get(Api.url + "/admin/enterprises/#{enterprise_id}/users"))
829
834
  doc.search('//user').each do |node|
830
- u << User.parse(node.to_s)
835
+ user = User.parse(node.to_s)
836
+ u << user
837
+ user.enterprise_id = enterprise_id
831
838
  end
832
839
  u
833
840
  end
834
841
 
842
+ def virtual_machines
843
+ items = []
844
+ doc = Nokogiri.parse(RestClient.get(Api.url + "/admin/enterprises/#{enterprise_id}/users/#{user_id}/action/virtualmachines" , :accept => :xml))
845
+ doc.search('//virtualMachine').each do |node|
846
+ items << VirtualMachine.parse(node.to_s)
847
+ end
848
+ items
849
+ end
850
+
851
+ def enterprise
852
+ doc = Nokogiri.parse(RestClient.get(Api.url + "/admin/enterprises/#{enterprise_id}" , :accept => :xml))
853
+ Enterprise.parse doc.root.to_s
854
+ end
855
+
835
856
  end
836
857
 
837
858
  class VirtualMachine
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webee
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 1
10
- version: 0.3.1
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sergio Rubio
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-12 00:00:00 Z
18
+ date: 2011-09-14 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: sax-machine
@@ -131,7 +131,9 @@ files:
131
131
  - Rakefile
132
132
  - bin/webee
133
133
  - examples/basics.rb
134
+ - examples/bootstrap.rb
134
135
  - examples/list_hypervisors.rb
136
+ - examples/top_abusers.rb
135
137
  - lib/webee.rb
136
138
  - lib/webee/command.rb
137
139
  - lib/webee/commands/appslib.rb
@@ -177,9 +179,11 @@ specification_version: 3
177
179
  summary: Abiquo API Ruby Implementation
178
180
  test_files:
179
181
  - examples/basics.rb
182
+ - examples/bootstrap.rb
180
183
  - examples/list_hypervisors.rb
181
184
  - examples/test.rb
182
185
  - examples/test2.rb
186
+ - examples/top_abusers.rb
183
187
  - test/helper.rb
184
188
  - test/test_appliance_manager.rb
185
189
  - test/test_webee.rb