Bug 1837410 - Reconfigure a service display all fields despite some are tagged as "non reconfigurable"
Summary: Reconfigure a service display all fields despite some are tagged as "non reco...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: UI - OPS
Version: 5.11.3
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: GA
: 5.11.6
Assignee: Milan Zázrivec
QA Contact: Niyaz Akhtar Ansari
Red Hat CloudForms Documentation
URL:
Whiteboard:
: 1733288 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-05-19 13:01 UTC by mheppler
Modified: 2023-10-06 20:07 UTC (History)
14 users (show)

Fixed In Version: 5.11.6.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-06-10 13:39:11 UTC
Category: ---
Cloudforms Team: CFME Core
Target Upstream Version:
Embargoed:
pm-rhel: cfme-5.11.z+
mshriver: needinfo-


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2020:2480 0 None None None 2020-06-10 13:39:16 UTC

Description mheppler 2020-05-19 13:01:07 UTC
Description of problem:

As described by user:

When designing the form for a service, we defined a set of fields. Some of them cannot be reconfigured. We set for these ones  the option to not be reconfigurable (in the advanced property). Despite this configuration, when reconfiguring a deployed service, you can change ALL fields.
See screenshots in attachement.

detailed explain:


It is something else ;)
In cloudforms you can:
- order a service
- once deployed, you can select it from "My Services", click in the menu bar on the top on "configuration" and click on "reconfigure the service"
So when I say "reconfigure the service" I'm talking about the out of the box feature of Cloudforms you can access from the menu.

The facts are:
- when you deploy a new services, you have some information to give in input
- after being deployed, you may want to change some of these values (for example you made a mistake in the name of the service). But depending on the implementation and/or limitation of the products, some parameters cannot be changed.

I take one example: currently we are developing a service to configure a new network into the datacenter (let's say you want to create a new network 192.168.50.0/24). When you order it, you give a name, a mask and the network address (ipv4). Currently, it is not possible, after deployment, to modify the mask or the network address (there is no process implemented for the moment to modify it on an existing network).
Please see the new screenshots I will attach now. I switch the interface to english to be more readable for you.

That's why, we think, in cloudforms for any field of a form, you can set a property that a field is not reconfigurable (see my screenshot of my initial post). The problem is: it has not effect and thus there are 2 possibilities: 
1) this is an upstream bug in cloudforms
2) there is some misconfiguration or problem on our instance that prevent that functionality to work correctly


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

On a newly freshed installed CloudForms 5.0 with a migrated database originated from our previous CloudForms 4.7 cluster.

CFME version: 5.11.3.1

How reproducible:

always

Steps to Reproduce:
1. Create Service catalog item with value set as Recofigurable to No.
2.
3.

Actual results:

Value is reconfigurable in ordered service.

Expected results:

Unable to reconfigure values in ordered service. Or workaround is welcome.


Additional info:

This is a no go for us for going to production (which was planned in 2 weeks, we test it in preprod for some weeks now).

This is very urgent for customer, customer is able to reproduce error in new fresh instance without customization.

Comment 2 mheppler 2020-05-19 13:03:09 UTC
Error from evm.log:


