Automation Method Error When Accessing 'host'/'hosts' From a Switch
Issue
- We have an automation method that works in CloudForms 4.0. When trying to invoke this method in CloudForms 4.1 we get the following backtrace in the
evm.log
[----] I, [2016-07-26T07:59:53.284551 #11918:164e30c] INFO -- : Updated namespace [Service/DynamicDialogs/DynamicDropDowns/list_vlans EXAMPLE/Service/DynamicDialogs]
[----] I, [2016-07-26T07:59:53.293690 #11918:164e30c] INFO -- : Invoking [inline] method [/EXAMPLE/Service/DynamicDialogs/DynamicDropDowns/list_vlans] with inputs [{}]
[----] I, [2016-07-26T07:59:53.295205 #11918:164e30c] INFO -- : <AEMethod [/EXAMPLE/Service/DynamicDialogs/DynamicDropDowns/list_vlans]> Starting
[----] I, [2016-07-26T07:59:54.094397 #11918:116cd20] INFO -- : <AEMethod list_vlans> list_vlans - List vLANs Dialog Automate Method Started
[----] E, [2016-07-26T07:59:54.120472 #11918:132c5e8] ERROR -- : The following error occurred during instance method <host> for AR object <#<Switch id: 1000000000001, name: "vSwitch0", ports: 5632, created_on: "2016-07-26 11:40:28", updated_on: "2016-07-26 11:40:28", uid_ems: "vSwitch0", allow_promiscuous: false, forged_transmits: true, mac_changes: true, switch_uuid: nil, shared: nil>>
[----] E, [2016-07-26T07:59:54.121013 #11918:132c5e8] ERROR -- : MiqAeServiceModelBase.ar_method raised: <NoMethodError>: <undefined method `host' for #<Switch:0x00000002776e18>>
[----] E, [2016-07-26T07:59:54.121238 #11918:132c5e8] ERROR -- : /opt/rh/cfme-gemset/gems/activemodel-5.0.0.rc2/lib/active_model/attribute_methods.rb:433:in `method_missing'
/var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:263:in `block in object_send'
/var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:282:in `ar_method'
/var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:292:in `ar_method'
/var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:261:in `object_send'
/var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:122:in `block (2 levels) in expose'
/opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1624:in `perform_without_block'
/opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1584:in `perform'
/opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1657:in `block (2 levels) in main_loop'
/opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `loop'
/opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `block in main_loop'
/opt/rh/cfme-gemset/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/opt/rh/cfme-gemset/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
[----] E, [2016-07-26T07:59:54.128617 #11918:143e990] ERROR -- : <AEMethod list_vlans> list_vlans - [undefined method `host' for #<Switch:0x00000002776e18>]
(druby://127.0.0.1:34523) /opt/rh/cfme-gemset/gems/activemodel-5.0.0.rc2/lib/active_model/attribute_methods.rb:433:in `method_missing'
(druby://127.0.0.1:34523) /var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:263:in `block in object_send'
(druby://127.0.0.1:34523) /var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:282:in `ar_method'
(druby://127.0.0.1:34523) /var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:292:in `ar_method'
(druby://127.0.0.1:34523) /var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:261:in `object_send'
(druby://127.0.0.1:34523) /var/www/miq/vmdb/lib/miq_automation_engine/engine/miq_ae_service_model_base.rb:122:in `block (2 levels) in expose'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1624:in `perform_without_block'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1584:in `perform'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1657:in `block (2 levels) in main_loop'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `loop'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `block in main_loop'
(druby://127.0.0.1:34523) /opt/rh/cfme-gemset/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
(druby://127.0.0.1:34523) /opt/rh/cfme-gemset/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
(druby://127.0.0.1:42305) -:82:in `block in <main>'
(druby://127.0.0.1:42305) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1624:in `call'
(druby://127.0.0.1:42305) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1624:in `perform_without_block'
(druby://127.0.0.1:42305) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1584:in `perform'
(druby://127.0.0.1:42305) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1657:in `block (2 levels) in main_loop'
(druby://127.0.0.1:42305) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `loop'
(druby://127.0.0.1:42305) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `block in main_loop'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/invokemethod.rb:10:in `block_yield'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/invokemethod.rb:17:in `block in perform_with_block'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/invokemethod.rb:14:in `each'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/invokemethod.rb:14:in `perform_with_block'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1582:in `perform'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1657:in `block (2 levels) in main_loop'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `loop'
(druby://127.0.0.1:34523) /opt/rh/rh-ruby22/root/usr/share/ruby/drb/drb.rb:1653:in `block in main_loop'
(druby://127.0.0.1:34523) /opt/rh/cfme-gemset/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
(druby://127.0.0.1:34523) /opt/rh/cfme-gemset/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
<code: $evm.vmdb(:Lan).all.each do |net|>:29:in `<main>'
[----] I, [2016-07-26T07:59:54.176378 #11918:164e30c] INFO -- : <AEMethod [/EXAMPLE/Service/DynamicDialogs/DynamicDropDowns/list_vlans]> Ending
[----] I, [2016-07-26T07:59:54.177563 #11918:164e30c] INFO -- : Aborting instantiation because [Method exited with rc=MIQ_ABORT]
Environment
- Red Hat CloudForms 4.1 (cfme-5.6.0)
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.