Bug 1486782

Summary: [RFE] Provide a dashboard widget to display an RSS feed within the UI
Product: Red Hat Satellite Reporter: Rich Jerrido <rjerrido>
Component: DashboardAssignee: Daniel Lobato Garcia <dlobatog>
Status: CLOSED ERRATA QA Contact: Radovan Drazny <rdrazny>
Severity: medium Docs Contact:
Priority: unspecified    
Version: UnspecifiedCC: bkearney, dlobatog, jhutar, mhulan, mmccune, mvanderw, omaciel, oprazak, rdrazny, rjerrido, tbrisker, vgrosu
Target Milestone: 6.4.0Keywords: FutureFeature
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-16 15:28:43 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:
Bug Depends On:    
Bug Blocks: 1573395    
Attachments:
Description Flags
rss feed screenshot
none
Feed value
none
working rss notifications
none
gnome blog notifications none

Description Rich Jerrido 2017-08-30 14:21:42 UTC
Description of problem:

As a user, I would like a widget on the dashboard to show an RSS feed. 

In the upstream, this can point to the Foreman blog (https://theforeman.org/blog/). 

in the downstream, this can point to the Satellite blog (https://access.redhat.com/blogs/1169563)

This will enable a user to see project/product announcements prominently within the UI.

Comment 2 Bryan Kearney 2017-10-26 16:16:08 UTC
*** Bug 1473427 has been marked as a duplicate of this bug. ***

Comment 3 Daniel Lobato Garcia 2017-11-14 09:28:31 UTC
There is https://github.com/theforeman/foreman/pull/4240 already in the upstream, which displays these kind of RSS feed in the notifications drawer (only when there is new stuff to see).

Rich, do you think it's OK to link this RFE to that upstream issue?

Comment 4 Rich Jerrido 2017-11-14 10:05:46 UTC
Yes.

Comment 5 Satellite Program 2017-11-14 11:39:43 UTC
Connecting redmine issue http://projects.theforeman.org/issues/18292 from this bug

Comment 8 Satellite Program 2017-11-29 13:15:14 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/18292 has been resolved.

Comment 13 Daniel Lobato Garcia 2018-06-04 13:15:39 UTC
You may configure the notifications RSS feed in two ways.

1 - The default is to fetch the RSS feed from the Satellite blog. This can be changed in Administer > Settings and I believe it's already covered in our docs.
2 - A Satellite administrator (you need access to the Satellite host to do this) can manually run `foreman-rake rss:create_notifications FOREMAN_RSS_AUDIENCE='admin' FOREMAN_RSS_URL='example.com/myurlfeed.rss'`. This can be a one-off job, or it can be scheduled via cron or similar.

There are some docs on the file that automatically do this, about all of the possibilities in here:

https://github.com/theforeman/foreman/blob/1.18-stable/lib/tasks/rss.rake

Comment 18 Satellite Program 2018-09-20 16:09:19 UTC
Upstream bug assigned to dlobatog

Comment 19 Mike McCune 2018-09-20 16:39:29 UTC
Jan, we definitely have an RSS feed tool in the upper right if you have it configured properly. Moving this back ON_QA, see attached screenshot.

Comment 20 Mike McCune 2018-09-20 16:39:55 UTC
Created attachment 1485229 [details]
rss feed screenshot

Comment 21 Og Maciel 2018-09-20 18:19:23 UTC
Created attachment 1485255 [details]
Feed value

First of all, to make sure that everyone follows along, the RSS feed notification feature does **not** add a new widget to the main dashboard. Instead, it will display RSS feed items via the Notification Tray (the "bell" icon in the upper right section of the web you).

I have updated the RSS feed using the web UI (see attached screenshot) to use the following RSS feed:

https://blogs.gnome.org/hughsie/feed/

The RSS feature is enabled and I expected that saving the new value for the RSS feed would have refreshed it and displayed latest items in the notification tray, but I don't see anything new there.

I then manually executed the following command (with output also attached) but I still did not see any new items in the notification tray.

foreman-rake rss:create_notifications
/usr/share/foreman/lib/foreman.rb:8: warning: already initialized constant Foreman::UUID_REGEXP
/usr/share/foreman/lib/foreman.rb:8: warning: previous definition of UUID_REGEXP was here
/usr/share/foreman/lib/core_extensions.rb:182: warning: already initialized constant ActiveSupport::MessageEncryptor::DEFAULT_CIPHER
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/message_encryptor.rb:22: warning: previous definition of DEFAULT_CIPHER was here

Comment 22 Og Maciel 2018-09-20 18:26:58 UTC
Looking under the Tasks page:

Action:
Dynflow::ActiveJob::QueueAdapters::JobWrapper
Input:
{"current_user_id"=>nil,
 "job_class"=>"CreateRssNotifications",
 "job_arguments"=>[{"_aj_symbol_keys"=>[]}],
 "queue"=>"default",
 "locale"=>"en"}
Output:
{}
Exception:
ActiveJob::SerializationError: Can't serialize a Hash with reserved key "_aj_symbol_keys"
Backtrace:
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:129:in `serialize_hash_key'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:104:in `block in serialize_hash'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:103:in `each'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:103:in `each_with_object'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:103:in `serialize_hash'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:62:in `serialize_argument'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:32:in `block in serialize'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:32:in `map'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/arguments.rb:32:in `serialize'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/core.rb:131:in `serialize_arguments'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/core.rb:86:in `serialize'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/active_job/queue_adapter.rb:12:in `enqueue_at'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/enqueuing.rb:49:in `block in enqueue'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:108:in `block in run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:15:in `block (3 levels) in <module:Logging>'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:46:in `tag_logger'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:14:in `block (2 levels) in <module:Logging>'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:117:in `instance_exec'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:135:in `run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/enqueuing.rb:47:in `enqueue'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/configured_job.rb:13:in `perform_later'
/usr/share/foreman/app/jobs/create_rss_notifications.rb:6:in `perform'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/execution.rb:37:in `block in perform_now'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:108:in `block in run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/i18n-0.9.1/lib/i18n.rb:265:in `with_locale'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/translation.rb:7:in `block (2 levels) in <module:Translation>'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:117:in `instance_exec'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:24:in `block (4 levels) in <module:Logging>'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/notifications.rb:166:in `block in instrument'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/notifications.rb:166:in `instrument'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:23:in `block (3 levels) in <module:Logging>'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:46:in `tag_logger'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/logging.rb:20:in `block (2 levels) in <module:Logging>'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:117:in `instance_exec'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activesupport-5.1.6/lib/active_support/callbacks.rb:135:in `run_callbacks'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/execution.rb:33:in `perform_now'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/activejob-5.1.6/lib/active_job/execution.rb:16:in `perform_now'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/active_job/queue_adapter.rb:42:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:538:in `block (3 levels) in execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:26:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware.rb:18:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action/progress.rb:30:in `with_progress_calculation'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action/progress.rb:16:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:22:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:26:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware.rb:18:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.7.0.28/app/lib/actions/middleware/keep_locale.rb:11:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.7.0.28/app/lib/actions/middleware/keep_locale.rb:22:in `with_locale'
/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.7.0.28/app/lib/actions/middleware/keep_locale.rb:11:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:22:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:26:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware.rb:18:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.13.4.2/app/lib/actions/middleware/keep_current_user.rb:15:in `block in run'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.13.4.2/app/lib/actions/middleware/keep_current_user.rb:43:in `restore_curent_user'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-0.13.4.2/app/lib/actions/middleware/keep_current_user.rb:15:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:22:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:26:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware.rb:18:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware.rb:31:in `run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/stack.rb:22:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/middleware/world.rb:30:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:537:in `block (2 levels) in execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:536:in `catch'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:536:in `block in execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:451:in `block in with_error_handling'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:451:in `catch'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:451:in `with_error_handling'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:531:in `execute_run'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/action.rb:278:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:17:in `block (2 levels) in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/execution_plan/steps/abstract.rb:162:in `with_meta_calculation'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:16:in `block in execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:30:in `open_action'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:15:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/director.rb:43:in `execute'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/executors/parallel/worker.rb:12:in `block in on_message'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/executors.rb:12:in `run_user_code'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/executors/parallel/worker.rb:11:in `on_message'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/context.rb:46:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/executes_context.rb:7:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.0.5.1/lib/dynflow/actor.rb:26:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/awaits.rb:15:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/sets_results.rb:14:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/buffer.rb:38:in `process_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/buffer.rb:31:in `process_envelopes?'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/buffer.rb:20:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/termination.rb:55:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/removes_child.rb:10:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/abstract.rb:25:in `pass'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/behaviour/sets_results.rb:14:in `on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/core.rb:161:in `process_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/core.rb:95:in `block in on_envelope'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/core.rb:118:in `block (2 levels) in schedule_execution'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `block in synchronize'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `synchronize'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb:38:in `synchronize'
/opt/theforeman/tfm/root/usr/share/gems/gems/concurrent-ruby-edge-0.2.4/lib/concurrent/actor/core.rb:115:in `block in schedule_execution'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/serialized_execution.rb:18:in `call'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/serialized_execution.rb:96:in `work'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/serialized_execution.rb:77:in `block in call_job'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:348:in `run_task'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `loop'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:320:in `block (2 levels) in create_worker'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `catch'
/opt/theforeman/tfm-ror51/root/usr/share/gems/gems/concurrent-ruby-1.0.5/lib/concurrent/executor/ruby_thread_pool_executor.rb:319:in `block in create_worker'
/opt/theforeman/tfm/root/usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'

Comment 23 Og Maciel 2018-09-20 18:39:41 UTC
I'm confident that this has FailedQE. Flipping it back to ASSIGNED

Comment 27 Marek Hulan 2018-09-25 08:51:08 UTC
Created attachment 1486649 [details]
working rss notifications

Comment 34 Marek Hulan 2018-09-26 10:42:14 UTC
Daniel is working on the feed structure documentation.

Jan, the rake task to force loading new notifications by default loads "0" new posts. In upstream this already defaults to 3 but when used in downstream, it needs to be called like this

FOREMAN_RSS_LATEST_POSTS=3 foreman-rake rss:create_notifications

I changed to upstream, loaded 3 posts, than changed to you custom downstream feed and loaded another 3 posts. All seems fine. I'll update BZ 1633106 with the same.

Vlada I'll open separate BZ for docs, thank you.

Comment 37 Daniel Lobato Garcia 2018-09-26 23:38:57 UTC
The structure is the following:

<entry>
<title>Learn about Satellite 6 in here</title>
<link href="http://redhat.com/blog/392"/>
</entry>

If there's a sub tag 'content' in 'title', like <title><content></content></title>, that will be used as the title.
Similarly if there's a 'link' tag like <link>http://foo</link>, the contents of the tag are used.

What Marek described is correct, most likely the notifications existed for 12 hours and since they expired, you would need to run the command with 'foreman-rake rss:create_notifications FOREMAN_RSS_FORCE_REPOST=true'. This is the way of telling Satellite 'don't check whether the notifications previously existed or not, just create new ones with the latest news'.

For the record, I just ran the following command:

FOREMAN_RSS_URL='https://blogs.gnome.org/hughsie/feed/' FOREMAN_RSS_LATEST_POSTS=3 foreman-rake rss:create_notifications

and I was able to get notifications instantly. Could you try that and tell us the output if it didn't give you that? Task output if it fails is great too, thanks!

Comment 38 Daniel Lobato Garcia 2018-09-26 23:39:29 UTC
Created attachment 1487525 [details]
gnome blog notifications

Comment 39 Radovan Drazny 2018-09-27 10:09:46 UTC
Verified on Sat 6.4 Snap 23. 
To sum things up a little:
 - the RSS notifications work as expected if the feed used is original Satellite blog, as intended.

 - as Marek has mentioned in the comment #36, RSS in Satellite is primarily intended as a communication  channel for Satellite/Foreman news from its respective blogs, and shouldn't be used as a general RSS reader. In my opinion it would be a good idea to remove the ability to edit the RSS feed URL from the WebUI (leaving only the on/off switch present) to discourage users from changing this. Modifying the URL should be still possible, but it should be a config option stored in a config/DB somewhere, to make it less tempting to change for the user. Only an idea, of course.

 - the "foreman-rake rss:create_notifications" tool is something that should be used only for testing. End user should not have any reason to perform this manually, and should rely on the default 12 hours processing schedule.

 - there actually is a non-blocking issue, which was the probable cause of lot of the grief in previous comments. I have created the BZ1633558 to track this problem, please see it for the details. Basically this issue should be present only if an incompatible feed is used, or if there is a transient error during the RSS task processing . 

Otherwise, in my opinion the feature works as expected.

Comment 40 Daniel Lobato Garcia 2018-09-27 13:14:08 UTC
Just a note, 'foreman-rake rss:create_notifications' can be put on a cronjob, so the customer can have notifications for 2 different RSS feeds. 

1. The official one (by leaving the setting as default)
2. Any other RSS feed that has the right structure :), using a cronjob.

Thanks Radovan for uncovering the issue you mentioned in https://bugzilla.redhat.com/show_bug.cgi?id=1633558

Comment 42 errata-xmlrpc 2018-10-16 15:28:43 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-2018:2927