Operations Manager (Ops Manager) requires all service brokers to be associated with a service network. When this condition is not met, it can result in vague error messages.
Vague error messages show up when saving networks in the BOSH Director's tile or when performing product configuration during automation staging:
{"errors":{"base":["undefined method `name' for nil:NilClass"]}}
Obtain the rails debug logs. This can be found here: https://OPSMAN_FQDN/debug/rails_log
Look for the stack traces surrounding the error:
E, [2020-01-15T19:34:47.621778 #716] ERROR -- : Exception caught via rescue_from (code 500): (See app/controllers/application_controller.rb) undefined method `name' for nil:NilClass /home/tempest-web/tempest/web/app/validators/service_networks_assignment_validator.rb:26:in `block in service_networks_remain_present_for_actual_products' /usr/local/lib/ruby/2.4.0/delegate.rb:83:in `each' /usr/local/lib/ruby/2.4.0/delegate.rb:83:in `method_missing' /home/tempest-web/tempest/web/app/validators/service_networks_assignment_validator.rb:20:in `service_networks_remain_present_for_actual_products
The specific error in the rails debug logs:
/home/tempest-web/tempest/web/app/validators/service_networks_assignment_validator.rb:26:in `block in service_networks_remain_present_for_actual_products'
This indicates it is verifying service networks for service brokers at the the time of failure. Ops Manager requires all service brokers to be associated with a service network.
1. Check all service broker tiles to confirm they are associated with a service network and the service network exists. If all apparent service brokers are correctly associated with service networks then proceed to step 2.
2. Verify all recently installed tiles to make none of them declare itself as a service broker by mistake. This can be confirmed in the tile's yaml
definition file. The definition file can be obtained by unzipping the tile, changing the .pivotal to .zip and unzipping, and it is located under the metadata / directory.
Search for the property called service_broker
, this is typically among the first properties listed in this file and should be located near in the top section.
It will look similar to this:
service_broker: true
The resolution path will be determined by the source of the tile:
Support has observed this issue with tile Instana, but it could happen with other tiles too. Instana is an add-on that has been put into a tile.
This add-on simply deploys an agent to specified VMs. Therefore, It isn’t a service broker. However, in the tile’s metadata it declared it was a service broker.
name: instana-agent-tile product_version: 1.166.0 rank: 1 requires_product_versions: null serial: true service_broker: true standalone: false Interestingly enough in previous versions this was not the case. name: instana-agent-tile product_version: 1.162.1 rank: 1 requires_product_versions: null serial: true service_broker: false standalone: false
This change took place in VMware Tanzu Application Service (TAS) for VMs v1.166.0 and there is no option to configure a network in Instana's tile.
Post upgrading to this newer version, Ops Manager is unable to save networks or configure products for staging due to preflight validation checks. To Ops Manager, Instana is a service broker. When it could not verify a service network with this service broker it failed.