Skip to content

Commit 4baea6d

Browse files
authored
Merge pull request #10086 from magento-gl/commpr-21755-0809
[Bluetooth] Community Pull Requests delivery - Sep
2 parents c8ff030 + 2318d0a commit 4baea6d

File tree

7 files changed

+122
-31
lines changed

7 files changed

+122
-31
lines changed

app/code/Magento/MessageQueue/Model/Cron/ConsumersRunner.php

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
3+
* Copyright 2017 Adobe
4+
* All Rights Reserved.
55
*/
66
namespace Magento\MessageQueue\Model\Cron;
77

@@ -139,8 +139,7 @@ public function run(): void
139139
];
140140

141141
if ($maxMessages) {
142-
$arguments[] =
143-
'--max-messages=' . min($consumer->getMaxMessages() ?? $maxMessages, $maxMessages);
142+
$arguments = $this->addMaxMessagesArgument($arguments, $consumer, $maxMessages);
144143
}
145144

146145
$command = $php . ' ' . BP . '/bin/magento queue:consumers:start %s %s'
@@ -155,7 +154,7 @@ public function run(): void
155154
];
156155

157156
if ($maxMessages) {
158-
$arguments[] = '--max-messages=' . min($consumer->getMaxMessages() ?? $maxMessages, $maxMessages);
157+
$arguments = $this->addMaxMessagesArgument($arguments, $consumer, $maxMessages);
159158
}
160159

161160
$command = $php . ' ' . BP . '/bin/magento queue:consumers:start %s %s'
@@ -166,6 +165,38 @@ public function run(): void
166165
}
167166
}
168167

168+
/**
169+
* Add max-messages argument and log warning if exceeds default
170+
*
171+
* @param array $arguments Arguments array to append to
172+
* @param ConsumerConfigItemInterface $consumer
173+
* @param int $defaultMaxMessages
174+
* @return array
175+
*/
176+
private function addMaxMessagesArgument(
177+
array $arguments,
178+
ConsumerConfigItemInterface $consumer,
179+
int $defaultMaxMessages
180+
): array {
181+
$consumerMaxMessages =$consumer->getMaxMessages() ?? $defaultMaxMessages;
182+
183+
if ($consumerMaxMessages > $defaultMaxMessages) {
184+
$this->logger->warning(
185+
__(
186+
'Consumer "%1" has max-messages=%2 which exceeds the configured default (%3). '
187+
. 'This may probably cause high memory usage or long processing times.',
188+
$consumer->getName(),
189+
$consumerMaxMessages,
190+
$defaultMaxMessages
191+
)
192+
);
193+
}
194+
195+
$arguments[] = '--max-messages=' . $consumerMaxMessages;
196+
197+
return $arguments;
198+
}
199+
169200
/**
170201
* Checks that the consumer can be run
171202
*

app/code/Magento/MessageQueue/Test/Unit/Model/Cron/ConsumersRunnerTest.php

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
3+
* Copyright 2017 Adobe
4+
* All Rights Reserved.
55
*/
66
declare(strict_types=1);
77

@@ -18,6 +18,7 @@
1818
use PHPUnit\Framework\MockObject\MockObject;
1919
use PHPUnit\Framework\TestCase;
2020
use Symfony\Component\Process\PhpExecutableFinder;
21+
use Psr\Log\LoggerInterface;
2122

2223
/**
2324
* Unit tests for ConsumersRunner.
@@ -64,6 +65,11 @@ class ConsumersRunnerTest extends TestCase
6465
*/
6566
private $consumersRunner;
6667

68+
/**
69+
* @var LoggerInterface
70+
*/
71+
private $loggerMock;
72+
6773
/**
6874
* {@inheritdoc}
6975
*/
@@ -89,14 +95,18 @@ protected function setUp(): void
8995
->getMock();
9096
$this->connectionTypeResolver->method('getConnectionType')->willReturn('something');
9197

98+
$this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
99+
->disableOriginalConstructor()
100+
->getMock();
101+
92102
$this->consumersRunner = new ConsumersRunner(
93103
$this->phpExecutableFinderMock,
94104
$this->consumerConfigMock,
95105
$this->deploymentConfigMock,
96106
$this->shellBackgroundMock,
97107
$this->lockManagerMock,
98108
$this->connectionTypeResolver,
99-
null,
109+
$this->loggerMock,
100110
$this->checkIsAvailableMessagesMock
101111
);
102112
}
@@ -124,6 +134,7 @@ public function testRunDisabled()
124134