[----] E, [2020-05-14T14:39:32.299814 #30159:2b23a8d15938] ERROR -- : MIQ(MiqAeEngine.deliver) Error delivering {"dialog_tenant"=>"smals.be", "dialog_network_name"=>"", "dialog_network_provider"=>"openstack", "Array::dialog_compute_providers"=>"[\"openstack\"]", "dialog_type"=>"app", "dialog_router"=>"smals-router@openstack", "dialog_prefixlen"=>28, "dialog_dns_provider"=>nil, "User::user"=>1000000000029, "ServiceTemplate::service_template"=>1000000000053} for object [ServiceTemplate.1000000000053] with state [] to Automate: Method exited with rc=Unknown RC: [1]
[----] E, [2020-05-14T14:39:32.301608 #30159:2b23a8d15938] ERROR -- : [NoMethodError]: undefined method `root' for true:TrueClass  Method:[rescue in values_from_automate]
[----] E, [2020-05-14T14:39:32.301851 #30159:2b23a8d15938] ERROR -- : /var/www/miq/vmdb/app/models/dynamic_dialog_field_value_processor.rb:14:in `values_from_automate'
/var/www/miq/vmdb/app/models/dynamic_dialog_field_value_processor.rb:3:in `values_from_automate'
/var/www/miq/vmdb/app/models/dialog_field.rb:191:in `values_from_automate'
/var/www/miq/vmdb/app/models/dialog_field_sorted_item.rb:117:in `raw_values'
/var/www/miq/vmdb/app/models/dialog_field_sorted_item.rb:6:in `initialize_value_context'
/var/www/miq/vmdb/app/models/dialog.rb:118:in `each_value'
/var/www/miq/vmdb/app/models/dialog.rb:118:in `initialize_value_context'
/var/www/miq/vmdb/app/models/resource_action_workflow.rb:154:in `load_proper_dialog_values'
/var/www/miq/vmdb/app/models/resource_action_workflow.rb:133:in `load_dialog'
/var/www/miq/vmdb/app/models/resource_action_workflow.rb:16:in `initialize'
/var/www/miq/vmdb/app/models/dialog.rb:144:in `new'
/var/www/miq/vmdb/app/models/dialog.rb:144:in `content'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/service_dialogs_controller.rb:24:in `fetch_service_dialogs_content'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller/renderer.rb:279:in `fetch_direct_virtual_attribute'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller/renderer.rb:267:in `block in expand_virtual_attributes'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller/renderer.rb:263:in `each'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller/renderer.rb:263:in `expand_virtual_attributes'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller/renderer.rb:79:in `resource_to_jbuilder'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller/renderer.rb:17:in `render_resource'
/opt/rh/cfme-gemset/bundler/gems/cfme-api-a4b8c23b7b8b/app/controllers/api/base_controller.rb:90:in `show'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:186:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal/rendering.rb:30:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/opt/rh/cfme-gemset/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:131:in `run_callbacks'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:19:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal/rescue.rb:20:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
/opt/rh/cfme-gemset/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `block in instrument'
/opt/rh/cfme-gemset/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/opt/rh/cfme-gemset/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `instrument'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
/opt/rh/cfme-gemset/gems/activerecord-5.1.7/lib/active_record/railties/controller_runtime.rb:22:in `process_action'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:124:in `process'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal.rb:189:in `dispatch'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_controller/metal.rb:253:in `dispatch'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/routing/route_set.rb:31:in `serve'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/journey/router.rb:50:in `block in serve'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/journey/router.rb:33:in `each'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/journey/router.rb:33:in `serve'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/routing/route_set.rb:844:in `call'
/opt/rh/cfme-gemset/bundler/gems/cfme-graphql-6f72cac80e16/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.7/lib/rack/etag.rb:25:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/conditional_get.rb:25:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/head.rb:12:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in `context'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/cookies.rb:613:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
/opt/rh/cfme-gemset/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:97:in `run_callbacks'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/callbacks.rb:24:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
/opt/rh/cfme-gemset/gems/railties-5.1.7/lib/rails/rack/logger.rb:36:in `call_app'
/opt/rh/cfme-gemset/gems/railties-5.1.7/lib/rails/rack/logger.rb:26:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/request_id.rb:25:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/method_override.rb:22:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/runtime.rb:22:in `call'
/opt/rh/cfme-gemset/gems/activesupport-5.1.7/lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
/opt/rh/cfme-gemset/gems/actionpack-5.1.7/lib/action_dispatch/middleware/executor.rb:12:in `call'
/opt/rh/cfme-gemset/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in `call'
/opt/rh/cfme-gemset/gems/railties-5.1.7/lib/rails/engine.rb:522:in `call'
/usr/share/gems/gems/puma-3.7.1/lib/puma/configuration.rb:232:in `call'
/usr/share/gems/gems/puma-3.7.1/lib/puma/server.rb:578:in `handle_request'
/usr/share/gems/gems/puma-3.7.1/lib/puma/server.rb:415:in `process_client'
/usr/share/gems/gems/puma-3.7.1/lib/puma/server.rb:275:in `block in run'
/usr/share/gems/gems/puma-3.7.1/lib/puma/thread_pool.rb:120:in `block in spawn_thread'
[----] I, [2020-05-14T14:39:32.306623 #23845:2b23a81b45bc]  INFO -- : MIQ(MiqQueue.put) Message id: [1000021189297],  id: [], Zone: [default], Role: [automate], Server: [], MiqTask id: [], Ident: [generic], Target id: [], Instance id: [], Task id: [], Command: [MiqAeEngine.deliver], Timeout: [3600], Priority: [20], State: [ready], Deliver On: [], Data: [], Args: [{:object_type=>"MiqServer", :object_id=>1000000000002, :attrs=>{:event_type=>"evm_worker_start", :event_details=>"Worker started: ID [1000002930990], PID [17039], GUID [1335dc28-a379-41dc-8aea-b43dc50db2bb]", :type=>"MiqRemoteConsoleWorker", "MiqEvent::miq_event"=>1000006712881, :miq_event_id=>1000006712881, "EventStream::event_stream"=>1000006712881, :event_stream_id=>1000006712881}, :instance_name=>"Event", :user_id=>1000000000001, :miq_group_id=>1000000000002, :tenant_id=>1000000000001, :automate_message=>nil}]

Comment 5 dmetzger 2020-05-21 13:59:07 UTC
Does this issue reproduce on the latest 5.11.5 errata?

Comment 8 William Fitzgerald 2020-05-22 13:23:29 UTC
Hello,

Can you ask the customer for a copy of the dialog there are using?

Was this a dialog created from an Ansible template?

Thanks

Comment 11 CFME Bot 2020-05-26 12:31:29 UTC
New commit detected on ManageIQ/ui-components/master:

https://github.com/ManageIQ/ui-components/commit/f23d8914cc8c4368c69238dee88e2b0f302450bb
commit f23d8914cc8c4368c69238dee88e2b0f302450bb
Author:     Milan Zazrivec <mzazrivec>
AuthorDate: Fri May 22 15:39:49 2020 +0000
Commit:     Milan Zazrivec <mzazrivec>
CommitDate: Fri May 22 15:39:49 2020 +0000

    dialog-user: add flag for dialog reconfigure

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

 src/dialog-user/components/dialog-user/dialog.html | 2 +-
 src/dialog-user/components/dialog-user/dialogField.html | 16 +-
 src/dialog-user/components/dialog-user/dialogField.ts | 7 +-
 src/dialog-user/components/dialog-user/dialogUser.ts | 3 +-
 4 files changed, 17 insertions(+), 11 deletions(-)

Comment 12 CFME Bot 2020-05-26 12:35:47 UTC
New commit detected on ManageIQ/manageiq-ui-classic/master:

https://github.com/ManageIQ/manageiq-ui-classic/commit/2aa240f1e7f612c60863a4ab15fa6f5669d96190
commit 2aa240f1e7f612c60863a4ab15fa6f5669d96190
Author:     Milan Zazrivec <mzazrivec>
AuthorDate: Fri May 22 14:41:59 2020 +0000
Commit:     Milan Zazrivec <mzazrivec>
CommitDate: Fri May 22 14:41:59 2020 +0000

    Add reconfigureMode parameter to dialog-user

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

 app/views/shared/dialogs/_reconfigure_dialog.html.haml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comment 13 CFME Bot 2020-05-26 13:06:23 UTC
New commit detected on ManageIQ/ui-components/ivanchuk:

https://github.com/ManageIQ/ui-components/commit/90e3d6988512af0bfae0a04670376e2078be07f7
commit 90e3d6988512af0bfae0a04670376e2078be07f7
Author:     Martin Hradil <mhradil>
AuthorDate: Tue May 26 12:30:01 2020 +0000
Commit:     Martin Hradil <mhradil>
CommitDate: Tue May 26 12:30:01 2020 +0000

    Merge pull request #440 from mzazrivec/add_support_for_dialog_reconfigure

    dialog-user: add flag for dialog reconfigure
    (cherry picked from commit 5e79adf0217ff1068a5c336e8ef5c291fe2a5933)

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

 src/dialog-user/components/dialog-user/dialog.html | 2 +-
 src/dialog-user/components/dialog-user/dialogField.html | 16 +-
 src/dialog-user/components/dialog-user/dialogField.ts | 7 +-
 src/dialog-user/components/dialog-user/dialogUser.ts | 3 +-
 4 files changed, 17 insertions(+), 11 deletions(-)

Comment 14 mheppler 2020-05-26 14:22:23 UTC
Created attachment 1692289 [details]
Examples of dialogs with reconfigurable and non-reconfigurable fields

Hello,

requested dialogs attached to case...


--mheppler

Comment 16 CFME Bot 2020-05-26 18:25:47 UTC
New commit detected on ManageIQ/manageiq-ui-classic/ivanchuk:

https://github.com/ManageIQ/manageiq-ui-classic/commit/99af0dbde9f25b977a210bc99fca341308c512f5
commit 99af0dbde9f25b977a210bc99fca341308c512f5
Author:     Martin Hradil <mhradil>
AuthorDate: Tue May 26 12:32:50 2020 +0000
Commit:     Martin Hradil <mhradil>
CommitDate: Tue May 26 12:32:50 2020 +0000

    Merge pull request #7074 from mzazrivec/add_reconfigure_mode_to_dialog_user

    Add reconfigureMode parameter to dialog-user

    (cherry picked from commit 7cbf7da2aac94fbc1a40516b6fc0311a0c63f2c7)

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

 app/views/shared/dialogs/_reconfigure_dialog.html.haml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comment 18 Tina Fitzgerald 2020-05-27 21:41:35 UTC
Hi Mike,

Since you're only really interested in how the Service dialog presents, you can use any value for the reconfigure entry point because that isn't used until after the dialog has been submitted.  By any value, I mean that you can use the dropdown on the reconfigure entry point field which will show you only state machines instances. You can select any instance because it doesn't have to do anything.  

Let me know if you have any questions. 

Thanks,
Tina

Comment 20 Mike Shriver 2020-05-28 00:44:22 UTC
Tested in 5.11.6.0, verified original behavior in 5.11.5.2

Services ordered with dialogs that included both reconfigurable and non-reconfigurable fields will have non-reconfigurable fields disabled when the service is reconfigured.

Comment 26 errata-xmlrpc 2020-06-10 13:39:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:2480

Comment 27 Milan Zázrivec 2020-07-14 11:14:20 UTC
*** Bug 1733288 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.