Bug 1788484

Summary: using "set retirement date" from the "services>workloads" section raises a " undefined method `find_by' for nil:NilClass" error
Product: Red Hat CloudForms Management Engine Reporter: Felix Dewaleyne <fdewaley>
Component: UI - OPSAssignee: Milan Zázrivec <mzazrivec>
Status: CLOSED NOTABUG QA Contact: Niyaz Akhtar Ansari <nansari>
Severity: urgent Docs Contact: Red Hat CloudForms Documentation <cloudforms-docs>
Priority: urgent    
Version: 5.10.5CC: akarol, bmidwood, dmetzger, fdewaley, hkataria, lavenel, mfeifer, mpovolny, obarenbo
Target Milestone: GAKeywords: TestOnly, ZStream
Target Release: 5.12.0Flags: mfeifer: mirror+
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1794542 1794547 (view as bug list) Environment:
Last Closed: 2020-06-10 13:11:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: Bug
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: CFME Core Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1794542, 1794547    

Description Felix Dewaleyne 2020-01-07 10:40:29 UTC
Description of problem:
using "lifecycle > set retirement date" raises an internal poput " undefined method `find_by' for nil:NilClass" error

Version-Release number of selected component (if applicable):
5.10.5.1

How reproducible:
customer environemnt

Steps to Reproduce:
1.load any vm in the interface (infrastructure > vm)
2.go to lifecycle > set retirement date
3.

Actual results:
the popup appears but yo ucan still try and set the retirement date. 

Expected results:
no error

Additional info:
logged : 
[----] I, [2020-01-06T13:26:49.772720 #21839:13948b4]  INFO -- : Processing by VmOrTemplateController#x_button as JS
[----] I, [2020-01-06T13:26:49.772784 #21839:13948b4]  INFO -- :   Parameters: {"pressed"=>"vm_retire", "id"=>"101000000004915"}
[----] I, [2020-01-06T13:26:49.826869 #21839:13948b4]  INFO -- :   Rendered /opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/views/layouts/_flash_msg.html.haml (0.0ms)
[----] I, [2020-01-06T13:26:49.827162 #21839:13948b4]  INFO -- :   Rendered /opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/views/layouts/_info_msg.html.haml (0.0ms)
[----] I, [2020-01-06T13:26:49.827969 #21839:13948b4]  INFO -- :   Rendered /opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/views/layouts/angular/_gtl.html.haml (1.4ms)
[----] I, [2020-01-06T13:26:49.828041 #21839:13948b4]  INFO -- :   Rendered /opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/views/layouts/_gtl.html.haml (3.3ms)
[----] I, [2020-01-06T13:26:49.828118 #21839:13948b4]  INFO -- :   Rendered /opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/views/shared/views/_retire.html.haml (21.5ms)
[----] I, [2020-01-06T13:26:49.828928 #21839:13948b4]  INFO -- :   Rendered /opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/views/layouts/_x_adv_searchbox.html.haml (0.5ms)
[----] I, [2020-01-06T13:26:49.834800 #21839:13948b4]  INFO -- : Completed 200 OK in 62ms (Views: 0.9ms | ActiveRecord: 5.5ms)
[----] I, [2020-01-06T13:26:49.959412 #21839:13948b4]  INFO -- : Started GET "/vm_or_template/retirement_info/101000000004915" for 127.0.0.1 at 2020-01-06 13:26:49 +0100
[----] I, [2020-01-06T13:26:49.962052 #21839:13948b4]  INFO -- : Processing by VmOrTemplateController#retirement_info as HTML
[----] I, [2020-01-06T13:26:49.962103 #21839:13948b4]  INFO -- :   Parameters: {"id"=>"101000000004915"}
[----] F, [2020-01-06T13:26:49.974786 #21839:13948b4] FATAL -- : Error caught: [NoMethodError] undefined method `find_by' for nil:NilClass
/opt/rh/cfme-gemset/bundler/gems/cfme-ui-classic-2d87743f9ffa/app/controllers/mixins/actions/vm_actions/retire.rb:59:in `retirement_info'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:188:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal/rendering.rb:30:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:126:in `call'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:506:in `block (2 levels) in compile'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
/opt/rh/cfme-gemset/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
/opt/rh/cfme-gemset/bundler/gems/cfme-graphql-a2fb70b7c00c/lib/manageiq/graphql/rest_api_proxy.rb:18:in `call'
/opt/rh/cfme-gemset/gems/secure_headers-3.0.3/lib/secure_headers/middleware.rb:10:in `call'
/var/www/miq/vmdb/lib/request_started_on_middleware.rb:12:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.6/lib/rack/etag.rb:25:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.6/lib/rack/conditional_get.rb:25:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.6/lib/rack/head.rb:12:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.6/lib/rack/session/abstract/id.rb:232:in `context'
/opt/rh/cfme-gemset/gems/rack-2.0.6/lib/rack/session/abstract/id.rb:226:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'

Comment 5 Felix Dewaleyne 2020-01-07 11:18:45 UTC
rectification : 
the steps to reproduce are 

1 - go to servies > workloads
2 - find the workload in question and vm to retire & click on it
3 - go to life cycle > set retirement date

result : popup immediately appears.

This was reproducible on 5.10.17.

workaround : 

use the rails console to set retiement : 

vm=$evm.vmdb(:vm).find_by_name('VMNAMEHERE')
d=vm.retires_on
dnew=d + 1.month
vm.retires_on=dnew

Comment 9 CFME Bot 2020-01-09 15:51:00 UTC
New commit detected on ManageIQ/manageiq-ui-classic/master:

https://github.com/ManageIQ/manageiq-ui-classic/commit/b6ef36635f5399c8d1636c55510df1c41a2fa919
commit b6ef36635f5399c8d1636c55510df1c41a2fa919
Author:     Milan Zazrivec <mzazrivec>
AuthorDate: Tue Jan  7 10:30:18 2020 -0500
Commit:     Milan Zazrivec <mzazrivec>
CommitDate: Tue Jan  7 10:30:18 2020 -0500

    Fix Vm & Instance retirement from workflow screen

    We need to be able to handle the VmOrTemplate controller
    (i.e. workflow) as well.

    https://bugzilla.redhat.com/show_bug.cgi?id=1788484

 app/controllers/mixins/actions/vm_actions/retire.rb | 27 +-
 1 file changed, 12 insertions(+), 15 deletions(-)