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
