From 6bddde196435e19b1143063ae4fce14011e7a33e Mon Sep 17 00:00:00 2001 From: Mike Baynton Date: Thu, 26 Sep 2019 15:13:14 -0500 Subject: [PATCH] [CORE-1576] Commands to set and unset primary domain. (#2011) * Commands to set and unset primary domain. WIP: needs tests. * Tests for setting/resetting primary domain and its commands. * Rename command to remove primary domain to `domain:primary:reset` for consistency. * Refactor set_primary_domain workflow maker out of a Command to Models\Environment class. * CS fix * Filter pantheonsite.io domains from interactive choice list. While the platform supports setting these domains as primary, it seems highly unlikely that a user would do this intentionally, and more likely that if it were chosen from a multiple choice list, that it was just fat-fingered. For better UX, they are therefore excluded. Users that really mean to do this can do so by typing/passing the full pantheonsite.io domain non-interactively to the domain:primary:set command. * Add primary domain to Domain model and domain:list command. * UX review: Change command to domain:primary:unset, log completion. * Changes that are clear from @TeslaDethray's requests. * Rename domain:primary:set to domain:primary:add per consensus of product and technical leadership. * Best guess at new model refactor request * Fix failing tests in older minor versions of php 7.0 - 7.3. It seems substr_compare issues a warning iff the first parameter is the empty string in these earlier minor releases; manual states it was fixed in 7.2.18. Since a) it's been fixed and b) empty strings are not expected real-world input, I've simply removed that input from the test coverage. * Behat tests for add and remove primary domain * Make behat.yml a bit more yaml-compliant (% not allowed as beginning of string) * Restore Consolidation\\Filter\\Hooks\\FilterHooks to command list * Changelog for 2.2.0 * Fix stated version in changelog --- CHANGELOG.md | 6 + src/Commands/Domain/ListCommand.php | 1 + src/Commands/Domain/Primary/AddCommand.php | 98 ++++++++ src/Commands/Domain/Primary/RemoveCommand.php | 43 ++++ src/Models/Domain.php | 1 + src/Models/Environment.php | 8 + src/Models/PrimaryDomain.php | 54 +++++ src/Terminus.php | 3 + tests/config/behat.yml | 4 +- tests/features/domain-primary.feature | 28 +++ tests/fixtures/domain-primary-add.yml | 223 ++++++++++++++++++ .../Domain/Primary/AddCommandTest.php | 54 +++++ .../Primary/PrimaryDomainCommandsTestBase.php | 81 +++++++ .../Domain/Primary/RemoveCommandTest.php | 28 +++ tests/unit_tests/Models/DomainTest.php | 27 ++- 15 files changed, 656 insertions(+), 3 deletions(-) create mode 100644 src/Commands/Domain/Primary/AddCommand.php create mode 100644 src/Commands/Domain/Primary/RemoveCommand.php create mode 100644 src/Models/PrimaryDomain.php create mode 100644 tests/features/domain-primary.feature create mode 100644 tests/fixtures/domain-primary-add.yml create mode 100644 tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php create mode 100644 tests/unit_tests/Commands/Domain/Primary/PrimaryDomainCommandsTestBase.php create mode 100644 tests/unit_tests/Commands/Domain/Primary/RemoveCommandTest.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 88eff76be..b845b9a83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org) +## MASTER +### Added +- Added `primary` field to the output of `domain:list`. (#2011) +- Added `domain:primary:add` command to set a domain as primary, causing traffic to redirect to it. (#2011) +- Added `domain:primary:remove` command to remove a domain's primary designation. (#2011) + ## 2.1.0 - 2019-09-03 ### Added - Added `--filter` option to `backup:list` command (#1992) diff --git a/src/Commands/Domain/ListCommand.php b/src/Commands/Domain/ListCommand.php index 250f2c616..cdd7a8ebf 100644 --- a/src/Commands/Domain/ListCommand.php +++ b/src/Commands/Domain/ListCommand.php @@ -29,6 +29,7 @@ class ListCommand extends TerminusCommand implements SiteAwareInterface * @field-labels * id: Domain/ID * type: Type + * primary: Is Primary * deletable: Is Deletable * status: status * @return RowsOfFields diff --git a/src/Commands/Domain/Primary/AddCommand.php b/src/Commands/Domain/Primary/AddCommand.php new file mode 100644 index 000000000..e39da83b9 --- /dev/null +++ b/src/Commands/Domain/Primary/AddCommand.php @@ -0,0 +1,98 @@ + + */ + public function add($site_env, $domain) + { + /** + * @var $site Site + * @var $env Environment + */ + list($site, $env) = $this->getSiteEnv($site_env); + + // The primary domain is set via a workflow so as to use workflow logging to track changes & update policy docs. + $workflow = $env->getPrimaryDomainModel()->setPrimaryDomain($domain); + $this->processWorkflow($workflow); + $this->log()->notice( + 'Set {domain} as primary for {site}.{env}', + ['domain' => $domain, 'site' => $site->get('name'), 'env' => $env->id,] + ); + } + + /** + * Prompt the user for the domain, if it was not specified. + * + * n.b. This hook is not called in --no-interaction mode. + * + * @param InputInterface $input + * @param OutputInterface $output + * @param AnnotationData $annotationData + * + * @hook interact domain:primary:add + */ + public function interact(InputInterface $input, OutputInterface $output, AnnotationData $annotationData) + { + $domain = $input->getArgument('domain'); + if (empty($domain)) { + /** + * @var $site Site + * @var $env Environment + */ + list($site, $env) = $this->getSiteEnv($input->getArgument('site_env')); + $domains = $this->filterPlatformDomains($env->getDomains()->ids()); + sort($domains); + + if (!empty($domains)) { + $domain = $this->io()->choice('Select the primary domain for this site', $domains); + $input->setArgument('domain', $domain); + } + } + } + + /** + * Filters strings ending in the platform domain from an array. + * + * @param $domains + * @return array + */ + public function filterPlatformDomains($domains) + { + return array_filter($domains, function ($domain) { + return substr_compare($domain, self::PLATFORM_DOMAIN, -strlen(self::PLATFORM_DOMAIN)) !== 0; + }); + } +} diff --git a/src/Commands/Domain/Primary/RemoveCommand.php b/src/Commands/Domain/Primary/RemoveCommand.php new file mode 100644 index 000000000..9e93e8597 --- /dev/null +++ b/src/Commands/Domain/Primary/RemoveCommand.php @@ -0,0 +1,43 @@ +getSiteEnv($site_env); + + $workflow = $env->getPrimaryDomainModel()->removePrimaryDomain(); + $this->processWorkflow($workflow); + $this->log()->notice( + 'Primary domain has been removed from {site}.{env}', + ['site' => $site->get('name'), 'env' => $env->id,] + ); + } +} diff --git a/src/Models/Domain.php b/src/Models/Domain.php index c63f04729..a280a6137 100755 --- a/src/Models/Domain.php +++ b/src/Models/Domain.php @@ -65,6 +65,7 @@ public function serialize() 'status' => in_array($this->get('status'), ['ok', 'okay',]) ? 'OK' : $this->get('status'), 'status_message' => $this->get('status_message'), 'deletable' => (boolean)$this->get('deletable'), + 'primary' => (boolean)$this->get('primary'), ]; } } diff --git a/src/Models/Environment.php b/src/Models/Environment.php index ebbebd6af..321ac2928 100755 --- a/src/Models/Environment.php +++ b/src/Models/Environment.php @@ -469,6 +469,14 @@ public function getDomains() return $this->domains; } + /** + * @return PrimaryDomain + */ + public function getPrimaryDomainModel() + { + return $this->getContainer()->get(PrimaryDomain::class, [$this]); + } + /** * Gets the Drush version of this environment * diff --git a/src/Models/PrimaryDomain.php b/src/Models/PrimaryDomain.php new file mode 100644 index 000000000..a398c2e74 --- /dev/null +++ b/src/Models/PrimaryDomain.php @@ -0,0 +1,54 @@ +setEnvironment($environment); + } + + /** + * Builds a Workflow to set the primary domain for this environment. + * + * @param string $domain A domain name attached to this environment. + * + * @return Workflow + */ + public function setPrimaryDomain($domain) + { + return $this->workflowFactory($domain); + } + + /** + * Builds a workflow to remove the primary domain from this environment. + * + * @return Workflow + */ + public function removePrimaryDomain() + { + return $this->workflowFactory(null); + } + + /** + * @param string $domain + * @return Workflow + */ + protected function workflowFactory($domain) + { + return $this->getEnvironment()->getWorkflows()->create( + 'set_primary_domain', + [ + 'environment' => $this->getEnvironment()->id, + 'params' => ['primary_domain' => $domain] + ] + ); + } +} diff --git a/src/Terminus.php b/src/Terminus.php index c5952b1b6..555af9134 100644 --- a/src/Terminus.php +++ b/src/Terminus.php @@ -147,6 +147,8 @@ private function addBuiltInCommandsAndHooks() 'Pantheon\\Terminus\\Commands\\Domain\\DNSCommand', 'Pantheon\\Terminus\\Commands\\Domain\\ListCommand', 'Pantheon\\Terminus\\Commands\\Domain\\LookupCommand', + 'Pantheon\\Terminus\\Commands\\Domain\\Primary\\AddCommand', + 'Pantheon\\Terminus\\Commands\\Domain\\Primary\\RemoveCommand', 'Pantheon\\Terminus\\Commands\\Domain\\RemoveCommand', 'Pantheon\\Terminus\\Commands\\Env\\ClearCacheCommand', 'Pantheon\\Terminus\\Commands\\Env\\CloneContentCommand', @@ -367,6 +369,7 @@ private function configureModulesAndCollections($container) $container->add(\Pantheon\Terminus\Models\OrganizationUserMembership::class); $container->add(\Pantheon\Terminus\Models\PaymentMethod::class); $container->add(\Pantheon\Terminus\Models\Plan::class); + $container->add(\Pantheon\Terminus\Models\PrimaryDomain::class); $container->add(\Pantheon\Terminus\Models\Profile::class); $container->add(\Pantheon\Terminus\Models\Redis::class); $container->add(\Pantheon\Terminus\Models\SSHKey::class); diff --git a/tests/config/behat.yml b/tests/config/behat.yml index f4905889d..e35873359 100644 --- a/tests/config/behat.yml +++ b/tests/config/behat.yml @@ -1,8 +1,8 @@ default: - autoload: [ %paths.base%/../features/bootstrap ] + autoload: [ '%paths.base%/../features/bootstrap' ] suites: default: - paths: [ %paths.base%/../features ] + paths: [ '%paths.base%/../features' ] contexts: - Pantheon\Terminus\FeatureTests\FeatureContext: parameters: diff --git a/tests/features/domain-primary.feature b/tests/features/domain-primary.feature new file mode 100644 index 000000000..a0bf3b925 --- /dev/null +++ b/tests/features/domain-primary.feature @@ -0,0 +1,28 @@ +Feature: Adding a primary domain to an environment + In order to redirect all visitors to my preferred domain + As a user + I need to be able to manage primary domains attached to my site's environments + + Background: I am authenticated and have a site named [[test_site_name]] + Given I am authenticated + And a site named "[[test_site_name]]" + + @vcr domain-primary-add.yml + Scenario: Adding a primary domain to an environment + When I run "terminus domain:primary:add [[test_site_name]].live testdomain.com" + Then I should get "." + And I should get "." + Then I should get: + """ + Set testdomain.com as primary for [[test_site_name]].live + """ + + @vcr domain-primary-add.yml + Scenario: Removing a primary domain from an environment + When I run "terminus domain:primary:remove [[test_site_name]].live" + Then I should get "." + And I should get "." + Then I should get: + """ + Primary domain has been removed from [[test_site_name]].live + """ diff --git a/tests/fixtures/domain-primary-add.yml b/tests/fixtures/domain-primary-add.yml new file mode 100644 index 000000000..9dd1f0701 --- /dev/null +++ b/tests/fixtures/domain-primary-add.yml @@ -0,0 +1,223 @@ + +- + request: + method: POST + url: 'https://onebox/api/authorize/machine-token' + headers: + Host: onebox + Expect: null + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00001-0123-4567-89ab-cdef01234567:Jdg4ilJ9O3O0QIR1eBKUb' + Accept: null + body: '{"machine_token":"111111111111111111111111111111111111111111111","client":"terminus"}' + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:01 GMT' + Content-Type: 'application/json; charset=utf-8' + Content-Length: '182' + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00002-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + Strict-Transport-Security: max-age=31536000 + body: '{"session":"11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt","expires_at":1571784241,"user_id":"11111111-1111-1111-1111-111111111111"}' +- + request: + method: GET + url: 'https://onebox/api/site-names/behat-tests' + headers: + Host: onebox + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:02 GMT' + Content-Type: 'application/json; charset=utf-8' + Transfer-Encoding: chunked + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00004-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + Strict-Transport-Security: max-age=31536000 + body: '{"id": "aaa00005-0123-4567-89ab-cdef01234567", "name": "behat-tests"}' +- + request: + method: GET + url: 'https://onebox/api/sites/aaa00005-0123-4567-89ab-cdef01234567?site_state=true' + headers: + Host: onebox + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:02 GMT' + Content-Type: application/json + Content-Length: '81208' + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00006-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + Strict-Transport-Security: max-age=31536000 + body: '{"created": 1565815807, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "current_num_domains": 4, "domain_lookup_rax": 1568401902, "framework": "wordpress", "holder_id": "aaa00007-0123-4567-89ab-cdef01234567", "holder_type": "organization", "instrument": "aaa00008-0123-4567-89ab-cdef01234567", "last_code_push": {"timestamp": "2019-09-17T15:14:30", "user_uuid": null}, "name": "behat-tests", "organization": "aaa00007-0123-4567-89ab-cdef01234567", "owner": "11111111-1111-1111-1111-111111111111", "php_version": "55", "plan_name": "Basic", "preferred_availability_zone": "us-central1-a", "preferred_zone": "us-central1", "purchased_at": 1565816602, "service_level": "basic_small", "service_level_updated_at": 1565816602, "upstream": {"repository_branch": "master", "machine_name": "wordpress", "product_id": "aaa00009-0123-4567-89ab-cdef01234567", "url": "https://github.com/pantheon-systems/WordPress", "label": "WordPress", "organization_id": "", "framework": "wordpress", "branch": "master", "repository_url": "https://github.com/pantheon-systems/WordPress", "type": "core", "id": "aaa00009-0123-4567-89ab-cdef01234567"}, "label": "Mikes onboarding site", "id": "aaa00005-0123-4567-89ab-cdef01234567", "preferred_zone_label": "United States", "holder": {"base_domain": null, "billing_url": "", "change_management": true, "change_service_url": "https://www.pantheon.io", "custom_upstreams": true, "email_domain": null, "experimental_agency_organization": "no", "instrument": "aaa00008-0123-4567-89ab-cdef01234567", "is_discoverable": false, "maxdevsites": "20", "multidev": true, "name": "Pantheon Employees", "org_logo": "data:image/png;base64,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", "org_logo_height": 85, "org_logo_width": 128, "requires_onboarding": false, "secure_runtime_access_enableable": true, "service_level": "flagship_silver", "show_org_name_header": "yes", "terms_of_service": "", "use_org_instrument": true, "id": "aaa00007-0123-4567-89ab-cdef01234567", "key": "aaa00007-0123-4567-89ab-cdef01234567", "machine_name": "pantheon-employees", "has_multidev": false, "has_change_management": false, "profile": {"machine_name": "pantheon-employees", "change_service_url": "https://www.pantheon.io", "name": "Pantheon Employees", "email_domain": null, "org_logo_width": 128, "org_logo_height": 85, "base_domain": null, "billing_url": "", "terms_of_service": "", "org_logo": "data:image/png;base64,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"}, "settings": {"is_discoverable": false, "show_org_name_header": "yes", "service_level": "flagship_silver", "base_domain": null, "email_domain": null}}, "settings": {"allow_domains": true, "preferred_availability_zone": "us-central1-a", "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "stunnel": false, "min_backups": 0, "owner": "11111111-1111-1111-1111-111111111111", "secure_runtime_access": false, "pingdom": 0, "allow_indexserver": false, "created_by_user_id": "11111111-1111-1111-1111-111111111111", "failover_appserver": 0, "migration_started_at": null, "cacheserver": 0, "instrument": "aaa00008-0123-4567-89ab-cdef01234567", "on_server_development": false, "drush_version": 5, "migration_method": null, "current_num_domains": 4, "appserver": 1, "allow_read_slaves": false, "preferred_zone": "us-central1", "php_version": "55", "php_channel": "stable", "allow_cacheserver": false, "upstream": {"url": "https://github.com/pantheon-systems/WordPress", "product_id": "aaa00009-0123-4567-89ab-cdef01234567", "branch": "master"}, "ssl_enabled": null, "plan_name": "Basic", "fileserver": 1, "service_level": "basic_small", "dedicated_ip": null, "dbserver": 1, "migration_origin_url": null, "domain_lookup_rax": 1568401902, "purchased_at": 1565816602, "framework": "wordpress", "max_total_domains": 5, "key": "aaa00005-0123-4567-89ab-cdef01234567", "max_num_cdes": 10, "migration_completed_at": null, "guilty_of_abuse": null, "indexserver": 0, "pingdom_chance": 0, "holder_id": "aaa00007-0123-4567-89ab-cdef01234567", "name": "behat-tests", "created": 1565815807, "max_backups": 7, "last_code_push": {"timestamp": "2019-09-17T15:14:30", "user_uuid": null}, "holder_type": "organization", "replica_verification_strategy": "pt-heartbeat", "id": "aaa00005-0123-4567-89ab-cdef01234567", "organization": "aaa00007-0123-4567-89ab-cdef01234567", "pingdom_manually_enabled": false, "service_level_updated_at": 1565816602}, "base_domain": null, "attributes": {"label": "Mikes onboarding site", "m3_ui": true}, "add_ons": []}' +- + request: + method: GET + url: 'https://onebox/api/sites/aaa00005-0123-4567-89ab-cdef01234567/environments' + headers: + Host: onebox + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:06 GMT' + Content-Type: 'application/json; charset=utf-8' + Transfer-Encoding: chunked + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00010-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + Strict-Transport-Security: max-age=31536000 + body: '{"test": {"dns_zone": "pantheonsite.io", "environment_created": 1565815814, "environment_variables": {"php_version": 7.3, "live_primary_domain": "testdomain.com"}, "php_version": "73", "randseed": "DRUMT5CLDWCROHKHA7SEI74GI3PBHT97", "styx_cluster": "styx-fe2.pantheon.io", "target_commit": "ce711a18d37c8d8430468b8b32df2a86e86d1d23", "target_ref": "refs/tags/pantheon_test_2", "key": "aaa00005-0123-4567-89ab-cdef01234567!test", "is_initialized": true, "styx_clusters_for_cache_clear": ["styx-fe3-europe-west4.pantheon.io", "styx-fe4-europe-west4.pantheon.io", "edge.live.getpantheon.com", "styx-fe2-australia-southeast1.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3-australia-southeast1.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe3-northamerica-northeast1.pantheon.io", "styx-fe4-australia-southeast1.pantheon.io", "styx-fe1-australia-southeast1.pantheon.io", "styx-fe2-europe-west4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe2-northamerica-northeast1.pantheon.io", "styx-fe1-europe-west4.pantheon.io", "styx-fe1-northamerica-northeast1.pantheon.io", "styx-fe4-northamerica-northeast1.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}, "live": {"dns_zone": "pantheonsite.io", "environment_created": 1565815816, "environment_variables": {"php_version": 7.3, "live_primary_domain": "testdomain.com"}, "maintenance": {"enabled": false}, "php_version": "73", "randseed": "3RCQ34T46NI7UZ7CADC5ZK8W5QH8UL0N", "styx_cluster": "styx-fe2.pantheon.io", "target_commit": "ce711a18d37c8d8430468b8b32df2a86e86d1d23", "target_ref": "refs/tags/pantheon_live_2", "key": "aaa00005-0123-4567-89ab-cdef01234567!live", "is_initialized": true, "styx_clusters_for_cache_clear": ["styx-fe3-europe-west4.pantheon.io", "styx-fe4-europe-west4.pantheon.io", "edge.live.getpantheon.com", "styx-fe2-australia-southeast1.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3-australia-southeast1.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe3-northamerica-northeast1.pantheon.io", "styx-fe4-australia-southeast1.pantheon.io", "styx-fe1-australia-southeast1.pantheon.io", "styx-fe2-europe-west4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe2-northamerica-northeast1.pantheon.io", "styx-fe1-europe-west4.pantheon.io", "styx-fe1-northamerica-northeast1.pantheon.io", "styx-fe4-northamerica-northeast1.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}, "dev": {"diffstat": {}, "dns_zone": "pantheonsite.io", "environment_created": 1565815809, "environment_variables": {"php_version": 7.3, "live_primary_domain": "testdomain.com"}, "on_server_development": false, "php_version": "73", "quicksilver_configuration": {}, "randseed": "XSRNW5DUNQAYXI1HC6MHEKPE04RTINXM", "styx_cluster": "styx-fe1.pantheon.io", "target_commit": "ab644624256c60e9fd5c7ad35b758461deb8dec3", "target_ref": "refs/heads/master", "key": "aaa00005-0123-4567-89ab-cdef01234567!dev", "is_initialized": true, "styx_clusters_for_cache_clear": ["styx-fe3-europe-west4.pantheon.io", "styx-fe4-europe-west4.pantheon.io", "edge.live.getpantheon.com", "styx-fe2-australia-southeast1.pantheon.io", "styx-fe4.pantheon.io", "styx-fe3-australia-southeast1.pantheon.io", "styx-fe1.pantheon.io", "styx-fe2.pantheon.io", "styx-fe3-northamerica-northeast1.pantheon.io", "styx-fe4-australia-southeast1.pantheon.io", "styx-fe1-australia-southeast1.pantheon.io", "styx-fe2-europe-west4.pantheon.io", "styx-fe3.pantheon.io", "styx-01.pantheon.io", "styx-fe2-northamerica-northeast1.pantheon.io", "styx-fe1-europe-west4.pantheon.io", "styx-fe1-northamerica-northeast1.pantheon.io", "styx-fe4-northamerica-northeast1.pantheon.io"], "lock": {"username": null, "password": null, "locked": false}}}' +- + request: + method: POST + url: 'https://onebox/api/sites/aaa00005-0123-4567-89ab-cdef01234567/environments/live/workflows' + headers: + Host: onebox + Expect: null + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt' + Accept: null + body: '{"type":"set_primary_domain","params":{"primary_domain":"testdomain.com"}}' + response: + status: + http_version: '1.1' + code: '202' + message: Accepted + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:09 GMT' + Content-Type: 'application/json; charset=utf-8' + Transfer-Encoding: chunked + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00011-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + body: '{"environment_id": "live", "params": {"primary_domain": "testdomain.com"}, "role": "owner", "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "started_at": 1569365048.462987, "task_ids": ["aaa00012-0123-4567-89ab-cdef01234567", "aaa00013-0123-4567-89ab-cdef01234567"], "trace_id": "aaa00011-0123-4567-89ab-cdef01234567", "type": "set_primary_domain", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "aaa00013-0123-4567-89ab-cdef01234567", "id": "aaa00014-0123-4567-89ab-cdef01234567", "key": "1569362400", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1569365047.698356, "reason": "", "environment": "live", "final_task_id": null, "result": null, "total_time": null, "active_description": "Setting the primary domain for environment \"live\"", "description": "Set the primary domain for environment \"live\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 2, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:aaa00011-0123-4567-89ab-cdef01234567%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-09-24T22:39:07.698356Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|pantheonokta|devuser@pantheon.io", "created_at": 1565656598, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "live", "fn_name": "trigger_task", "initialized_at": 1569365048.84577, "params": {"environment": "live", "domains": ["live-behat-tests.pantheonsite.io", "testdomain.com"], "task_type": "save_policy_docs", "site_id": "aaa00005-0123-4567-89ab-cdef01234567"}, "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "trace_id": "aaa00011-0123-4567-89ab-cdef01234567", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "aaa00014-0123-4567-89ab-cdef01234567", "id": "aaa00013-0123-4567-89ab-cdef01234567", "key": "1569362400", "responses": [], "queued_time": null, "host": null, "result": "succeeded", "phase": "initialized", "created_at": 1569365048.311134, "allow_concurrent": false, "run_time": null, "total_time": null, "reason": "", "error_details": "", "internal_reason": "", "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:aaa00011-0123-4567-89ab-cdef01234567%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-09-24T22:39:08.311134Z%27,mode:quick,to:%27now%27))", "type": "save_policy_docs", "build_url": null, "messages": {}}}' +# The "remove" request is the same as an add request, but with the requested primary domain null. +- + request: + method: POST + url: 'https://onebox/api/sites/aaa00005-0123-4567-89ab-cdef01234567/environments/live/workflows' + headers: + Host: onebox + Expect: null + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt' + Accept: null + body: '{"type":"set_primary_domain","params":{"primary_domain":null}}' + response: + status: + http_version: '1.1' + code: '202' + message: Accepted + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:09 GMT' + Content-Type: 'application/json; charset=utf-8' + Transfer-Encoding: chunked + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00011-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + body: '{"environment_id": "live", "params": {"primary_domain": null}, "role": "owner", "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "started_at": 1569365048.462987, "task_ids": ["aaa00012-0123-4567-89ab-cdef01234567", "aaa00013-0123-4567-89ab-cdef01234567"], "trace_id": "aaa00011-0123-4567-89ab-cdef01234567", "type": "set_primary_domain", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": "aaa00013-0123-4567-89ab-cdef01234567", "id": "aaa00014-0123-4567-89ab-cdef01234567", "key": "1569362400", "keep_forever": false, "phase": "started", "queued_time": null, "run_time": null, "created_at": 1569365047.698356, "reason": "", "environment": "live", "final_task_id": null, "result": null, "total_time": null, "active_description": "Setting the primary domain for environment \"live\"", "description": "Set the primary domain for environment \"live\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 2, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:aaa00011-0123-4567-89ab-cdef01234567%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-09-24T22:39:07.698356Z%27,mode:quick,to:%27now%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|pantheonokta|devuser@pantheon.io", "created_at": 1565656598, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "waiting_for_task": {"environment": "live", "fn_name": "trigger_task", "initialized_at": 1569365048.84577, "params": {"environment": "live", "domains": ["live-behat-tests.pantheonsite.io", "testdomain.com"], "task_type": "save_policy_docs", "site_id": "aaa00005-0123-4567-89ab-cdef01234567"}, "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "trace_id": "aaa00011-0123-4567-89ab-cdef01234567", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "aaa00014-0123-4567-89ab-cdef01234567", "id": "aaa00013-0123-4567-89ab-cdef01234567", "key": "1569362400", "responses": [], "queued_time": null, "host": null, "result": "succeeded", "phase": "initialized", "created_at": 1569365048.311134, "allow_concurrent": false, "run_time": null, "total_time": null, "reason": "", "error_details": "", "internal_reason": "", "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:aaa00011-0123-4567-89ab-cdef01234567%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-09-24T22:39:08.311134Z%27,mode:quick,to:%27now%27))", "type": "save_policy_docs", "build_url": null, "messages": {}}}' +- + request: + method: GET + url: 'https://onebox/api/sites/aaa00005-0123-4567-89ab-cdef01234567/workflows/aaa00014-0123-4567-89ab-cdef01234567' + headers: + Host: onebox + Accept-Encoding: null + Content-type: application/json + User-Agent: 'Terminus/2.1.1-dev (php_version=7.2.19-0ubuntu0.18.04.2&script=bin/terminus)' + Authorization: 'Bearer 11111111-1111-1111-1111-111111111111:aaa00003-0123-4567-89ab-cdef01234567:vqfLeZlGZnTQmbEwNZ4dt' + Accept: null + response: + status: + http_version: '1.1' + code: '200' + message: OK + headers: + Server: nginx + Date: 'Tue, 24 Sep 2019 22:44:09 GMT' + Content-Type: 'application/json; charset=utf-8' + Transfer-Encoding: chunked + Connection: keep-alive + X-Pantheon-Trace-Id: aaa00015-0123-4567-89ab-cdef01234567 + X-Frame-Options: deny + Access-Control-Allow-Methods: GET + Access-Control-Allow-Headers: 'Origin, Content-Type, Accept' + Cache-Control: 'private, max-age=0, no-cache, no-store' + Pragma: no-cache + Vary: Accept-Encoding + Strict-Transport-Security: max-age=31536000 + body: '{"environment_id": "live", "final_task_id": "aaa00013-0123-4567-89ab-cdef01234567", "finished_at": 1569365049.595287, "params": {"primary_domain": "testdomain.com"}, "reason": "", "result": "succeeded", "role": "owner", "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "started_at": 1569365048.462987, "task_ids": ["aaa00012-0123-4567-89ab-cdef01234567", "aaa00013-0123-4567-89ab-cdef01234567"], "trace_id": "aaa00011-0123-4567-89ab-cdef01234567", "type": "set_primary_domain", "user_id": "11111111-1111-1111-1111-111111111111", "waiting_for_task_id": null, "id": "aaa00014-0123-4567-89ab-cdef01234567", "key": "aaa00005-0123-4567-89ab-cdef01234567", "keep_forever": false, "phase": "finished", "queued_time": null, "run_time": 1.1323001384735107, "created_at": 1569365047.698356, "environment": "live", "total_time": 1.8969311714172363, "active_description": "Set the primary domain for environment \"live\"", "description": "Set the primary domain for environment \"live\"", "step": 2, "has_operation_log_output": false, "number_of_tasks": 2, "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:aaa00011-0123-4567-89ab-cdef01234567%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-09-24T22:39:07.698356Z%27,mode:quick,to:%272019-09-24T22:49:09.595287Z%27))", "user": {"user_id": "11111111-1111-1111-1111-111111111111", "auth0_user_id": "samlp|pantheonokta|devuser@pantheon.io", "created_at": 1565656598, "destination_organization_id": null, "is_registered": true, "created_organization_id": null, "password": "SCRUBBED", "email": "devuser@pantheon.io"}, "user_email": "devuser@pantheon.io", "final_task": {"environment": "live", "finished_at": 1569365049.521994, "fn_name": "trigger_task", "initialized_at": 1569365048.84577, "params": {"environment": "live", "domains": ["live-behat-tests.pantheonsite.io", "testdomain.com"], "task_type": "save_policy_docs", "site_id": "aaa00005-0123-4567-89ab-cdef01234567"}, "queued_at": 1569365048.920202, "responses": [{"code": 200, "body": "Saved policy doc associated with domains: [u''live-behat-tests.pantheonsite.io'', u''testdomain.com'']", "error_details": "", "internal_reason": ""}], "result": "succeeded", "site_id": "aaa00005-0123-4567-89ab-cdef01234567", "started_at": 1569365048.92021, "trace_id": "aaa00011-0123-4567-89ab-cdef01234567", "user_id": "11111111-1111-1111-1111-111111111111", "workflow_id": "aaa00014-0123-4567-89ab-cdef01234567", "id": "aaa00013-0123-4567-89ab-cdef01234567", "key": "1569362400", "queued_time": 7.867813110351562e-06, "host": null, "phase": "finished", "created_at": 1569365048.311134, "allow_concurrent": false, "run_time": 0.6017842292785645, "total_time": 1.210860013961792, "reason": "", "error_details": "", "internal_reason": "", "trace_log_url": "https://app.logz.io/#/dashboard/kibana?kibanaRoute=discover%3F_a%3D(query:(query_string:(analyze_wildcard:!t,query:%27trace_id:aaa00011-0123-4567-89ab-cdef01234567%27)))%26_g%3D(refreshInterval:(display:Off,pause:!f,value:0),time:(from:%272019-09-24T22:39:08.311134Z%27,mode:quick,to:%272019-09-24T22:49:09.521994Z%27))", "type": "save_policy_docs", "build_url": null, "messages": {"2019-09-24T22:44:09.816436": {"message": "Saved policy doc associated with domains: [u''live-behat-tests.pantheonsite.io'', u''testdomain.com'']", "level": "INFO"}}}}' diff --git a/tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php b/tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php new file mode 100644 index 000000000..47c0a2bb1 --- /dev/null +++ b/tests/unit_tests/Commands/Domain/Primary/AddCommandTest.php @@ -0,0 +1,54 @@ +prepareTestSetReset( + $domain, + 'Set {domain} as primary for {site}.{env}', + ['domain' => $domain, 'site' => $this->site->get('name'), 'env' => $this->environment->id] + ); + + $out = $this->command->add("$site_name.{$this->environment->id}", $domain); + $this->assertNull($out); + } + + public function testFilterPlatformDomains() + { + $sys_under_test = new AddCommand(); + $this->assertEquals( + array_values([ + 'x', + 'something.com', + 'averylong.domain.ofsomeosrt.tld', + ]), + array_values($sys_under_test->filterPlatformDomains( + [ + 'x', + 'something.com', + 'dev-mikes-testsite.pantheonsite.io', + 'averylong.domain.ofsomeosrt.tld', + ] + )) + ); + } +} diff --git a/tests/unit_tests/Commands/Domain/Primary/PrimaryDomainCommandsTestBase.php b/tests/unit_tests/Commands/Domain/Primary/PrimaryDomainCommandsTestBase.php new file mode 100644 index 000000000..8151ec9cc --- /dev/null +++ b/tests/unit_tests/Commands/Domain/Primary/PrimaryDomainCommandsTestBase.php @@ -0,0 +1,81 @@ +session = $this->getMockBuilder(Session::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->command = $this->getSystemUnderTest(); + $this->command->setLogger($this->logger); + $this->command->setSites($this->sites); + $this->command->setSession($this->session); + $this->command->setConfig($this->getConfig()); + $this->command->setContainer($this->getContainer()); + + $this->environment->id = 'env_id'; + } + + protected function prepareTestSetReset($domain, $logTemplate, $logParams) + { + $workflow = $this->getMockBuilder(Workflow::class) + ->disableOriginalConstructor() + ->getMock(); + + $primaryDomainModel = $this->getMockBuilder(PrimaryDomain::class) + ->disableOriginalConstructor() + ->setMethods(['setPrimaryDomain', 'removePrimaryDomain']) + ->getMock(); + + if ($domain != null) { + $primaryDomainModel + ->expects($this->once()) + ->method('setPrimaryDomain') + ->with($this->equalTo($domain)) + ->willReturn($workflow); + } else { + $primaryDomainModel + ->expects($this->once()) + ->method('removePrimaryDomain') + ->willReturn($workflow); + } + + $this->environment->expects($this->once()) + ->method('getPrimaryDomainModel') + ->willReturn($primaryDomainModel); + + $this->expectWorkflowProcessing(); + + $this->logger->expects($this->once()) + ->method('log') + ->with( + $this->equalTo('notice'), + $this->equalTo($logTemplate), + $this->equalTo($logParams) + ); + } +} diff --git a/tests/unit_tests/Commands/Domain/Primary/RemoveCommandTest.php b/tests/unit_tests/Commands/Domain/Primary/RemoveCommandTest.php new file mode 100644 index 000000000..2b36ea3ad --- /dev/null +++ b/tests/unit_tests/Commands/Domain/Primary/RemoveCommandTest.php @@ -0,0 +1,28 @@ +prepareTestSetReset( + $domain, + 'Primary domain has been removed from {site}.{env}', + ['site' => $this->site->get('name'), 'env' => $this->environment->id] + ); + + $out = $this->command->remove("$site_name.{$this->environment->id}", $domain); + $this->assertNull($out); + } +} diff --git a/tests/unit_tests/Models/DomainTest.php b/tests/unit_tests/Models/DomainTest.php index 484505e7e..e940f67ac 100644 --- a/tests/unit_tests/Models/DomainTest.php +++ b/tests/unit_tests/Models/DomainTest.php @@ -122,7 +122,7 @@ public function testGetDNSRecords() $this->assertEquals($records, $domain->getDNSRecords()); } - + public function testSerialize() { $data = [ @@ -131,6 +131,30 @@ public function testSerialize() 'status' => 'status', 'status_message' => 'status message', 'deletable' => false, + 'primary' => true, + 'extraneous' => 'info', + ]; + $expected = [ + 'type' => 'platform', + 'id' => 'live-mysite.pantheonsite.io', + 'status' => 'status', + 'status_message' => 'status message', + 'deletable' => false, + 'primary' => true, + ]; + + $domain = $this->_createDomain($data); + $actual = $domain->serialize(); + $this->assertEquals($expected, $actual); + } + + public function testSerializeSparse() + { + $data = [ + 'type' => 'platform', + 'id' => 'live-mysite.pantheonsite.io', + 'status' => 'status', + 'status_message' => 'status message', 'extraneous' => 'info', ]; $expected = [ @@ -139,6 +163,7 @@ public function testSerialize() 'status' => 'status', 'status_message' => 'status message', 'deletable' => false, + 'primary' => false, ]; $domain = $this->_createDomain($data);