Project

General

Profile

« Previous | Next » 

Revision 1842054c

Added by Ivan Necas about 10 years ago

Index the content when the syncing finishes

View differences:

app/lib/actions/elastic_search/abstract.rb
#
# Copyright 2014 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public
# License as published by the Free Software Foundation; either version
# 2 of the License (GPLv2) or (at your option) any later version.
# There is NO WARRANTY for this software, express or implied,
# including the implied warranties of MERCHANTABILITY,
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
# have received a copy of GPLv2 along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
module Actions
module ElasticSearch
class Abstract < Actions::Base
middleware.use ::Actions::Middleware::RemoteAction
end
end
end
app/lib/actions/elastic_search/reindex.rb
module Actions
module ElasticSearch
class Reindex < Actions::Base
middleware.use ::Actions::Middleware::RemoteAction
class Reindex < ElasticSearch::Abstract
def plan(record)
plan_self(id: record.id,
app/lib/actions/elastic_search/repository/index_content.rb
#
# Copyright 2014 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public
# License as published by the Free Software Foundation; either version
# 2 of the License (GPLv2) or (at your option) any later version.
# There is NO WARRANTY for this software, express or implied,
# including the implied warranties of MERCHANTABILITY,
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
# have received a copy of GPLv2 along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
module Actions
module ElasticSearch
module Repository
class IndexContent < ElasticSearch::Abstract
input_format do
param :id, Integer
end
def run
repo = ::Katello::Repository.find(input[:id])
repo.index_content
end
end
end
end
end
app/lib/actions/katello/repository/sync.rb
def plan(repo)
action_subject(repo)
plan_action(Pulp::Repository::Sync, pulp_id: repo.pulp_id)
plan_action(ElasticSearch::Reindex, repo)
sequence do
plan_action(Pulp::Repository::Sync, pulp_id: repo.pulp_id)
plan_action(ElasticSearch::Repository::IndexContent, id: repo.id)
plan_action(ElasticSearch::Reindex, repo)
end
end
def humanized_name
test/actions/elastic_search/index_actions_test.rb
#
# Copyright 2013 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public
# License as published by the Free Software Foundation; either version
# 2 of the License (GPLv2) or (at your option) any later version.
# There is NO WARRANTY for this software, express or implied,
# including the implied warranties of MERCHANTABILITY,
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
# have received a copy of GPLv2 along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
require 'katello_test_helper'
module Katello
describe ::Actions::ElasticSearch do
include Dynflow::Testing
include Support::Actions::RemoteAction
include FactoryGirl::Syntax::Methods
before do
stub_remote_user
end
let(:repository) { build(:katello_repository, id: 123) }
describe 'Reindex' do
let(:action_class) { ::Actions::ElasticSearch::Reindex }
let(:planned_action) do
create_and_plan_action action_class, repository
end
it 'finalizes' do
finalize_action planned_action do |action|
::Katello::Repository.expects(:find).with(123).returns(repository)
repository.expects(:update_index)
end
end
end
describe 'Repository::IndexContent' do
let(:action_class) { ::Actions::ElasticSearch::Repository::IndexContent }
let(:planned_action) do
create_and_plan_action action_class, id: 123
end
it 'runs' do
run_action planned_action do |action|
::Katello::Repository.expects(:find).with(123).returns(repository)
repository.expects(:index_content)
end
end
end
end
end
test/actions/katello/repository_test.rb
let(:pulp_action_class) { ::Actions::Pulp::Repository::Sync }
it 'plans' do
repository = mock 'repository', pulp_id: 1
repository = mock 'repository', pulp_id: 'pulp-repo-1', id: 1
action = create_action action_class
action.stubs(:action_subject).with(repository)
plan_action action, repository
assert_action_planed action, pulp_action_class
assert_action_planed action, ::Actions::ElasticSearch::Reindex
assert_action_planed_with action, pulp_action_class, pulp_id: 'pulp-repo-1'
assert_action_planed_with action, ::Actions::ElasticSearch::Repository::IndexContent, id: 1
assert_action_planed_with action, ::Actions::ElasticSearch::Reindex, repository
end
describe 'progress' do

Also available in: Unified diff