User Tools

Site Tools


userspace:webservice_corner:ruby-rpc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
userspace:webservice_corner:ruby-rpc [2014/10/24 07:55]
dkoch
userspace:webservice_corner:ruby-rpc [2015/02/06 10:29]
dkoch [Example]
Line 1: Line 1:
 ====== Ruby JSON-RPC ====== ====== Ruby JSON-RPC ======
 +This is an example of a JSON-RPC send from [[https://www.ruby-lang.org|Ruby]] code.
 +
 ===== Dependencies  ===== ===== Dependencies  =====
 Use gem to install json first. Use gem to install json first.
Line 11: Line 13:
 require 'net/http'                                                                                                                                                                                              require 'net/http'                                                                                                                                                                                             
 require 'uri'                                                                                                                                                                                                   require 'uri'                                                                                                                                                                                                  
-require 'json'                                                                                                                                                                                                 +require 'json
 +require 'openssl                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                
 class OpsiRPC                                                                                                                                                                                                   class OpsiRPC                                                                                                                                                                                                  
Line 39: Line 42:
 end                                                                                                                                                                                                             end                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                
-  = OpsiRPC.new('https://test:w00t@opsi-server:4447/rpc'                                                                                                                                              +  opsirpc = OpsiRPC.new('https://test:w00t@opsi-server:4447/rpc'                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                
 # Examples: # Examples:
  
-prodcuts=h.product_getObjects                                                                                                                                                                                   +# Show all product ids 
-prodcuts.each do |product|                                                                                                                                                                                     +opsirpc.product_getObjects.each do |product|                                                                                                                                                                                     
   puts product['id'                                                                                                                                                                                             puts product['id'                                                                                                                                                                                          
-end       +end 
 + 
 +# Query only particular fields ( "type" in this example ) 
 +# ( attributes: ) 
 +opsirpc.product_getObjects("type").each do |result| 
 +  puts result 
 +end 
 + 
 +# Get products where packageVersion=2.1 
 +# ( filter: ) 
 +opsirpc.product_getObjects(nil,packageVersion:"2.1").each do |result| 
 +  puts result 
 +end 
 + 
 +# Install Y where X is installed 
 +opsirpc.productOnClient_getHashes(['clientId'], {productId: 'X', installationStatus: "installed"}).each do |match| 
 +  opsirpc.setProductActionRequestWithDependencies('Y', match['clientId'], 'setup'
 +end
 </code> </code>
userspace/webservice_corner/ruby-rpc.txt · Last modified: 2021/08/23 08:37 (external edit)