Bug 968462 - Deleting content view via deletion changeset still shows the contentviews and it's Add link
Deleting content view via deletion changeset still shows the contentviews and...
Status: CLOSED NOTABUG
Product: Red Hat Satellite 6
Classification: Red Hat
Component: WebUI (Show other bugs)
6.0.1
Unspecified Unspecified
unspecified Severity medium (vote)
: Unspecified
: --
Assigned To: Walden Raines
Kedar Bidarkar
: Triaged
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-05-29 14:27 EDT by Kedar Bidarkar
Modified: 2014-04-28 05:18 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-04-28 05:18:34 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
contentviews_Add-link_visible_even_after_deletion (86.04 KB, image/png)
2013-05-29 14:27 EDT, Kedar Bidarkar
no flags Details

  None (edit)
Description Kedar Bidarkar 2013-05-29 14:27:03 EDT
Created attachment 754510 [details]
contentviews_Add-link_visible_even_after_deletion

Description of problem:
Deleting content view/published names via deletion changeset still shows the content views/published names and it's Add link, the next time we create a "New changeset" for deletion changeset.

Version-Release number of selected component (if applicable):
The same for Satellite-6.0.1-RHEL-6-20130524.3
and 

Katello nightly with verison

~]# rpm -qav | grep -i katello 
katello-qpid-client-key-pair-1.0-1.noarch
katello-1.4.2-1.git.469.ba512a5.el6.noarch
katello-cli-1.4.2-1.git.71.2a2d883.el6.noarch
katello-candlepin-cert-key-pair-1.0-1.noarch
katello-cli-common-1.4.2-1.git.71.2a2d883.el6.noarch
katello-common-1.4.2-1.git.469.ba512a5.el6.noarch
katello-selinux-1.4.3-1.git.3.ce8227b.el6.noarch
katello-all-1.4.2-1.git.469.ba512a5.el6.noarch
katello-certs-tools-1.4.2-1.el6.noarch
katello-glue-candlepin-1.4.2-1.git.469.ba512a5.el6.noarch
katello-configure-1.4.3-1.git.41.e1043b5.el6.noarch
katello-qpid-broker-key-pair-1.0-1.noarch
katello-glue-elasticsearch-1.4.2-1.git.469.ba512a5.el6.noarch
katello-glue-pulp-1.4.2-1.git.469.ba512a5.el6.noarch
signo-katello-0.0.9-1.el6.noarch
katello-repos-1.4.2-1.el6.noarch




How reproducible:


Steps to Reproduce:
1. create and promote few content views to Dev env
2. Delete 1 content view from Dev env via deletion-changeset
3. Create another Deletion-changeset, the previously deleted content view is still visible along with it's +Add link.

Actual results:
content View is visible even after deletion
Expected results:

Once content view is deleted via deletion changeset it shouldn't be visible for that env.

