Currently the SDK sends the `Expect: 100-continue` for PUT requests, and then waits up to 1 second to receive the response from the server. But the oVirt server doesn't support this mechanism. The net result is that every PUT request is artificially delayed one second. The SDK should not use this mechanism.
To verify create a script that performs an update and measure how long it takes: ---8<--- require 'logger' require 'ovirtsdk4' # Create the connection to the server: connection = OvirtSDK4::Connection.new( url: 'https://engine42.local/ovirt-engine/api', username: 'admin@internal', password: 'redhat123', insecure: true, debug: true, log: Logger.new('test.log') ) # Find the data service: dcs_service = connection.system_service.data_centers_service dc = dcs_service.list(search: 'name=mydc').first dc_service = dcs_service.data_center_service(dc.id) # Measure how long it takes to update the data center: before = Time.now dc = dc_service.update(description: 'Updated description') after = Time.now elapsed = after - before puts("#{elapsed}s") # Close the connection to the server: connection.close --->8--- Execute that script, it should print the time it took to do the update, and it should be less than one second. In addition the generated `test.log` file should *not* contain this line: D, [2017-11-28T18:09:57.011331 #11968] DEBUG -- : Expect: 100-continue
Verified that script suggested by Juan finishes in less than one second. Created log does not contain "DEBUG -- : Expect: 100-continue". SDK version 4.2.0.beta2, RHVM 4.1.8.1.