Skip to content

Commit 214909c

Browse files
authored
Merge pull request #656 from favicode/fix/enable_command
Fix/enable command
2 parents eb9f84e + 386ef95 commit 214909c

File tree

1 file changed

+75
-71
lines changed

1 file changed

+75
-71
lines changed

Console/Command/EnableCommand.php

Lines changed: 75 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
* @copyright Copyright (c) 2016 Fastly, Inc. (http://www.fastly.com)
1919
* @license BSD, see LICENSE_FASTLY_CDN.txt
2020
*/
21+
2122
namespace Fastly\Cdn\Console\Command;
2223

2324
use Fastly\Cdn\Model\Config;
@@ -30,6 +31,7 @@
3031
use Symfony\Component\Console\Input\InputInterface;
3132
use Symfony\Component\Console\Output\OutputInterface;
3233
use Symfony\Component\Console\Input\InputOption;
34+
use Symfony\Component\Console\Input\InputArgument;
3335
use Magento\Framework\App\Config\Storage\WriterInterface;
3436
use Magento\Framework\App\Cache\Manager;
3537
use Magento\Framework\Console\Cli;
@@ -115,30 +117,30 @@ protected function configure() // @codingStandardsIgnoreLine - required by paren
115117
'u',
116118
InputOption::VALUE_NONE,
117119
'Uploads default VCL files, Test connection must pass to proceed with VCL uploading.'
118-
. ' Add --activate argument to activate new version.'
119-
);
120+
. ' Add activate argument to activate new version of vcl.'
121+
)
122+
->addArgument(
123+
'activate',
124+
InputArgument::OPTIONAL,
125+
'Argument to activate new version of vcl (Possible values: true / false).'
126+
. PHP_EOL . 'This argument can be used with next options:'
127+
. PHP_EOL . ' upload-vcl, enable-force-tls and disable-force-tls.',
128+
false);
120129

121130
$this->addOption(
122131
'enable-force-tls',
123132
'f',
124133
InputOption::VALUE_NONE,
125134
'Uploads Force TLS snippets, Test connection must pass to proceed with VCL uploading.'
126-
. ' Add --activate argument to activate new version.'
135+
. ' Add activate argument to activate new version of vcl.'
127136
);
128137

129138
$this->addOption(
130139
'disable-force-tls',
131140
'l',
132141
InputOption::VALUE_NONE,
133142
'Removes Force TLS snippets, Test connection must pass to proceed with VCL snippet removal.'
134-
. ' Add --activate argument to activate new version.'
135-
);
136-
137-
$this->addOption(
138-
'activate',
139-
'a',
140-
InputOption::VALUE_NONE,
141-
'Activate newly cloned version. Used with VCL upload.'
143+
. ' Add activate argument to activate new version of vcl.'
142144
);
143145

144146
$this->addOption(
@@ -273,15 +275,16 @@ protected function configure() // @codingStandardsIgnoreLine - required by paren
273275
* @param Dictionary $dictionary
274276
*/
275277
public function __construct(
276-
Config $config,
277-
Api $api,
278-
Vcl $vcl,
278+
Config $config,
279+
Api $api,
280+
Vcl $vcl,
279281
WriterInterface $configWriter,
280-
Manager $cacheManager,
281-
Filesystem $filesystem,
282-
Acl $acl,
283-
Dictionary $dictionary
284-
) {
282+
Manager $cacheManager,
283+
Filesystem $filesystem,
284+
Acl $acl,
285+
Dictionary $dictionary
286+
)
287+
{
285288
parent::__construct();
286289
$this->config = $config;
287290
$this->api = $api;
@@ -372,18 +375,19 @@ protected function execute(InputInterface $input, OutputInterface $output) // @c
372375
}
373376

374377
// Upload VCL
378+
$activate = filter_var($input->getArgument('activate'), FILTER_VALIDATE_BOOLEAN);
375379
if ($input->getOption('upload-vcl')) {
376-
$this->uploadVcl($input->getOption('activate'));
380+
$this->uploadVcl($activate);
377381
}
378382

379383
// Enable Force TLS snippet
380384
if ($input->getOption('enable-force-tls')) {
381-
$this->enableforceTls($input->getOption('activate'));
385+
$this->enableforceTls($activate);
382386
}
383387

384388
// Enable Force TLS snippet
385389
if ($input->getOption('disable-force-tls')) {
386-
$this->disableforceTls($input->getOption('activate'));
390+
$this->disableforceTls($activate);
387391
}
388392

389393
// Enable
@@ -707,11 +711,11 @@ private function uploadVcl($activate)
707711

708712
foreach ($snippets as $key => $value) {
709713
$snippetData = [
710-
'name' => Config::FASTLY_MAGENTO_MODULE . '_' . $key,
711-
'type' => $key,
712-
'dynamic' => "0",
713-
'priority' => 50,
714-
'content' => $value
714+
'name' => Config::FASTLY_MAGENTO_MODULE . '_' . $key,
715+
'type' => $key,
716+
'dynamic' => "0",
717+
'priority' => 50,
718+
'content' => $value
715719
];
716720
$this->api->uploadSnippet($clone->number, $snippetData);
717721
}
@@ -723,31 +727,31 @@ private function uploadVcl($activate)
723727
$snippetShortName = $snippetNameData[2];
724728

725729
$customSnippetData = [
726-
'name' => Config::FASTLY_MAGENTO_MODULE . '_' . $snippetShortName,
727-
'type' => $snippetType,
728-
'priority' => $snippetPriority,
729-
'content' => $value,
730-
'dynamic' => '0'
730+
'name' => Config::FASTLY_MAGENTO_MODULE . '_' . $snippetShortName,
731+
'type' => $snippetType,
732+
'priority' => $snippetPriority,
733+
'content' => $value,
734+
'dynamic' => '0'
731735
];
732736
$this->api->uploadSnippet($clone->number, $customSnippetData);
733737
}
734738