Additional info:
Comment 1 Kedar Bidarkar 2013-05-29 14:31:14 EDT
[ERROR 2013-05-29 23:42:20 app 3c4548745a0eaa5e2f721d71919a43cd #5094] Content view not found within environment you want to promote from. (Errors::ChangesetContentException)
 | /usr/share/katello/app/models/changeset.rb:210:in `add_content_view!'
 | /usr/share/katello/app/controllers/changesets_controller.rb:182:in `block in update'
 | /usr/share/katello/app/controllers/changesets_controller.rb:171:in `each'
 | /usr/share/katello/app/controllers/changesets_controller.rb:171:in `update'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/base.rb:167:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/rendering.rb:10:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/callbacks.rb:18:in `block in process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:514:in `block in _run__3375729139567378110__process_action__2100989476055488937__callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:215:in `block in _conditional_callback_around_3521'
 | /usr/share/katello/app/lib/util/thread_session.rb:108:in `thread_locals'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in `_conditional_callback_around_3521'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:458:in `_run__3375729139567378110__process_action__2100989476055488937__callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in `__run_callback'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:81:in `run_callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/callbacks.rb:17:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/rescue.rb:29:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/notifications.rb:123:in `block in instrument'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/notifications.rb:123:in `instrument'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/base.rb:121:in `process'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/rendering.rb:45:in `process'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal.rb:203:in `dispatch'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal.rb:246:in `block in action'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:73:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:36:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/journey-1.0.4/lib/journey/router.rb:68:in `block in call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/journey-1.0.4/lib/journey/router.rb:56:in `each'
 | /opt/rh/ruby193/root/usr/share/gems/gems/journey-1.0.4/lib/journey/router.rb:56:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:600:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/apipie-rails-0.0.18/lib/apipie/static_dispatcher.rb:56:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/warden-1.0.3/lib/warden/manager.rb:35:in `block in call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/warden-1.0.3/lib/warden/manager.rb:34:in `catch'
 | /opt/rh/ruby193/root/usr/share/gems/gems/warden-1.0.3/lib/warden/manager.rb:34:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-openid-1.3.1/lib/rack/openid.rb:98:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/sass-3.1.20/lib/sass/plugin/rack.rb:54:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/etag.rb:23:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/conditionalget.rb:35:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/head.rb:14:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/flash.rb:242:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:205:in `context'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:200:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/cookies.rb:339:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/query_cache.rb:64:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in `_run__1779314058950755144__call__2968940133788800479__callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in `__run_callback'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:81:in `run_callbacks'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/rack/logger.rb:26:in `call_app'
 | /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/rack/logger.rb:16:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/request_id.rb:22:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/runtime.rb:17:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/lock.rb:15:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:143:in `pass'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:155:in `invalidate'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:71:in `call!'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/engine.rb:479:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/application.rb:223:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/railtie/configurable.rb:30:in `method_missing'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/builder.rb:134:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:64:in `block in call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in `each'
 | /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in `call'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:80:in `block in pre_process'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:78:in `catch'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:78:in `pre_process'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:53:in `process'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:38:in `receive_data'
 | /opt/rh/ruby193/root/usr/share/gems/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
 | /opt/rh/ruby193/root/usr/share/gems/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in `start'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/server.rb:159:in `start'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/controllers/controller.rb:86:in `start'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/runner.rb:185:in `run_command'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/lib/thin/runner.rb:151:in `run!'
 | /opt/rh/ruby193/root/usr/share/gems/gems/thin-1.3.1/bin/thin:6:in `<top (required)>'
 | /usr/share/katello/script/thin:24:in `load'
 | /usr/share/katello/script/thin:24:in `<main>'
[ERROR 2013-05-29 23:42:20 app 3c4548745a0eaa5e2f721d71919a43cd #5094] Rendering 500:Content view not found within environment you want to promote from.
Comment 2 Mike McCune 2013-06-05 09:47:49 EDT
reassigning to Walden
Comment 3 Walden Raines 2013-06-05 12:39:57 EDT
Currently the content view is removed from the UI once the delayed job is completed (i.e. it is actually deleted).  There are two main options/schools of thought in these types of interactions:

 1. Remove the content view from the UI as soon as the user clicks "Delete" and restore the row if something goes wrong.
 2. Remove the content view once it is actually deleted and somehow indicate to the user that it is in the process of being deleted.

I can see the arguments on both sides.  #1 is nice because it gives instant feedback that something occurred.  #2 is nice because it is more inline with reality.

Currently we are doing option #2.  We show "Applying..." in the right pane as the changeset is being applied.  Once the changeset is applied the content view disappears.  It is possible to create two changesets in succession with the same content view and the second will fail, but that is somewhat of a "garbage in, garbage out" use case.

So, what should we change here?
Comment 4 Mike McCune 2013-06-19 00:14:45 EDT
moving to 6.0.2 so we can spend time doing this one right.  The end result is the CV gets deleted so that is acceptable for 6.0.1.

That said, for things being deleted I think the ideal option would be to show them greyed out while they are being deleted or in some way indicate in the UI and CLI that the object still exists in the application but is in the process of being deleted.

I think this would be the most clear and understandable way to our users.  

If that proves too difficult I'd vote (1) from above.
Comment 5 Walden Raines 2013-09-17 15:43:03 EDT
Unassigning bugs I'm not currently working on.
Comment 6 Walden Raines 2013-09-30 15:58:35 EDT
PR: https://github.com/Katello/katello/pull/3061
Comment 7 Walden Raines 2013-09-30 16:55:24 EDT
commit bf60680d50987dd405723f5695049b0f838a5fa7
Merge: a287a6a 9cbcfd7
Author: Walden Raines <walden@redhat.com>
Date:   Mon Sep 30 13:54:27 2013 -0700

    Merge pull request #3061 from waldenraines/bug-968462
    
    Bug #968462 - remove content view from UI after deletion.

commit 9cbcfd71bc1d9fda6587279a65252d8fc12a3e13
Author: Walden Raines <walden@redhat.com>
Date:   Mon Sep 30 15:46:43 2013 -0400

    Bug #968462 - remove content view from UI after deletion.
Comment 10 Mike McCune 2013-10-17 16:59:59 EDT
Moving this to be tested during MDP3, not critical for MDP2 success story
Comment 11 Kedar Bidarkar 2014-04-28 05:16:07 EDT
The Web-UI has changed from MDP2 to sat6.0.3, also the Conten-view functionality is different in the above two version.

MDP2 --> had deletion changeset functionality

sat6.0.3 --> has no such deletion changeset functionality, but it requires creating a new publish version, which can then be promoted to an env.

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