Bug 1120595
Summary: | Synchronization status and refresh should not be available when repo is not synced | ||
---|---|---|---|
Product: | Red Hat Satellite | Reporter: | Sergio Ocón-Cárdenas <soconcar> |
Component: | WebUI | Assignee: | Brad Buckingham <bbuckingham> |
Status: | CLOSED DUPLICATE | QA Contact: | Katello QA List <katello-qa-list> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | 6.0.3 | CC: | bbuckingham, bkearney, soconcar |
Target Milestone: | Unspecified | Keywords: | Triaged |
Target Release: | Unused | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-09-05 12:59:47 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: | |
Embargoed: |
Description
Sergio Ocón-Cárdenas
2014-07-17 08:57:16 UTC
Since this issue was entered in Red Hat Bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release. Hi Sergio, can you help to clarify the steps that you were executing to encounter this issue? Were you using the UI or CLI? I ran through a few scenarios using the UI; however, I didn't encounter any errors (yet). It is possible that I am not using the same scenario, but it is also possible that the issue has since been solved. Below are some steps that I ran through using the UI: From Content -> Products: 1. create a custom product (named: feedless) 2. create a custom repo (named: feedless) 3. select the newly created repo, observed that 'Sync' button is not available 4. click 'Back to Repository List', click the checkbox next to the repo and click 'Sync Now' button, the following error is displayed: Repository feedless does not have a feed url. 5. go to Content -> Sync Status and observed that my feedless product and repo are not displayed After poking at the UI a bit more, I did identify one scenario that needs to be fixed. Going to address it with this BZ; however, Sergio, if your scenario is different than this, please provide the appropriate details with steps to reproduce. Including screenshots and foreman-debug logs would also be useful. Thanks :) The UI scenario that I do see that has in issue is the following: From Content -> Products: 1. create a custom product (named: feedless) 2. create a custom repo (named: feedless) 3. in the product, click the 'Details' tab 4. click 'Sync Now' At this point, 'Sync Now' becomes 'Syncing...' and remains that way indefinitely. As a user, I'd expect it to go back to 'Sync Now' after the request is accepted by the server and a notification provided to the user that is consistent with other areas of the UI. E.g.: "Successfully started sync for feedless products, you are free to leave this page." Created redmine issue http://projects.theforeman.org/issues/7360 from this bug Proposed fix in Katello PR: https://github.com/Katello/katello/pull/4640 I was using the GUI. My intention: create a custom report with a puppet module and a rpm that I could send to hosts (as a custom rpm with an application) Created a Product Created a Customized Rpm repository Uploaded a rpm to the repository In Repositories: - Sync now is enabled - Sync plan is enabled If I press sync I get this message: Sync started, you can leave this page now But it fails Details PLP0000: Importer indicated a failed response More Details Acción: Actions::Pulp::Repository::Sync Input: {"pulp_id"=>"ACME_Corporation-Customized-customized-rpm", "remote_user"=>"admin", "locale"=>"en"} Output: {"pulp_tasks"=> [{"exception"=>nil, "task_type"=>"pulp.server.tasks.repository.sync_with_auto_publish", "_href"=>"/pulp/api/v2/tasks/add55fa7-d0da-4359-ba74-9fd3c71ece6a/", "task_id"=>"add55fa7-d0da-4359-ba74-9fd3c71ece6a", "tags"=> ["pulp:repository:ACME_Corporation-Customized-customized-rpm", "pulp:action:sync"], "finish_time"=>"2014-09-05T08:09:33Z", "_ns"=>"task_status", "start_time"=>"2014-09-05T08:09:33Z", "traceback"=> "Traceback (most recent call last):\n File \"/usr/lib/python2.6/site-packages/celery/app/trace.py\", line 240, in trace_task\n R = retval = fun(*args, **kwargs)\n File \"/usr/lib/python2.6/site-packages/pulp/server/async/tasks.py\", line 306, in __call__\n return super(Task, self).__call__(*args, **kwargs)\n File \"/usr/lib/python2.6/site-packages/celery/app/trace.py\", line 437, in __protected_call__\n return self.run(*args, **kwargs)\n File \"/usr/lib/python2.6/site-packages/pulp/server/tasks/repository.py\", line 210, in sync_with_auto_publish\n sync_result = managers.repo_sync_manager().sync(repo_id, sync_config_override=overrides)\n File \"/usr/lib/python2.6/site-packages/pulp/server/managers/repo/sync.py\", line 113, in sync\n raise PulpExecutionException(_('Importer indicated a failed response'))\nPulpExecutionException: Importer indicated a failed response\n", "spawned_tasks"=>[], "progress_report"=> {"yum_importer"=> {"content"=> {"size_total"=>0, "items_left"=>0, "items_total"=>0, "state"=>"NOT_STARTED", "size_left"=>0, "details"=> {"rpm_total"=>0, "rpm_done"=>0, "drpm_total"=>0, "drpm_done"=>0}, "error_details"=>[]}, "comps"=>{"state"=>"NOT_STARTED"}, "distribution"=> {"items_total"=>0, "state"=>"NOT_STARTED", "error_details"=>[], "items_left"=>0}, "errata"=>{"state"=>"NOT_STARTED"}, "metadata"=> {"state"=>"FAILED", "error"=>"Unable to sync a repository that has no feed"}}}, "queue"=>"reserved_resource_worker-1.cloud.dq", "state"=>"error", "result"=>nil, "error"=> {"code"=>"PLP0000", "data"=>{}, "description"=>"Importer indicated a failed response", "sub_errors"=>[]}, "_id"=>{"$oid"=>"54096fbd0ca01e2dc225039d"}, "id"=>"54096fbdc3beb0071b4c7f34"}], "poll_attempts"=>{"total"=>3, "failed"=>3}} Exception: Katello::Errors::PulpError: PLP0000: Importer indicated a failed response Backtrace: /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/pulp/abstract_async_task.rb:96:in `block in external_task=' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/pulp/abstract_async_task.rb:94:in `each' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/pulp/abstract_async_task.rb:94:in `external_task=' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action/polling.rb:86:in `poll_external_task_with_rescue' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action/polling.rb:15:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action/cancellable.rb:9:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/pulp/abstract_async_task.rb:57:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:439:in `block (3 levels) in execute_run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:26:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:26:in `pass' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware.rb:16:in `pass' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:25:in `block in run' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:51:in `block (2 levels) in as_remote_user' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/katello/util/thread_session.rb:85:in `set_pulp_config' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:41:in `as_pulp_user' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:50:in `block in as_remote_user' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/katello/util/thread_session.rb:92:in `set_cp_config' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:36:in `as_cp_user' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:49:in `as_remote_user' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/remote_action.rb:25:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:22:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:26:in `pass' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware.rb:16:in `pass' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action/progress.rb:30:in `with_progress_calculation' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action/progress.rb:16:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:22:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:26:in `pass' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware.rb:16:in `pass' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/keep_locale.rb:24:in `block in run' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/keep_locale.rb:35:in `with_locale' /opt/rh/ruby193/root/usr/share/gems/gems/katello-1.5.0/app/lib/actions/middleware/keep_locale.rb:24:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/stack.rb:22:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/middleware/world.rb:30:in `execute' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:438:in `block (2 levels) in execute_run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:437:in `catch' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:437:in `block in execute_run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:361:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:361:in `block in with_error_handling' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:361:in `catch' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:361:in `with_error_handling' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:432:in `execute_run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/action.rb:226:in `execute' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:9:in `block (2 levels) in execute' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/execution_plan/steps/abstract.rb:152:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/execution_plan/steps/abstract.rb:152:in `with_meta_calculation' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:8:in `block in execute' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:22:in `open_action' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:7:in `execute' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/executors/parallel/worker.rb:20:in `block in on_message' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:859:in `block in assigns' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:858:in `tap' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:858:in `assigns' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:138:in `match_value' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:116:in `block in match' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:115:in `each' /opt/rh/ruby193/root/usr/share/gems/gems/algebrick-0.4.0/lib/algebrick.rb:115:in `match' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/executors/parallel/worker.rb:17:in `on_message' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:82:in `on_envelope' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:72:in `receive' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:99:in `block (2 levels) in run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:99:in `loop' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:99:in `block in run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:99:in `catch' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:99:in `run' /opt/rh/ruby193/root/usr/share/gems/gems/dynflow-0.7.1/lib/dynflow/micro_actor.rb:13:in `block in initialize' /opt/rh/ruby193/root/usr/share/gems/gems/logging-1.8.1/lib/logging/diagnostic_context.rb:323:in `call' /opt/rh/ruby193/root/usr/share/gems/gems/logging-1.8.1/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context' End result: Sync Status All dates and times below are relative to this server. Sync Interval Synced manually, no interval set. Last Sync Sep 5, 2014 10:07:21 AM Next Sync Synced manually, no interval set. Sync State error Sergio, thanks for the additional details. It sounds like that behavior may be on earlier GA, Beta or MDP builds. With the latest GA build, I see the behaviors described in #3 and #4, which means (among other things) that if go to a repo that doesn't have a feed/url, the 'Sync Now' button is not available. I did submit a fix for the issue that I observed in #4, where attempting to sync a product would not give the user a notification and would leave the 'Sync Now' button indicating 'Syncing...'. Actually, I just came across a couple of bugs. One that describes a similar behavior to what you saw (bug 1094986) and one that describes the bug that I saw (bug 1128796). Therefore, I am going to realign my fix to bug 1128796 and close this one as a duplicate of 1094986. *** This bug has been marked as a duplicate of bug 1094986 *** |