Skip to content

Commit e517984

Browse files
author
Yaroslav Onischenko
authored
Merge pull request #1004 from magento-falcons/MAGETWO-67152
[Falcons] Delivery of deployment improvements #2
2 parents 5640494 + 098eb09 commit e517984

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1134
-604
lines changed

app/code/Magento/Analytics/Cron/SignUp.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
99
use Magento\Analytics\Model\Connector;
10-
use Magento\Analytics\Model\FlagManager;
10+
use Magento\Framework\FlagManager;
1111
use Magento\Framework\App\Config\ReinitableConfigInterface;
1212
use Magento\Framework\App\Config\Storage\WriterInterface;
1313

app/code/Magento/Analytics/Cron/Update.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
namespace Magento\Analytics\Cron;
77

88
use Magento\Analytics\Model\Connector;
9-
use Magento\Analytics\Model\FlagManager;
109
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
10+
use Magento\Framework\FlagManager;
1111
use Magento\Framework\App\Config\ReinitableConfigInterface;
1212
use Magento\Framework\App\Config\Storage\WriterInterface;
1313

app/code/Magento/Analytics/Model/Config/Backend/Enabled/SubscriptionHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
use Magento\Analytics\Model\AnalyticsToken;
99
use Magento\Analytics\Model\Config\Backend\CollectionTime;
10-
use Magento\Analytics\Model\FlagManager;
1110
use Magento\Analytics\Model\NotificationTime;
11+
use Magento\Framework\FlagManager;
1212
use Magento\Framework\App\Config\Storage\WriterInterface;
1313

1414
/**

app/code/Magento/Analytics/Model/Connector/UpdateCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
namespace Magento\Analytics\Model\Connector;
77

88
use Magento\Analytics\Model\AnalyticsToken;
9-
use Magento\Analytics\Model\FlagManager;
109
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
1110
use Magento\Config\Model\Config;
11+
use Magento\Framework\FlagManager;
1212
use Magento\Framework\HTTP\ZendClient;
1313
use Magento\Store\Model\Store;
1414
use Psr\Log\LoggerInterface;

app/code/Magento/Analytics/Model/FileInfoManager.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace Magento\Analytics\Model;
77

88
use Magento\Framework\Exception\LocalizedException;
9+
use Magento\Framework\FlagManager;
910

1011
/**
1112
* Manage saving and loading FileInfo object.

app/code/Magento/Analytics/Model/NotificationTime.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
namespace Magento\Analytics\Model;
87

8+
use Magento\Framework\FlagManager;
9+
910
/**
1011
* Class NotificationTime
1112
*

app/code/Magento/Analytics/Model/Plugin/BaseUrlConfigPlugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
*/
66
namespace Magento\Analytics\Model\Plugin;
77

8-
use Magento\Analytics\Model\FlagManager;
98
use Magento\Analytics\Model\SubscriptionStatusProvider;
9+
use Magento\Framework\FlagManager;
1010
use Magento\Framework\App\Config\Storage\WriterInterface;
1111

1212
/**

app/code/Magento/Analytics/Model/SubscriptionStatusProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
99
use Magento\Config\App\Config\Type\System;
10+
use Magento\Framework\FlagManager;
1011

1112
/**
1213
* Provider of subscription status.

app/code/Magento/Analytics/Test/Unit/Cron/SignUpTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
use Magento\Analytics\Cron\SignUp;
99
use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
1010
use Magento\Analytics\Model\Connector;
11-
use Magento\Analytics\Model\FlagManager;
1211
use Magento\Framework\App\Config\ReinitableConfigInterface;
1312
use Magento\Framework\App\Config\Storage\WriterInterface;
13+
use Magento\Framework\FlagManager;
1414

1515
/**
1616
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)

app/code/Magento/Analytics/Test/Unit/Cron/UpdateTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
use Magento\Analytics\Cron\Update;
99
use Magento\Analytics\Model\Connector;
10-
use Magento\Analytics\Model\FlagManager;
1110
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
1211
use Magento\Framework\App\Config\ReinitableConfigInterface;
1312
use Magento\Framework\App\Config\Storage\WriterInterface;
13+
use Magento\Framework\FlagManager;
1414

1515
/**
1616
* Class Update

app/code/Magento/Analytics/Test/Unit/Model/Config/Backend/Enabled/SubscriptionHandlerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
use Magento\Analytics\Model\AnalyticsToken;
1010
use Magento\Analytics\Model\Config\Backend\CollectionTime;
1111
use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
12-
use Magento\Analytics\Model\FlagManager;
1312
use Magento\Analytics\Model\NotificationTime;
1413
use Magento\Framework\App\Config\Storage\WriterInterface;
14+
use Magento\Framework\FlagManager;
1515
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
1616

1717
/**

app/code/Magento/Analytics/Test/Unit/Model/Connector/UpdateCommandTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
use Magento\Analytics\Model\AnalyticsToken;
99
use Magento\Analytics\Model\Connector\Http\ClientInterface;
1010
use Magento\Analytics\Model\Connector\UpdateCommand;
11-
use Magento\Analytics\Model\FlagManager;
1211
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
1312
use Magento\Config\Model\Config;
13+
use Magento\Framework\FlagManager;
1414
use Magento\Framework\HTTP\ZendClient;
1515
use Psr\Log\LoggerInterface;
1616

app/code/Magento/Analytics/Test/Unit/Model/FileInfoManagerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Magento\Analytics\Model\FileInfo;
99
use Magento\Analytics\Model\FileInfoFactory;
1010
use Magento\Analytics\Model\FileInfoManager;
11-
use Magento\Analytics\Model\FlagManager;
11+
use Magento\Framework\FlagManager;
1212
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
1313

1414
/**

app/code/Magento/Analytics/Test/Unit/Model/NotificationTimeTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace Magento\Analytics\Test\Unit\Model;
88

9-
use Magento\Analytics\Model\FlagManager;
9+
use Magento\Framework\FlagManager;
1010
use Magento\Analytics\Model\NotificationTime;
1111
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
1212

app/code/Magento/Analytics/Test/Unit/Model/Plugin/BaseUrlConfigPluginTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
*/
66
namespace Magento\Analytics\Test\Unit\Model\Plugin;
77