735739
$this->createGzipHeader($clone);
736740

737741
$condition = [
738-
'name' => Config::FASTLY_MAGENTO_MODULE . '_pass',
742+
'name' => Config::FASTLY_MAGENTO_MODULE . '_pass',
739743
'statement' => 'req.http.x-pass',
740-
'type' => 'REQUEST',
741-
'priority' => 90
744+
'type' => 'REQUEST',
745+
'priority' => 90
742746
];
743747
$createCondition = $this->api->createCondition($clone->number, $condition);
744748
$request = [
745-
'action' => 'pass',
746-
'max_stale_age' => 3600,
747-
'name' => Config::FASTLY_MAGENTO_MODULE.'_request',
749+
'action' => 'pass',
750+
'max_stale_age' => 3600,
751+
'name' => Config::FASTLY_MAGENTO_MODULE . '_request',
748752
'request_condition' => $createCondition->name,
749-
'service_id' => $service->id,
750-
'version' => $currActiveVersion
753+
'service_id' => $service->id,
754+
'version' => $currActiveVersion
751755
];
752756

753757
$this->api->createRequest($clone->number, $request);
@@ -760,7 +764,7 @@ private function uploadVcl($activate)
760764

761765
if ($activate) {
762766
$this->api->activateVersion($clone->number);
763-
$msg .= 'Activated Version '. $clone->number;
767+
$msg .= 'Activated Version ' . $clone->number;
764768
}
765769

