Problem:
When I execute:
hammer host update --name ftest1.example.com --parameters "foo=bar"
I get this error:
2018-07-20T17:15:53 0a968600 [app] [I] Started PUT "/api/hosts/5654" for 192.168.1.12 at 2018-07-20 17:15:53 +0000
2018-07-20T17:15:53 0a968600 [app] [I] Processing by Api::V2::HostsController#update as JSON
2018-07-20T17:15:53 0a968600 [app] [I] Parameters: {"host"=>{"name"=>"ftest1.example.com", "compute_attributes"=>{"volumes_attributes"=>{}}, "host_parameters_attributes"=>[{"name"=>"foo", "value"=>"[FILTERED]"}], "interfaces_attributes"=>{}}, "apiv"=>"v2", "id"=>"5654"}
... [ user authorization removed ]
2018-07-20T17:15:53 0a968600 [app] [I] Update Compute instance for ftest1.example.com
2018-07-20T17:15:54 0a968600 [app] [W] Failed to update a compute ABC (VMware) instance ftest1.example.com: NotSupported: The operation is not supported on the object.
| RbVmomi::Fault: NotSupported: The operation is not supported on the object.
| /usr/share/foreman/vendor/ruby/2.3.0/gems/rbvmomi-1.11.7/lib/rbvmomi/vim/Task.rb:14:in `wait_for_completion'
| /usr/share/foreman/vendor/ruby/2.3.0/gems/fog-vsphere-2.1.0/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb:10:in `vm_reconfig_hardware'
| /usr/share/foreman/vendor/ruby/2.3.0/gems/fog-vsphere-2.1.0/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb:9:in `vm_reconfig_memory'
| /usr/share/foreman/vendor/ruby/2.3.0/gems/fog-vsphere-2.1.0/lib/fog/vsphere/models/compute/server.rb:80:in `vm_reconfig_memory'
| /usr/share/foreman/app/models/compute_resources/foreman/model/vmware.rb:462:in `save_vm'
| /usr/share/foreman/app/models/concerns/orchestration/compute.rb:203:in `setComputeUpdate'
| /usr/share/foreman/app/models/concerns/orchestration.rb:220:in `execute'
| /usr/share/foreman/app/models/concerns/orchestration.rb:145:in `block in process'
Expected outcome:
The host’s parameter is updated.
Foreman and Proxy versions:
1.16.1
Foreman and Proxy plugin versions:
Other relevant data:
Tested with hammer 0.8.0, and 0.11.0 (latest).
Updating a host parameter via the UI works but seems to send the complete list of parameters via PATCH, not PUT.
I have two other foreman instances running the same version where hammer host update
works. The contents of Parameters
have exactly the same fields in all three cases. Unfortunately this is the production instance so my ability to experiment is nonexistent.
Based on the stack trace it looks like it is trying to update the VMs memory. Why? I will try to increase the logging level to get more details but I’m putting this out there in case anybody has experienced something similar or has other debugging tips.