diff --git a/dev/tests/integration/testsuite/Magento/ToolkitFramework/_files/small.xml b/dev/tests/integration/testsuite/Magento/ToolkitFramework/_files/small.xml index 911f2482ebcec61f1d6bf914463511ffd1252359..0a0b04ba6836b74eb5d7584a9290136e540f8d8b 100644 --- a/dev/tests/integration/testsuite/Magento/ToolkitFramework/_files/small.xml +++ b/dev/tests/integration/testsuite/Magento/ToolkitFramework/_files/small.xml @@ -29,6 +29,8 @@ <!-- The price rule condition: minimum products amount in shopping cart for price rule to be applied --> <customers>20</customers> <!-- Number of customers to generate --> + <orders>80</orders> + <!-- Orders count --> <configs> <!-- Config variables and values for change --> <config> <path>admin/security/use_form_key</path> @@ -79,5 +81,39 @@ <value>8080</value> </config> </configs> + <indexers> <!-- Indexer mode value (true - Update by Schedule, false - Update on Save) --> + <indexer> + <id>catalog_category_product</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_category</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_price</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_attribute</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>cataloginventory_stock</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_rule</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_product</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogsearch_fulltext</id> + <set_scheduled>false</set_scheduled> + </indexer> + </indexers> </profile> -</config> \ No newline at end of file +</config> diff --git a/dev/tools/performance-toolkit/fixtures/indexers_states_apply.php b/dev/tools/performance-toolkit/fixtures/indexers_states_apply.php new file mode 100644 index 0000000000000000000000000000000000000000..8b072e2b68995399e051ab77cf868efb15638630 --- /dev/null +++ b/dev/tools/performance-toolkit/fixtures/indexers_states_apply.php @@ -0,0 +1,51 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +/** + * Class IndexersStatesApplyFixture + */ +class IndexersStatesApplyFixture extends \Magento\ToolkitFramework\Fixture +{ + /** + * @var int + */ + protected $priority = 170; + + /** + * {@inheritdoc} + */ + public function execute() + { + $indexers = \Magento\ToolkitFramework\Config::getInstance()->getValue('indexers', []); + if (!isset($indexers["indexer"]) || empty($indexers["indexer"])) { + return; + } + $this->application->resetObjectManager(); + foreach ($indexers["indexer"] as $indexer) { + $this->application->indexersStates[$indexer['id']] = ($indexer['set_scheduled'] == "true"); + } + $this->application->getObjectManager()->get('Magento\Framework\App\CacheInterface') + ->clean([\Magento\Framework\App\Config::CACHE_TAG]); + } + + /** + * {@inheritdoc} + */ + public function getActionTitle() + { + return 'Indexers Mode Changes'; + } + + /** + * {@inheritdoc} + */ + public function introduceParamLabels() + { + return []; + } +} + +return new IndexersStatesApplyFixture($this); diff --git a/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php b/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php index 083ac9fefbc6f619d4e0f2fecc1c007e23ae1cb5..d1df2a830d5d1b7a1df8785c278e3147ffe8d28a 100644 --- a/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php +++ b/dev/tools/performance-toolkit/framework/Magento/ToolkitFramework/Application.php @@ -69,6 +69,13 @@ class Application */ protected $_initArguments; + /** + * Indexers states values + * + * @var array + */ + public $indexersStates; + /** * @param string $applicationBaseDir * @param \Magento\Framework\Shell $shell diff --git a/dev/tools/performance-toolkit/generate.php b/dev/tools/performance-toolkit/generate.php index 861abee07ef81a10ceee9e80fc2aa9ef91ccb20d..dd4d23cffae568f3ac3043ea22e8994bb13ab556 100644 --- a/dev/tools/performance-toolkit/generate.php +++ b/dev/tools/performance-toolkit/generate.php @@ -46,10 +46,10 @@ try { $indexerListIds = $config->getIndexers(); /** @var $indexerRegistry \Magento\Indexer\Model\IndexerRegistry */ $indexerRegistry = $application->getObjectManager()->create('Magento\Indexer\Model\IndexerRegistry'); - $indexersState = []; + $application->indexerStates = []; foreach ($indexerListIds as $key => $indexerId) { $indexer = $indexerRegistry->get($indexerId['indexer_id']); - $indexersState[$indexerId['indexer_id']] = $indexer->isScheduled(); + $application->indexersStates[$indexerId['indexer_id']] = $indexer->isScheduled(); $indexer->setScheduled(true); } @@ -65,7 +65,7 @@ try { foreach ($indexerListIds as $indexerId) { /** @var $indexer \Magento\Indexer\Model\Indexer */ $indexer = $indexerRegistry->get($indexerId['indexer_id']); - $indexer->setScheduled($indexersState[$indexerId['indexer_id']]); + $indexer->setScheduled($application->indexersStates[$indexerId['indexer_id']]); } $application->reindex(); diff --git a/dev/tools/performance-toolkit/profiles/ce/extra_large.xml b/dev/tools/performance-toolkit/profiles/ce/extra_large.xml index 758fbef97f8730233c826ba009a5e24424b663fa..9d5767fbfba33f62963bed898213dc28ae30d95c 100644 --- a/dev/tools/performance-toolkit/profiles/ce/extra_large.xml +++ b/dev/tools/performance-toolkit/profiles/ce/extra_large.xml @@ -34,5 +34,39 @@ <value>1</value> </config> </configs> + <indexers> <!-- Indexer mode value (true - Update by Schedule, false - Update on Save) --> + <indexer> + <id>catalog_category_product</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_category</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_price</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_attribute</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>cataloginventory_stock</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_rule</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_product</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalogsearch_fulltext</id> + <set_scheduled>true</set_scheduled> + </indexer> + </indexers> </profile> </config> diff --git a/dev/tools/performance-toolkit/profiles/ce/large.xml b/dev/tools/performance-toolkit/profiles/ce/large.xml index f89fa10faddc16f5e05f7be400b71f9ff94a8f1d..bdbce2f2b8b7ca464606e3b5b351cc658f5ce624 100644 --- a/dev/tools/performance-toolkit/profiles/ce/large.xml +++ b/dev/tools/performance-toolkit/profiles/ce/large.xml @@ -34,5 +34,39 @@ <value>1</value> </config> </configs> + <indexers> <!-- Indexer mode value (true - Update by Schedule, false - Update on Save) --> + <indexer> + <id>catalog_category_product</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_category</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_price</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_attribute</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>cataloginventory_stock</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_rule</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_product</id> + <set_scheduled>true</set_scheduled> + </indexer> + <indexer> + <id>catalogsearch_fulltext</id> + <set_scheduled>true</set_scheduled> + </indexer> + </indexers> </profile> </config> diff --git a/dev/tools/performance-toolkit/profiles/ce/medium.xml b/dev/tools/performance-toolkit/profiles/ce/medium.xml index fbcb4168bce8dbe2eb1b4f2bbe90a63c29bee4dd..8c91400d50bd697ab080985541bf35c760067642 100644 --- a/dev/tools/performance-toolkit/profiles/ce/medium.xml +++ b/dev/tools/performance-toolkit/profiles/ce/medium.xml @@ -34,5 +34,39 @@ <value>1</value> </config> </configs> + <indexers> <!-- Indexer mode value (true - Update by Schedule, false - Update on Save) --> + <indexer> + <id>catalog_category_product</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_category</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_price</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_attribute</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>cataloginventory_stock</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_rule</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_product</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogsearch_fulltext</id> + <set_scheduled>false</set_scheduled> + </indexer> + </indexers> </profile> </config> diff --git a/dev/tools/performance-toolkit/profiles/ce/small.xml b/dev/tools/performance-toolkit/profiles/ce/small.xml index 6507aa52f618843fac56a130461696f4342ac99f..79f2605bc775d7c3fdb0fe92106df966c6330c0c 100644 --- a/dev/tools/performance-toolkit/profiles/ce/small.xml +++ b/dev/tools/performance-toolkit/profiles/ce/small.xml @@ -34,5 +34,39 @@ <value>1</value> </config> </configs> + <indexers> <!-- Indexer mode value (true - Update by Schedule, false - Update on Save) --> + <indexer> + <id>catalog_category_product</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_category</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_price</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalog_product_attribute</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>cataloginventory_stock</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_rule</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogrule_product</id> + <set_scheduled>false</set_scheduled> + </indexer> + <indexer> + <id>catalogsearch_fulltext</id> + <set_scheduled>false</set_scheduled> + </indexer> + </indexers> </profile> </config>