Bug 1276552 - Error:Action not implemented [orchestration_stack/button] in stacks instances comparison
Summary: Error:Action not implemented [orchestration_stack/button] in stacks instances...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: UI - OPS
Version: 5.4.0
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: GA
: 5.5.0
Assignee: Dávid Halász
QA Contact: Aziza Karol
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-10-30 06:22 UTC by Aziza Karol
Modified: 2016-03-07 14:17 UTC (History)
7 users (show)

Fixed In Version: 5.5.0.10
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-12-08 13:42:34 UTC
Category: ---
Cloudforms Team: ---
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
stacks (69.75 KB, image/png)
2015-10-30 06:22 UTC, Aziza Karol
no flags Details
err (45.64 KB, image/png)
2015-10-30 06:23 UTC, Aziza Karol
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:2551 0 normal SHIPPED_LIVE Moderate: CFME 5.5.0 bug fixes and enhancement update 2015-12-08 17:58:09 UTC

Description Aziza Karol 2015-10-30 06:22:31 UTC
Created attachment 1087818 [details]
stacks

Description of problem:


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

How reproducible:


Steps to Reproduce:
1.Navigate to clouds->stacks->select a stack. In stack summary page click on the instances in relationship (stack should have 2 instances)
2.select 2 instances and  from configuration click on compare selected items
3.

Actual results:
Action not implemented [orchestration_stack/button] displayed in UI.see attached screenshot

Expected results:


