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
userspace:webservice_corner:ruby-rpc [2014/10/24 07:55]
dkoch
userspace:webservice_corner:ruby-rpc [2021/08/23 08:37] (current)
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([],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.1414137301.txt.gz · Last modified: 2021/08/23 08:37 (external edit)