8-
use Magento\Analytics\Model\FlagManager;
98
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
109
use Magento\Analytics\Model\SubscriptionStatusProvider;
1110
use Magento\Config\Model\Config\Backend\Baseurl;
11+
use Magento\Framework\FlagManager;
1212
use Magento\Framework\App\Config\Storage\WriterInterface;
1313
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
1414
use Magento\Store\Model\Store;

app/code/Magento/Analytics/Test/Unit/Model/SubscriptionStatusProviderTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
use Magento\Analytics\Model\AnalyticsToken;
99
use Magento\Analytics\Model\Config\Backend\Enabled\SubscriptionHandler;
10-
use Magento\Analytics\Model\FlagManager;
1110
use Magento\Analytics\Model\SubscriptionStatusProvider;
1211
use Magento\Config\App\Config\Type\System;
12+
use Magento\Framework\FlagManager;
1313
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
1414

1515
/**
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Config\App\Config\Source;
7+
8+
use Magento\Framework\App\Config\ConfigSourceInterface;
9+
use Magento\Framework\DataObjectFactory;
10+
use Magento\Framework\FlagManager;
11+
12+
/**
13+
* The source with previously imported configuration.
14+
*/
15+
class InitialSnapshotConfigSource implements ConfigSourceInterface
16+
{
17+
/**
18+
* The factory of Flag instances.
19+
*
20+
* @var FlagManager
21+
*/
22+
private $flagManager;
23+
24+
/**
25+
* The factory of DataObject instances.
26+
*
27+
* @var DataObjectFactory
28+
*/
29+
private $dataObjectFactory;
30+
31+
/**
32+
* @param FlagManager $flagManager The factory of Flag instances
33+
* @param DataObjectFactory $dataObjectFactory The factory of DataObject instances
34+
*/
35+
public function __construct(FlagManager $flagManager, DataObjectFactory $dataObjectFactory)
36+
{
37+
$this->flagManager = $flagManager;
38+
$this->dataObjectFactory = $dataObjectFactory;
39+
}
40+
41+
/**
42+
* Retrieves previously imported configuration.
43+
* Snapshots are stored in flags.
44+
*
45+
* {@inheritdoc}
46+
*/
47+
public function get($path = '')
48+
{
49+
$flagData = (array)($this->flagManager->getFlagData('system_config_snapshot') ?: []);
50+
51+
$data = $this->dataObjectFactory->create(
52+
['data' => $flagData]
53+
);
54+
55+
return $data->getData($path) ?: [];
56+
}
57+
}

app/code/Magento/Config/App/Config/Type/System.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,13 @@ class System implements ConfigTypeInterface
5757
*/
5858
private $serializer;
5959

