1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Mtf\Util\Command\Cli;
use Magento\Mtf\Util\Command\Cli;
/**
* Handle reindexing for tests executions.
*/
class Indexer extends Cli
{
/**
* Parameter for reindex command.
*/
const PARAM_INDEXER_REINDEX = 'indexer:reindex';
/**
* Parameter for set mode command.
*/
const PARAM_SET_MODE = 'indexer:set-mode';
/**
* Run reindex.
*
* @param array $indexes [optional]
* @return void
*/
public function reindex(array $indexes = [])
{
$params = '';
if (!empty($indexes)) {
$params = implode(' ', $indexes);
}
parent::execute(Indexer::PARAM_INDEXER_REINDEX . ' ' . $params);
}
/**
* Run set mode. Example of indexers array:
* [
* [0] => ['indexer' => 'category_flat_data', 'mode' => 'schedule'],
* [1] => ['indexer' => 'catalogrule_product', 'mode' => 'realtime']
* ]
*
* @param array $indexers
* @return void
*/
public function setMode(array $indexers)
{
foreach ($indexers as $indexer) {
parent::execute(Indexer::PARAM_SET_MODE . ' ' . $indexer['mode'] . ' ' . $indexer['indexer']);
}
}
}