Bug 1010883

Summary: [fork][origin_ui_72]There should be correct error message when adding cartridge to application with user has only "can view" role to the domain.
Product: OpenShift Online Reporter: Yujie Zhang <yujzhang>
Component: Management ConsoleAssignee: Jordan Liggitt <jliggitt>
Status: CLOSED CURRENTRELEASE QA Contact: libra bugs <libra-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.xCC: jliggitt, wsun, xtian
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-10-17 13:30:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Yujie Zhang 2013-09-23 09:04:17 UTC
Description of problem:

Added view scope of an application to an account, and tried to add cartridge to the application using the account, and met "We appear to be having technical difficulties" error.The error meseage "You are not permitted to perform this action (create_cartridge on application)" can be returned according to the log, but can not be rendered to console successfully.

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

fork_ami_origin_ui_72_membership_844

How reproducible:

always

Steps to Reproduce:
1.Added view scope of an application to an account
2.Try to add cartridge to the application using the account
3.

Actual results:

Met "We appear to be having technical difficulties" error.Log is as following:

2013-09-23 04:19:37.752 [INFO ] Started POST "/app/console/application/523fd61a6311e78484000032-php53567456/cartridges" for 66.187.233.202 at 2013-09-23 04:19:37 -0400 (pid:12030)
2013-09-23 04:19:37.756 [INFO ] Processing by CartridgesController#create as HTML (pid:12030)
2013-09-23 04:19:37.757 [INFO ] Parameters: {"utf8"=>"✓", "authenticity_token"=>"XL4hEbyuTR6ySXqb4D86oe+hCiZYjeaX5cK8dJrheD8=", "cartridge"=>{"name"=>"mongodb-2.2", "url"=>""}, "application_id"=>"523fd61a6311e78484000032-php53567456"} (pid:12030)
2013-09-23 04:19:37.757 [DEBUG] Session contents: {"ticket"=>"0|SiIQrnJqfvi51TYib1sFIFG9WMFIeHvaoM6", "api_ticket"=>"8b03f2d478bbe1d6f027e2b3858cba794092f56613c783b20737dd13e1ca4506", "login"=>"yujzhang+forktest1", "streamline_type"=>:full, "terms"=>true, "session_id"=>"3fad6f6c196817c90c75837f6b1f3b62", "has_sshkey"=>false, "caps"=>[-1, 16, 16, 3, [:small, :medium], "silver", true], "_csrf_token"=>"XL4hEbyuTR6ySXqb4D86oe+hCiZYjeaX5cK8dJrheD8=", "currency_cd"=>"usd"} (pid:12030)
2013-09-23 04:19:37.820 [DEBUG] OpenShift API (60.3ms) get https://localhost:443/broker/rest/application/523fd61a6311e78484000032.json [ code: 200 ] (pid:12030)
2013-09-23 04:19:37.849 [DEBUG] OpenShift API (27.6ms) get https://localhost:443/broker/rest/cartridges.json [ code: 200 ] (pid:12030)
2013-09-23 04:19:37.918 [DEBUG] OpenShift API (54.4ms) post https://localhost:443/broker/rest/application/523fd61a6311e78484000032/cartridges.json [ code: 403 ] (pid:12030)
2013-09-23 04:19:37.918 [DEBUG] Server error: : #0: You are not permitted to perform this action (create_cartridge on application) (pid:12030)
2013-09-23 04:19:37.919 [DEBUG] Found errors on the response object: {:base=>["You are not permitted to perform this action (create_cartridge on application)"]} (pid:12030)
2013-09-23 04:19:37.919 [DEBUG] #<ActiveResource::Errors:0x000000074081a0 @base=#<Cartridge:0x000000073fcc38 @as=#<WebUser::Integrated:0x0000000704a978 @rhlogin="yujzhang+forktest1", @ticket="0|SiIQrnJqfvi51TYib1sFIFG9WMFIeHvaoM6", @api_ticket="8b03f2d478bbe1d6f027e2b3858cba794092f56613c783b20737dd13e1ca4506", @streamline_type=:full, @remote_ip="66.187.233.202", @errors=#<ActiveModel::Errors:0x000000070537a8 @base=#<WebUser::Integrated:0x0000000704a978 ...>, @messages={}>>, @attributes={"name"=>"mongodb-2.2", "url"=>nil}, @prefix_options={:application_id=>"523fd61a6311e78484000032", :application_name=>"php53567456", :domain_id=>"forktest2"}, @persisted=false, @messages=nil, @errors=#<ActiveResource::Errors:0x000000074081a0 ...>, @remote_errors=#<ActiveResource::ForbiddenAccess: Failed.  Response code = 403.  Response message = .>, @validation_context=nil, @connection=#<RestApi::UserAwareConnection:0x00000007407db8 @password=nil, @user=nil, @uri_parser=#<URI::Parser:0x00000007407d90>, @site=#<URI::HTTPS:0x00000003899948 URL:https://localhost/broker/rest>, @format=#<RestApi::OpenshiftJsonFormat:0x000000036af4e8 @root_attrs=[]>, @connection=#<ActiveResource::PersistentConnection:0x00000002465058 @password=nil, @user=nil, @uri_parser=#<URI::Parser:0x00000002465008>, @site=#<URI::HTTPS:0x00000003899948 URL:https://localhost/broker/rest>, @format=#<RestApi::OpenshiftJsonFormat:0x000000036af4e8 @root_attrs=[]>, @idle_timeout=4, @read_timeout=240, @open_timeout=3, @connection_name="rest_api", @http=#<Net::HTTP::Persistent:0x00000002644338 @name="rest_api", @debug_output=nil, @proxy_uri=nil, @headers={}, @override_headers={}, @http_versions={"localhost:443"=>"1.1"}, @keep_alive=30, @open_timeout=3, @read_timeout=240, @idle_timeout=4, @socket_options=[[6, 1, 1]], @generation_key=:net_http_persistent_rest_api_generations, @ssl_generation_key=:net_http_persistent_rest_api_ssl_generations, @request_key=:net_http_persistent_rest_api_requests, @timeout_key=:net_http_persistent_rest_api_timeouts, @certificate=nil, @ca_file=nil, @private_key=nil, @ssl_version=nil, @verify_callback=nil, @verify_mode=0, @cert_store=nil, @generation=0, @ssl_generation=1, @reuse_ssl_sessions=true, @retry_change_requests=false>, @default_header={}>, @as=#<WebUser::Integrated:0x0000000704a978 @rhlogin="yujzhang+forktest1", @ticket="0|SiIQrnJqfvi51TYib1sFIFG9WMFIeHvaoM6", @api_ticket="8b03f2d478bbe1d6f027e2b3858cba794092f56613c783b20737dd13e1ca4506", @streamline_type=:full, @remote_ip="66.187.233.202", @errors=#<ActiveModel::Errors:0x000000070537a8 @base=#<WebUser::Integrated:0x0000000704a978 ...>, @messages={}>>, @default_header={}>>, @messages={:base=>["You are not permitted to perform this action (create_cartridge on application)"]}, @codes={"base"=>[0]}> (pid:12030)
2013-09-23 04:19:37.988 [INFO ] Rendered /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/views/cartridge_types/_cartridge_type.html.haml (65.6ms) (pid:12030)
2013-09-23 04:19:37.989 [INFO ] Rendered cartridge_types/_cartridge_type_notifications.html.haml (0.2ms) (pid:12030)
2013-09-23 04:19:37.999 [INFO ] Rendered /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/views/cartridge_types/show.html.haml within layouts/console (79.2ms) (pid:12030)
2013-09-23 04:19:38.338 [ERROR] Unhandled exception reference #c13c8c40cc01aaa41eb1d6ff1ee99a09: undefined method `consumed_gears' for nil:NilClass
/var/www/openshift/site/app/helpers/application_helper.rb:71:in `gear_increase_cost'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/helpers/console/model_helper.rb:169:in `gear_increase_indicator'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/views/cartridge_types/show.html.haml:27:in `block (2 levels) in __opt_rh_ruby____root_usr_share_gems_gems_openshift_origin_console________app_views_cartridge_types_show_html_haml__1364516184419252990_58365160'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers.rb:345:in `call'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers.rb:345:in `block in capture_haml'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers.rb:569:in `with_haml_buffer'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers.rb:341:in `capture_haml'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/xss_mods.rb:61:in `capture_haml_with_haml_xss'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/lib/console/formtastic/bootstrap_form_builder.rb:40:in `field_set_and_list_wrapping'
  /opt/rh/ruby193/root/usr/share/gems/gems/formtastic-1.2.4/lib/formtastic.rb:319:in `buttons'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/lib/console/formtastic/bootstrap_form_builder.rb:21:in `buttons'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/views/cartridge_types/show.html.haml:23:in `block in __opt_rh_ruby____root_usr_share_gems_gems_openshift_origin_console________app_views_cartridge_types_show_html_haml__1364516184419252990_58365160'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/action_view_mods.rb:181:in `call'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/action_view_mods.rb:181:in `block (2 levels) in form_for_with_haml'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers.rb:255:in `with_tabs'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/action_view_mods.rb:181:in `block in form_for_with_haml'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/helpers/capture_helper.rb:40:in `block in capture'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/helpers/capture_helper.rb:187:in `with_output_buffer'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/xss_mods.rb:109:in `with_output_buffer_with_haml_xss'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/helpers/capture_helper.rb:40:in `capture'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/action_view_mods.rb:105:in `capture_with_haml'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/helpers/form_helper.rb:607:in `fields_for'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/helpers/form_helper.rb:378:in `form_for'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/action_view_mods.rb:183:in `form_for_with_haml'
  /opt/rh/ruby193/root/usr/share/gems/gems/haml-3.1.7/lib/haml/helpers/xss_mods.rb:132:in `form_for_with_haml_xss'
  /opt/rh/ruby193/root/usr/share/gems/gems/formtastic-1.2.4/lib/formtastic.rb:1943:in `block in semantic_form_for'
  /opt/rh/ruby193/root/usr/share/gems/gems/formtastic-1.2.4/lib/formtastic.rb:1908:in `with_custom_field_error_proc'
  /opt/rh/ruby193/root/usr/share/gems/gems/formtastic-1.2.4/lib/formtastic.rb:1942:in `semantic_form_for'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/views/cartridge_types/show.html.haml:11:in `__opt_rh_ruby____root_usr_share_gems_gems_openshift_origin_console________app_views_cartridge_types_show_html_haml__1364516184419252990_58365160'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/template.rb:145:in `block in render'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/notifications.rb:125:in `instrument'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/template.rb:143:in `render'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/template_renderer.rb:47:in `block (2 levels) in render_template'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
  /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_view/renderer/abstract_renderer.rb:38:in `instrument'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/template_renderer.rb:46:in `block in render_template'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/template_renderer.rb:54:in `render_with_layout'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/template_renderer.rb:45:in `render_template'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/template_renderer.rb:18:in `render'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/renderer.rb:36:in `render_template'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_view/renderer/renderer.rb:17:in `render'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/rendering.rb:110:in `_render_template'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/streaming.rb:225:in `_render_template'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/rendering.rb:103:in `render_to_body'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/renderers.rb:28:in `render_to_body'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/compatibility.rb:50:in `render_to_body'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/rendering.rb:88:in `render'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/rendering.rb:16:in `render'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/core_ext/benchmark.rb:5:in `block in ms'
  /opt/rh/ruby193/root/usr/share/ruby/benchmark.rb:295:in `realtime'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/core_ext/benchmark.rb:5:in `ms'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:40:in `block in render'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:83:in `cleanup_view_runtime'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/models/rest_api/railties/controller_runtime.rb:17:in `cleanup_view_runtime'
  /var/www/openshift/site/lib/streamline/railties/controller_runtime.rb:17:in `cleanup_view_runtime'
  /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:39:in `render'
  /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/controllers/cartridges_controller.rb:32:in `create'
  /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:428:in `block (3 levels) in _run__4023584100732116061__process_action__1757500840107276642__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_253'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:326:in `around'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:310:in `_callback_around_67'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in `_conditional_callback_around_253'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:416:in `block (2 levels) in _run__4023584100732116061__process_action__1757500840107276642__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_252'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:326:in `around'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:310:in `_callback_around_65'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in `_conditional_callback_around_252'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:415:in `block in _run__4023584100732116061__process_action__1757500840107276642__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_251'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:326:in `around'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:310:in `_callback_around_41'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in `_conditional_callback_around_251'
  /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:414:in `_run__4023584100732116061__process_action__1757500840107276642__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/openshift-origin-console-1.15.1/app/models/rest_api/railties/controller_runtime.rb:12:in `process_action'
  /var/www/openshift/site/lib/streamline/railties/controller_runtime.rb:12: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/rack-recaptcha-0.6.5/lib/rack/recaptcha.rb:50:in `_call'
  /opt/rh/ruby193/root/usr/share/gems/gems/rack-recaptcha-0.6.5/lib/rack/recaptcha.rb:37: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/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__209408031758499814__call__2168049308470060070__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/rack-1.4.1/lib/rack/sendfile.rb:102: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-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/passenger-3.0.21/lib/phusion_passenger/rack/request_handler.rb:97:in `process_request'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/abstract_request_handler.rb:521:in `accept_and_process_next_request'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/rack/application_spawner.rb:79:in `block in spawn_application'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/utils.rb:470:in `safe_fork'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/rack/application_spawner.rb:64:in `spawn_application'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/spawn_manager.rb:264:in `spawn_rack_application'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  /opt/rh/ruby193/root/usr/share/gems/gems/passenger-3.0.21/helper-scripts/passenger-spawn-server:102:in `<main>' (pid:12030)
2013-09-23 04:19:38.894 [INFO ] Rendered console/error.html.haml within layouts/console (1.1ms) (pid:12030)
2013-09-23 04:19:38.777 [INFO ] Rendered /opt/rh/ruby193/root/usr/share/gems/gems/openshift-origin-console-1.15.1/app/views/layouts/_head.html.haml (1.3ms) (pid:12030)
2013-09-23 04:19:38.791 [INFO ] Rendered layouts/console/_stylesheets.html.haml (1.1ms) (pid:12030)
2013-09-23 04:19:38.856 [INFO ] Rendered layouts/console/_header.html.haml (6.1ms) (pid:12030)
2013-09-23 04:19:38.863 [INFO ] Rendered layouts/_footer.html.haml (0.2ms) (pid:12030)
2013-09-23 04:19:38.869 [INFO ] Rendered layouts/console/_javascripts.html.haml (0.5ms) (pid:12030)
2013-09-23 04:19:38.872 [INFO ] Completed 200 OK in 330ms (Views: 80.1ms) (pid:12030)


Expected results:

The should be correct error message returned to console.

Additional info:

Comment 1 Yujie Zhang 2013-09-23 09:50:39 UTC
To make the steps clear, you can reproduce as following:
1. Add an account to be "Can edit" role of a domain
2. Try to add cartridge to the application of the domain using above account.

Comment 2 Jordan Liggitt 2013-09-24 20:04:15 UTC
Will display correct message for all edit operations with view-only access:
Add/Edit/Delete alias
Add cartridge
Restart app
Delete app
Edit scaling parameters

Comment 3 Jordan Liggitt 2013-09-25 14:29:45 UTC
Will merge in https://github.com/openshift/li/pull/1903

Comment 4 Yujie Zhang 2013-09-26 05:43:07 UTC
Tested on fork_ami_origin_ui_72_membership_863, tried all the above operateions with view-only access, error message can be displayed correctly, so verify this bug, thanks.