60+
/**
61+
* The type of config.
62+
*
63+
* @var string
64+
*/
65+
private $configType;
66+
6067
/**
6168
* @param \Magento\Framework\App\Config\ConfigSourceInterface $source
6269
* @param \Magento\Framework\App\Config\Spi\PostProcessorInterface $postProcessor
@@ -65,6 +72,7 @@ class System implements ConfigTypeInterface
6572
* @param \Magento\Framework\Serialize\SerializerInterface $serializer
6673
* @param \Magento\Framework\App\Config\Spi\PreProcessorInterface $preProcessor
6774
* @param int $cachingNestedLevel
75+
* @param string $configType
6876
*/
6977
public function __construct(
7078
\Magento\Framework\App\Config\ConfigSourceInterface $source,
@@ -73,7 +81,8 @@ public function __construct(
7381
\Magento\Framework\Cache\FrontendInterface $cache,
7482
\Magento\Framework\Serialize\SerializerInterface $serializer,
7583
\Magento\Framework\App\Config\Spi\PreProcessorInterface $preProcessor,
76-
$cachingNestedLevel = 1
84+
$cachingNestedLevel = 1,
85+
$configType = self::CONFIG_TYPE
7786
) {
7887
$this->source = $source;
7988
$this->postProcessor = $postProcessor;
@@ -82,6 +91,7 @@ public function __construct(
8291
$this->cachingNestedLevel = $cachingNestedLevel;
8392
$this->fallback = $fallback;
8493
$this->serializer = $serializer;
94+
$this->configType = $configType;
8595
}
8696

8797
/**
@@ -93,7 +103,7 @@ public function get($path = '')
93103
$path = '';
94104
}
95105
if (!$this->data) {
96-
$data = $this->cache->load(self::CONFIG_TYPE);
106+
$data = $this->cache->load($this->configType);
97107
if (!$data) {
98108
$data = $this->preProcessor->process($this->source->get());
99109
$this->data = new DataObject($data);
@@ -104,7 +114,7 @@ public function get($path = '')
104114
$this->data = new DataObject($data);
105115
$this->cache->save(
106116
$this->serializer->serialize($this->data->getData()),
107-
self::CONFIG_TYPE,
117+
$this->configType,
108118
[self::CACHE_TAG]
109119
);
110120
} else {
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Config\Console\Command\ConfigSet;
7+
8+
use Magento\Framework\App\Area;
9+
use Magento\Framework\App\State;
10+
use Magento\Framework\Config\ScopeInterface;
11+
use Magento\Framework\Exception\LocalizedException;
12+
use Magento\Framework\Exception\RuntimeException;
13+
14+
/**
15+
* Processor facade for config:set command with emulated adminhtml area.
16+
*/
17+
class EmulatedProcessorFacade
18+
{
19+
/**
20+
* The factory for processor facade.
21+
*
22+
* @var ProcessorFacadeFactory
23+
*/
24+
private $processorFacadeFactory;
25+
26+
/**
27+
* The application scope manager.
28+
*
29+
* @var ScopeInterface
30+
*/
31+
private $scope;
32+
33+
/**
34+
* The application state manager.
35+
*
36+
* @var State
37+
*/
38+
private $state;
39+
40+
/**
41+
* @param ScopeInterface $scope The application scope manager
42+
* @param State $state The application state manager
43+
* @param ProcessorFacadeFactory $processorFacadeFactory The factory for processor facade
44+
*/
45+
public function __construct(
46+
ScopeInterface $scope,
47+
State $state,
48+
ProcessorFacadeFactory $processorFacadeFactory
49+
) {
50+
$this->scope = $scope;
51+
$this->state = $state;
52+
$this->processorFacadeFactory = $processorFacadeFactory;
53+
}
54+
55+
/**
56+
* Processes config:set command.
57+
*
58+
* @param string $path The configuration path in format group/section/field_name
59+
* @param string $value The configuration value
60+
* @param string $scope The configuration scope (default, website, or store)
61+
* @param string $scopeCode The scope code
62+
* @param boolean $lock The lock flag
63+
* @return string Processor response message
64+
* @throws RuntimeException If exception was catch
65+
*/
66+
public function process($path, $value, $scope, $scopeCode, $lock)
67+
{
68+
$currentScope = $this->scope->getCurrentScope();
69+
70+
try {
71+
// Emulating adminhtml scope to be able to read configs.
72+
return $this->state->emulateAreaCode(Area::AREA_ADMINHTML, function () use (
73+
$path,
74+
$value,
75+
$scope,
76+
$scopeCode,
77+
$lock
78+
) {
79+
$this->scope->setCurrentScope(Area::AREA_ADMINHTML);
80+
81+
return $this->processorFacadeFactory->create()->process(
82+
$path,
83+
$value,
84+
$scope,
85+
$scopeCode,
86+
$lock
87+
);
88+
});
89+
} catch (LocalizedException $exception) {
90+
throw new RuntimeException(__('%1', $exception->getMessage()), $exception);
91+
} finally {
92+
$this->scope->setCurrentScope($currentScope);
93+
}
94+
}
95+
}

0 commit comments

Comments
 (0)