You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by Oved Ourfali <oo...@redhat.com> on 2012/12/10 11:07:01 UTC

[PATCH] ovirt driver: support user-level API

This patch contains the necessary changes to support the oVirt engine
user-level API.

The current way of configuring that is to use the API_PROVIDER
environment variable:
1. API_PROVIDER="http://server:port/api;;USER" - User API (no DC-id)
2. API_PROVIDER="http://server:port/api" - no DC-id, Admin API
3. API_PROVIDER="http://server:port/api;dc-id;USER" - User API (dc-id is
ignored by rbovirt)
4. API_PROVIDER="http://server:port/api;dc-id" - Admin API working in a specific
DC scope
---
 server/deltacloud-core.gemspec                      | 2 +-
 server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb | 9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/server/deltacloud-core.gemspec b/server/deltacloud-core.gemspec
index 7d645dd..67ae8eb 100644
--- a/server/deltacloud-core.gemspec
+++ b/server/deltacloud-core.gemspec
@@ -85,7 +85,7 @@ Gem::Specification.new do |s|
   # dependencies for various cloud providers:
 
   # RHEV-M and oVirt
-  s.add_dependency('rbovirt', '>=0.0.13')
+  s.add_dependency('rbovirt', '>=0.0.16')
 
   # Amazon EC2 S3
   s.add_dependency('aws', '>=2.6.0')
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index 37e6622..a765a7b 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -208,8 +208,13 @@ class RhevmDriver < Deltacloud::BaseDriver
   def new_client(credentials)
     safely do
       raise 'No API provider set for this request.' unless api_provider
-      url, datacenter = api_provider.split(';')
-      OVIRT::Client.new(credentials.user, credentials.password, url, datacenter)
+      url, datacenter, filtered = api_provider.split(';')
+      if filtered.nil?
+        OVIRT::Client.new(credentials.user, credentials.password, url, datacenter)
+      else
+        filtered_api = filtered.upcase == 'USER'
+        OVIRT::Client.new(credentials.user, credentials.password, url, datacenter, nil, filtered_api)
+      end
     end
   end
 
-- 
1.7.11.2