/**
  * Synchronize status for indexers
  *
  * @param State $state
  * @return State
  */
 public function afterSave(State $state)
 {
     if (in_array($state->getIndexerId(), $this->indexerIds)) {
         $indexerId = $state->getIndexerId() === Product::INDEXER_ID ? Category::INDEXER_ID : Product::INDEXER_ID;
         $relatedIndexerState = $this->state->loadByIndexer($indexerId);
         if ($relatedIndexerState->getStatus() !== $state->getStatus()) {
             $relatedIndexerState->setData('status', $state->getStatus());
             $relatedIndexerState->save();
         }
     }
     return $state;
 }
 /**
  * {@inheritdoc}
  */
 public function getStatus()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getStatus');
     if (!$pluginInfo) {
         return parent::getStatus();
     } else {
         return $this->___callPlugins('getStatus', func_get_args(), $pluginInfo);
     }
 }
Exemple #3
0
 /**
  * Synchronize status for indexers
  *
  * @param \Magento\Indexer\Model\Indexer\State $state
  * @return \Magento\Indexer\Model\Indexer\State
  */
 public function afterSetStatus(\Magento\Indexer\Model\Indexer\State $state)
 {
     if (in_array($state->getIndexerId(), $this->indexerIds)) {
         $indexerId = $state->getIndexerId() == \Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID ? \Magento\Catalog\Model\Indexer\Product\Category::INDEXER_ID : \Magento\Catalog\Model\Indexer\Category\Product::INDEXER_ID;
         $relatedIndexerState = $this->state->loadByIndexer($indexerId);
         $relatedIndexerState->setData('status', $state->getStatus());
         $relatedIndexerState->save();
     }
     return $state;
 }
 public function testSetStatus()
 {
     $setData = 'data';
     $this->model->setStatus($setData);
     $this->assertEquals($setData, $this->model->getStatus());
 }