766770
if ($this->config->areWebHooksEnabled() && $this->config->canPublishConfigChanges()) {
@@ -788,26 +792,26 @@ private function enableForceTls($activate)
788792
$service = $this->api->checkServiceDetails();
789793
$currActiveVersion = $this->vcl->getCurrentVersion($service->versions);
790794
$clone = $this->api->cloneVersion($currActiveVersion);
791-
$reqName = Config::FASTLY_MAGENTO_MODULE.'_force_tls';
795+
$reqName = Config::FASTLY_MAGENTO_MODULE . '_force_tls';
792796
$snippets = $this->config->getVclSnippets(Config::FORCE_TLS_PATH);
793797

794798
$request = [
795-
'name' => $reqName,
796-
'service_id' => $service->id,
797-
'version' => $currActiveVersion,
798-
'force_ssl' => true
799+
'name' => $reqName,
800+
'service_id' => $service->id,
801+
'version' => $currActiveVersion,
802+
'force_ssl' => true
799803
];
800804

801805
$this->api->createRequest($clone->number, $request);
802806

803807
// Add force TLS snippet
804808
foreach ($snippets as $key => $value) {
805809
$snippetData = [
806-
'name' => Config::FASTLY_MAGENTO_MODULE.'_force_tls_'.$key,
807-
'type' => $key,
808-
'dynamic' => "0",
809-
'priority' => 10,
810-
'content' => $value
810+
'name' => Config::FASTLY_MAGENTO_MODULE . '_force_tls_' . $key,
811+
'type' => $key,
812+
'dynamic' => "0",
813+
'priority' => 10,
814+
'content' => $value
811815
];
812816
$this->api->uploadSnippet($clone->number, $snippetData);
813817
}
@@ -817,11 +821,11 @@ private function enableForceTls($activate)
817821

818822
if ($activate) {
819823
$this->api->activateVersion($clone->number);
820-
$msg .= 'Activated Version '. $clone->number;
824+
$msg .= 'Activated Version ' . $clone->number;
821825
}
822826

823827
if ($this->config->areWebHooksEnabled() && $this->config->canPublishConfigChanges()) {
824-
$this->api->sendWebHook('*Force TLS has been turned ON in Fastly version '. $clone->number . '*');
828+
$this->api->sendWebHook('*Force TLS has been turned ON in Fastly version ' . $clone->number . '*');
825829
}
826830

827831
$this->output->writeln('<info>' . $msg . '</info>', OutputInterface::OUTPUT_NORMAL);
@@ -843,21 +847,21 @@ private function disableForceTls($activate)
843847
$service = $this->api->checkServiceDetails();
844848
$currActiveVersion = $this->vcl->getCurrentVersion($service->versions);
845849
$clone = $this->api->cloneVersion($currActiveVersion);
846-
$reqName = Config::FASTLY_MAGENTO_MODULE.'_force_tls';
850+
$reqName = Config::FASTLY_MAGENTO_MODULE . '_force_tls';
847851
$snippets = $this->config->getVclSnippets(Config::FORCE_TLS_PATH);
848852

849853
$request = [
850-
'name' => $reqName,
851-
'service_id' => $service->id,
852-
'version' => $currActiveVersion,
853-
'force_ssl' => false
854+
'name' => $reqName,
855+
'service_id' => $service->id,
856+
'version' => $currActiveVersion,
857+
'force_ssl' => false
854858
];
855859

856860
$this->api->createRequest($clone->number, $request);
857861

858862
// Remove Force TLS snippet
859863
foreach ($snippets as $key => $value) {
860-
$name = Config::FASTLY_MAGENTO_MODULE.'_force_tls_'.$key;
864+
$name = Config::FASTLY_MAGENTO_MODULE . '_force_tls_' . $key;
861865

862866
if ($this->api->hasSnippet($clone->number, $name)) {
863867
$this->api->removeSnippet($clone->number, $name);
@@ -869,11 +873,11 @@ private function disableForceTls($activate)
869873

870874
if ($activate) {
871875
$this->api->activateVersion($clone->number);
872-
$msg .= 'Activated Version '. $clone->number;
876+
$msg .= 'Activated Version ' . $clone->number;
873877
}
874878

875879
if ($this->config->areWebHooksEnabled() && $this->config->canPublishConfigChanges()) {
876-
$this->api->sendWebHook('*Force TLS has been turned OFF in Fastly version '. $clone->number . '*');
880+
$this->api->sendWebHook('*Force TLS has been turned OFF in Fastly version ' . $clone->number . '*');
877881
}
878882

879883
$this->output->writeln('<info>' . $msg . '</info>', OutputInterface::OUTPUT_NORMAL);
@@ -939,21 +943,21 @@ private function validateCustomSnippet($customSnippet)
939943
private function createGzipHeader($clone)
940944
{
941945
$condition = [
942-
'name' => Config::FASTLY_MAGENTO_MODULE.'_gzip_safety',
946+
'name' => Config::FASTLY_MAGENTO_MODULE . '_gzip_safety',
943947
'statement' => 'beresp.http.x-esi',
944-
'type' => 'CACHE',
945-
'priority' => 100
948+
'type' => 'CACHE',
949+
'priority' => 100
946950
];
947951
$createCondition = $this->api->createCondition($clone->number, $condition);
948952

949953
$headerData = [
950-
'name' => Config::FASTLY_MAGENTO_MODULE . '_gzip_safety',
951-
'type' => 'cache',
952-
'dst' => 'gzip',
953-
'action' => 'set',
954-
'priority' => 1000,
955-
'src' => 'false',
956-
'cache_condition' => $createCondition->name,
954+
'name' => Config::FASTLY_MAGENTO_MODULE . '_gzip_safety',
955+
'type' => 'cache',
956+
'dst' => 'gzip',
957+
'action' => 'set',
958+
'priority' => 1000,
959+
'src' => 'false',
960+
'cache_condition' => $createCondition->name,
957961
];
958962

959963
$this->api->createHeader($clone->number, $headerData);

0 commit comments

Comments
 (0)