Additional info:
produc[----] I, [2015-10-30T02:19:52.089701 #28125:6bfea4]  INFO -- :   Rendered text template (0.0ms)
[----] I, [2015-10-30T02:19:52.089960 #28125:6bfea4]  INFO -- : Completed 200 OK in 24.3ms (Views: 0.5ms | ActiveRecord: 1.4ms)
[----] I, [2015-10-30T02:20:03.370113 #28125:6bfea4]  INFO -- : Started POST "/orchestration_stack/button/51?pressed=instance_compare" for 127.0.0.1 at 2015-10-30 02:20:03 -0400
[----] I, [2015-10-30T02:20:03.377420 #28125:6bfea4]  INFO -- : Processing by OrchestrationStackController#button as JS
[----] I, [2015-10-30T02:20:03.377575 #28125:6bfea4]  INFO -- :   Parameters: {"masterToggle"=>"on", "sort_choice"=>"Sort by:", "perpage_setting1"=>"20", "limitstart"=>"0", "check_3526"=>"1", "check_3527"=>"1", "perpage_setting2"=>"20", "pressed"=>"instance_compare", "id"=>"51"}
[----] F, [2015-10-30T02:20:03.415676 #28125:6bfea4] FATAL -- : Error caught: [ActionController::RoutingError] No route matches {:action=>"compare_miq", :controller=>"orchestration_stack"}
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:540:in `raise_routing_error'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:536:in `rescue in generate'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:528:in `generate'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:569:in `generate'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:594:in `url_for'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/url_for.rb:148:in `url_for'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_view/helpers/url_helper.rb:107:in `url_for'
/opt/rh/cfme-gemset/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:457:in `redirect_to'
/var/www/miq/vmdb/app/controllers/application_controller/compare.rb:942:in `block in comparemiq'
/opt/rh/cfme-gemset/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:154:in `instance_exec'
/opt/rh/cfme-gemset/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:154:in `block in initialize'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_view/helpers/capture_helper.rb:187:in `with_output_buffer'
/opt/rh/cfme-gemset/gems/haml-4.0.7/lib/haml/helpers/action_view_xss_mods.rb:5:in `with_output_buffer_with_haml_xss'
/opt/rh/cfme-gemset/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/action_view/helpers/jquery_helper.rb:153:in `initialize'
/opt/rh/cfme-gemset/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/jquery-rjs/renderers.rb:7:in `new'
/opt/rh/cfme-gemset/bundler/gems/jquery-rjs-33e0fc1c0b25/lib/jquery-rjs/renderers.rb:7:in `block in <module:Renderers>'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/renderers.rb:35:in `block in _handle_render_options'
/opt/rh/ruby200/root/usr/share/ruby/set.rb:232:in `each_key'
/opt/rh/ruby200/root/usr/share/ruby/set.rb:232:in `each'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/renderers.rb:32:in `_handle_render_options'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/renderers.rb:28:in `render_to_body'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/compatibility.rb:50:in `render_to_body'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/abstract_controller/rendering.rb:88:in `render'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/rendering.rb:16:in `render'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `block in ms'
/opt/rh/ruby200/root/usr/share/ruby/benchmark.rb:296:in `realtime'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `block in render'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/instrumentation.rb:83:in `cleanup_view_runtime'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activerecord/lib/active_record/railties/controller_runtime.rb:24:in `cleanup_view_runtime'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/var/www/miq/vmdb/app/controllers/application_controller/compare.rb:941:in `comparemiq'
/var/www/miq/vmdb/app/controllers/application_controller/ci_processing.rb:1864:in `process_vm_buttons'
/var/www/miq/vmdb/app/controllers/orchestration_stack_controller.rb:91:in `button'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/abstract_controller/base.rb:167:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/rendering.rb:10:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/abstract_controller/callbacks.rb:18:in `block in process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:568:in `_run__2772864456369612203__process_action__754877556534518515__callbacks'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:405:in `__run_callback'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/rescue.rb:29:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/notifications.rb:123:in `block in instrument'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/notifications.rb:123:in `instrument'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/params_wrapper.rb:207:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activerecord/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/abstract_controller/base.rb:121:in `process'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/abstract_controller/rendering.rb:45:in `process'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal.rb:203:in `dispatch'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_controller/metal.rb:246:in `block in action'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:73:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:36:in `call'
/opt/rh/cfme-gemset/gems/journey-1.0.4/lib/journey/router.rb:68:in `block in call'
/opt/rh/cfme-gemset/gems/journey-1.0.4/lib/journey/router.rb:56:in `each'
/opt/rh/cfme-gemset/gems/journey-1.0.4/lib/journey/router.rb:56:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/routing/route_set.rb:608:in `call'
/opt/rh/cfme-gemset/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward'
/opt/rh/cfme-gemset/gems/rack-cache-1.2/lib/rack/cache/context.rb:143:in `pass'
/opt/rh/cfme-gemset/gems/rack-cache-1.2/lib/rack/cache/context.rb:155:in `invalidate'
/opt/rh/cfme-gemset/gems/rack-cache-1.2/lib/rack/cache/context.rb:71:in `call!'
/opt/rh/cfme-gemset/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/etag.rb:23:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/conditionalget.rb:35:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/flash.rb:242:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/session/abstract/id.rb:210:in `context'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/session/abstract/id.rb:205:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/cookies.rb:341:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activerecord/lib/active_record/query_cache.rb:64:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:405:in `_run__1987282921846208572__call__3748209715030525970__callbacks'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:405:in `__run_callback'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/rack/logger.rb:32:in `call_app'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/rack/logger.rb:18:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/request_id.rb:22:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/methodoverride.rb:21:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/runtime.rb:17:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/lock.rb:15:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/actionpack/lib/action_dispatch/middleware/static.rb:63:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/engine.rb:484:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/application.rb:231:in `call'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/content_length.rb:14:in `call'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/rack/log_tailer.rb:17:in `call'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:80:in `block in pre_process'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:78:in `catch'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:78:in `pre_process'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:53:in `process'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/connection.rb:38:in `receive_data'
/opt/rh/ruby200/root/usr/share/gems/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in `run_machine'
/opt/rh/ruby200/root/usr/share/gems/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in `run'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in `start'
/opt/rh/ruby200/root/usr/share/gems/gems/thin-1.3.1/lib/thin/server.rb:159:in `start'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/handler/thin.rb:13:in `run'
/opt/rh/cfme-gemset/gems/rack-1.4.7/lib/rack/server.rb:268:in `start'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/commands/server.rb:70:in `start'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/commands.rb:55:in `block in <top (required)>'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/commands.rb:50:in `tap'
/opt/rh/cfme-gemset/bundler/gems/rails-4842a8377644/railties/lib/rails/commands.rb:50:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'
tion.log

Comment 2 Aziza Karol 2015-10-30 06:23:11 UTC
Created attachment 1087819 [details]
err

Comment 6 CFME Bot 2015-11-06 21:35:22 UTC
New commit detected on ManageIQ/manageiq/master:
https://github.com/ManageIQ/manageiq/commit/1c98dd84321e506a0a0dc4359d13dc635680d9fa

commit 1c98dd84321e506a0a0dc4359d13dc635680d9fa
Author:     Dávid Halász <dhalasz>
AuthorDate: Thu Nov 5 11:32:35 2015 +0100
Commit:     Dávid Halász <dhalasz>
CommitDate: Fri Nov 6 15:00:48 2015 +0100

    Hide compliance check and compare buttons when rendering stack instances
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1277016
    https://bugzilla.redhat.com/show_bug.cgi?id=1276552

 app/helpers/application_helper/toolbar_builder.rb |  4 ++++
 spec/controllers/orchestration_stack_spec.rb      | 28 +++++++++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 spec/controllers/orchestration_stack_spec.rb

Comment 7 CFME Bot 2015-11-10 15:03:42 UTC
New commit detected on cfme/5.5.z:
https://code.engineering.redhat.com/gerrit/gitweb?p=cfme.git;a=commitdiff;h=755b2a3f51805a144a50465a8f3b4fdd77ab9a1a

commit 755b2a3f51805a144a50465a8f3b4fdd77ab9a1a
Author:     Dávid Halász <dhalasz>
AuthorDate: Thu Nov 5 11:32:35 2015 +0100
Commit:     Dávid Halász <dhalasz>
CommitDate: Mon Nov 9 09:08:39 2015 +0100

    Hide compliance check and compare buttons when rendering stack instances
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1277016
    https://bugzilla.redhat.com/show_bug.cgi?id=1276552
    (cherry picked from commit 1c98dd84321e506a0a0dc4359d13dc635680d9fa)

 app/helpers/application_helper/toolbar_builder.rb |  4 ++++
 spec/controllers/orchestration_stack_spec.rb      | 28 +++++++++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 spec/controllers/orchestration_stack_spec.rb

Comment 8 CFME Bot 2015-11-10 15:03:53 UTC
New commit detected on cfme/5.5.z:
https://code.engineering.redhat.com/gerrit/gitweb?p=cfme.git;a=commitdiff;h=91989621a56cafb07a8edccbcde75a720787d96b

commit 91989621a56cafb07a8edccbcde75a720787d96b
Merge: 0822d4c 755b2a3
Author:     Dan Clarizio <dclarizi>
AuthorDate: Tue Nov 10 10:01:13 2015 -0500
Commit:     Dan Clarizio <dclarizi>
CommitDate: Tue Nov 10 10:01:13 2015 -0500

    Merge branch 'bz-1277016' into '5.5.z'
    
    Hide compliance check and compare buttons when rendering stack instances
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1277016
    https://bugzilla.redhat.com/show_bug.cgi?id=1276552
    
    https://github.com/ManageIQ/manageiq/pull/5257
    (cherry picked from commit 1c98dd84321e506a0a0dc4359d13dc635680d9fa)
    
    See merge request !382

 app/helpers/application_helper/toolbar_builder.rb |  4 ++++
 spec/controllers/orchestration_stack_spec.rb      | 28 +++++++++++++++++++++++
 2 files changed, 32 insertions(+)

Comment 9 Aziza Karol 2015-11-12 10:33:16 UTC
compare buttons hidden when rendering stack instances

Verified:
5.5.0.10-beta2.1.20151110134042_d6f5459

Comment 11 errata-xmlrpc 2015-12-08 13:42:34 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-2015:2551

Comment 12 Harpreet Kataria 2016-03-07 14:17:52 UTC
removing needinfo as this issue has already been resolved.


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