125135
/**
126136
* @param int $maxMessages
137+
* @param int $maxMessagesConsumer
127138
* @param bool $isLocked
128139
* @param string $php
129140
* @param string $command
@@ -135,6 +146,7 @@ public function testRunDisabled()
135146
*/
136147
public function testRun(
137148
$maxMessages,
149+
$maxMessagesConsumer,
138150
$isLocked,
139151
$php,
140152
$command,
@@ -161,6 +173,7 @@ public function testRun(
161173
$consumer = $this->getMockBuilder(ConsumerConfigItemInterface::class)
162174
->getMockForAbstractClass();
163175
$consumer->method('getName')->willReturn($consumerName);
176+
$consumer->method('getMaxMessages')->willReturn($maxMessagesConsumer);
164177

165178
$this->phpExecutableFinderMock->expects($this->once())
166179
->method('find')
@@ -190,6 +203,7 @@ public static function runDataProvider()
190203
return [
191204
[
192205
'maxMessages' => 20000,
206+
'maxMessagesConsumer' => 20000,
193207
'isLocked' => false,
194208
'php' => '',
195209
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
@@ -200,16 +214,18 @@ public static function runDataProvider()
200214
],
201215
[
202216
'maxMessages' => 10000,
217+
'maxMessagesConsumer' => 30000,
203218
'isLocked' => false,
204219
'php' => '',
205220
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
206-
'arguments' => ['consumerName', '--single-thread', '--max-messages=10000'],
221+
'arguments' => ['consumerName', '--single-thread', '--max-messages=30000'],
207222
'allowedConsumers' => [],
208223
'shellBackgroundExpects' => 1,
209224
'isRunExpects' => 1,
210225
],
211226
[
212227
'maxMessages' => 10000,
228+
'maxMessagesConsumer' => 10000,
213229
'isLocked' => false,
214230
'php' => '',
215231
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
@@ -220,6 +236,7 @@ public static function runDataProvider()
220236
],
221237
[
222238
'maxMessages' => 10000,
239+
'maxMessagesConsumer' => 10000,
223240
'isLocked' => true,
224241
'php' => '',
225242
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
@@ -230,6 +247,7 @@ public static function runDataProvider()
230247
],
231248
[
232249
'maxMessages' => 10000,
250+
'maxMessagesConsumer' => 10000,
233251
'isLocked' => true,
234252
'php' => '',
235253
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
@@ -240,6 +258,7 @@ public static function runDataProvider()
240258
],
241259
[
242260
'maxMessages' => 10000,
261+
'maxMessagesConsumer' => 10000,
243262
'isLocked' => true,
244263
'php' => '',
245264
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
@@ -250,16 +269,18 @@ public static function runDataProvider()
250269
],
251270
[
252271
'maxMessages' => 10000,
272+
'maxMessagesConsumer' => 500,
253273
'isLocked' => false,
254274
'php' => '',
255275
'command' => 'php ' . BP . '/bin/magento queue:consumers:start %s %s %s',
256-
'arguments' => ['consumerName', '--single-thread', '--max-messages=10000'],
276+
'arguments' => ['consumerName', '--single-thread', '--max-messages=500'],
257277
'allowedConsumers' => ['consumerName'],
258278
'shellBackgroundExpects' => 1,
259279
'isRunExpects' => 1,
260280
],
261281
[
262282
'maxMessages' => 0,
283+
'maxMessagesConsumer' => 0,
263284
'isLocked' => false,
264285
'php' => '/bin/php',
265286
'command' => '/bin/php ' . BP . '/bin/magento queue:consumers:start %s %s',

app/code/Magento/Swatches/Test/Mftf/Test/AdminSetUpWatermarkForSwatchImageTest.xml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
3-
/**
4-
* Copyright © Magento, Inc. All rights reserved.
5-
* See COPYING.txt for license details.
6-
*/
3+
/**
4+
* Copyright 2019 Adobe
5+
* All Rights Reserved.
6+
*/
77
-->
88

99
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -17,7 +17,6 @@
1717
<severity value="MAJOR"/>
1818
<testCaseId value="MC-17607"/>
1919
<useCaseId value="MC-15523"/>
20-
<severity value="MAJOR"/>
2120
<group value="swatches"/>
2221
<group value="cloud"/>
2322
</annotations>

app/code/Magento/Webapi/Controller/Rest/SynchronousRequestProcessor.php

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<?php
22
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
3+
* Copyright 2018 Adobe
4+
* All Rights Reserved.
55
*/
66
declare(strict_types=1);
77

88
namespace Magento\Webapi\Controller\Rest;
99

10+
use Magento\Framework\Webapi\Exception as WebapiException;
1011
use Magento\Framework\Webapi\Rest\Response as RestResponse;
1112
use Magento\Framework\Webapi\ServiceOutputProcessor;
1213
use Magento\Framework\Webapi\Rest\Response\FieldsFilter;
@@ -19,7 +20,7 @@
1920
*/
2021
class SynchronousRequestProcessor implements RequestProcessorInterface
2122
{
22-
const PROCESSOR_PATH = "/^\\/V\\d+/";
23+
public const PROCESSOR_PATH = "/^\\/V\\d+/";
2324

2425
/**
2526
* @var RestResponse
@@ -78,7 +79,7 @@ public function __construct(
7879
}
7980

8081
/**
81-
* {@inheritdoc}
82+
* @inheritdoc
8283
*/
8384
public function process(\Magento\Framework\Webapi\Rest\Request $request)
8485
{
@@ -92,7 +93,13 @@ public function process(\Magento\Framework\Webapi\Rest\Request $request)
9293
/**
9394
* @var \Magento\Framework\Api\AbstractExtensibleObject $outputData
9495
*/
95-
$outputData = call_user_func_array([$service, $serviceMethodName], $inputParams);
96+
try {
97+
// phpcs:disable Magento2.Functions.DiscouragedFunction
98+
$outputData = call_user_func_array([$service, $serviceMethodName], $inputParams);
99+
// phpcs:enable Magento2.Functions.DiscouragedFunction
100+
} catch (\TypeError $e) {
101+
throw new WebapiException(__($e->getMessage()));
102+
}
96103
$outputData = $this->serviceOutputProcessor->process(
97104
$outputData,
98105
$serviceClassName,
@@ -109,7 +116,7 @@ public function process(\Magento\Framework\Webapi\Rest\Request $request)
109116
}
110117

111118
/**
112-
* {@inheritdoc}
119+
* @inheritdoc
113120
*/
114121
public function canProcess(\Magento\Framework\Webapi\Rest\Request $request)
115122
{

dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/StoreConfigTest.php

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
3+
* Copyright 2020 Adobe
4+
* All Rights Reserved.
55
*/
66
declare(strict_types=1);
77

@@ -17,24 +17,38 @@
1717
class StoreConfigTest extends GraphQlAbstract
1818
{
1919
/**
20-
* Check type of autocomplete_on_storefront storeConfig value
21-
*
2220
* @magentoConfigFixture default_store customer/password/autocomplete_on_storefront 1
21+
* @magentoConfigFixture default_store customer/password/minimum_password_length 6
22+
* @magentoConfigFixture default_store customer/password/required_character_classes_number 2
2323
*
2424
* @throws Exception
2525
*/
26-
public function testReturnTypeAutocompleteOnStorefrontConfig()
26+
public function testGetCustomerStoreConfig()
2727
{
28+
$minimumPasswordLength = 6;
29+
$requiredCharacterClassesNumber = 2;
30+
2831
$query = <<<QUERY
2932
{
3033
storeConfig {
3134
autocomplete_on_storefront
35+
minimum_password_length
36+
required_character_classes_number
3237
}
3338
}
3439
QUERY;
3540
$response = $this->graphQlQuery($query);
3641
self::assertArrayHasKey('autocomplete_on_storefront', $response['storeConfig']);
3742
self::assertTrue($response['storeConfig']['autocomplete_on_storefront']);
43+
44+
self::assertArrayHasKey('minimum_password_length', $response['storeConfig']);
45+
self::assertEquals($response['storeConfig']['minimum_password_length'], $minimumPasswordLength);
46+
47+
self::assertArrayHasKey('required_character_classes_number', $response['storeConfig']);
48+
self::assertEquals(
49+
$response['storeConfig']['required_character_classes_number'],
50+
$requiredCharacterClassesNumber
51+
);
3852
}
3953

4054
#[

dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipOrderTest.php

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
3+
* Copyright 2016 Adobe
4+
* All Rights Reserved.
55
*/
66
declare(strict_types=1);
77

@@ -181,6 +181,26 @@ public function testShipOrder()
181181
);
182182
}
183183

184+
/**
185+
* @magentoApiDataFixture Magento/Sales/_files/order_new.php
186+
*/
187+
public function testShipOrderWithTypeError()
188+
{
189+
/** @var Order $existingOrder */
190+
$existingOrder = $this->getOrder('100000001');
191+
192+
$requestData = [
193+
'orderId' => $existingOrder->getId(),
194+
'items' => "[]",
195+
];
196+
197+
try {
198+
$this->_webApiCall($this->getServiceInfo($existingOrder), $requestData);
199+
$this->fail('Expected exception was not raised');
200+
} catch (\Exception $exception) {
201+
}
202+
}
203+
184204
/**
185205
* Tests that not providing a tracking number produces the correct error. See MAGETWO-95429
186206
* @codingStandardsIgnoreStart

lib/web/css/source/lib/_pages.less

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// /**
2-
// * Copyright © Magento, Inc. All rights reserved.
3-
// * See COPYING.txt for license details.
2+
// * Copyright 2014 Adobe
3+
// * All Rights Reserved.
44
// */
55

66
//
@@ -76,7 +76,6 @@
7676
@_pager-action-background: @pager-action__background,
7777
@_pager-action-gradient-color-start: @pager__gradient-color-start,
7878
@_pager-action-gradient-color-end: @pager__gradient-color-end,
79-
@_pager-action-text-decoration: @pager-action__text-decoration,
8079

8180
// Page action item (previous-next) - visited
8281
@_pager-action-color-visited: @pager-action__visited__color,

0 commit comments

Comments
 (0)