deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jprov...@redhat.com
Subject POC: DC lib
Date Thu, 02 May 2013 11:06:37 GMT
Hello Deltacloud community,                                                     
I started on implementing Deltacloud library (discussed few weeks ago on this   
mailing list). Because I have not enough time to continue on this, I'm sending  
an experimental patch with work I did so far. If anyone would appreciate DC as a
lib and has some time, feel free to continue on this or check it for inspiration.
                                                                                
This patch wraps DC drivers in a library (Deltacloud::Library) which defines a set
of methods for working with providers. The set of methods is taken from Michal's
ruby-deltacloud-client. This lib is called from the existing DC sinatra app -   
by calling 'driver', this lib is actually called now (naming is confusing), also
this lib can be used directly from your app or script, e.g.:                    
                                                                                
#!/usr/bin/ruby                                                                 
                                                                                
require 'deltacloud/api'                                                        
                                                                                
mock = Deltacloud.new('mock', :user => 'mockuser', :password => 'mockpassword') 
inst = mock.create_instance(mock.images.first, {                                
  :name => "libtest-#{Time.now.to_i}"                                           
})                                                                              
                                                                                
mock.instances.each do |i|                                                      
  puts "#{i.id} - #{i.name}"                                                    
end                                                                             
                                                                                
mock.stop_instance(inst.id)                                                     
mock.destroy_instance(inst.id)                                                  
                                                                                
                                                                                
This patch is far from being finished, though basic listing of objects (instances,
images, hw profiles...) and instance launching should work both in DC service    
and when using lib directly. Some methods (driver helper) were moved around in  
a hacky way to make things work both from lib and from current DC service.      
                                                                                
                                                                                
Jan


Mime
View raw message